From b76df19c0ca593a0260e87cae52792fe4c068825 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 22 Oct 2024 13:41:28 +0200 Subject: [PATCH] OZG-6710 fix initialization of OzgCloudVorgangService --- .../grpc/OzgCloudVorgangQueryMapper.java | 3 +- .../OzgCloudClientAutoConfiguration.java | 9 +-- .../OzgCloudVorgangServiceStarterITCase.java | 68 +++++++++++++++++++ 3 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudVorgangServiceStarterITCase.java diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapper.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapper.java index aaf82cc..5a57685 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapper.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/grpc/OzgCloudVorgangQueryMapper.java @@ -5,7 +5,6 @@ import java.util.HashSet; import java.util.Optional; import java.util.Set; -import org.apache.commons.collections.CollectionUtils; import org.mapstruct.CollectionMappingStrategy; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -44,7 +43,7 @@ public interface OzgCloudVorgangQueryMapper { default GrpcQuery mapAllToQuery(OzgCloudVorgangQuery query) { var queryBuilder = GrpcQuery.newBuilder().setLogicalOperator(GrpcLogicalOperator.AND); query.getAktenzeichen().map(this::toAktenzeichenExpression).ifPresent(queryBuilder::addExpressions); - query.getForm().map(this::toFormExpressions).filter(CollectionUtils::isNotEmpty).ifPresent(queryBuilder::addAllExpressions); + query.getForm().map(this::toFormExpressions).ifPresent(queryBuilder::addAllExpressions); query.getStatus().map(this::toStatusExpression).ifPresent(queryBuilder::addExpressions); query.getOrganisationsEinheitId().map(this::toOrganisationsEinheitIdExpression).ifPresent(queryBuilder::addExpressions); query.getQuery().map(this::toQuery).ifPresent(queryBuilder::setNestedQuery); 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 8435df9..ecd66e5 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 @@ -37,7 +37,7 @@ import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper; import de.ozgcloud.user.grpc.userprofile.UserProfileServiceGrpc; import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc; import de.ozgcloud.vorgang.grpc.command.CommandServiceGrpc; -import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub; +import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc; import io.grpc.ManagedChannelBuilder; import lombok.RequiredArgsConstructor; import net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration; @@ -134,9 +134,10 @@ public class OzgCloudClientAutoConfiguration { @Bean("ozgCloudVorgangService") @ConditionalOnProperty("ozgcloud.vorgang-manager.address") @ConditionalOnMissingBean(OzgCloudVorgangService.class) - OzgCloudVorgangService grpcOzgCloudVorgangService(VorgangServiceBlockingStub vorgangServiceStub, OzgCloudVorgangMapper mapper, - OzgCloudVorgangStubMapper stubMapper, OzgCloudVorgangQueryMapper queryMapper, OzgCloudCallContextProvider contextProvider) { - + OzgCloudVorgangService grpcOzgCloudVorgangService(OzgCloudVorgangMapper mapper, OzgCloudVorgangStubMapper stubMapper, + OzgCloudVorgangQueryMapper queryMapper, OzgCloudCallContextProvider contextProvider) { + var channel = ManagedChannelBuilder.forTarget(vorgangManagerProperties.getAddress()).usePlaintext().build(); + var vorgangServiceStub = VorgangServiceGrpc.newBlockingStub(channel); return new GrpcOzgCloudVorgangService(vorgangServiceStub, mapper, stubMapper, queryMapper, contextProvider); } diff --git a/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudVorgangServiceStarterITCase.java b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudVorgangServiceStarterITCase.java new file mode 100644 index 0000000..6618638 --- /dev/null +++ b/ozg-cloud-spring-boot-starter/src/test/java/de/ozgcloud/client/autoconfigure/OzgCloudVorgangServiceStarterITCase.java @@ -0,0 +1,68 @@ +/* + * 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.client.autoconfigure; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import de.ozgcloud.apilib.autoconfig.ApiLibTestApplication; +import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService; +import de.ozgcloud.apilib.vorgang.dummy.DummyVorgangService; +import de.ozgcloud.apilib.vorgang.grpc.GrpcOzgCloudVorgangService; + +public class OzgCloudVorgangServiceStarterITCase { + + @Nested + @SpringBootTest(classes = ApiLibTestApplication.class, properties = { + "ozgcloud.vorgang-manager.address=address" + }) + class TestWithOzgCloudVorgangService { + + @Autowired + private OzgCloudVorgangService ozgCloudVorgangService; + + @Test + void shouldStart() { + assertThat(ozgCloudVorgangService).isInstanceOf(GrpcOzgCloudVorgangService.class); + } + } + + @Nested + @SpringBootTest(classes = ApiLibTestApplication.class) + class TestWithExistingOzgCloudVorgangService { + + @Autowired + private OzgCloudVorgangService ozgCloudVorgangService; + + @Test + void shouldStart() { // NOSONAR + assertThat(ozgCloudVorgangService).isInstanceOf(DummyVorgangService.class); + } + + } +} -- GitLab