From 76526eb56beaff1d0035016af31146b51ef8859f Mon Sep 17 00:00:00 2001 From: OZG-Cloud Team <noreply@ozg-sh.de> Date: Mon, 13 May 2024 11:24:01 +0200 Subject: [PATCH] OZG-5412 refactor --- .../eingang/common/xml/XMLHelper.java | 39 +++++++++---------- .../formdata/IncomingFileTestFactory.java | 4 -- .../eingang/xta/XtaIncomingFilesMapper.java | 4 +- .../xdomea/XdomeaMessageDataMapperTest.java | 8 ++-- 4 files changed, 25 insertions(+), 30 deletions(-) diff --git a/common/src/main/java/de/ozgcloud/eingang/common/xml/XMLHelper.java b/common/src/main/java/de/ozgcloud/eingang/common/xml/XMLHelper.java index c94b0ae5..2f229a4b 100644 --- a/common/src/main/java/de/ozgcloud/eingang/common/xml/XMLHelper.java +++ b/common/src/main/java/de/ozgcloud/eingang/common/xml/XMLHelper.java @@ -11,18 +11,35 @@ import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import javax.xml.xpath.XPathFactoryConfigurationException; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.w3c.dom.Document; import org.xml.sax.SAXException; import de.ozgcloud.eingang.common.errorhandling.TechnicalException; import de.ozgcloud.eingang.common.formdata.IncomingFile; +@NoArgsConstructor(access = AccessLevel.PRIVATE) public class XMLHelper { - private XMLHelper() { + private static final DocumentBuilder DOCUMENT_BUILDER = createDocumentBuilder(); + private static final XPathFactory X_PATH_FACTORY = createXPathFactory(); + + public static Document parseDocument(IncomingFile incomingFile) { + try (var inputStream = incomingFile.getContentStream()) { + return DOCUMENT_BUILDER.parse(inputStream); + } catch (SAXException | IOException e) { + throw new TechnicalException("Failed to parse xml document!", e); + } } - private static final DocumentBuilder DOCUMENT_BUILDER = createDocumentBuilder(); + public static XPathExpression compileXPathExpression(String xPathString) { + try { + return X_PATH_FACTORY.newXPath().compile(xPathString); + } catch (XPathExpressionException e) { + throw new TechnicalException("Failed to compile xpath expression!", e); + } + } private static DocumentBuilder createDocumentBuilder() { var documentBuilderFactory = DocumentBuilderFactory.newInstance(); @@ -34,8 +51,6 @@ public class XMLHelper { } } - private static final XPathFactory X_PATH_FACTORY = createXPathFactory(); - private static XPathFactory createXPathFactory() { var xPathFactory = XPathFactory.newInstance(); try { @@ -45,20 +60,4 @@ public class XMLHelper { throw new TechnicalException("Failed to configure xpath factory!", e); } } - - public static Document parseDocument(IncomingFile incomingFile) { - try (var inputStream = incomingFile.getContentStream()) { - return DOCUMENT_BUILDER.parse(inputStream); - } catch (SAXException | IOException e) { - throw new TechnicalException("Failed to parse xml document!", e); - } - } - - public static XPathExpression compileXPathExpression(String xPathString) { - try { - return X_PATH_FACTORY.newXPath().compile(xPathString); - } catch (XPathExpressionException e) { - throw new TechnicalException("Failed to compile xpath expression!", e); - } - } } diff --git a/common/src/test/java/de/ozgcloud/eingang/common/formdata/IncomingFileTestFactory.java b/common/src/test/java/de/ozgcloud/eingang/common/formdata/IncomingFileTestFactory.java index b8f2a5b2..40e803fe 100644 --- a/common/src/test/java/de/ozgcloud/eingang/common/formdata/IncomingFileTestFactory.java +++ b/common/src/test/java/de/ozgcloud/eingang/common/formdata/IncomingFileTestFactory.java @@ -65,8 +65,4 @@ public class IncomingFileTestFactory { public static MockMultipartFile asMultipartFile(String multipartName, IncomingFile file) { return new MockMultipartFile(multipartName, file.getName(), file.getContentType(), file.getContentStream().readAllBytes()); } - - public static IncomingFile createWithName(String name) { - return createBuilder().name(name).build(); - } } diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaIncomingFilesMapper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaIncomingFilesMapper.java index f2a5d411..e851176d 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaIncomingFilesMapper.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaIncomingFilesMapper.java @@ -36,11 +36,11 @@ import java.util.stream.Stream; @Log4j2 @Component -public class XtaIncomingFilesMapper { +class XtaIncomingFilesMapper { public static final String ZIP_CONTENT_TYPE = "application/zip"; static final Predicate<IncomingFile> IS_ZIP_FILE = contentType -> ZIP_CONTENT_TYPE.equals(contentType.getContentType()); - List<IncomingFile> toIncomingFiles(Collection<XtaFile> messageFiles) { + public List<IncomingFile> toIncomingFiles(Collection<XtaFile> messageFiles) { if (Objects.nonNull(messageFiles)) { return messageFiles.stream() .map(this::toIncomingFile) diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataMapperTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataMapperTest.java index b061b159..b848e641 100644 --- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataMapperTest.java +++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataMapperTest.java @@ -39,7 +39,7 @@ class XdomeaMessageDataMapperTest { @DisplayName("should throw if not found") @Test void shouldThrowIfNotFound() { - var incomingFilesWithout = List.of(IncomingFileTestFactory.createWithName(FILE_NAME_WITHOUT_SUFFIX)); + var incomingFilesWithout = List.of(IncomingFileTestFactory.createBuilder().name(FILE_NAME_WITHOUT_SUFFIX).build()); assertThatThrownBy(() -> fileClassifier.findXdomeaXMLFile(incomingFilesWithout)) .isInstanceOf(TechnicalException.class); @@ -48,9 +48,9 @@ class XdomeaMessageDataMapperTest { @DisplayName("should return if found") @Test void shouldReturnIfFound() { - var targetIncomingFile = IncomingFileTestFactory.createWithName(FILE_NAME_WITH_SUFFIX); + var targetIncomingFile = IncomingFileTestFactory.createBuilder().name(FILE_NAME_WITH_SUFFIX).build(); var incomingFilesWith = List.of( - IncomingFileTestFactory.createWithName(FILE_NAME_WITHOUT_SUFFIX), + IncomingFileTestFactory.createBuilder().name(FILE_NAME_WITHOUT_SUFFIX).build(), targetIncomingFile ); @@ -114,7 +114,7 @@ class XdomeaMessageDataMapperTest { ATTATCHMENT_PNG_NAME, ATTATCHMENT_PDF_NAME ) - .map(IncomingFileTestFactory::createWithName) + .map(name -> IncomingFileTestFactory.createBuilder().name(name).build()) .toList(); doReturn(xdomeaXMLFile).when(fileClassifier).findXdomeaXMLFile(incomingFileList); -- GitLab