diff --git a/bescheid-manager/pom.xml b/bescheid-manager/pom.xml index 1763ef5a5b8d907f8e77179727621823e9176cf3..7ec0199f426aca07fe75f0c8b95e3746168927d2 100644 --- a/bescheid-manager/pom.xml +++ b/bescheid-manager/pom.xml @@ -33,12 +33,12 @@ <artifactId>pluto-interface</artifactId> <version>${pluto.version}</version> </dependency> - + <dependency> <groupId>de.itvsh.kop.common</groupId> <artifactId>kop-common-lib</artifactId> </dependency> - + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> @@ -47,11 +47,11 @@ <groupId>net.devh</groupId> <artifactId>grpc-client-spring-boot-starter</artifactId> </dependency> - <dependency> + <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> </dependency> - + <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/Bescheid.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/Bescheid.java index 6e1207d0ec3d17322995e31e88038004bb207891..05b9a03b015e15d92fcbdb2cbeb02ee200810f40 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/Bescheid.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/Bescheid.java @@ -8,7 +8,7 @@ import lombok.Builder; import lombok.Getter; import lombok.With; -@Builder +@Builder(toBuilder = true) @Getter public class Bescheid { @@ -21,7 +21,6 @@ public class Bescheid { private File bescheidFile; @With private FileId bescheidFileId; - private String contentType; private long size; diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidCreatedEvent.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidCreatedEvent.java new file mode 100644 index 0000000000000000000000000000000000000000..ca55f1ebd574ad5787b544b23e99765be66e3505 --- /dev/null +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidCreatedEvent.java @@ -0,0 +1,11 @@ +package de.ozgcloud.bescheid; + +import de.itvsh.ozg.pluto.command.Command; +import de.itvsh.ozg.pluto.command.CommandExecutedEvent; + +class BescheidCreatedEvent extends CommandExecutedEvent { + + public BescheidCreatedEvent(Command command) { + super(command.getId()); + } +} diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java index 4e6d574a0b9e3375f834a62eb155112ceeb5db31..c29d9ae5b73acc76109eed3c1e96c74bdb6149a0 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java @@ -58,6 +58,7 @@ class BescheidEventListener { try { prevContext = userService.startSecurityContext(command); doCreateBescheidBiz(command); + eventPublisher.publishEvent(new BescheidCreatedEvent(command)); } catch (Exception e) { LOG.error("Error on executing Create Bescheid Command. Command failed.", e); eventPublisher.publishEvent(new CommandFailedEvent(command.getId(), buildErrorMessage(e))); @@ -79,7 +80,7 @@ class BescheidEventListener { var eventBody = command.getBodyObject(); var builder = BescheidRequest.builder(); - Optional.ofNullable(eventBody.get(VORGANG_ID_BODYKEY)).map(String.class::cast).map(VorgangId::from).ifPresent(builder::vorgangId); + builder.vorgangId(VorgangId.from(command.getVorgangId())); Optional.ofNullable(eventBody.get(BESCHEID_VOM_BODYKEY)).map(LocalDate.class::cast).ifPresent(builder::bescheidVom); Optional.ofNullable(eventBody.get(GENEHMIGT_BODYKEY)).map(Boolean.class::cast).ifPresent(builder::genehmigt); builder.createFor(UserId.from(command.getCreatedBy())); diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java index b7e5768f8ae210e6c463292c88be3558590e3367..2a3916a25feedf023de3568ba60ea5caeba26d2a 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java @@ -16,7 +16,9 @@ class BescheidService { public Bescheid createBescheid(BescheidRequest request) { var vorgang = vorgangService.getById(request.getVorgangId()); - return remoteService.create(request, vorgang); + var bescheid = remoteService.create(request, vorgang); + + return bescheid.toBuilder().vorgangId(request.getVorgangId()).build(); } } diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/binaryfile/BinaryFileRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/binaryfile/BinaryFileRemoteService.java index f743ddebf8f7f02f40eb31d1562aa10342448b27..c96f4d66007f3c594799ba007cd5ec4aefb4d76a 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/binaryfile/BinaryFileRemoteService.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/binaryfile/BinaryFileRemoteService.java @@ -25,6 +25,7 @@ import de.itvsh.ozg.pluto.grpc.command.GrpcCallContext; import de.ozgcloud.bescheid.Bescheid; import io.grpc.stub.CallStreamObserver; import io.grpc.stub.StreamObserver; +import lombok.NonNull; import net.devh.boot.grpc.client.inject.GrpcClient; @Service @@ -36,7 +37,7 @@ class BinaryFileRemoteService { @GrpcClient("vorgang-manager") private BinaryFileServiceStub binaryFileRemoteStub; - FileId uploadBescheidFile(Bescheid bescheid) { + FileId uploadBescheidFile(@NonNull Bescheid bescheid) { try (var in = openFile(bescheid.getBescheidFile())) { var resultFuture = GrpcFileUploadUtils.createSender(this::buildChunkRequest, in, this::buildCallStreamObserver) diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/common/callcontext/CurrentUserService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/common/callcontext/CurrentUserService.java index ee9ce7937acca0afb9d0c863c877137294e26935..ee5f3c71d2044b3ea579c3135744888329aa8b24 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/common/callcontext/CurrentUserService.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/common/callcontext/CurrentUserService.java @@ -37,7 +37,7 @@ import org.springframework.stereotype.Service; import de.itvsh.ozg.pluto.command.Command; -@Service +@Service("bescheid_currentUserService") public class CurrentUserService { @Autowired diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java index bf689b4f672e86d057079629fee1145c543e5411..47eddc77608d320f300b7cbdf42ed2876f3ba3c4 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/dummy/DummyBescheidRemoteService.java @@ -22,6 +22,7 @@ class DummyBescheidRemoteService implements BescheidRemoteService { return Bescheid.builder() .bescheidFile(file) + .bescheidFileName(DUMMY_BESCHEID_FILE_NAME) .contentType(DUMMY_BESCHEID_CONTENT_TYPE) .size(file.length()) .createdBy(request.getCreateFor()) diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangMapper.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapper.java similarity index 97% rename from bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangMapper.java rename to bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapper.java index 27c14d88bf0ef92d01823338b460a567f180f150..ba666524faeeabb19cfa5d3e4e3ae97b68866b9e 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangMapper.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapper.java @@ -15,7 +15,7 @@ import de.itvsh.ozg.pluto.vorgang.GrpcVorgangWithEingang; @Mapper(unmappedTargetPolicy = ReportingPolicy.ERROR, // uses = FormDataEntryMapper.class) -interface VorgangMapper { +interface BescheidVorgangMapper { @Mapping(target = "vorgangNummer", source = "nummer") Vorgang mapVorgang(GrpcVorgangWithEingang vorgang); diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteService.java index 7a861345664f23f14bf21c42f5ee4cacefccb27a..4868a8b7f7e3e9a7ce8f6705089bcc398c9db02a 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteService.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteService.java @@ -8,13 +8,13 @@ import de.itvsh.ozg.pluto.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub; import lombok.NonNull; import net.devh.boot.grpc.client.inject.GrpcClient; -@Service +@Service("bescheid_VorgangRemoteService") class VorgangRemoteService { - @GrpcClient("pluto") + @GrpcClient("vorgang-manager") private VorgangServiceBlockingStub vorgangServiceStub; @Autowired - private VorgangMapper mapper; + private BescheidVorgangMapper mapper; public Vorgang getById(@NonNull VorgangId vorgangId) { var request = GrpcFindVorgangWithEingangRequest.newBuilder().setId(vorgangId.toString()).build(); diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangService.java index 0138aaa7b8cd438281a9ed627f70c04207a43f74..c479421c36775b9a98db6dd5cf84106faafa68f3 100644 --- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangService.java +++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/vorgang/VorgangService.java @@ -3,13 +3,15 @@ package de.ozgcloud.bescheid.vorgang; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -@Service +import lombok.NonNull; + +@Service("bescheid_VorgangService") public class VorgangService { @Autowired public VorgangRemoteService remoteService; - public Vorgang getById(VorgangId id) { + public Vorgang getById(@NonNull VorgangId id) { return remoteService.getById(id); } } diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangMapperTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapperTest.java similarity index 88% rename from bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangMapperTest.java rename to bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapperTest.java index 69ee79e2b5fdf79296f15f1ef8214f422105d864..d430ba2760da66241a263864f147a6325366a699 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangMapperTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/BescheidVorgangMapperTest.java @@ -6,10 +6,10 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; -class VorgangMapperTest { +class BescheidVorgangMapperTest { @InjectMocks - private VorgangMapperImpl mapper; + private BescheidVorgangMapperImpl mapper; @Nested class TestMapVorgang { diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteServiceTest.java index 99a7dadc627dcc8da12e1f7948ba50f09217fa22..2d8c3bd28f79834a89fedbfcd4dce21af2453b7c 100644 --- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteServiceTest.java +++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/VorgangRemoteServiceTest.java @@ -25,7 +25,7 @@ class VorgangRemoteServiceTest { @Mock private VorgangServiceBlockingStub serviceStub; @Mock - private VorgangMapper mapper; + private BescheidVorgangMapper mapper; @Nested class TestGetById { diff --git a/pluto-server/pom.xml b/pluto-server/pom.xml index 50eed855adeab17abb304543612d36cd30be73ca..ac765c8457ea9758cd8a288d348ac079a38f89f9 100644 --- a/pluto-server/pom.xml +++ b/pluto-server/pom.xml @@ -24,14 +24,16 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>de.itvsh.kop.common</groupId> <artifactId>kop-common-parent</artifactId> <version>1.8.0-SNAPSHOT</version> - <relativePath/> + <relativePath /> </parent> <groupId>de.itvsh.ozg.pluto</groupId> @@ -84,18 +86,25 @@ <version>${project.version}</version> <scope>runtime</scope> </dependency> - + <dependency> + <groupId>de.ozgcloud.bescheid</groupId> + <artifactId>bescheid-manager</artifactId> + <version>1.0.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + <dependency> <groupId>de.itvsh.kop.zufi</groupId> <artifactId>kop-zufi-api</artifactId> <version>${kop.zufi.api.version}</version> </dependency> - + <dependency> <groupId>de.itvsh.kop.user</groupId> <artifactId>user-manager-interface</artifactId> <version>${user-manager-interface.version}</version> - <!-- TODO Nur proto sources verwenden um quarkus Abhaenigkeiten zu vermeiden. Ebenso im notification-manager --> + <!-- TODO Nur proto sources verwenden um quarkus Abhaenigkeiten zu + vermeiden. Ebenso im notification-manager --> <exclusions> <exclusion> <groupId>io.grpc</groupId> diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java index ae857dbf0737d117bcd75085b811cb0958ac25bf..cfd467fea5943fc6bc0d09d0b824b89c94879d09 100644 --- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java +++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java @@ -42,7 +42,7 @@ import org.springframework.security.task.DelegatingSecurityContextAsyncTaskExecu import io.mongock.runner.springboot.EnableMongock; -@SpringBootApplication(scanBasePackages = "de.itvsh.*") +@SpringBootApplication(scanBasePackages = { "de.itvsh.*", "de.ozgcloud" }) @EnableAsync @EnableScheduling @EnableAspectJAutoProxy(proxyTargetClass = true) diff --git a/pluto-server/src/main/resources/application.yml b/pluto-server/src/main/resources/application.yml index add4cf1f364042b9697e1fc3f99d73cbc98fdfd5..108278d3d3bc2d8c1392c721202d877689309e39 100644 --- a/pluto-server/src/main/resources/application.yml +++ b/pluto-server/src/main/resources/application.yml @@ -24,11 +24,17 @@ grpc: pluto: address: self:self negotiationType: PLAINTEXT + vorgang-manager: + address: self:self + negotiationType: PLAINTEXT user-manager: negotiationType: TLS email: address: self:self negotiationType: PLAINTEXT + nachrichten-manager: + address: self:self + negotiationType: PLAINTEXT pluto: redirect: