diff --git a/pom.xml b/pom.xml index 1315cf8c46b2181281893f0d90addbe927b46647..5517c1969b172d139990c2359b1d2e9bc415f2be 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 0000000000000000000000000000000000000000..3ce4b10271262235a40bfff7806e6699a32af0c4 --- /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 0000000000000000000000000000000000000000..0dfc4caa2fe8dd55bc6c463a0b685dedcad0b739 --- /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 059b71d6e3f4400d25cac30ac383c80a9b1fca88..fdafb96cecae95f15fa0f5e2c6bce81dd943a089 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 41966a38998983b41bbb854c42ed9c55cf0dd143..09a2a6a9189bea9f61d4d68b2b431c63ce07f642 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);