Skip to content
Snippets Groups Projects

Ozg 7573 forwarding interface

Merged Felix Reichenbach requested to merge OZG-7573-forwarding-interface into main
3 unresolved threads
2 files
+ 16
179
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -32,7 +32,6 @@ import java.util.concurrent.TimeoutException;
import java.util.function.BiFunction;
import java.util.function.Function;
import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Service;
import com.google.protobuf.ByteString;
@@ -109,8 +108,7 @@ class ForwardingRemoteService {
private void sendAttachmentFile(StreamObserver<GrpcRouteForwardingRequest> requestStreamObserver, String groupName, IncomingFile file) {
var fileContentStream = fileService.getUploadedFileStream(file.getId());
var fileSender = createAttachmentFileSender(requestStreamObserver, groupName, file, fileContentStream).send();
waitForFinishedFileUpload(fileSender, fileContentStream);
createAttachmentFileSender(requestStreamObserver, groupName, file, fileContentStream).send();
}
FileSender<GrpcRouteForwardingRequest, GrpcRouteForwardingResponse> createAttachmentFileSender(
@@ -138,8 +136,7 @@ class ForwardingRemoteService {
void sendRepresentations(List<IncomingFile> representations, StreamObserver<GrpcRouteForwardingRequest> requestObserver) {
representations.forEach(representation -> {
var fileContentStream = fileService.getUploadedFileStream(representation.getId());
var fileSender = createRepresentationFileSender(requestObserver, representation, fileContentStream).send();
waitForFinishedFileUpload(fileSender, fileContentStream);
createRepresentationFileSender(requestObserver, representation, fileContentStream).send();
});
}
@@ -187,29 +184,16 @@ class ForwardingRemoteService {
.build();
}
void waitForFinishedFileUpload(FileSender<GrpcRouteForwardingRequest, GrpcRouteForwardingResponse> fileSender, InputStream inputStream) {
void waitForCompletion(CompletableFuture<Void> responseFuture) {
try {
fileSender.getResultFuture().get(TIMEOUT_MINUTES, TimeUnit.MINUTES);
responseFuture.get(TIMEOUT_MINUTES, TimeUnit.MINUTES);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
fileSender.cancelOnError(e);
throw new TechnicalException("Waiting for finishing file upload was interrupted.", e);
} catch (ExecutionException e) {
fileSender.cancelOnError(e);
throw new TechnicalException("Error on uploading file content.", e);
} catch (TimeoutException e) {
fileSender.cancelOnTimeout();
throw new TechnicalException("Timeout on uploading file content.", e);
} finally {
IOUtils.closeQuietly(inputStream);
}
}
void waitForCompletion(CompletableFuture<Void> responseFuture) {
try {
responseFuture.get();
} catch (Throwable t) {
throw new TechnicalException("Forwarding failed", t);
}
}
Loading