diff options
author | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-12-02 14:26:42 +0100 |
---|---|---|
committer | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-12-03 09:08:44 +0100 |
commit | 8799a27e8d73c5e079d549f6d76abf861d75ee9e (patch) | |
tree | 5c8d5201be097654155d9ad69f3af12ebd8d749a /src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java | |
parent | 6dbe979e0b6bd6236db304b034ad592a4aeacabc (diff) | |
download | moa-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.java | 9 |
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)); |