From f3e793a8312f651195082d5a7c9540c5498b1503 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 22 Oct 2024 14:42:00 +0200
Subject: [PATCH] OZG-6710 add custom bean names

---
 lombok.config                                  |  3 ++-
 .../ProcessorManagerConfiguration.java         | 18 ++++++++++++++++--
 .../processor/ProcessorConfiguration.java      |  3 +++
 .../processor/ProcessorEventListener.java      | 10 +++++++++-
 .../processor/ProcessorProperties.java         |  3 ++-
 .../processor/processor/ProcessorService.java  |  5 ++++-
 .../processor/processor/ProxyProperties.java   |  3 ++-
 .../processor/result/AktennotizFactory.java    |  3 ++-
 .../processor/result/ResultService.java        |  5 ++++-
 .../vorgang/ProcessorVorgangMapper.java        |  4 ++++
 .../processor/vorgang/VorgangService.java      | 16 +++++++++-------
 11 files changed, 57 insertions(+), 16 deletions(-)

diff --git a/lombok.config b/lombok.config
index d07dd9b..a06fa13 100644
--- a/lombok.config
+++ b/lombok.config
@@ -27,4 +27,5 @@ lombok.log.slf4j.flagUsage = ERROR
 lombok.log.log4j.flagUsage = ERROR
 lombok.data.flagUsage = ERROR
 lombok.nonNull.exceptionType = IllegalArgumentException
