diff options
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/backend')
-rw-r--r-- | src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java | 4 | ||||
-rw-r--r-- | src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java | 14 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java index 1b17f34..59db396 100644 --- a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java +++ b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java @@ -84,8 +84,8 @@ public class MsgResponseBackend implements Consumer<String> { var sinkParams = getSinkParams(msgResponse); - if (sinkParams.isSafeResponseToFile()) { - supplyAsync(() -> saveResponseToFileSink.save(msgResponse)); + if (sinkParams.getSafeResponseToFile().isActive()) { + supplyAsync(() -> saveResponseToFileSink.save(msgResponse, sinkParams.getSafeResponseToFile().getPath())); } if (sinkParams.isLogResponse()) { 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 7da76ef..2468ca9 100644 --- a/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java +++ b/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java @@ -31,13 +31,11 @@ public class SaveResponseToFileSink { private final SimpleDateFormat isoFormatter; private final Marshaller msgMarshaller; private final DeliveryRepository repository; - private final String root; @Autowired - public SaveResponseToFileSink(Marshaller msgMarshaller, DeliveryRepository repository, String root) { + public SaveResponseToFileSink(Marshaller msgMarshaller, DeliveryRepository repository) { this.msgMarshaller = msgMarshaller; this.repository = repository; - this.root = root; this.isoFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); } @@ -47,17 +45,17 @@ public class SaveResponseToFileSink { * @param response * @return Future that completes when both responses have been written to the file system. */ - public CompletableFuture<Void> save(MsgResponse response) { + public CompletableFuture<Void> save(MsgResponse response, String rootPath) { var responseID = response.getResponseID(); - var responsePath = generatePath(responseID, "xml"); + var responsePath = generatePath(rootPath, responseID, "xml"); var storeResponseToFileSystemFuture = supplyAsync(() -> msgMarshaller.marshallXml(response.getResponse())) .thenApply(responseString -> responseString.getBytes(StandardCharsets.UTF_8)) .thenAccept(responseByteArray -> storeToFile(responsePath, responseByteArray)) .exceptionally(ex -> logException(ex, responseID)); - var binaryResponsePath = generatePath(responseID, "binary.xml"); + var binaryResponsePath = generatePath(rootPath, responseID, "binary.xml"); var storeBinaryResponseToFileSystemFuture = supplyAsync(() -> repository.retrieveBinaryResponse(responseID).get()) .thenAccept(binaryResponseByteArray -> storeToFile(binaryResponsePath, binaryResponseByteArray)) .exceptionally(ex -> logException(ex, responseID)); @@ -66,10 +64,10 @@ public class SaveResponseToFileSink { } - private String generatePath(String id, String suffix) { + private String generatePath(String rootPath, String id, String suffix) { var folder = sanitizeFileString(id); var nowInIso8601 = isoFormatter.format(new Date()); - return format("%s/%s/%s.%s", root, folder, nowInIso8601, suffix); + return format("%s/%s/%s.%s", rootPath, folder, nowInIso8601, suffix); } private String sanitizeFileString(String fileString) { |