diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/ArchiveManagerConfiguration.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/ArchiveManagerConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..debcdff08821b4ca35010f590e12d415fffbf677 --- /dev/null +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/ArchiveManagerConfiguration.java @@ -0,0 +1,29 @@ +package de.ozgcloud.archive; + +import org.springframework.context.annotation.Configuration; + +@Configuration +public class ArchiveManagerConfiguration { //NOSONAR + + public static final String VORGANG_REMOTE_MANAGER_SERVICE_NAME = "archive_VorgangRemoteService"; + public static final String VORGANG_WITH_EINGANG_MAPPER_NAME = "archive_VorgangWithEingangMapper"; + + public static final String DOCUMENT_MAPPER_NAME = "archive_DocumentMapper"; + + public static final String USER_SERVICE_NAME = "archive_UserService"; + public static final String USER_PROFILE_MAPPER_NAME = "archive_UserProfileMapper"; + public static final String OZGCLOUD_USER_PROFILE_SERVICE_NAME = "archive_OzgCloudUserProfileService"; + + public static final String COMMAND_SERVICE_NAME = "archive_CommandService"; + public static final String COMMAND_REMOTE_SERVICE_NAME = "archive_CommandRemoteService"; + public static final String COMMAND_MAPPER_NAME = "archive_CommandMapper"; + + public static final String BINARY_FILE_SERVICE_NAME = "archive_BinaryFileService"; + public static final String BINARY_FILE_REMOTE_SERVICE_NAME = "archive_BinaryFileRemoteService"; + + public static final String FILE_ID_MAPPER_NAME = "archive_FileIdMapper"; + + public static final String BESCHEID_REMOTE_SERVICE_NAME = "archive_BescheidRemoteService"; + public static final String BESCHEID_MAPPER_NAME = "archive_BescheidMapper"; + +} diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/OzgcloudConfiguration.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/OzgcloudConfiguration.java index f8f8911259c6ca417b17249c3846215d6f441645..b5210709ed4f0ef25009246f8bcacd0fa4c3d41b 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/OzgcloudConfiguration.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/OzgcloudConfiguration.java @@ -1,6 +1,5 @@ package de.ozgcloud.archive; -import org.mapstruct.factory.Mappers; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -11,13 +10,10 @@ import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider; import de.ozgcloud.apilib.file.grpc.GrpcOzgCloudFileService; import de.ozgcloud.apilib.file.grpc.OzgCloudFileMapper; import de.ozgcloud.apilib.user.GrpcOzgCloudUserProfileService; +import de.ozgcloud.apilib.user.OzgCloudUserProfileService; import de.ozgcloud.apilib.user.UserProfileMapper; -import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper; -import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService; -import de.ozgcloud.apilib.vorgang.grpc.GrpcOzgCloudVorgangService; -import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangMapper; -import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper; import de.ozgcloud.archive.common.GrpcUtil; +import de.ozgcloud.archive.common.callcontext.CallContextProvider; import de.ozgcloud.user.grpc.userprofile.UserProfileServiceGrpc.UserProfileServiceBlockingStub; import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServiceBlockingStub; import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServiceStub; @@ -45,48 +41,14 @@ class OzgcloudConfiguration { return new DefaultOzgCloudCallContextProvider(ctxt); } - OzgCloudVorgangService grpcOzgCloudVorgangService(OzgCloudVorgangMapper mapper, OzgCloudVorgangStubMapper stubMapper, - OzgCloudCallContextProvider contextProvider) { - - return new GrpcOzgCloudVorgangService(vorgangServiceStub, mapper, stubMapper, contextProvider); - } - - @Bean - OzgCloudVorgangMapper ozgCloudVorgangMapper() { - return Mappers.getMapper(OzgCloudVorgangMapper.class); - } - - @Bean - OzgCloudVorgangStubMapper ozgCloudVorgangStubMapper() { - return Mappers.getMapper(OzgCloudVorgangStubMapper.class); - } - - @Bean - OzgCloudVorgangIdMapper ozgCloudVorgangIdMapper() { - return Mappers.getMapper(OzgCloudVorgangIdMapper.class); - } - - @Bean - UserProfileMapper ozgCloudUserProfileMapper() { - return Mappers.getMapper(UserProfileMapper.class); - } - - @Bean - OzgCloudFileMapper fileMapper() { - return Mappers.getMapper(OzgCloudFileMapper.class); - } - @Bean GrpcOzgCloudFileService grpcOzgCloudFileService(OzgCloudCallContextProvider contextProvider, OzgCloudFileMapper mapper) { return new GrpcOzgCloudFileService(binaryFileServiceBlockingStub, binaryFileServiceStub, contextProvider, mapper); } - @Bean - GrpcOzgCloudUserProfileService grpcOzgCloudUserProfileService(OzgCloudCallContextProvider ozgCloudCallContextProvider, - UserProfileMapper userProfileMapper) { - return new GrpcOzgCloudUserProfileService(userProfileServiceBlockingStub, - userProfileMapper, ozgCloudCallContextProvider); + @Bean(ArchiveManagerConfiguration.OZGCLOUD_USER_PROFILE_SERVICE_NAME) // NOSONAR + OzgCloudUserProfileService grpcOzgCloudUserProfileService(CallContextProvider ozgCloudCallContextProvider, UserProfileMapper userProfileMapper) { + return new GrpcOzgCloudUserProfileService(userProfileServiceBlockingStub, userProfileMapper, ozgCloudCallContextProvider); } - } diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidMapper.java index 60b5fc34a1b8b3009c3dc6c46389366be6e041a5..8c5e1b98f1010cd47664cbb407be3f8a36fe7ec1 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidMapper.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidMapper.java @@ -2,18 +2,22 @@ package de.ozgcloud.archive.bescheid; import java.util.List; +import org.mapstruct.AnnotateWith; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.NullValueCheckStrategy; import org.mapstruct.ReportingPolicy; +import org.springframework.stereotype.Component; import com.google.protobuf.ProtocolStringList; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.binaryfile.FileIdMapper; import de.ozgcloud.bescheid.GrpcBescheid; import de.ozgcloud.common.binaryfile.FileId; @Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, uses = { FileIdMapper.class }) +@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.BESCHEID_MAPPER_NAME)) interface BescheidMapper { @Mapping(target = "attachments", source = "grpcBescheid.attachmentsList") diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidRemoteService.java index 836d5ed419e05fa98772b33c20e5f3878f7e3e77..30440017204f2c57bf27bc6e3a79c1e49083be99 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidRemoteService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/BescheidRemoteService.java @@ -3,19 +3,23 @@ package de.ozgcloud.archive.bescheid; import java.util.stream.Stream; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.GrpcUtil; import de.ozgcloud.bescheid.BescheidServiceGrpc.BescheidServiceBlockingStub; import de.ozgcloud.bescheid.GrpcGetAllBescheidRequest; import net.devh.boot.grpc.client.inject.GrpcClient; -@Service +@Service(ArchiveManagerConfiguration.BESCHEID_REMOTE_SERVICE_NAME) // NOSONAR class BescheidRemoteService { @GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT) private BescheidServiceBlockingStub grpcService; + @Autowired + @Qualifier(ArchiveManagerConfiguration.BESCHEID_MAPPER_NAME) // NOSONAR private BescheidMapper bescheidMapper; public Stream<Bescheid> findByVorgangId(String vorgangId) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentMapper.java index e48cefc627605e509da11ecfe694c6a1c5dbea2f..f156089e90ec8c830d052a826afb5af92539d244 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentMapper.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentMapper.java @@ -1,13 +1,17 @@ package de.ozgcloud.archive.bescheid; +import org.mapstruct.AnnotateWith; import org.mapstruct.Mapper; import org.mapstruct.NullValueCheckStrategy; import org.mapstruct.ReportingPolicy; +import org.springframework.stereotype.Component; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.common.binaryfile.FileId; import de.ozgcloud.document.GrpcDocument; @Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) +@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.DOCUMENT_MAPPER_NAME)) interface DocumentMapper { default FileId fromGrpc(GrpcDocument grpcDocument) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentRemoteService.java index 972e0547dd82f0f5f97aff1eff06c1f801638c86..77e62802086c1d86facff5292dac322567e0df5f 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentRemoteService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/DocumentRemoteService.java @@ -1,8 +1,10 @@ package de.ozgcloud.archive.bescheid; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.GrpcUtil; import de.ozgcloud.common.binaryfile.FileId; import de.ozgcloud.document.DocumentServiceGrpc.DocumentServiceBlockingStub; @@ -15,6 +17,7 @@ class DocumentRemoteService { @GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT) private DocumentServiceBlockingStub grpcService; @Autowired + @Qualifier(ArchiveManagerConfiguration.DOCUMENT_MAPPER_NAME) // NOSONAR private DocumentMapper documentMapper; public FileId getDocument(String documentId) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java index b6cf60259b07f3d794ec03cee91c01d487424b7b..7fe61a04059da950ac3cd7950cc0f8854ed4dc3b 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java @@ -2,8 +2,10 @@ package de.ozgcloud.archive.bescheid; import java.util.stream.Stream; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.binaryfile.BinaryFileService; import de.ozgcloud.archive.common.user.UserService; import de.ozgcloud.archive.file.OzgFile; @@ -15,9 +17,15 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class ExportBescheidService { + @Qualifier(ArchiveManagerConfiguration.BESCHEID_REMOTE_SERVICE_NAME) // NOSONAR private final BescheidRemoteService bescheidRemoteService; + + @Qualifier(ArchiveManagerConfiguration.BINARY_FILE_SERVICE_NAME) // NOSONAR private final BinaryFileService binaryFileService; + private final DocumentRemoteService documentRemoteService; + + @Qualifier(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR private final UserService userService; public BescheidExportData createExportData(VorgangWithEingang vorgang) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileRemoteService.java index e6452d7f0beb113bcc137754346944bc3b06f1b9..11c53d93fe3bf9a89c6feea096ca523edf2e6621 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileRemoteService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileRemoteService.java @@ -5,9 +5,11 @@ import java.util.List; import java.util.stream.Stream; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import de.ozgcloud.apilib.file.grpc.GrpcOzgCloudFileService; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.GrpcUtil; import de.ozgcloud.archive.file.OzgFile; import de.ozgcloud.archive.file.OzgFileMapper; @@ -17,7 +19,7 @@ import de.ozgcloud.vorgang.grpc.binaryFile.GrpcBinaryFilesRequest; import de.ozgcloud.vorgang.grpc.binaryFile.GrpcFindFilesResponse; import net.devh.boot.grpc.client.inject.GrpcClient; -@Service +@Service(ArchiveManagerConfiguration.BINARY_FILE_REMOTE_SERVICE_NAME) // NOSONAR class BinaryFileRemoteService { @GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT) @@ -26,7 +28,9 @@ class BinaryFileRemoteService { private GrpcOzgCloudFileService grpcOzgCloudFileService; @Autowired private OzgFileMapper ozgFileMapper; + @Autowired + @Qualifier(ArchiveManagerConfiguration.FILE_ID_MAPPER_NAME) // NOSONAR private FileIdMapper fileIdMapper; public Stream<OzgFile> getFiles(List<FileId> fileIds) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileService.java index a9335b474e56a7510cc5cf71aebd76a43e390d25..271e9c1c70a2de0918889af908db8b92fdb320cf 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/BinaryFileService.java @@ -4,16 +4,19 @@ import java.io.OutputStream; import java.util.List; import java.util.stream.Stream; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.file.OzgFile; import de.ozgcloud.common.binaryfile.FileId; import lombok.RequiredArgsConstructor; -@Service +@Service(ArchiveManagerConfiguration.BINARY_FILE_SERVICE_NAME) // NOSONAR @RequiredArgsConstructor public class BinaryFileService { + @Qualifier(ArchiveManagerConfiguration.BINARY_FILE_REMOTE_SERVICE_NAME) // NOSONAR private final BinaryFileRemoteService binaryFileRemoteService; public Stream<OzgFile> getFiles(List<FileId> attachments) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/FileIdMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/FileIdMapper.java index 35203269ca4d2779a19201f19ef0b74580079a7c..8e316d2da813f4be399f25b889e9f5d543d834da 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/FileIdMapper.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/binaryfile/FileIdMapper.java @@ -1,11 +1,15 @@ package de.ozgcloud.archive.common.binaryfile; +import org.mapstruct.AnnotateWith; import org.mapstruct.Mapper; +import org.springframework.stereotype.Component; import de.ozgcloud.apilib.file.OzgCloudFileId; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.common.binaryfile.FileId; @Mapper +@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.FILE_ID_MAPPER_NAME)) public interface FileIdMapper { default FileId fromString(String fileId) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandMapper.java index 9dd19f67fa441a11ac9bf6d39ddac343f20ad695..83b566525aea12ba40f79f621d0a408e38cc39b0 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandMapper.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandMapper.java @@ -3,14 +3,18 @@ package de.ozgcloud.archive.common.command; import java.time.ZonedDateTime; import org.apache.commons.lang3.StringUtils; +import org.mapstruct.AnnotateWith; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.NullValueCheckStrategy; +import org.springframework.stereotype.Component; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.vorgang.common.grpc.GrpcObjectMapper; import de.ozgcloud.vorgang.grpc.command.GrpcCommand; @Mapper(uses = { GrpcObjectMapper.class }, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) +@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.COMMAND_MAPPER_NAME)) interface CommandMapper { @Mapping(target = "body", source = "bodyObj") diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandRemoteService.java index bbdd3d2301c2e1978e183276d6712b12c65aed2a..7696eb1d92ccacc7a3341afd299c8c2083032abe 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandRemoteService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandRemoteService.java @@ -4,19 +4,22 @@ import java.util.Optional; import java.util.stream.Stream; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.GrpcUtil; import de.ozgcloud.vorgang.grpc.command.CommandServiceGrpc.CommandServiceBlockingStub; import de.ozgcloud.vorgang.grpc.command.GrpcFindCommandsRequest; import net.devh.boot.grpc.client.inject.GrpcClient; -@Service +@Service(ArchiveManagerConfiguration.COMMAND_REMOTE_SERVICE_NAME) // NOSONAR class CommandRemoteService { @GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT) private CommandServiceBlockingStub grpcService; @Autowired + @Qualifier(ArchiveManagerConfiguration.COMMAND_MAPPER_NAME) // NOSONAR private CommandMapper mapper; public Stream<Command> findCommands(String vorgangId, Optional<String> status, Optional<String> order) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandService.java index cac214b9dd992251bf1b35b80cf92cdb125842a1..5f8c5ec4100915c6ce187fa873759ccf356a4e37 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/command/CommandService.java @@ -3,15 +3,18 @@ package de.ozgcloud.archive.common.command; import java.util.Optional; import java.util.stream.Stream; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import lombok.NonNull; import lombok.RequiredArgsConstructor; -@Service +@Service(ArchiveManagerConfiguration.COMMAND_SERVICE_NAME) // NOSONAR @RequiredArgsConstructor public class CommandService { + @Qualifier(ArchiveManagerConfiguration.COMMAND_REMOTE_SERVICE_NAME) // NOSONAR private final CommandRemoteService remoteService; public Stream<Command> findFinishedCommands(@NonNull String vorgangId) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserProfileMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserProfileMapper.java index 021d0c5fb750996333628635f706a1e8ced53610..91feb820adf2cb8374c013661b4ef590154298f9 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserProfileMapper.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserProfileMapper.java @@ -1,10 +1,14 @@ package de.ozgcloud.archive.common.user; +import org.mapstruct.AnnotateWith; import org.mapstruct.Mapper; +import org.springframework.stereotype.Component; import de.ozgcloud.apilib.user.OzgCloudUserProfile; +import de.ozgcloud.archive.ArchiveManagerConfiguration; @Mapper +@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.USER_PROFILE_MAPPER_NAME)) public interface UserProfileMapper { UserProfile fromOzgUserProfile(OzgCloudUserProfile userProfile); diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java index 96ecad321286e0f6078a8682c6dfd21adb32c2bd..a1748976b9fc32dbc5544b090722cad3484b0117 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java @@ -1,16 +1,21 @@ package de.ozgcloud.archive.common.user; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; -import de.ozgcloud.apilib.user.GrpcOzgCloudUserProfileService; import de.ozgcloud.apilib.user.OzgCloudUserId; +import de.ozgcloud.apilib.user.OzgCloudUserProfileService; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import lombok.RequiredArgsConstructor; -@Service +@Service(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR @RequiredArgsConstructor public class UserService { - private final GrpcOzgCloudUserProfileService grpcOzgCloudUserProfileService; + @Qualifier(ArchiveManagerConfiguration.OZGCLOUD_USER_PROFILE_SERVICE_NAME) // NOSONAR + private final OzgCloudUserProfileService grpcOzgCloudUserProfileService; + + @Qualifier(ArchiveManagerConfiguration.USER_PROFILE_MAPPER_NAME) // NOSONAR private final UserProfileMapper mapper; public UserProfile getById(String sentBy) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/VorgangChangeHistoryService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/VorgangChangeHistoryService.java index a4f2056a142d6954e76043ad98cbdac17ddb58e0..1dba7b76084bf1e738dd9e3f970f53567255cb89 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/VorgangChangeHistoryService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/VorgangChangeHistoryService.java @@ -3,8 +3,10 @@ package de.ozgcloud.archive.historie; import java.util.List; import java.util.stream.Stream; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.command.Command; import de.ozgcloud.archive.common.command.CommandService; import de.ozgcloud.archive.common.user.UserService; @@ -15,7 +17,10 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor class VorgangChangeHistoryService { + @Qualifier(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR private final UserService userService; + + @Qualifier(ArchiveManagerConfiguration.COMMAND_SERVICE_NAME) // NOSONAR private final CommandService commandService; public VorgangChangeHistory createVorgangChangeHistory(VorgangWithEingang vorgang) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java index accb342aacd5b633133627785be7c5c820be1476..4790c966b921543e3982778cf65bf7e35b712699 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java @@ -3,8 +3,10 @@ package de.ozgcloud.archive.kommentar; import java.util.List; import java.util.stream.Stream; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.binaryfile.BinaryFileService; import de.ozgcloud.archive.common.user.UserService; import de.ozgcloud.archive.file.OzgFile; @@ -18,6 +20,7 @@ public class ExportKommentarService { private final KommentarRemoteService kommentarRemoteService; private final BinaryFileService binaryFileService; + @Qualifier(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR private final UserService userService; public KommentarsExportData createExportData(VorgangWithEingang vorgang) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java index 921ce63725a43ccc51eeaa8572dd55f2588f9860..f669cd73aac394bfa47e38306119d8b293ab0ab5 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java @@ -4,8 +4,10 @@ import java.util.List; import java.util.Optional; import java.util.stream.Stream; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.binaryfile.BinaryFileService; import de.ozgcloud.archive.common.user.UserProfile; import de.ozgcloud.archive.common.user.UserService; @@ -18,8 +20,10 @@ import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor public class ExportNachrichtService { + private final PostfachMailRemoteService postfachMailRemoteService; private final BinaryFileService binaryFileService; + @Qualifier(ArchiveManagerConfiguration.USER_SERVICE_NAME) // NOSONAR private final UserService userService; public PostfachMailExportData createExportData(VorgangWithEingang vorgang) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/ExportVorgangService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/ExportVorgangService.java index 94bf1f2e3592f7680892304c29473175a5bd3b45..4e3644613b0233d654d652afae09ef2c69cbaa84 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/ExportVorgangService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/ExportVorgangService.java @@ -4,8 +4,10 @@ import java.util.Optional; import java.util.UUID; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.xoev.xdomea.AkteType; import de.xoev.xdomea.AllgemeineMetadatenType; import de.xoev.xdomea.IdentifikationObjektType; @@ -17,6 +19,7 @@ import lombok.RequiredArgsConstructor; @Service public class ExportVorgangService { + @Qualifier(ArchiveManagerConfiguration.VORGANG_REMOTE_MANAGER_SERVICE_NAME) // NOSONAR private final VorgangRemoteService vorgangRemoteService; private final VorgangTypeCreator vorgangTypeCreator; diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangRemoteService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangRemoteService.java index fa8d901afbedc5fb90f5b5732400ede14850cabf..aa56369097249ef16bb52967589c56a003616016 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangRemoteService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangRemoteService.java @@ -1,24 +1,27 @@ package de.ozgcloud.archive.vorgang; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextAttachingInterceptor; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.archive.common.GrpcUtil; import de.ozgcloud.archive.common.callcontext.CallContextProvider; import de.ozgcloud.vorgang.vorgang.GrpcFindVorgangWithEingangRequest; import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub; -import lombok.RequiredArgsConstructor; import net.devh.boot.grpc.client.inject.GrpcClient; -@Service -@RequiredArgsConstructor +@Service(ArchiveManagerConfiguration.VORGANG_REMOTE_MANAGER_SERVICE_NAME) // NOSONAR class VorgangRemoteService { @GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT) private VorgangServiceBlockingStub grpcService; + @Autowired + @Qualifier(ArchiveManagerConfiguration.VORGANG_WITH_EINGANG_MAPPER_NAME) // NOSONAR private VorgangWithEingangMapper vorgangWithEingangMapper; + @Autowired private CallContextProvider contextProvider; diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangWithEingangMapper.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangWithEingangMapper.java index 44593e079f978376aefa021c73d153e673ad79ff..db23db6c1b8793a2f9daa000e151fc1fc0d7b860 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangWithEingangMapper.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/vorgang/VorgangWithEingangMapper.java @@ -1,11 +1,15 @@ package de.ozgcloud.archive.vorgang; +import org.mapstruct.AnnotateWith; import org.mapstruct.Mapper; +import org.springframework.stereotype.Component; +import de.ozgcloud.archive.ArchiveManagerConfiguration; import de.ozgcloud.vorgang.common.grpc.GrpcFormDataMapper; import de.ozgcloud.vorgang.vorgang.GrpcVorgangWithEingang; @Mapper(uses = GrpcFormDataMapper.class) +@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = ArchiveManagerConfiguration.VORGANG_WITH_EINGANG_MAPPER_NAME)) interface VorgangWithEingangMapper { VorgangWithEingang fromGrpc(GrpcVorgangWithEingang grpcVorgangWithEingang); diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerTestConfiguration.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerTestConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..91039e8de21affd0dccbd763b953db575cdcf987 --- /dev/null +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerTestConfiguration.java @@ -0,0 +1,41 @@ +package de.ozgcloud.archive; + +import org.mapstruct.factory.Mappers; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import de.ozgcloud.apilib.file.grpc.OzgCloudFileMapper; +import de.ozgcloud.apilib.user.UserProfileMapper; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper; +import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangMapper; +import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper; + +@Configuration +public class ArchiveManagerTestConfiguration { + + @Bean + OzgCloudVorgangMapper ozgCloudVorgangMapper() { + return Mappers.getMapper(OzgCloudVorgangMapper.class); + } + + @Bean + OzgCloudVorgangStubMapper ozgCloudVorgangStubMapper() { + return Mappers.getMapper(OzgCloudVorgangStubMapper.class); + } + + @Bean + OzgCloudVorgangIdMapper ozgCloudVorgangIdMapper() { + return Mappers.getMapper(OzgCloudVorgangIdMapper.class); + } + + @Bean + UserProfileMapper ozgCloudUserProfileMapper() { + return Mappers.getMapper(UserProfileMapper.class); + } + + @Bean + OzgCloudFileMapper fileMapper() { + return Mappers.getMapper(OzgCloudFileMapper.class); + } + +} diff --git a/lombok.config b/lombok.config index 81661f0fd9c5f6e2f40f39aa9ee13f7017fc2726..a0e918012b6da2b2cd06374cf7ac35d085bfa3e0 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