aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java
diff options
context:
space:
mode:
authorChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-07-18 09:23:00 +0200
committerChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-07-18 09:23:00 +0200
commit6d30f261c618a3b69a8f1be092056383e6dea424 (patch)
tree86a5674d17a2d11c6ec327d4e36e8f589e2bbf7b /src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java
parentf2e1263702901581512131ea587fad7a2ba45baa (diff)
downloadmoa-zs-6d30f261c618a3b69a8f1be092056383e6dea424.tar.gz
moa-zs-6d30f261c618a3b69a8f1be092056383e6dea424.tar.bz2
moa-zs-6d30f261c618a3b69a8f1be092056383e6dea424.zip
Integrate Mzs Service Timeout and Handle Async Responses
- Service Timeout : Add service timeout to mzs schema (DeliveryRequest / Config), application.yaml, convert service timeout from spring environment to Config, and merge service timeouts in Configs. - Handling of Asynchronous DeliveryRequestStatus: Move "Applying Response Sinks" from backend into dedicated component "MsgResponseSinkHub" and integrate SinkHub into MzsService (apply sinks to asynchronous responses). - Remove line breaks in SignatureVerifier's log statements. - Revise documentation of parameters in application.yaml.
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java
new file mode 100644
index 0000000..0df5c68
--- /dev/null
+++ b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java
@@ -0,0 +1,44 @@
+package at.gv.egiz.moazs.backend;
+
+import at.gv.egiz.moazs.scheme.MsgResponse;
+import at.gv.zustellung.app2mzs.xsd.MsgResponseSinksType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import static java.util.concurrent.CompletableFuture.supplyAsync;
+
+@Component
+public class MsgResponseSinkHub {
+
+ private final SaveResponseToFileSink saveResponseSink;
+ private final LogResponseSink logResponseSink;
+ private final ForwardResponseToServiceSink forwardResponseSink;
+
+ @Autowired
+ public MsgResponseSinkHub(SaveResponseToFileSink saveResponseSink, LogResponseSink logResponseSink,
+ ForwardResponseToServiceSink forwardResponseSink) {
+ this.saveResponseSink = saveResponseSink;
+ this.logResponseSink = logResponseSink;
+ this.forwardResponseSink = forwardResponseSink;
+ }
+
+ /**
+ * Apply all sinks that are configured in {@code sinkParams} to {@code msgResponse}.
+ */
+ public void applySinks(MsgResponse msgResponse, MsgResponseSinksType sinkParams) {
+
+ if (sinkParams.getSaveResponseToFile().isActive()) {
+ supplyAsync(() -> saveResponseSink.save(msgResponse, sinkParams.getSaveResponseToFile().getPath()));
+ }
+
+ if (sinkParams.isLogResponse()) {
+ supplyAsync(() -> logResponseSink.log(msgResponse));
+ }
+
+ if (sinkParams.getForwardResponseToService().isActive()) {
+ supplyAsync(() -> forwardResponseSink.send(
+ msgResponse, sinkParams.getForwardResponseToService().getMzsClient()));
+ }
+
+ }
+}