diff --git a/enterprise-adapter/src/main/java/de/ozgcloud/eingang/enterprise/entry/EntryController.java b/enterprise-adapter/src/main/java/de/ozgcloud/eingang/enterprise/entry/EntryController.java index 20b6563bd1a8f6dd48a55340a4f803b05b9e542d..f6467d0f714bdcf4f969fede48c36007b3e8c6ad 100644 --- a/enterprise-adapter/src/main/java/de/ozgcloud/eingang/enterprise/entry/EntryController.java +++ b/enterprise-adapter/src/main/java/de/ozgcloud/eingang/enterprise/entry/EntryController.java @@ -3,36 +3,31 @@ package de.ozgcloud.eingang.enterprise.entry; import java.io.IOException; import java.time.ZonedDateTime; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.core.io.Resource; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier; import de.ozgcloud.eingang.enterprise.entry.EntryResponse.ResponseVorgang; import de.ozgcloud.eingang.semantik.SemantikAdapter; -@Controller -@ResponseBody +@RestController @RequestMapping("antrag") +@RequiredArgsConstructor public class EntryController { private static final String STARTING_STATUS = "NEU"; - @Autowired - private EntryDataMapper mapper; - - @Autowired - private SemantikAdapter semantikAdapter; - @Autowired - private VorgangNummerSupplier vorgangNummerSupplier; + private final EntryDataMapper mapper; + private final SemantikAdapter semantikAdapter; + private final VorgangNummerSupplier vorgangNummerSupplier; @ResponseStatus(HttpStatus.ACCEPTED) @PostMapping(consumes = "multipart/form-data", produces = MediaType.APPLICATION_JSON_VALUE) diff --git a/enterprise-adapter/src/main/java/de/ozgcloud/eingang/enterprise/entry/EntryDataMapper.java b/enterprise-adapter/src/main/java/de/ozgcloud/eingang/enterprise/entry/EntryDataMapper.java index 1c2c5340499d72c4101fc52bbbd40ddec37c3c2d..ddbcefa40b341878ac154216c8d184b58b0b6097 100644 --- a/enterprise-adapter/src/main/java/de/ozgcloud/eingang/enterprise/entry/EntryDataMapper.java +++ b/enterprise-adapter/src/main/java/de/ozgcloud/eingang/enterprise/entry/EntryDataMapper.java @@ -3,7 +3,7 @@ package de.ozgcloud.eingang.enterprise.entry; import java.io.IOException; import java.io.InputStream; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import com.fasterxml.jackson.databind.ObjectMapper; @@ -11,12 +11,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import de.ozgcloud.eingang.common.formdata.FormData; @Component +@RequiredArgsConstructor class EntryDataMapper { - @Autowired - private ObjectMapper objectMapper; - @Autowired - private FormDataMapper formDataMapper; + private final ObjectMapper objectMapper; + private final FormDataMapper formDataMapper; public FormData mapEntryData(InputStream request) { return formDataMapper.mapEntryData(readRequest(request)); diff --git a/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormDataController.java b/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormDataController.java index 1147f2eac92f1b21a69be5315b79d17833b48f18..bc14537b1630250aa8d3be26dc70419f6343563a 100644 --- a/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormDataController.java +++ b/formcycle-adapter/formcycle-adapter-impl/src/main/java/de/ozgcloud/eingang/formcycle/FormDataController.java @@ -32,11 +32,10 @@ import java.util.Objects; import java.util.Optional; import java.util.UUID; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import de.ozgcloud.common.binaryfile.TempFileUtils; @@ -53,8 +52,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @Log4j2 -@Controller -@ResponseBody +@RestController @RequestMapping("formData") @RequiredArgsConstructor class FormDataController { diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java index 2984f9a6d257eeae0e1c6e2d361383b37d6a2dbb..8e55983c1dd5ac7ea4395aea3b7a8c52b09c7d03 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java @@ -23,21 +23,21 @@ */ package de.ozgcloud.eingang.semantik.enginebased.afm; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormDataUtils; import de.ozgcloud.eingang.common.formdata.FormHeader; import de.ozgcloud.eingang.common.formdata.ServiceKonto; import de.ozgcloud.eingang.semantik.enginebased.ServiceKontoBuildHelper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Map; +import java.util.Optional; @Component +@RequiredArgsConstructor class AfmHeaderMapper implements AfmEngineBasedMapper { static final String AFM_FORMENGINE_NAME = "AFM"; @@ -52,8 +52,7 @@ class AfmHeaderMapper implements AfmEngineBasedMapper { static final String FORM = "t:form"; static final String SENDER = "t:sender"; - @Autowired - private ServiceKontoBuildHelper serviceKontoBuildHelper; + private final ServiceKontoBuildHelper serviceKontoBuildHelper; @Override public FormData parseFormData(FormData formData) { @@ -85,7 +84,7 @@ class AfmHeaderMapper implements AfmEngineBasedMapper { Optional<ServiceKonto> createBayernIdServiceKonto(FormData formData) { var postfachId1 = getPostfachId(formData); - return postfachId1.map(postfachId -> serviceKontoBuildHelper.buildBayernIdServiceKonto(postfachId)); + return postfachId1.map(serviceKontoBuildHelper::buildBayernIdServiceKonto); } Optional<String> getPostfachId(FormData formData) { diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmZustaendigeStelleMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmZustaendigeStelleMapper.java index 1e057c6e81f5c937a429d8050c2c8996742026c9..9cbca92ba867286c544ce762119201542b7c6d90 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmZustaendigeStelleMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmZustaendigeStelleMapper.java @@ -29,13 +29,13 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; @Component +@RequiredArgsConstructor class AfmZustaendigeStelleMapper implements AfmEngineBasedMapper { public static final String ZUSTAENDIGESTELLE = "zustaendigestelle"; @@ -44,8 +44,7 @@ class AfmZustaendigeStelleMapper implements AfmEngineBasedMapper { public static final String ORGANISATIONSEINHEITEN_ID = "OrganisationseinheitenID"; public static final String TAG_BEZEICHNUNG = "OrganisationseinheitenBEZEICHNUNG"; - @Autowired - private ZustaendigeStelleMetadataMapper zustaendigeStelleMetadataMapper; + private final ZustaendigeStelleMetadataMapper zustaendigeStelleMetadataMapper; @Override public FormData parseFormData(FormData formData) { diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/intelliform/JsonService.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/intelliform/JsonService.java index 04d21f1a271da454917f3a580727e31bc3baac98..28f4773dc71c7f08ccba19c80350149398fea7cf 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/intelliform/JsonService.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/intelliform/JsonService.java @@ -3,23 +3,21 @@ package de.ozgcloud.eingang.semantik.enginebased.afm.intelliform; import java.util.List; import java.util.Map; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; - import de.ozgcloud.common.errorhandling.TechnicalException; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; @Component +@RequiredArgsConstructor class JsonService { static final TypeReference<List<Map<String, Object>>> VALUE_TYPE_REF = new TypeReference<List<Map<String, Object>>>() { }; - @Autowired - private ObjectMapper objectMapper; + private final ObjectMapper objectMapper; public List<Map<String, Object>> readAsListMap(String json) { return readValueSafety(json, VALUE_TYPE_REF); diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java index bdefe9c7370a826853ad6ba29f40597d3b4ebed8..09024a1f5dee52719697d5fc6d7a425548339bef 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/dfoerdermittel/DFoerdermittelEngineBasedSemantikAdapter.java @@ -11,7 +11,6 @@ import java.util.function.Predicate; import org.apache.commons.collections4.MapUtils; 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; diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xdomea/XdomeaMessageData.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xdomea/XdomeaMessageData.java index 3e5cfeda7f610bf12e879013d6f9afdbc2ded8b1..432b06c5273798eb5bf67ff0666dea40211c69ad 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xdomea/XdomeaMessageData.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xdomea/XdomeaMessageData.java @@ -9,7 +9,7 @@ import lombok.Singular; @Builder public record XdomeaMessageData( - IncomingFile primaryDocument, + IncomingFile metadataFile, List<IncomingFile> representations, @Singular List<IncomingFileGroup> attachments diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataMapper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataMapper.java index d0aa8ba08fe11a158217929a55198ecb4cb993b2..9f9f2f93c60d21fe2faa903601e1db37dd4206d4 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataMapper.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataMapper.java @@ -31,7 +31,7 @@ public class XdomeaMessageDataMapper { var fileNameToFileMap = incomingFileList.stream() .collect(Collectors.toMap(IncomingFile::getName, file -> file)); return XdomeaMessageData.builder() - .primaryDocument(xdomeaXMLFile) + .metadataFile(xdomeaXMLFile) // Representations are incoming files which are referenced in the xdomea-xml in 'Dateiname' elements .representations(getFilesByName( movePrimaryRepresentationFileNameToFirstPosition(representationFileNames), diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java index fdab0a006dd0ce2e2c84d10fe9cf21a4729b5e32..79cfdc3eefff7301f9f4daff34e7603f861710e6 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java @@ -1,18 +1,18 @@ package de.ozgcloud.eingang.xta; -import de.ozgcloud.eingang.common.formdata.IncomingFile; +import java.util.List; +import java.util.stream.Stream; + import org.mapstruct.Context; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormHeader; +import de.ozgcloud.eingang.common.formdata.IncomingFile; import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier; import de.ozgcloud.eingang.xdomea.XdomeaMessageData; -import java.util.List; -import java.util.stream.Stream; - @Mapper interface XtaMessageMapper { int VORGANG_NUMMER_SUFFIX_LENGTH = 4; @@ -22,14 +22,16 @@ interface XtaMessageMapper { @Mapping(target = "id", ignore = true) @Mapping(target = "zustaendigeStelle", ignore = true) @Mapping(target = "header", source = "metaData") - @Mapping(target="representations", source="xdomeaMessageData") + @Mapping(target = "representations", source = "xdomeaMessageData") + @Mapping(target = "representation", ignore = true) + @Mapping(target = "attachment", ignore = true) FormData toFormData(XdomeaMessageData xdomeaMessageData, XtaMessageMetaData metaData, @Context VorgangNummerSupplier vorgangNummerSupplier); default List<IncomingFile> getRepresentations(XdomeaMessageData xdomeaMessageData) { return Stream.concat( - Stream.of(xdomeaMessageData.primaryDocument()), - xdomeaMessageData.representations().stream() - ).toList(); + Stream.of(xdomeaMessageData.metadataFile()), + xdomeaMessageData.representations().stream() + ).toList(); } @Mapping(target = "formId", source = "messageType") 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 b2fd5099cfbfdb0a8eaa1f9f93938e429915a467..b061b1590bae4d357d79eec4f5eea866b314ae34 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 @@ -125,12 +125,12 @@ class XdomeaMessageDataMapperTest { doReturn(REPR_XML_NAME).when(fileClassifier).findPrimaryRepresentationName(representationFileNames); } - @DisplayName("should contain primary document (xdomea)") + @DisplayName("should contain xdomea metadata file") @Test - void shouldContainPrimaryDocument() { + void shouldContainXdomeaMetadataFile() { var classification = doClassify(); - var primaryDocument = classification.primaryDocument(); + var primaryDocument = classification.metadataFile(); assertThat(primaryDocument.getName()).isEqualTo(XDOMEA_XML_NAME); } diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataTestFactory.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataTestFactory.java index ccdf9d4c483b832179dd058b131bb119870310e8..90a659b8ddddb9cbef12e8c54da9f33ee213ab74 100644 --- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataTestFactory.java +++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xdomea/XdomeaMessageDataTestFactory.java @@ -12,7 +12,7 @@ public class XdomeaMessageDataTestFactory { public static XdomeaMessageData.XdomeaMessageDataBuilder createBuilder() { return XdomeaMessageData.builder() - .primaryDocument(IncomingFileTestFactory.createBuilder().name("xdomea-primary-document.xml").build()) + .metadataFile(IncomingFileTestFactory.createBuilder().name("xdomea-primary-document.xml").build()) .representations(List.of(IncomingFileTestFactory.create())) .attachment(IncomingFileGroup.builder().file(IncomingFileTestFactory.create()).build()); } diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java index 24e74909691fc022a0a862b447368ed90325e57e..52eb46a971f9c52dd4c6289b44812a9e464695e9 100644 --- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java +++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java @@ -43,7 +43,7 @@ class XtaMessageMapperTest { void shouldMapRepresentations() { var formData = doMapping(); - assertThat(formData.getRepresentations()).containsExactly(xdomeaMessageData.primaryDocument(), xdomeaMessageData.representations().getFirst()); + assertThat(formData.getRepresentations()).containsExactly(xdomeaMessageData.metadataFile(), xdomeaMessageData.representations().getFirst()); } @Test