From 4a1a89d571cd9cd56709fc07ebe751a4c7f23197 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 18 Jul 2024 11:42:05 +0200
Subject: [PATCH] OZG-5156 Accept FIM messages in XTA adapter

schema classpath handling
---
 .../src/main/java/de/ozgcloud/eingang/fim/FimService.java   | 6 +++++-
 fim-adapter/src/main/resources/application.yml              | 2 +-
 fim-adapter/src/test/resources/application-test.yml         | 4 ++--
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
index d1bad439b..6a7ae7036 100644
--- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
+++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
@@ -6,6 +6,7 @@ import io.micrometer.common.util.StringUtils;
 import jakarta.annotation.PostConstruct;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ResourceLoader;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
@@ -29,6 +30,9 @@ public class FimService {
     @Autowired
     private FimDataMapper fimDataMapper;
 
+    @Autowired
+    private ResourceLoader resourceLoader;
+
     @Autowired
     private final List<FimSchemeAdapter> fimSchemeAdapters = new ArrayList<>();
 
@@ -55,7 +59,7 @@ public class FimService {
 
     private FimScheme loadFimScheme(final String path) throws ParserConfigurationException, IOException, SAXException {
         final DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-        final Document doc = builder.parse(new File(path));
+        final Document doc = builder.parse(resourceLoader.getResource("classpath:" + path).getFile());
         final String targetNamespace = doc.getDocumentElement().getAttribute("targetNamespace");
         final FimSchemeIdentifier fimSchemeIdentifier = FimSchemeIdentifier.fromString(targetNamespace);
         final FimSchemeAdapter fimSchemeAdapter = fimSchemeAdapterCatalogue.getOrDefault(fimSchemeIdentifier, DEFAULT_FIM_SCHEME_ADAPTER);
diff --git a/fim-adapter/src/main/resources/application.yml b/fim-adapter/src/main/resources/application.yml
index c52241b27..1300ecebf 100644
--- a/fim-adapter/src/main/resources/application.yml
+++ b/fim-adapter/src/main/resources/application.yml
@@ -1,3 +1,3 @@
 fim:
   schemeLocations:
-    - src/main/resources/fim-s17000652_1.4/S17000652V1.4_xfall.xsd
\ No newline at end of file
+    - fim-s17000652_1.4/S17000652V1.4_xfall.xsd
\ No newline at end of file
diff --git a/fim-adapter/src/test/resources/application-test.yml b/fim-adapter/src/test/resources/application-test.yml
index 62a350e59..148c1af75 100644
--- a/fim-adapter/src/test/resources/application-test.yml
+++ b/fim-adapter/src/test/resources/application-test.yml
@@ -1,4 +1,4 @@
 fim:
   schemeLocations:
-    - src/main/resources/fim-s17000652_1.4/S17000652V1.4_xfall.xsd
-    - src/test/resources/test2/test2.xsd
\ No newline at end of file
+    - fim-s17000652_1.4/S17000652V1.4_xfall.xsd
+    - test2/test2.xsd
\ No newline at end of file
-- 
GitLab