diff --git a/api-lib-core/pom.xml b/api-lib-core/pom.xml index ad3c80c88e0e254934a24ce5f268b97c45b3328e..192bc4488be6c650d03a706e098e245c5298e528 100644 --- a/api-lib-core/pom.xml +++ b/api-lib-core/pom.xml @@ -9,7 +9,7 @@ </parent> <artifactId>api-lib-core</artifactId> - + <properties> <lombok.version>1.18.26</lombok.version> <mapstruct.version>1.5.4.Final</mapstruct.version> @@ -35,7 +35,8 @@ <!--spring --> <dependency> <groupId>net.devh</groupId> - <artifactId>grpc-client-spring-boot-starter</artifactId> + <artifactId>grpc-client-spring-boot-autoconfigure</artifactId> + <version>2.14.0.RELEASE</version> </dependency> <dependency> @@ -72,7 +73,7 @@ <optional>true</optional> </dependency> </dependencies> - + <build> <plugins> <plugin> diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgang.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgang.java index a04a80265c19c01c37a9308296a68f9267bce8d7..11903e3b847d7ec926f1ea1d631968684ff438f6 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgang.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgang.java @@ -5,9 +5,11 @@ import java.util.List; import lombok.Builder; import lombok.Getter; import lombok.Singular; +import lombok.ToString; @Builder @Getter +@ToString public class OzgCloudVorgang { private OzgCloudVorgangId id; diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/dummy/DummyVorgangService.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/dummy/DummyVorgangService.java index 293e9fe16126f745431fc4a56dcfe70dbe1f7312..37b5144ec2cb1d7b60da55ee372b550060dcbc27 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/dummy/DummyVorgangService.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/dummy/DummyVorgangService.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.stereotype.Service; import de.ozgcloud.apilib.errorhandling.NotFoundException; @@ -18,6 +19,7 @@ import de.ozgcloud.apilib.vorgang.OzgCloudVorgangStub; import de.ozgcloud.apilib.vorgang.VorgangStatus; @Service +@ConditionalOnMissingBean(OzgCloudVorgangService.class) class DummyVorgangService implements OzgCloudVorgangService { private final Map<OzgCloudVorgangId, OzgCloudVorgang> idToVorgang; diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangService.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangService.java index ab96c7ece5ce9aea2fd0e0fdd94285ba0fc47d38..ca36aafa6f7ec19a95bcde0d282fb7bc97e1a3eb 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangService.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/GrpcVorgangService.java @@ -2,6 +2,7 @@ package de.ozgcloud.apilib.vorgang.grpc; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import de.itvsh.ozg.pluto.vorgang.GrpcFindVorgangWithEingangRequest; @@ -18,7 +19,7 @@ class GrpcVorgangService implements OzgCloudVorgangService { @GrpcClient("vorgang-manager") private VorgangServiceBlockingStub vorgangServiceStub; - + @Autowired private OzgCloudVorgangMapper mapper; @Override diff --git a/api-lib-demo/src/main/java/de/ozgcloud/apilib/demo/DemoRunner.java b/api-lib-demo/src/main/java/de/ozgcloud/apilib/demo/DemoRunner.java index d0324fe41b613c1b4ebc75a0ff1f869b0ed1cc3f..a140db583994a19250fb958b6cd6bbde827b61a1 100644 --- a/api-lib-demo/src/main/java/de/ozgcloud/apilib/demo/DemoRunner.java +++ b/api-lib-demo/src/main/java/de/ozgcloud/apilib/demo/DemoRunner.java @@ -5,6 +5,7 @@ import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereotype.Component; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId; import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService; @Component @@ -15,7 +16,7 @@ class DemoRunner implements ApplicationListener<ContextRefreshedEvent> { @Override public void onApplicationEvent(ContextRefreshedEvent event) { - System.out.println(vorgangService.search("test")); + System.out.println(vorgangService.getById(OzgCloudVorgangId.from("647885a50b105b1e4995378e"))); } } diff --git a/api-lib-demo/src/main/resources/application.yml b/api-lib-demo/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..3f50825fe6caf1e877618f39308f46e9c29dcccb --- /dev/null +++ b/api-lib-demo/src/main/resources/application.yml @@ -0,0 +1,3 @@ +ozgcloud: + vorgang-manager: + url: static://127.0.0.1:9090 \ No newline at end of file diff --git a/ozg-cloud-spring-boot-starter/pom.xml b/ozg-cloud-spring-boot-starter/pom.xml index e65214090fb3566cb00c93902a47365dcaa07462..3e5414d660226817442351a4798a18b57c492c62 100644 --- a/ozg-cloud-spring-boot-starter/pom.xml +++ b/ozg-cloud-spring-boot-starter/pom.xml @@ -14,6 +14,10 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> </dependency> + <dependency> + <groupId>net.devh</groupId> + <artifactId>grpc-client-spring-boot-starter</artifactId> + </dependency> <dependency> <groupId>de.ozgcloud.api-lib</groupId> diff --git a/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java b/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java index 0ef6d54fc59096a4395be7cd527d18d75ce3af23..2a2b6ab4d2585c1080b7f4c4516dafe22f1b35f9 100644 --- a/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java +++ b/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java @@ -1,10 +1,31 @@ package de.ozgcloud.client.autoconfigure; import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; +import net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration; +import net.devh.boot.grpc.client.config.GrpcChannelProperties; +import net.devh.boot.grpc.client.config.GrpcChannelsProperties; +import net.devh.boot.grpc.client.config.NegotiationType; + @AutoConfiguration @ComponentScan(basePackages = "de.ozgcloud.apilib.**") +@AutoConfigureBefore(GrpcClientAutoConfiguration.class) +//TODO remove component scan public class OzgCloudClientAutoConfiguration { + @Bean + GrpcChannelsProperties channelProperties() { + var properties = new GrpcChannelsProperties(); + var channelProps = new GrpcChannelProperties(); + + properties.getClient().put("vorgang-manager", channelProps); + + channelProps.setAddress("static://127.0.0.1:9090"); + channelProps.setNegotiationType(NegotiationType.PLAINTEXT); + + return properties; + } } diff --git a/ozg-cloud-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ozg-cloud-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 126a0de2f1ebb078e77c8ff5765062387311a277..daabf2451f085709c858319232ca024b0e6c1c1b 100644 --- a/ozg-cloud-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/ozg-cloud-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,2 @@ -de.ozgcloud.client.autoconfigure.OzgCloudClientAutoConfiguration \ No newline at end of file +de.ozgcloud.client.autoconfigure.OzgCloudClientAutoConfiguration +net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration \ No newline at end of file diff --git a/ozg-cloud-spring-boot-starter/src/main/resources/application.yml b/ozg-cloud-spring-boot-starter/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..b770baa6bf46ddaaee2a4feb7cfa20a68bf75e98 --- /dev/null +++ b/ozg-cloud-spring-boot-starter/src/main/resources/application.yml @@ -0,0 +1,7 @@ +grpc: + client: + vorgang-manager: +# address: ${ozgcloud.vorgang-manager.url} + address: static://127.0.0.1:9090 + negotiationType: PLAINTEXT + \ No newline at end of file