From c7a8a5bd47ee5c44bafac391ce83565b8f7c0cca Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 8 Jul 2024 07:42:41 +0200 Subject: [PATCH] OZG-6099 create context provider in processor manager --- pom.xml | 18 +++++-- .../ProcessorManagerConfiguration.java | 47 +++++++++++++++++++ .../ProzessorManagerCallContextProvider.java | 42 +++++++++++++++++ .../processor/vorgang/VorgangService.java | 11 +++-- .../processor/ProcessorTestApplication.java | 8 +++- 5 files changed, 117 insertions(+), 9 deletions(-) create mode 100644 src/main/java/de/ozgcloud/processor/ProcessorManagerConfiguration.java create mode 100644 src/main/java/de/ozgcloud/processor/ProzessorManagerCallContextProvider.java diff --git a/pom.xml b/pom.xml index 1315cf8..5517c19 100644 --- a/pom.xml +++ b/pom.xml @@ -6,19 +6,19 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-parent</artifactId> - <version>4.0.1</version> + <version>4.3.0</version> </parent> <groupId>de.ozgcloud.processor</groupId> <artifactId>processor-manager</artifactId> - <version>0.4.0</version> + <version>0.4.1-SNAPSHOT</version> <name>ozgcloud-processor-manager</name> <description>OZG-Cloud Processor Manager</description> <properties> <vorgang-manager.version>2.5.0</vorgang-manager.version> - <api-lib.version>0.7.0</api-lib.version> + <api-lib.version>0.10.0</api-lib.version> <tyrus-standalone-client.version>2.1.3</tyrus-standalone-client.version> <okio.version>3.9.0</okio.version> </properties> @@ -48,6 +48,11 @@ <artifactId>ozg-cloud-spring-boot-starter</artifactId> <version>${api-lib.version}</version> </dependency> + <dependency> + <groupId>de.ozgcloud.api-lib</groupId> + <artifactId>api-lib-core</artifactId> + <version>${api-lib.version}</version> + </dependency> <!-- spring --> <dependency> @@ -97,7 +102,12 @@ <version>${okio.version}</version> <scope>test</scope> </dependency> - + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-inprocess</artifactId> + <version>1.65.0</version> + <scope>test</scope> + </dependency> <!-- commons --> <dependency> diff --git a/src/main/java/de/ozgcloud/processor/ProcessorManagerConfiguration.java b/src/main/java/de/ozgcloud/processor/ProcessorManagerConfiguration.java new file mode 100644 index 0000000..3ce4b10 --- /dev/null +++ b/src/main/java/de/ozgcloud/processor/ProcessorManagerConfiguration.java @@ -0,0 +1,47 @@ +/* + * 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.processor; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +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.vorgang.vorgang.VorgangServiceGrpc; +import net.devh.boot.grpc.client.inject.GrpcClient; + +@Configuration +public class ProcessorManagerConfiguration { + + @GrpcClient("vorgang-manager") + private VorgangServiceGrpc.VorgangServiceBlockingStub vorgangServiceStub; + + @Bean("processorManager_OzgCloudCommandService") + OzgCloudVorgangService grpcOzgCloudCommandService(OzgCloudVorgangMapper vorgangMapper, OzgCloudVorgangStubMapper vorgangStubMapper, + ProzessorManagerCallContextProvider contextProvider) { + return new GrpcOzgCloudVorgangService(vorgangServiceStub, vorgangMapper, vorgangStubMapper, contextProvider); + } +} diff --git a/src/main/java/de/ozgcloud/processor/ProzessorManagerCallContextProvider.java b/src/main/java/de/ozgcloud/processor/ProzessorManagerCallContextProvider.java new file mode 100644 index 0000000..0dfc4ca --- /dev/null +++ b/src/main/java/de/ozgcloud/processor/ProzessorManagerCallContextProvider.java @@ -0,0 +1,42 @@ +/* + * 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.processor; + +import org.springframework.stereotype.Component; + +import de.ozgcloud.apilib.common.callcontext.CallContext; +import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider; +import lombok.RequiredArgsConstructor; + +@Component +@RequiredArgsConstructor +class ProzessorManagerCallContextProvider implements OzgCloudCallContextProvider { + + static final String PROZESSOR_MANAGER_CLIENT_NAME = "OzgCloud_ProzessorManager"; + + @Override + public CallContext provideContext() { + return CallContext.builder().clientName(PROZESSOR_MANAGER_CLIENT_NAME).build(); + } +} diff --git a/src/main/java/de/ozgcloud/processor/vorgang/VorgangService.java b/src/main/java/de/ozgcloud/processor/vorgang/VorgangService.java index 059b71d..fdafb96 100644 --- a/src/main/java/de/ozgcloud/processor/vorgang/VorgangService.java +++ b/src/main/java/de/ozgcloud/processor/vorgang/VorgangService.java @@ -1,18 +1,21 @@ package de.ozgcloud.processor.vorgang; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService; import lombok.NonNull; -import lombok.RequiredArgsConstructor; @Service("processorVorgangService") -@RequiredArgsConstructor public class VorgangService { - private final OzgCloudVorgangService ozgCloudService; - private final ProcessorVorgangMapper mapper; + @Autowired + @Qualifier("processorManager_OzgCloudCommandService") + private OzgCloudVorgangService ozgCloudService; + @Autowired + private ProcessorVorgangMapper mapper; public Vorgang getVorgang(@NonNull VorgangId id) { var loaded = ozgCloudService.getById(OzgCloudVorgangId.from(id.toString())); diff --git a/src/test/java/de/ozgcloud/processor/ProcessorTestApplication.java b/src/test/java/de/ozgcloud/processor/ProcessorTestApplication.java index 41966a3..09a2a6a 100644 --- a/src/test/java/de/ozgcloud/processor/ProcessorTestApplication.java +++ b/src/test/java/de/ozgcloud/processor/ProcessorTestApplication.java @@ -2,12 +2,18 @@ package de.ozgcloud.processor; import java.util.TimeZone; +import org.mockito.Mock; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -@SpringBootApplication +import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc; + +@SpringBootApplication(scanBasePackages = { "de.ozgcloud" }) public class ProcessorTestApplication { + @Mock + private VorgangServiceGrpc.VorgangServiceBlockingStub vorgangServiceStub; + public static void main(String[] args) { TimeZone.setDefault(TimeZone.getTimeZone("UTC")); SpringApplication.run(ProcessorTestApplication.class, args); -- GitLab