diff --git a/intelliform-adapter/src/main/java/de/ozgcloud/eingang/SemantikAdapterConfiguration.java b/intelliform-adapter/src/main/java/de/ozgcloud/eingang/SemantikAdapterConfiguration.java index 9c63e2d652a34bba3306d35ca7e19773c187e682..7c70b8144a3b5da22da7b1962216c9ada61dceba 100644 --- a/intelliform-adapter/src/main/java/de/ozgcloud/eingang/SemantikAdapterConfiguration.java +++ b/intelliform-adapter/src/main/java/de/ozgcloud/eingang/SemantikAdapterConfiguration.java @@ -25,9 +25,6 @@ package de.ozgcloud.eingang; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter; - -import com.fasterxml.jackson.dataformat.xml.XmlMapper; import de.ozgcloud.eingang.semantik.enginebased.EngineBasedSemantikAdapter; import de.ozgcloud.eingang.semantik.enginebased.afm.AfmEngineBasedAdapter; @@ -40,8 +37,4 @@ public class SemantikAdapterConfiguration { return new AfmEngineBasedAdapter(); } - @Bean - public XmlMapper xmlMapper(MappingJackson2XmlHttpMessageConverter messageConverter) { - return (XmlMapper) messageConverter.getObjectMapper(); - } } \ No newline at end of file diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/XmlMapperSupplier.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/XmlMapperSupplier.java new file mode 100644 index 0000000000000000000000000000000000000000..8a4b166b5140b283b4e9fa1f8a433991d51c53ae --- /dev/null +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/XmlMapperSupplier.java @@ -0,0 +1,21 @@ +package de.ozgcloud.eingang.semantik.enginebased.afm; + +import org.springframework.stereotype.Component; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; + +@Component +public class XmlMapperSupplier { + + private final XmlMapper xmlMapper; + + public XmlMapperSupplier() { + xmlMapper = new XmlMapper(); + xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + } + + public XmlMapper getMapper() { + return xmlMapper; + } +} diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/ZustaendigeStelleMetadataMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/ZustaendigeStelleMetadataMapper.java index e8dfb7a420386457ead3c08b40aa0d7d623a0769..ace1fd77237e0326896fa1ab80e09451eb0c14ef 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/ZustaendigeStelleMetadataMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/ZustaendigeStelleMetadataMapper.java @@ -14,8 +14,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import com.fasterxml.jackson.dataformat.xml.XmlMapper; - import de.itvsh.kop.common.errorhandling.TechnicalException; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.IncomingFile; @@ -41,7 +39,7 @@ public class ZustaendigeStelleMetadataMapper { static final String KEY_BEHOERDE_TELEFON = "behoerde_telefon"; @Autowired - private XmlMapper xmlMapper; + private XmlMapperSupplier xmlMapperSupplier; public FormData parseZustaendigeStelleData(FormData formData) { return formData.getRepresentations().stream().filter(IS_BEHOERDE_METADATA).findAny() @@ -57,7 +55,7 @@ public class ZustaendigeStelleMetadataMapper { Optional<ZustaendigeStelleData> readXmlContent(IncomingFile metadata) { try { - return Optional.of(xmlMapper.readValue(metadata.getContentStream(), ZustaendigeStelleData.class)); + return Optional.of(xmlMapperSupplier.getMapper().readValue(metadata.getContentStream(), ZustaendigeStelleData.class)); } catch (IOException | TechnicalException e) { LOG.error("Error parsing {}", BEHOERDE_METADATA_FILE_NAME, e); } diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/ZustaendigeStelleMetadataMapperITCase.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/ZustaendigeStelleMetadataMapperITCase.java index 58ba71eab254e07ee778dd3aa3bdad22e80e1e12..d1ff2336639729b40f08a08a6b663e8841a6d931 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/ZustaendigeStelleMetadataMapperITCase.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/ZustaendigeStelleMetadataMapperITCase.java @@ -8,11 +8,6 @@ import java.io.File; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter; - -import com.fasterxml.jackson.dataformat.xml.XmlMapper; import de.itvsh.kop.common.test.ITCase; import de.itvsh.kop.common.test.TestUtils; @@ -52,13 +47,4 @@ class ZustaendigeStelleMetadataMapperITCase { assertThat(zustaendigeStelleData).isEmpty(); } -} - -@Configuration -class TestConfiguration { - - @Bean - public XmlMapper xmlMapper(MappingJackson2XmlHttpMessageConverter messageConverter) { - return (XmlMapper) messageConverter.getObjectMapper(); - } } \ No newline at end of file