From 19d3a1f8d7bcc1a4c08d25959c484b33c849ee21 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 8 Nov 2023 08:52:05 +0100 Subject: [PATCH] OZG-4456 refactor xml mapper --- .../eingang/SemantikAdapterConfiguration.java | 7 ------- .../enginebased/afm/XmlMapperSupplier.java | 21 +++++++++++++++++++ .../afm/ZustaendigeStelleMetadataMapper.java | 6 ++---- ...ZustaendigeStelleMetadataMapperITCase.java | 14 ------------- 4 files changed, 23 insertions(+), 25 deletions(-) create mode 100644 semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/XmlMapperSupplier.java 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 9c63e2d65..7c70b8144 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 000000000..8a4b166b5 --- /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 e8dfb7a42..ace1fd772 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 58ba71eab..d1ff23366 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 -- GitLab