Skip to content
Snippets Groups Projects
Commit 106c8708 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6990 initialize default client attribute service

parent 04d05d36
No related branches found
No related tags found
No related merge requests found
...@@ -14,6 +14,8 @@ import org.springframework.context.annotation.ComponentScan; ...@@ -14,6 +14,8 @@ import org.springframework.context.annotation.ComponentScan;
import de.ozgcloud.apilib.alfa.AlfaService; import de.ozgcloud.apilib.alfa.AlfaService;
import de.ozgcloud.apilib.alfa.CommandAlfaService; import de.ozgcloud.apilib.alfa.CommandAlfaService;
import de.ozgcloud.apilib.alfa.dummy.DummyAlfaService; import de.ozgcloud.apilib.alfa.dummy.DummyAlfaService;
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.client_attribute.grpc.OzgCloudClientAttributeMapper;
import de.ozgcloud.apilib.common.callcontext.DefaultOzgCloudCallContextProvider; import de.ozgcloud.apilib.common.callcontext.DefaultOzgCloudCallContextProvider;
import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider; import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider;
...@@ -35,6 +37,7 @@ import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangQueryMapper; ...@@ -35,6 +37,7 @@ import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangQueryMapper;
import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper; import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper;
import de.ozgcloud.user.grpc.userprofile.UserProfileServiceGrpc; import de.ozgcloud.user.grpc.userprofile.UserProfileServiceGrpc;
import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc; import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc;
import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc;
import de.ozgcloud.vorgang.grpc.command.CommandServiceGrpc; import de.ozgcloud.vorgang.grpc.command.CommandServiceGrpc;
import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc; import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc;
import io.grpc.ManagedChannelBuilder; import io.grpc.ManagedChannelBuilder;
...@@ -139,6 +142,16 @@ public class OzgCloudClientAutoConfiguration { ...@@ -139,6 +142,16 @@ public class OzgCloudClientAutoConfiguration {
return new GrpcOzgCloudVorgangService(vorgangServiceStub, mapper, stubMapper, queryMapper, contextProvider); return new GrpcOzgCloudVorgangService(vorgangServiceStub, mapper, stubMapper, queryMapper, contextProvider);
} }
@Bean
@ConditionalOnProperty("ozgcloud.vorgang-manager.address")
@ConditionalOnMissingBean
OzgCloudClientAttributeService grpcOzgCloudClientAttributeService(OzgCloudClientAttributeMapper clientAttributeMapper,
OzgCloudCallContextProvider contextProvider) {
var channel = ManagedChannelBuilder.forTarget(vorgangManagerProperties.getAddress()).usePlaintext().build();
var blockingStub = ClientAttributeServiceGrpc.newBlockingStub(channel);
return new OzgCloudClientAttributeGrpcService(blockingStub, clientAttributeMapper, contextProvider);
}
@Bean @Bean
OzgCloudVorgangMapper ozgCloudVorgangMapper() { OzgCloudVorgangMapper ozgCloudVorgangMapper() {
return Mappers.getMapper(OzgCloudVorgangMapper.class); return Mappers.getMapper(OzgCloudVorgangMapper.class);
......
/*
* 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 java.util.Optional;
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 org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.test.annotation.DirtiesContext;
import de.ozgcloud.apilib.autoconfig.ApiLibTestApplication;
import de.ozgcloud.apilib.client_attribute.OzgCloudBooleanClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
import de.ozgcloud.apilib.client_attribute.OzgCloudDoubleClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudLongClientAttribute;
import de.ozgcloud.apilib.client_attribute.OzgCloudStringClientAttribute;
import de.ozgcloud.apilib.client_attribute.grpc.OzgCloudClientAttributeGrpcService;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
public class OzgCloudClientAttributeServiceStarterITCase {
@Nested
@SpringBootTest(classes = ApiLibTestApplication.class)
@DirtiesContext
class TestWithoutOzgCloudClientAttributeService {
@Autowired
private Optional<OzgCloudClientAttributeService> ozgCloudFileService;
@Test
void shouldStart() {
assertThat(ozgCloudFileService).isEmpty();
}
}
@Nested
@SpringBootTest(classes = ApiLibTestApplication.class, properties = {
"ozgcloud.vorgang-manager.address=address"
})
class TestWithOzgCloudClientAttributeService {
@Autowired
private OzgCloudClientAttributeService attributeService;
@Test
void shouldStart() {
assertThat(attributeService).isInstanceOf(OzgCloudClientAttributeGrpcService.class);
}
}
@Nested
@SpringBootTest(classes = ApiLibTestApplication.class)
@Import(TestWithExistingOzgCloudClientAttributeService.Config.class)
class TestWithExistingOzgCloudClientAttributeService {
@Autowired
private OzgCloudClientAttributeService attributeService;
@Test
void shouldStart() { // NOSONAR
assertThat(attributeService).isInstanceOf(TestClientAttributeService.class);
}
static class Config {
@Bean
OzgCloudClientAttributeService ozgCloudFileService() {
return new TestClientAttributeService();
}
}
static class TestClientAttributeService implements OzgCloudClientAttributeService {
@Override
public void setClientAttribute(final OzgCloudBooleanClientAttribute clientAttribute, final OzgCloudVorgangId vorgangId) {
}
@Override
public void setClientAttribute(final OzgCloudStringClientAttribute clientAttribute, final OzgCloudVorgangId vorgangId) {
}
@Override
public void setClientAttribute(final OzgCloudLongClientAttribute clientAttribute, final OzgCloudVorgangId vorgangId) {
}
@Override
public void setClientAttribute(final OzgCloudDoubleClientAttribute clientAttribute, final OzgCloudVorgangId vorgangId) {
}
}
}
}
...@@ -44,7 +44,7 @@ public class OzgCloudFileServiceStarterITCase { ...@@ -44,7 +44,7 @@ public class OzgCloudFileServiceStarterITCase {
@Nested @Nested
@SpringBootTest(classes = ApiLibTestApplication.class) @SpringBootTest(classes = ApiLibTestApplication.class)
@DirtiesContext() @DirtiesContext
class TestWithoutOzgCloudFileService { class TestWithoutOzgCloudFileService {
@Autowired @Autowired
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment