From 4c263c5790cadc5653235e7c78c91f004b00fba5 Mon Sep 17 00:00:00 2001 From: Krzysztof <krzysztof.witukiewicz@mgm-tp.com> Date: Tue, 8 Apr 2025 16:08:24 +0200 Subject: [PATCH] OZG-7573 OZG-7991 CR adjustments --- .../vorgang/vorgang/redirect/EingangForwarder.java | 14 +++++++++----- .../vorgang/redirect/EingangForwarderTest.java | 14 +++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarder.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarder.java index 1e12a3b6c..20cbfb80b 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarder.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarder.java @@ -80,11 +80,15 @@ class EingangForwarder { public void forward(GrpcRouteForwarding grpcRouteForwarding, List<IncomingFileGroup> attachments, List<IncomingFile> representations) { var future = performGrpcCall(); + sendEingang(grpcRouteForwarding, attachments, representations); + requestObserver.onCompleted(); + waitForCompletion(future); + } + + private void sendEingang(GrpcRouteForwarding grpcRouteForwarding, List<IncomingFileGroup> attachments, List<IncomingFile> representations) { sendRouteForwarding(grpcRouteForwarding); sendAttachments(attachments); sendRepresentations(representations); - requestObserver.onCompleted(); - waitForCompletion(future); } Future<GrpcRouteForwardingResponse> performGrpcCall() { @@ -268,11 +272,11 @@ class EingangForwarder { static class DelegatingOnReadyHandler implements Runnable { private final ClientCallStreamObserver<GrpcRouteForwardingRequest> requestStream; - private final AtomicReference<Runnable> delegate = new AtomicReference<>(); + private final AtomicReference<Runnable> delegateRef = new AtomicReference<>(); private final AtomicBoolean done = new AtomicBoolean(false); public void setDelegate(Runnable onReadyHandler) { - this.delegate.set(onReadyHandler); + this.delegateRef.set(onReadyHandler); } public void stop() { @@ -285,7 +289,7 @@ class EingangForwarder { if (Thread.currentThread().isInterrupted()) { break; } - var delegate = this.delegate.get(); + var delegate = delegateRef.get(); if (delegate != null) { delegate.run(); } diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarderTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarderTest.java index 49798fe14..aacedd385 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarderTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/EingangForwarderTest.java @@ -183,6 +183,14 @@ class EingangForwarderTest { verify(serviceStub).routeForwarding(getResponseObserverFromForwarder()); } + + @Test + void shouldReturnFutureOfResponseObserver() { + var result = forwarder.performGrpcCall(); + + var expectedFuture = ReflectionTestUtils.getField(getResponseObserverFromForwarder(), "future", CompletableFuture.class); + assertThat(result).isSameAs(expectedFuture); + } } @Nested @@ -1194,7 +1202,7 @@ class EingangForwarderTest { } private Runnable getDelegateFromOnReadyHandler() { - return (Runnable) ReflectionTestUtils.getField(onReadyHandler, "delegate", AtomicReference.class).get(); + return (Runnable) ReflectionTestUtils.getField(onReadyHandler, "delegateRef", AtomicReference.class).get(); } } @@ -1209,8 +1217,4 @@ class EingangForwarderTest { private void setRequestObserverInForwarder(ClientCallStreamObserver<GrpcRouteForwardingRequest> requestObserver) { ReflectionTestUtils.setField(forwarder, "requestObserver", requestObserver); } - - private void setForwardFutureInForwarder(CompletableFuture<Void> future) { - ReflectionTestUtils.setField(forwarder, "forwardFuture", future); - } } -- GitLab