-lombok.addLombokGeneratedAnnotation = true
\ No newline at end of file
+lombok.addLombokGeneratedAnnotation = true
+lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier
\ No newline at end of file
diff --git a/src/main/java/de/ozgcloud/processor/ProcessorManagerConfiguration.java b/src/main/java/de/ozgcloud/processor/ProcessorManagerConfiguration.java
index 769ede6..c9dea15 100644
--- a/src/main/java/de/ozgcloud/processor/ProcessorManagerConfiguration.java
+++ b/src/main/java/de/ozgcloud/processor/ProcessorManagerConfiguration.java
@@ -38,11 +38,25 @@ import net.devh.boot.grpc.client.inject.GrpcClient;
 @Configuration
 public class ProcessorManagerConfiguration {
 
-	@GrpcClient("vorgang-manager")
+	public static final String PROCESSOR_EVENT_LISTENER_NAME = "processorManager_ProcessorEventListener";
+	public static final String PROCESSOR_PROPERTIES_NAME = "processorManager_ProcessorProperties";
+	public static final String PROXY_PROPERTIES_NAME = "processorManager_ProxyProperties";
+	public static final String AKTENNOTIZ_FACTORY_NAME = "processorManager_AktennotizFactory";
+	public static final String VORGANG_MAPPER_NAME = "processorManager_VorgangMapper";
+
+	public static final String VORGANG_SERVICE_NAME = "processorManager_VorgangService";
+	public static final String PROCESSOR_SERVICE_NAME = "processorManager_ProcessorService";
+	public static final String RESULT_SERVICE_NAME = "processorManager_ResultService";
+
+	public static final String OZGCLOUD_VORGANG_SERVICE_NAME = "processorManager_OzgCloudVorgangService";
+
+	public static final String GRPC_VORGANG_SERVICE_ADDRESS = "vorgang-manager";
+
+	@GrpcClient(GRPC_VORGANG_SERVICE_ADDRESS)
 	private VorgangServiceGrpc.VorgangServiceBlockingStub vorgangServiceStub;
 
 	@ConditionalOnProperty(prefix = "ozgcloud.processors[0]", name = "address")
-	@Bean("processorManager_OzgCloudCommandService")
+	@Bean(OZGCLOUD_VORGANG_SERVICE_NAME) // NOSONAR
 	OzgCloudVorgangService grpcOzgCloudCommandService(OzgCloudVorgangMapper vorgangMapper, OzgCloudVorgangStubMapper vorgangStubMapper,
 			OzgCloudVorgangQueryMapper vorgangQueryMapper, ProzessorManagerCallContextProvider contextProvider) {
 		return new GrpcOzgCloudVorgangService(vorgangServiceStub, vorgangMapper, vorgangStubMapper, vorgangQueryMapper, contextProvider);
diff --git a/src/main/java/de/ozgcloud/processor/processor/ProcessorConfiguration.java b/src/main/java/de/ozgcloud/processor/processor/ProcessorConfiguration.java
index a4528d0..7d4cbff 100644
--- a/src/main/java/de/ozgcloud/processor/processor/ProcessorConfiguration.java
+++ b/src/main/java/de/ozgcloud/processor/processor/ProcessorConfiguration.java
@@ -5,18 +5,21 @@ import java.net.ProxySelector;
 import java.net.http.HttpClient;
 import java.util.Optional;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.client.reactive.ClientHttpConnector;
 import org.springframework.http.client.reactive.JdkClientHttpConnector;
 import org.springframework.web.reactive.function.client.WebClient;
 
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 import lombok.RequiredArgsConstructor;
 
 @Configuration
 @RequiredArgsConstructor
 class ProcessorConfiguration {
 
+	@Qualifier(ProcessorManagerConfiguration.PROXY_PROPERTIES_NAME) // NOSONAR
 	private final Optional<ProxyProperties> proxyProperties;
 
 	@Bean
diff --git a/src/main/java/de/ozgcloud/processor/processor/ProcessorEventListener.java b/src/main/java/de/ozgcloud/processor/processor/ProcessorEventListener.java
index 5955c5f..be8623a 100644
--- a/src/main/java/de/ozgcloud/processor/processor/ProcessorEventListener.java
+++ b/src/main/java/de/ozgcloud/processor/processor/ProcessorEventListener.java
@@ -6,6 +6,7 @@ import java.util.function.Predicate;
 
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.context.event.EventListener;
@@ -15,6 +16,7 @@ import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandCreatedEvent;
 import de.ozgcloud.command.CommandFailedEvent;
 import de.ozgcloud.command.VorgangCreatedEvent;
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 import de.ozgcloud.processor.result.ResultService;
 import de.ozgcloud.processor.vorgang.Vorgang;
 import de.ozgcloud.processor.vorgang.VorgangId;
@@ -23,15 +25,21 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.log4j.Log4j2;
 import reactor.core.publisher.Mono;
 
-@Component("processorVorgangEventListener")
+@Component(ProcessorManagerConfiguration.PROCESSOR_EVENT_LISTENER_NAME) // NOSONAR
 @ConditionalOnProperty(prefix = "ozgcloud.processors[0]", name = "address")
 @RequiredArgsConstructor
 @Log4j2
 class ProcessorEventListener {
 
+	@Qualifier(ProcessorManagerConfiguration.VORGANG_SERVICE_NAME) // NOSONAR
 	private final VorgangService service;
+
+	@Qualifier(ProcessorManagerConfiguration.PROCESSOR_SERVICE_NAME) // NOSONAR
 	private final ProcessorService processorService;
+
+	@Qualifier(ProcessorManagerConfiguration.RESULT_SERVICE_NAME) // NOSONAR
 	private final ResultService resultService;
+
 	private final ApplicationEventPublisher publisher;
 
 	static final String PROCESS_VORGANG_ORDER = "PROCESS_VORGANG";
diff --git a/src/main/java/de/ozgcloud/processor/processor/ProcessorProperties.java b/src/main/java/de/ozgcloud/processor/processor/ProcessorProperties.java
index ae22239..9b345b3 100644
--- a/src/main/java/de/ozgcloud/processor/processor/ProcessorProperties.java
+++ b/src/main/java/de/ozgcloud/processor/processor/ProcessorProperties.java
@@ -9,6 +9,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.validation.annotation.Validated;
 
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
@@ -20,7 +21,7 @@ import lombok.ToString;
 @ToString
 @Getter
 @Setter
-@Configuration
+@Configuration(ProcessorManagerConfiguration.PROCESSOR_PROPERTIES_NAME) // NOSONAR
 @ConfigurationProperties(prefix = "ozgcloud")
 @Validated
 @Builder
diff --git a/src/main/java/de/ozgcloud/processor/processor/ProcessorService.java b/src/main/java/de/ozgcloud/processor/processor/ProcessorService.java
index 42f2a02..cf766ab 100644
--- a/src/main/java/de/ozgcloud/processor/processor/ProcessorService.java
+++ b/src/main/java/de/ozgcloud/processor/processor/ProcessorService.java
@@ -6,6 +6,7 @@ import java.util.Optional;
 import java.util.stream.Stream;
 
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpStatusCode;
@@ -17,6 +18,7 @@ import org.springframework.web.reactive.function.client.ClientResponse;
 import org.springframework.web.reactive.function.client.WebClient;
 
 import de.ozgcloud.common.errorhandling.TechnicalException;
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 import de.ozgcloud.processor.processor.ProcessorProperties.Form;
 import de.ozgcloud.processor.processor.ProcessorProperties.Processor;
 import de.ozgcloud.processor.result.ProcessorTechnicalException;
@@ -26,13 +28,14 @@ import lombok.extern.log4j.Log4j2;
 import reactor.core.publisher.Mono;
 
 @ConditionalOnProperty(prefix = "ozgcloud.processors[0]", name = "address")
-@Service
+@Service(ProcessorManagerConfiguration.PROCESSOR_SERVICE_NAME) // NOSONAR
 @RequiredArgsConstructor
 @Log4j2
 public class ProcessorService {
 
 	private static final String KEY_VORGANG = "vorgang";
 
+	@Qualifier(ProcessorManagerConfiguration.PROCESSOR_PROPERTIES_NAME) // NOSONAR
 	private final ProcessorProperties properties;
 
 	private final WebClient webClient;
diff --git a/src/main/java/de/ozgcloud/processor/processor/ProxyProperties.java b/src/main/java/de/ozgcloud/processor/processor/ProxyProperties.java
index 5ea0a78..014e9ce 100644
--- a/src/main/java/de/ozgcloud/processor/processor/ProxyProperties.java
+++ b/src/main/java/de/ozgcloud/processor/processor/ProxyProperties.java
@@ -8,6 +8,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.validation.annotation.Validated;
 
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
@@ -15,7 +16,7 @@ import lombok.NoArgsConstructor;
 import lombok.Setter;
 import lombok.ToString;
 
-@Configuration
+@Configuration(ProcessorManagerConfiguration.PROXY_PROPERTIES_NAME) // NOSONAR
 @ConditionalOnProperty(prefix = "ozgcloud.http-proxy", name = { "host", "port" })
 @ConfigurationProperties(prefix = "ozgcloud.http-proxy")
 @Validated
diff --git a/src/main/java/de/ozgcloud/processor/result/AktennotizFactory.java b/src/main/java/de/ozgcloud/processor/result/AktennotizFactory.java
index ec61ada..9f48112 100644
--- a/src/main/java/de/ozgcloud/processor/result/AktennotizFactory.java
+++ b/src/main/java/de/ozgcloud/processor/result/AktennotizFactory.java
@@ -2,9 +2,10 @@ package de.ozgcloud.processor.result;
 
 import org.springframework.stereotype.Component;
 
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 import de.ozgcloud.processor.processor.ProcessorResult;
 
-@Component
+@Component(ProcessorManagerConfiguration.AKTENNOTIZ_FACTORY_NAME) // NOSONAR
 public class AktennotizFactory {
 
 	static final String AKTENNOTIZ_ERROR_TEXT = """
diff --git a/src/main/java/de/ozgcloud/processor/result/ResultService.java b/src/main/java/de/ozgcloud/processor/result/ResultService.java
index 507c3e4..a462884 100644
--- a/src/main/java/de/ozgcloud/processor/result/ResultService.java
+++ b/src/main/java/de/ozgcloud/processor/result/ResultService.java
@@ -2,21 +2,24 @@ package de.ozgcloud.processor.result;
 
 import jakarta.validation.Valid;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import de.ozgcloud.apilib.alfa.AlfaService;
 import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 import de.ozgcloud.processor.processor.ProcessorResult;
 import lombok.RequiredArgsConstructor;
 
-@Service
+@Service(ProcessorManagerConfiguration.RESULT_SERVICE_NAME) // NOSONAR
 @RequiredArgsConstructor
 @Validated
 public class ResultService {
 
 	private final AlfaService alfaService;
 	private final OzgCloudVorgangIdMapper vorgangIdMapper;
+	@Qualifier(ProcessorManagerConfiguration.AKTENNOTIZ_FACTORY_NAME) // NOSONAR
 	private final AktennotizFactory aktennotizFactory;
 
 	public void processResult(@Valid ProcessorResult result) {
diff --git a/src/main/java/de/ozgcloud/processor/vorgang/ProcessorVorgangMapper.java b/src/main/java/de/ozgcloud/processor/vorgang/ProcessorVorgangMapper.java
index 5c7c912..4b640f0 100644
--- a/src/main/java/de/ozgcloud/processor/vorgang/ProcessorVorgangMapper.java
+++ b/src/main/java/de/ozgcloud/processor/vorgang/ProcessorVorgangMapper.java
@@ -4,9 +4,11 @@ import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.mapstruct.AnnotateWith;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.Named;
+import org.springframework.stereotype.Component;
 
 import de.ozgcloud.apilib.file.OzgCloudFileGroup;
 import de.ozgcloud.apilib.file.OzgCloudFileId;
@@ -19,8 +21,10 @@ import de.ozgcloud.apilib.vorgang.OzgCloudSubForm;
 import de.ozgcloud.apilib.vorgang.OzgCloudVorgang;
 import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
 import de.ozgcloud.common.binaryfile.FileId;
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 
 @Mapper
+@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ProcessorManagerConfiguration.VORGANG_MAPPER_NAME))
 public interface ProcessorVorgangMapper {
 
 	@Mapping(target = "eingang", qualifiedByName = "mapEingang", source = "eingangs")
diff --git a/src/main/java/de/ozgcloud/processor/vorgang/VorgangService.java b/src/main/java/de/ozgcloud/processor/vorgang/VorgangService.java
index dca2e61..ad3823a 100644
--- a/src/main/java/de/ozgcloud/processor/vorgang/VorgangService.java
+++ b/src/main/java/de/ozgcloud/processor/vorgang/VorgangService.java
@@ -1,23 +1,25 @@
 package de.ozgcloud.processor.vorgang;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
 import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService;
+import de.ozgcloud.processor.ProcessorManagerConfiguration;
 import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
 
 @ConditionalOnProperty(prefix = "ozgcloud.processors[0]", name = "address")
-@Service("processorVorgangService")
+@Service(ProcessorManagerConfiguration.VORGANG_SERVICE_NAME) // NOSONAR
+@RequiredArgsConstructor
 public class VorgangService {
 
-	@Autowired
-	@Qualifier("processorManager_OzgCloudCommandService")
-	private OzgCloudVorgangService ozgCloudService;
-	@Autowired
-	private ProcessorVorgangMapper mapper;
+	@Qualifier(ProcessorManagerConfiguration.OZGCLOUD_VORGANG_SERVICE_NAME) // NOSONAR
+	private final OzgCloudVorgangService ozgCloudService;
+
+	@Qualifier(ProcessorManagerConfiguration.VORGANG_MAPPER_NAME) // NOSONAR
+	private final ProcessorVorgangMapper mapper;
 
 	public Vorgang getVorgang(@NonNull VorgangId id) {
 		var loaded = ozgCloudService.getById(OzgCloudVorgangId.from(id.toString()));
-- 
GitLab