From f163cf26d01741ddef56dc687e40c5c1e7bc31f1 Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Tue, 18 Mar 2025 11:17:24 +0100
Subject: [PATCH] replace field injection with constructor injection

---
 .../de/ozgcloud/eingang/xta/XtaRunner.java    |  9 ++++----
 .../de/ozgcloud/eingang/xta/XtaService.java   | 23 ++++++++-----------
 ...esentationsAttachmentsPairTestFactory.java |  4 ++--
 .../de/ozgcloud/eingang/xta/XtaITCase.java    | 19 ++++++++-------
 4 files changed, 27 insertions(+), 28 deletions(-)

diff --git a/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java b/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
index 8601abbe..1cc22ae3 100644
--- a/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
+++ b/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
@@ -23,7 +23,8 @@
  */
 package de.ozgcloud.eingang.xta;
 
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
 import org.springframework.context.ApplicationListener;
 import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.stereotype.Component;
@@ -34,13 +35,13 @@ import de.ozgcloud.xta.client.exception.XtaClientException;
 
 @Log4j2
 @Component
+@RequiredArgsConstructor
 class XtaRunner implements ApplicationListener<ContextRefreshedEvent> {
 
-	@Autowired
-	private XtaService service;
+	private final XtaService service;
 
 	@Override
-	public void onApplicationEvent(ContextRefreshedEvent event) {
+	public void onApplicationEvent(@NonNull ContextRefreshedEvent event) {
 		LOG.info("Fetching XTA Messages");
 		runGetXtaMessages();
 	}
diff --git a/src/main/java/de/ozgcloud/eingang/xta/XtaService.java b/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
index d3cf1e2b..db1eeac9 100644
--- a/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
+++ b/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
@@ -30,10 +30,10 @@ import java.util.Optional;
 import java.util.function.Consumer;
 
 import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.eingang.common.errorhandling.TechnicalException;
@@ -54,6 +54,7 @@ import de.ozgcloud.xta.client.model.XtaTransportReport;
 
 @Service
 @Log4j2
+@RequiredArgsConstructor
 class XtaService {
 
 	static final String XDOMEA_0201_MESSAGE_TYPE = "Geschaeftsgang.Geschaeftsgang.0201";
@@ -62,19 +63,13 @@ class XtaService {
 
 	final Consumer<XtaMessage> messageProcessor = this::processMessage;
 
-	@Autowired
-	private XtaClient xtaClient;
-	@Autowired
-	private SemantikAdapter semantikAdapter;
-
-	@Autowired
-	private XtaMessageMapper mapper;
-	@Autowired
-	private VorgangNummerSupplier vorgangNummerSupplier;
-	@Autowired
-	private XdomeaMessageDataMapper xdomeaMessageDataMapper;
-	@Autowired
-	private XtaIncomingFilesMapper xtaIncomingFilesMapper;
+	private final XtaClient xtaClient;
+	private final SemantikAdapter semantikAdapter;
+
+	private final XtaMessageMapper mapper;
+	private final VorgangNummerSupplier vorgangNummerSupplier;
+	private final XdomeaMessageDataMapper xdomeaMessageDataMapper;
+	private final XtaIncomingFilesMapper xtaIncomingFilesMapper;
 
 
 	public void fetchMessages() throws XtaClientException {
diff --git a/src/test/java/de/ozgcloud/eingang/xta/RepresentationsAttachmentsPairTestFactory.java b/src/test/java/de/ozgcloud/eingang/xta/RepresentationsAttachmentsPairTestFactory.java
index e88a8b47..8c08c71d 100644
--- a/src/test/java/de/ozgcloud/eingang/xta/RepresentationsAttachmentsPairTestFactory.java
+++ b/src/test/java/de/ozgcloud/eingang/xta/RepresentationsAttachmentsPairTestFactory.java
@@ -31,12 +31,12 @@ import de.ozgcloud.eingang.common.formdata.IncomingFileGroupTestFactory;
 import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
 
 public class RepresentationsAttachmentsPairTestFactory {
-	static List<IncomingFile> PAIR_REPRESENTATIONS = List.of(
+	static final List<IncomingFile> PAIR_REPRESENTATIONS = List.of(
 			IncomingFileTestFactory.createBuilder().name("representation1.xml").build(),
 			IncomingFileTestFactory.createBuilder().name("representation1.pdf").build()
 	);
 
-	static List<IncomingFileGroup> PAIR_ATTACHMENTS = List.of(
+	static final List<IncomingFileGroup> PAIR_ATTACHMENTS = List.of(
 			IncomingFileGroupTestFactory.create(),
 			IncomingFileGroupTestFactory.create(),
 			IncomingFileGroupTestFactory.create()
diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java b/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
index 446fa54f..50b61961 100644
--- a/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
+++ b/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
@@ -23,10 +23,6 @@
  */
 package de.ozgcloud.eingang.xta;
 
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -34,6 +30,8 @@ import java.lang.annotation.Target;
 import java.util.List;
 import java.util.function.Consumer;
 
+import io.grpc.Channel;
+import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -48,6 +46,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Bean;
 import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
+import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
 
 import de.ozgcloud.eingang.Application;
 import de.ozgcloud.eingang.common.formdata.FormData;
@@ -60,9 +60,9 @@ import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub
 import de.ozgcloud.xta.client.XtaClient;
 import de.ozgcloud.xta.client.model.XtaMessage;
 
-import io.grpc.Channel;
-import org.springframework.test.context.bean.override.mockito.MockitoBean;
-import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
 
 @SpringBootTest(classes = {
 		Application.class,
@@ -346,10 +346,13 @@ class XtaITCase {
 	@interface TestZipFileNames {
 	}
 
+	@RequiredArgsConstructor
 	static class ActivateXTARunnerConfig {
+		private final XtaService xtaService;
+
 		@Bean
 		XtaRunner xtaRunner() {
-			return new XtaRunner();
+			return new XtaRunner(xtaService);
 		}
 	}
 }
-- 
GitLab