/* * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den * Ministerpräsidenten des Landes Schleswig-Holstein * Staatskanzlei * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung * * Lizenziert unter der EUPL, Version 1.2 oder - sobald * diese von der Europäischen Kommission genehmigt wurden - * Folgeversionen der EUPL ("Lizenz"); * Sie dürfen dieses Werk ausschließlich gemäß * dieser Lizenz nutzen. * Eine Kopie der Lizenz finden Sie hier: * * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 * * Sofern nicht durch anwendbare Rechtsvorschriften * gefordert oder in schriftlicher Form vereinbart, wird * die unter der Lizenz verbreitete Software "so wie sie * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - * ausdrücklich oder stillschweigend - verbreitet. * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ package de.ozgcloud.archive; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService; import de.ozgcloud.apilib.client_attribute.grpc.OzgCloudClientAttributeGrpcService; import de.ozgcloud.apilib.client_attribute.grpc.OzgCloudClientAttributeMapper; import de.ozgcloud.apilib.common.command.OzgCloudCommandService; import de.ozgcloud.apilib.common.command.grpc.CommandMapper; import de.ozgcloud.apilib.common.command.grpc.GrpcOzgCloudCommandService; import de.ozgcloud.apilib.file.OzgCloudFileService; 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.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; import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub; import de.ozgcloud.vorgang.grpc.command.CommandServiceGrpc.CommandServiceBlockingStub; import lombok.RequiredArgsConstructor; import net.devh.boot.grpc.client.inject.GrpcClient; @Configuration @RequiredArgsConstructor @EnableScheduling public class ArchiveManagerConfiguration { public static final String VORGANG_SERVICE_NAME = "archiveVorgangService"; public static final String VORGANG_REMOTE_MANAGER_SERVICE_NAME = "archiveVorgangRemoteService"; public static final String VORGANG_WITH_EINGANG_MAPPER_NAME = "archiveVorgangWithEingangMapper"; public static final String CURRENT_USER_SERVICE_NAME = "archiveCurrentUserService"; public static final String DOCUMENT_MAPPER_NAME = "archiveDocumentMapper"; public static final String DOCUMENT_REMOTE_SERVICE_NAME = "archiveDocumentRemoteService"; public static final String USER_SERVICE_NAME = "archiveUserService"; public static final String USER_PROFILE_MAPPER_NAME = "archiveUserProfileMapper"; public static final String OZGCLOUD_USER_PROFILE_SERVICE_NAME = "archiveOzgCloudUserProfileService"; public static final String COMMAND_SERVICE_NAME = "archiveCommandService"; public static final String COMMAND_REMOTE_SERVICE_NAME = "archiveCommandRemoteService"; public static final String COMMAND_MAPPER_NAME = "archiveCommandMapper"; public static final String OZGCLOUD_COMMAND_SERVICE_NAME = "archiveOzgCloudCommandService"; public static final String BINARY_FILE_SERVICE_NAME = "archiveBinaryFileService"; public static final String BINARY_FILE_REMOTE_SERVICE_NAME = "archiveBinaryFileRemoteService"; public static final String OZGCLOUD_FILE_SERVICE_NAME = "archiveOzgCloudFileService"; public static final String FILE_ID_MAPPER_NAME = "archiveFileIdMapper"; public static final String BESCHEID_REMOTE_SERVICE_NAME = "archiveBescheidRemoteService"; public static final String BESCHEID_MAPPER_NAME = "archiveBescheidMapper"; public static final String CALL_CONTEXT_PROVIDER_NAME = "archiveCallContextProvider"; public static final String CALL_CONTEXT_MAPPER_NAME = "archiveCallContextMapper"; public static final String OZGCLOUD_CLIENT_ATTRIBUTE_SERVICE_NAME = "archiveOzgCloudClientAttributeService"; public static final String KOMMENTAR_SERVICE_NAME = "archiveKommentarService"; public static final String KOMMENTAR_REMOTE_SERVICE_NAME = "archiveKommentarRemoteService"; public static final String CALL_CONTEXT_SERVER_INTERCEPTOR_NAME = "archiveCallContextGrpcServerInterceptor"; public static final String GRPC_VORGANG_MANAGER_CLIENT_NAME = "vorgang-manager"; public static final String GRPC_COMMAND_MANAGER_CLIENT_NAME = "command-manager"; public static final String GRPC_FILE_MANAGER_CLIENT_NAME = "file-manager"; public static final String GRPC_USER_MANAGER_CLIENT_NAME = "user-manager"; @GrpcClient(GRPC_VORGANG_MANAGER_CLIENT_NAME) private final ClientAttributeServiceBlockingStub clientAttributeServiceBlockingStub; @GrpcClient(GRPC_COMMAND_MANAGER_CLIENT_NAME) private final CommandServiceBlockingStub commandServiceStub; @GrpcClient(GRPC_USER_MANAGER_CLIENT_NAME) private final UserProfileServiceBlockingStub userProfileServiceBlockingStub; @GrpcClient(GRPC_FILE_MANAGER_CLIENT_NAME) private final BinaryFileServiceBlockingStub binaryFileServiceBlockingStub; @GrpcClient(GRPC_FILE_MANAGER_CLIENT_NAME) private final BinaryFileServiceStub binaryFileServiceStub; @Bean(ArchiveManagerConfiguration.OZGCLOUD_FILE_SERVICE_NAME) OzgCloudFileService ozgCloudFileService(OzgCloudFileMapper mapper, @Qualifier(CALL_CONTEXT_PROVIDER_NAME) CallContextProvider callContextProvider) { return new GrpcOzgCloudFileService(binaryFileServiceBlockingStub, binaryFileServiceStub, callContextProvider, mapper); } @Bean(ArchiveManagerConfiguration.OZGCLOUD_USER_PROFILE_SERVICE_NAME) OzgCloudUserProfileService grpcOzgCloudUserProfileService(UserProfileMapper userProfileMapper, @Qualifier(CALL_CONTEXT_PROVIDER_NAME) CallContextProvider callContextProvider) { return new GrpcOzgCloudUserProfileService(userProfileServiceBlockingStub, userProfileMapper, callContextProvider); } @Bean(OZGCLOUD_CLIENT_ATTRIBUTE_SERVICE_NAME) OzgCloudClientAttributeService ozgCloudAttributesService(OzgCloudClientAttributeMapper mapper, @Qualifier(CALL_CONTEXT_PROVIDER_NAME) CallContextProvider callContextProvider) { return new OzgCloudClientAttributeGrpcService(clientAttributeServiceBlockingStub, mapper, callContextProvider); } @Bean(OZGCLOUD_COMMAND_SERVICE_NAME) OzgCloudCommandService ozgCloudCommandService(CommandMapper commandMapper, @Qualifier(CALL_CONTEXT_PROVIDER_NAME) CallContextProvider callContextProvider) { return new GrpcOzgCloudCommandService(commandServiceStub, commandMapper, callContextProvider, GrpcOzgCloudCommandService.DEFAULT_COMMAND_REQUEST_THRESHOLD_MILLIS); } }