Skip to content
Snippets Groups Projects
Commit 0dda7dca authored by OZGCloud's avatar OZGCloud
Browse files

OZG-5156 Accept FIM messages in XTA adapter

support for empty namespace in xml
parent 7f24977d
No related branches found
No related tags found
No related merge requests found
package de.ozgcloud.eingang.fim; package de.ozgcloud.eingang.fim;
import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
import io.micrometer.common.util.StringUtils; import io.micrometer.common.util.StringUtils;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
...@@ -69,7 +70,9 @@ public class FimService { ...@@ -69,7 +70,9 @@ public class FimService {
} }
public FormData transformDocument(final Document document, final FormData initialFormData) { public FormData transformDocument(final Document document, final FormData initialFormData) {
final String schemeName = document.getDocumentElement().getAttribute("xmlns:xfd"); final String[] tagParts = document.getDocumentElement().getTagName().split(":");
final String namespacePrefix = tagParts.length < 2 ? "" : (":" + tagParts[0]);
final String schemeName = document.getDocumentElement().getAttribute("xmlns" + namespacePrefix);
if (StringUtils.isEmpty(schemeName)) { if (StringUtils.isEmpty(schemeName)) {
throw new FimException("XML Document does not provide a scheme"); throw new FimException("XML Document does not provide a scheme");
} }
...@@ -84,6 +87,9 @@ public class FimService { ...@@ -84,6 +87,9 @@ public class FimService {
adapter.extractZustaendigeStelle(builder, initialFormData); adapter.extractZustaendigeStelle(builder, initialFormData);
// FIXME remove me please
builder.zustaendigeStelle(ZustaendigeStelle.builder().organisationseinheitenId("vbe:010550120100").build());
return builder.build(); return builder.build();
} }
......
...@@ -76,6 +76,18 @@ public class FimServiceITCase { ...@@ -76,6 +76,18 @@ public class FimServiceITCase {
assertThat(expected).isEqualTo(formData.getFormData()); assertThat(expected).isEqualTo(formData.getFormData());
} }
@Test
void shouldTransformSimpleDocumentWithoutNamespace() throws ParserConfigurationException, IOException, SAXException {
final Document document = loadDocument("src/test/resources/test3.xml");
final FormData formData = fimService.transformDocument(document, FormData.builder().build());
final Map<String, Object> expected = Map.of(
"fim.S1235", Map.of("label", "Testkey", "value", "Testvalue"),
"fim.S1236", Map.of("label", "fim.S1236", "value", "Testvalue 2")
);
assertThat(expected).isEqualTo(formData.getFormData());
}
@Test @Test
void shouldTransformDocument() throws ParserConfigurationException, IOException, SAXException { void shouldTransformDocument() throws ParserConfigurationException, IOException, SAXException {
final Document document = loadDocument("src/test/resources/S17000652V1.4_test01.xml"); final Document document = loadDocument("src/test/resources/S17000652V1.4_test01.xml");
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xs:fim.S1234 xmlns:xfd="test2" xsi:schemaLocation="test2"> <xs:fim.S1234 xmlns:xs="test2" xsi:schemaLocation="test2">
<xs:fim.S1235>Testvalue</xs:fim.S1235> <xs:fim.S1235>Testvalue</xs:fim.S1235>
<xs:fim.S1236>Testvalue 2</xs:fim.S1236> <xs:fim.S1236>Testvalue 2</xs:fim.S1236>
</xs:fim.S1234> </xs:fim.S1234>
<?xml version="1.0" encoding="UTF-8"?>
<fim.S1234 xmlns="test2" xsi:schemaLocation="test2">
<fim.S1235>Testvalue</fim.S1235>
<fim.S1236>Testvalue 2</fim.S1236>
</fim.S1234>
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
package de.ozgcloud.eingang.semantik; package de.ozgcloud.eingang.semantik;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -55,8 +54,6 @@ public class SemantikAdapter { ...@@ -55,8 +54,6 @@ public class SemantikAdapter {
} }
private FormData parseByEngineAdapter(FormData formData) { private FormData parseByEngineAdapter(FormData formData) {
// FIXME remove
LOG.debug("Parse bei responsible adapters " + engineBasedAdapters.stream().map(x -> x.getClass().getName()).collect(Collectors.joining(",")));
List<EngineBasedSemantikAdapter> responsibleEngineAdapters = getResponsibleEngineAdapters(formData); List<EngineBasedSemantikAdapter> responsibleEngineAdapters = getResponsibleEngineAdapters(formData);
for (var adapter : responsibleEngineAdapters) { for (var adapter : responsibleEngineAdapters) {
try { try {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment