diff options
author | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-07-02 14:19:41 +0200 |
---|---|---|
committer | Christof Rabensteiner <christof.rabensteiner@iaik.tugraz.at> | 2019-07-02 14:19:41 +0200 |
commit | 030488bb7ff9572f35032d80d4101c06cfc98bf5 (patch) | |
tree | 20c563d181a4afe755daed7ec7cc91341a9815ab /src/main/java/at/gv/egiz/moazs/pipeline | |
parent | 45c717760a6efc74f4f15dbc3f55bafc5e9a02d9 (diff) | |
download | moa-zs-030488bb7ff9572f35032d80d4101c06cfc98bf5.tar.gz moa-zs-030488bb7ff9572f35032d80d4101c06cfc98bf5.tar.bz2 moa-zs-030488bb7ff9572f35032d80d4101c06cfc98bf5.zip |
Implement And Integrate tnvz:QueryPersonRequest.
- Merge TnvzClient and TnvzResultVerifier to TnvzHelper; TnvzHelper
now builds the QueryPersonRequest, sends it to the tnvz port and
evaluates the result.
- Publish some interfaces in Mzs2MsgConverter because they are needed
by TnvzHelper.
- Generalize MsgClientFactory to ClientFactory such that it can be
used to generate arbitrary SOAP clients (e.g. also for tnvz!).
Schema Changes to accomodate Tnvz's QueryPersonRequest:
- Add optional tnvz:AustrianAddressesOnly and optional TnvzMetaData to
mzs:mzs:DeliveryRequest.
Removed Unit Tests:
- Remove subset of SameThreadDeliveryPipeline testcases (mimetype
related) because its logic moved to TnvzHelper.
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/pipeline')
-rw-r--r-- | src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java | 61 |
1 files changed, 28 insertions, 33 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java b/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java index 2e0433f..ecf580d 100644 --- a/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java +++ b/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java @@ -2,17 +2,17 @@ package at.gv.egiz.moazs.pipeline; import at.gv.egiz.moazs.MoaZSException; -import at.gv.egiz.moazs.msg.MsgClientFactory; -import at.gv.egiz.moazs.verify.SignatureVerifier; +import at.gv.egiz.moazs.msg.ClientFactory; import at.gv.egiz.moazs.repository.DeliveryRepository; import at.gv.egiz.moazs.scheme.Mzs2MsgConverter; import at.gv.egiz.moazs.scheme.NameSpace; -import at.gv.egiz.moazs.tnvz.TnvzClient; -import at.gv.egiz.moazs.tnvz.TnvzResultVerifier; +import at.gv.egiz.moazs.tnvz.TnvzHelper; +import at.gv.egiz.moazs.verify.SignatureVerifier; import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType; +import at.gv.zustellung.msg.xsd.App2ZusePort; import at.gv.zustellung.msg.xsd.DeliveryAnswerType; import at.gv.zustellung.msg.xsd.DeliveryRequestStatusType; -import at.gv.zustellung.tnvz.xsd.PersonResultType; +import at.gv.zustellung.tnvz.xsd.TNVZServicePort; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; @@ -32,54 +32,43 @@ public class SameThreadDeliveryPipeline implements DeliveryPipeline { private static final Logger log = Logger.getLogger(SameThreadDeliveryPipeline.class); private final DeliveryRepository repository; - private final TnvzClient tnvzClient; - private final TnvzResultVerifier tnvzVerifier; + private final TnvzHelper tnvzHelper; private final Mzs2MsgConverter converter; - private final MsgClientFactory msgClientFactory; + private final ClientFactory clientFactory; private final SignatureVerifier verifier; @Autowired public SameThreadDeliveryPipeline(DeliveryRepository repository, - TnvzClient tnvzClient, - TnvzResultVerifier tnvzVerifier, + TnvzHelper tnvzHelper, Mzs2MsgConverter converter, - MsgClientFactory msgClientFactory, + ClientFactory clientFactory, SignatureVerifier verifier ) { this.repository = repository; - this.tnvzClient = tnvzClient; - this.tnvzVerifier = tnvzVerifier; + this.tnvzHelper = tnvzHelper; this.converter = converter; - this.msgClientFactory = msgClientFactory; + this.clientFactory = clientFactory; this.verifier = verifier; } @Override public void processRequest(String appDeliveryId) { - var exceptionBuilder = moaZSExceptionBuilder(""); + var exceptionBuilder = moaZSExceptionBuilder(); try { var mzsRequest = repository.getDeliveryRequest(appDeliveryId).orElseThrow(); exceptionBuilder.withMzsRequest(mzsRequest); - at.gv.zustellung.msg.xsd.DeliveryRequestType msgRequest; - - if (mzsRequest.getConfig().isPerformQueryPersonRequest()) { - var tnvzResult = performTnvzQuery(mzsRequest); - exceptionBuilder.withTnvzResult(tnvzResult); - - msgRequest = converter.convert(mzsRequest, tnvzResult.getSuccess().getIdentification()); - } else { - msgRequest = converter.convert(mzsRequest); - } + at.gv.zustellung.msg.xsd.DeliveryRequestType msgRequest = buildMsgRequest(mzsRequest, exceptionBuilder); exceptionBuilder.withMsgRequest(msgRequest); - var status = msgClientFactory.create(mzsRequest.getConfig().getMSGClient()).delivery(msgRequest); + var msgClientParams = mzsRequest.getConfig().getMSGClient(); + App2ZusePort client = clientFactory.create(msgClientParams, App2ZusePort.class); + var status = client.delivery(msgRequest); exceptionBuilder.withMsgResult(status); verifySignedStatus(appDeliveryId, exceptionBuilder); - repository.add(status); } catch (MoaZSException exception) { @@ -92,6 +81,18 @@ public class SameThreadDeliveryPipeline implements DeliveryPipeline { } } + private at.gv.zustellung.msg.xsd.DeliveryRequestType buildMsgRequest(DeliveryRequestType mzsRequest, + MoaZSException.Builder exceptionBuilder) { + if (mzsRequest.getConfig().isPerformQueryPersonRequest()) { + var tnvzClientParams = mzsRequest.getConfig().getTNVZClient(); + TNVZServicePort tvnzPort = clientFactory.create(tnvzClientParams, TNVZServicePort.class); + var identification = tnvzHelper.performQueryPersonRequest(mzsRequest, tvnzPort, exceptionBuilder); + return converter.convert(mzsRequest, identification); + } else { + return converter.convert(mzsRequest); + } + } + private void verifySignedStatus(String appDeliveryId, MoaZSException.Builder exceptionBuilder) throws MoaZSException { try { @@ -106,12 +107,6 @@ public class SameThreadDeliveryPipeline implements DeliveryPipeline { } } - private PersonResultType performTnvzQuery(DeliveryRequestType request) { - var result = tnvzClient.query(request.getSender(), request.getReceiver()); - tnvzVerifier.verify(request, result); - return result; - } - private DeliveryRequestStatusType generateErrorStatus(MoaZSException exception, String appDeliveryId) { var infoBuilder = errorInfoTypeBuilder() |