aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
diff options
context:
space:
mode:
authorChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-12-02 14:26:42 +0100
committerChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-12-03 09:08:44 +0100
commit8799a27e8d73c5e079d549f6d76abf861d75ee9e (patch)
tree5c8d5201be097654155d9ad69f3af12ebd8d749a /src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
parent6dbe979e0b6bd6236db304b034ad592a4aeacabc (diff)
downloadmoa-zs-8799a27e8d73c5e079d549f6d76abf861d75ee9e.tar.gz
moa-zs-8799a27e8d73c5e079d549f6d76abf861d75ee9e.tar.bz2
moa-zs-8799a27e8d73c5e079d549f6d76abf861d75ee9e.zip
Finalize "Removal of JAXB Class Not Found Fix"
- Problem: I fixed CompletableFuture.*async within the DeliveryRequest flow, but forgot to do the same for the DeliveryRequestStatus / DeliveryNotification flow. - Solution: Ensure that all CompletableFuture.*async() invocations have Spring's task executor attached.
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java b/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
index c2652d9..c844511 100644
--- a/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
+++ b/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
@@ -36,6 +36,7 @@ import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Executor;
import static at.gv.egiz.moazs.MoaZSException.moaZSException;
import static java.lang.String.format;
@@ -56,11 +57,13 @@ public class SaveResponseToFileSink {
private final SimpleDateFormat isoFormatter;
private final Marshaller msgMarshaller;
private final DeliveryRepository repository;
+ private final Executor taskExecutor;
@Autowired
- public SaveResponseToFileSink(Marshaller msgMarshaller, DeliveryRepository repository) {
+ public SaveResponseToFileSink(Marshaller msgMarshaller, DeliveryRepository repository, Executor taskExecutor) {
this.msgMarshaller = msgMarshaller;
this.repository = repository;
+ this.taskExecutor = taskExecutor;
this.isoFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
}
@@ -77,13 +80,13 @@ public class SaveResponseToFileSink {
response.getRootElementLocalPart(), response.getAppDeliveryID());
var responsePath = generatePath(rootPath, responseID, "xml");
- var storeResponseToFileSystemFuture = supplyAsync(() -> msgMarshaller.marshallXml(response.getResponseAsJAXBElement()))
+ var storeResponseToFileSystemFuture = supplyAsync(() -> msgMarshaller.marshallXml(response.getResponseAsJAXBElement()), taskExecutor)
.thenApply(responseString -> responseString.getBytes(StandardCharsets.UTF_8))
.thenAccept(responseByteArray -> storeToFile(responsePath, responseByteArray))
.exceptionally(ex -> logException(ex, responseID));
var binaryResponsePath = generatePath(rootPath, responseID, "binary.xml");
- var storeBinaryResponseToFileSystemFuture = supplyAsync(() -> repository.retrieveBinaryResponse(responseID).get())
+ var storeBinaryResponseToFileSystemFuture = supplyAsync(() -> repository.retrieveBinaryResponse(responseID).get(), taskExecutor)
.thenAccept(binaryResponseByteArray -> storeToFile(binaryResponsePath, binaryResponseByteArray))
.exceptionally(ex -> logException(ex, responseID));