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