From d31538c3d0694c3d2cb5d65c6670b84b2e6fb0f4 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Wed, 28 Aug 2019 10:27:36 +0200 Subject: Ensure that Each Step of Each Backend Process is Logged --- src/main/java/at/gv/egiz/moazs/backend/DeliveryRequestBackend.java | 5 ++++- .../at/gv/egiz/moazs/backend/ForwardResponseToServiceSink.java | 6 ++++++ src/main/java/at/gv/egiz/moazs/backend/LogResponseSink.java | 3 +-- src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java | 6 ++++++ src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java | 7 +++++++ src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java | 2 ++ 6 files changed, 26 insertions(+), 3 deletions(-) (limited to 'src/main/java/at/gv/egiz/moazs/backend') diff --git a/src/main/java/at/gv/egiz/moazs/backend/DeliveryRequestBackend.java b/src/main/java/at/gv/egiz/moazs/backend/DeliveryRequestBackend.java index 178e26c..c4207f0 100644 --- a/src/main/java/at/gv/egiz/moazs/backend/DeliveryRequestBackend.java +++ b/src/main/java/at/gv/egiz/moazs/backend/DeliveryRequestBackend.java @@ -37,6 +37,9 @@ public class DeliveryRequestBackend implements Consumer { "DeliveryRequest for AppDeliveryID=%s is not in repository. " ; private static final String BINARY_RESPONSE_MISSING_ERROR_MSG = "Binary DeliveryRequestStatus for AppDeliveryID=%s is not in repository. " ; + private static final String BACKEND_ACCEPT_MSG = + "Backend accepts mzs:DeliveryRequest with AppDeliveryID={}."; + private static final at.gv.zustellung.app2mzs.xsd.ObjectFactory mzsOF = new at.gv.zustellung.app2mzs.xsd.ObjectFactory(); private static final at.gv.zustellung.msg.xsd.ObjectFactory msgOF = new at.gv.zustellung.msg.xsd.ObjectFactory(); @@ -79,12 +82,12 @@ public class DeliveryRequestBackend implements Consumer { @Override public void accept(String appDeliveryID) { + log.info(BACKEND_ACCEPT_MSG, appDeliveryID); DeliveryRequestStatusType status = null; var fallbackAnswerBuilder = errorBuilder().withAppDeliveryID(appDeliveryID); try { - log.trace("Fetch mzs:DeliveryRequest wiht AppDeliveryID={} from repository.", appDeliveryID); var mzsRequest = repository.retrieveDeliveryRequest(appDeliveryID).orElseThrow( () -> moaZSException(format(DELIVERY_REQUEST_MISSING_ERROR_MSG, appDeliveryID))); traceMzsRequest(mzsRequest); diff --git a/src/main/java/at/gv/egiz/moazs/backend/ForwardResponseToServiceSink.java b/src/main/java/at/gv/egiz/moazs/backend/ForwardResponseToServiceSink.java index 4b3c085..b64c186 100644 --- a/src/main/java/at/gv/egiz/moazs/backend/ForwardResponseToServiceSink.java +++ b/src/main/java/at/gv/egiz/moazs/backend/ForwardResponseToServiceSink.java @@ -6,6 +6,8 @@ import at.gv.egiz.moazs.scheme.Msg2MzsConverter; import at.gv.egiz.moazs.scheme.MsgResponse; import at.gv.zustellung.app2mzs.xsd.ClientType; import at.gv.zustellung.app2mzs.xsd.Mzs2AppPortType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -14,6 +16,8 @@ import java.util.concurrent.CompletableFuture; @Component public class ForwardResponseToServiceSink { + private static final Logger log = LoggerFactory.getLogger(ForwardResponseToServiceSink.class); + private final ClientFactory factory; private final DeliveryRepository repository; private final Msg2MzsConverter converter; @@ -26,6 +30,8 @@ public class ForwardResponseToServiceSink { } public CompletableFuture send(MsgResponse msgResponse, ClientType params) { + log.info("Forward msg:{} with AppDeliveryID={} to service at {}.", + msgResponse.getRootElementLocalPart(), msgResponse.getAppDeliveryID(), params.getURL()); var binaryResponse = repository.retrieveBinaryResponse(msgResponse.getResponseID()); Mzs2AppPortType client = factory.create(params, Mzs2AppPortType.class); return msgResponse.sendToMzsClient(converter, binaryResponse, client); diff --git a/src/main/java/at/gv/egiz/moazs/backend/LogResponseSink.java b/src/main/java/at/gv/egiz/moazs/backend/LogResponseSink.java index d419944..bf2e615 100644 --- a/src/main/java/at/gv/egiz/moazs/backend/LogResponseSink.java +++ b/src/main/java/at/gv/egiz/moazs/backend/LogResponseSink.java @@ -14,7 +14,6 @@ import static java.util.concurrent.CompletableFuture.completedFuture; public class LogResponseSink { private static final Logger log = LoggerFactory.getLogger(LogResponseSink.class); - private static final String LOG_LEVEL_WARN_MESSAGE = "Will not log response because INFO level is disabled."; private final Marshaller msgMarshaller; @@ -35,7 +34,7 @@ public class LogResponseSink { builder.append(msgMarshaller.marshallXml(msgResponse.getResponseAsJAXBElement())); log.info(builder.toString()); } else { - log.warn(LOG_LEVEL_WARN_MESSAGE); + log.warn("Will not log response because INFO level is disabled."); } return completedFuture(null); 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 df0f83e..844a559 100644 --- a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java +++ b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseBackend.java @@ -51,6 +51,7 @@ public class MsgResponseBackend implements Consumer { */ @Override public void accept(String responseID) { + log.info("Backend accepts MsgResponse with responseID={}.", responseID); supplyAsync(() -> verifySignature(responseID)) .thenAcceptAsync(msgResponse -> applySinks(msgResponse)) .exceptionally(ex -> { @@ -67,6 +68,10 @@ public class MsgResponseBackend implements Consumer { try { var binaryResponse = repository.retrieveBinaryResponse(responseID).orElseThrow( () -> moaZSException(BINARY_RESPONSE_MISSING_ERROR_MSG, MoaZSException.ERROR_MZS_BINARY_RESPONSE_MISSING)); + + log.info("Verify Signature of msg:{} with AppDeliveryID={}.", + response.getRootElementLocalPart(), response.getAppDeliveryID()); + signatureVerifier.accept(binaryResponse); return response; } catch (MoaZSException ex) { @@ -80,6 +85,7 @@ public class MsgResponseBackend implements Consumer { private void applySinks(MsgResponse msgResponse) { var appDeliveryID = msgResponse.getAppDeliveryID(); + var request = repository.retrieveDeliveryRequest(appDeliveryID).orElseThrow( ()-> moaZSException(format(REQUEST_MISSING_ERROR_MSG, appDeliveryID))); diff --git a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java index 0df5c68..46b0101 100644 --- a/src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java +++ b/src/main/java/at/gv/egiz/moazs/backend/MsgResponseSinkHub.java @@ -2,6 +2,8 @@ package at.gv.egiz.moazs.backend; import at.gv.egiz.moazs.scheme.MsgResponse; import at.gv.zustellung.app2mzs.xsd.MsgResponseSinksType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -10,6 +12,8 @@ import static java.util.concurrent.CompletableFuture.supplyAsync; @Component public class MsgResponseSinkHub { + private static final Logger log = LoggerFactory.getLogger(MsgResponseSinkHub.class); + private final SaveResponseToFileSink saveResponseSink; private final LogResponseSink logResponseSink; private final ForwardResponseToServiceSink forwardResponseSink; @@ -27,6 +31,9 @@ public class MsgResponseSinkHub { */ public void applySinks(MsgResponse msgResponse, MsgResponseSinksType sinkParams) { + log.info("Apply Sinks to msg:{} with appDeliveryID={}.", + msgResponse.getRootElementLocalPart(), msgResponse.getAppDeliveryID()); + if (sinkParams.getSaveResponseToFile().isActive()) { supplyAsync(() -> saveResponseSink.save(msgResponse, sinkParams.getSaveResponseToFile().getPath())); } 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 c58e1a5..38eef2e 100644 --- a/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java +++ b/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java @@ -48,6 +48,8 @@ public class SaveResponseToFileSink { public CompletableFuture save(MsgResponse response, String rootPath) { var responseID = response.getResponseID(); + log.info("Save msg:{} with AppDeliveryID={}.", + response.getRootElementLocalPart(), response.getAppDeliveryID()); var responsePath = generatePath(rootPath, responseID, "xml"); var storeResponseToFileSystemFuture = supplyAsync(() -> msgMarshaller.marshallXml(response.getResponseAsJAXBElement())) -- cgit v1.2.3