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;
import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
import io.micrometer.common.util.StringUtils;
import jakarta.annotation.PostConstruct;
import lombok.extern.log4j.Log4j2;
......@@ -69,7 +70,9 @@ public class FimService {
}
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)) {
throw new FimException("XML Document does not provide a scheme");
}
......@@ -84,6 +87,9 @@ public class FimService {
adapter.extractZustaendigeStelle(builder, initialFormData);
// FIXME remove me please
builder.zustaendigeStelle(ZustaendigeStelle.builder().organisationseinheitenId("vbe:010550120100").build());
return builder.build();
}
......
......@@ -76,6 +76,18 @@ public class FimServiceITCase {
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
void shouldTransformDocument() throws ParserConfigurationException, IOException, SAXException {
final Document document = loadDocument("src/test/resources/S17000652V1.4_test01.xml");
......
<?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.S1236>Testvalue 2</xs:fim.S1236>
</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 @@
package de.ozgcloud.eingang.semantik;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -55,8 +54,6 @@ public class SemantikAdapter {
}
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);
for (var adapter : responsibleEngineAdapters) {
try {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment