aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/gv/egiz/moazs/backend/DeliveryRequestBackend.java4
-rw-r--r--src/main/java/at/gv/egiz/moazs/backend/ForwardResponseToServiceSink.java2
-rw-r--r--src/main/java/at/gv/egiz/moazs/client/ClientFactory.java45
-rw-r--r--src/test/java/at/gv/egiz/moazs/DeliveryRequestBackendTest.java4
-rw-r--r--src/test/java/at/gv/egiz/moazs/ITEndToEndTest.java6
-rw-r--r--src/test/java/at/gv/egiz/moazs/ITSSLMsgClientTest.java2
6 files changed, 32 insertions, 31 deletions
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 9cbdd81..7e1d2f7 100644
--- a/src/main/java/at/gv/egiz/moazs/backend/DeliveryRequestBackend.java
+++ b/src/main/java/at/gv/egiz/moazs/backend/DeliveryRequestBackend.java
@@ -121,7 +121,7 @@ public class DeliveryRequestBackend implements Consumer<String> {
var msgRequest = buildMsgRequest(mzsRequest);
traceMsgRequest(msgRequest);
var msgClientParams = mzsRequest.getConfig().getMSGClient();
- App2ZusePort client = clientFactory.createSOAP12(msgClientParams, App2ZusePort.class);
+ App2ZusePort client = clientFactory.createMsgClient(msgClientParams);
status = client.delivery(msgRequest);
traceMsgResponse(status);
@@ -159,7 +159,7 @@ public class DeliveryRequestBackend implements Consumer<String> {
if (mzsRequest.getConfig().isPerformQueryPersonRequest()) {
log.trace("Perform QueryPersonRequest. ");
var tnvzClientParams = mzsRequest.getConfig().getTNVZClient();
- TNVZServicePort tnvzPort = clientFactory.createSOAP12(tnvzClientParams, TNVZServicePort.class);
+ TNVZServicePort tnvzPort = clientFactory.createTnvzClient(tnvzClientParams);
var identification = tnvzHelper.performQueryPersonRequest(mzsRequest, tnvzPort);
return converter.convert(mzsRequest, identification);
} else {
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 b6f9b44..1312a5f 100644
--- a/src/main/java/at/gv/egiz/moazs/backend/ForwardResponseToServiceSink.java
+++ b/src/main/java/at/gv/egiz/moazs/backend/ForwardResponseToServiceSink.java
@@ -58,7 +58,7 @@ public class ForwardResponseToServiceSink {
log.info("Forward msg:{} with AppDeliveryID={} to service at {}.",
msgResponse.getRootElementLocalPart(), msgResponse.getAppDeliveryID(), params.getURL());
var binaryResponse = repository.retrieveBinaryResponse(msgResponse.getResponseID());
- Mzs2AppPortType client = factory.createSOAP11(params, Mzs2AppPortType.class);
+ Mzs2AppPortType client = factory.createAppClient(params);
return msgResponse.sendToAppClient(converter, binaryResponse, client);
}
}
diff --git a/src/main/java/at/gv/egiz/moazs/client/ClientFactory.java b/src/main/java/at/gv/egiz/moazs/client/ClientFactory.java
index c294aa3..18fcdd9 100644
--- a/src/main/java/at/gv/egiz/moazs/client/ClientFactory.java
+++ b/src/main/java/at/gv/egiz/moazs/client/ClientFactory.java
@@ -26,7 +26,10 @@ import at.gv.egiz.moazs.util.FileUtils;
import at.gv.egiz.moazs.util.StoreSOAPBodyBinaryInRepositoryInterceptor;
import at.gv.zustellung.app2mzs.xsd.ClientType;
import at.gv.zustellung.app2mzs.xsd.KeyStoreType;
+import at.gv.zustellung.app2mzs.xsd.Mzs2AppPortType;
import at.gv.zustellung.app2mzs.xsd.SSLType;
+import at.gv.zustellung.msg.xsd.App2ZusePort;
+import at.gv.zustellung.tnvz.xsd.TNVZServicePort;
import org.apache.cxf.configuration.jsse.TLSClientParameters;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.ext.logging.LoggingInInterceptor;
@@ -78,48 +81,46 @@ public class ClientFactory {
this.configUtil = configUtil;
}
- /**
- * Creates a client that communicates with a soap 1.2 service.
- *
- * @param params for the client, such as service url and ssl parameters.
- * @return the client
- */
- public <T> T createSOAP12(ClientType params, Class<T> clazz) {
- return createSOAPClient(params, clazz, true);
+ public TNVZServicePort createTnvzClient(ClientType params) {
+ return createSOAPClient(params, TNVZServicePort.class, true, false, false);
}
- /**
- * Creates a client that communicates with a soap 1.1 service.
- *
- * @param params for the client, such as service url and ssl parameters.
- * @return the client
- */
- public <T> T createSOAP11(ClientType params, Class<T> clazz) {
- return createSOAPClient(params, clazz, false);
+ public Mzs2AppPortType createAppClient(ClientType params) {
+ return createSOAPClient(params, Mzs2AppPortType.class, false, false, true);
+ }
+
+ public App2ZusePort createMsgClient(ClientType params) {
+ return createSOAPClient(params, App2ZusePort.class, true, true, true);
}
- private <T> T createSOAPClient(ClientType params, Class<T> clazz, boolean isSoap12) {
+ private <T> T createSOAPClient(ClientType params, Class<T> clazz, boolean isSoap12, boolean storeResponse, boolean mtomEnabled) {
log.info("Create client for service {}", params.getURL());
var factory = new JaxWsClientFactoryBean();
factory.setServiceClass(clazz);
factory.setAddress(params.getURL());
- factory.getInInterceptors().add(storeResponseInterceptor);
+
+ if (storeResponse) {
+ factory.getInInterceptors().add(storeResponseInterceptor);
+ }
if (isSoap12) {
- factory.setBindingId(SOAPBinding.SOAP12HTTP_MTOM_BINDING);
+ factory.setBindingId(SOAPBinding.SOAP12HTTP_BINDING);
}
+
setupLoggingInterceptors(factory);
var proxy = new JaxWsProxyFactoryBean(factory).create();
Client client = ClientProxy.getClient(proxy);
HTTPConduit http = (HTTPConduit) client.getConduit();
- var bindingProvider = (BindingProvider) proxy;
- SOAPBinding binding = (SOAPBinding) bindingProvider.getBinding();
- binding.setMTOMEnabled(true);
+ if (mtomEnabled) {
+ var bindingProvider = (BindingProvider) proxy;
+ SOAPBinding binding = (SOAPBinding) bindingProvider.getBinding();
+ binding.setMTOMEnabled(true);
+ }
var httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(params.getConnectionTimeout().longValueExact());
diff --git a/src/test/java/at/gv/egiz/moazs/DeliveryRequestBackendTest.java b/src/test/java/at/gv/egiz/moazs/DeliveryRequestBackendTest.java
index e1859b5..f2e33ab 100644
--- a/src/test/java/at/gv/egiz/moazs/DeliveryRequestBackendTest.java
+++ b/src/test/java/at/gv/egiz/moazs/DeliveryRequestBackendTest.java
@@ -165,11 +165,11 @@ public class DeliveryRequestBackendTest {
when(converter.convert(eq(mzsRequest) )).thenReturn(msgRequest);
when(converter.convert(eq(mzsRequest), any())).thenReturn(msgRequest);
- when(clientFactory.createSOAP12(any(), same(App2ZusePort.class))).thenReturn(msgClient);
+ when(clientFactory.createMsgClient(any())).thenReturn(msgClient);
when(msgClient.delivery(msgRequest)).thenReturn(status);
if (tnvzRequest) {
- when(clientFactory.createSOAP12(any(), same(TNVZServicePort.class))).thenReturn(tnvzClient);
+ when(clientFactory.createTnvzClient(any())).thenReturn(tnvzClient);
when(tnvzHelper.performQueryPersonRequest(any(), any())).thenReturn(identification);
}
return status;
diff --git a/src/test/java/at/gv/egiz/moazs/ITEndToEndTest.java b/src/test/java/at/gv/egiz/moazs/ITEndToEndTest.java
index 7e03a13..f350681 100644
--- a/src/test/java/at/gv/egiz/moazs/ITEndToEndTest.java
+++ b/src/test/java/at/gv/egiz/moazs/ITEndToEndTest.java
@@ -112,9 +112,9 @@ public class ITEndToEndTest {
var tnvz = mockTnvz();
var msg = mockMsg();
APP = mockApp();
- when(factory.createSOAP12(any(), same(TNVZServicePort.class))).thenReturn(tnvz);
- when(factory.createSOAP12(any(), same(App2ZusePort.class))).thenReturn(msg);
- when(factory.createSOAP11(any(), same(Mzs2AppPortType.class))).thenReturn(APP);
+ when(factory.createTnvzClient(any())).thenReturn(tnvz);
+ when(factory.createMsgClient(any())).thenReturn(msg);
+ when(factory.createAppClient(any())).thenReturn(APP);
return factory;
}
diff --git a/src/test/java/at/gv/egiz/moazs/ITSSLMsgClientTest.java b/src/test/java/at/gv/egiz/moazs/ITSSLMsgClientTest.java
index 107ede5..4158aec 100644
--- a/src/test/java/at/gv/egiz/moazs/ITSSLMsgClientTest.java
+++ b/src/test/java/at/gv/egiz/moazs/ITSSLMsgClientTest.java
@@ -86,7 +86,7 @@ public class ITSSLMsgClientTest {
}
private App2ZusePort createPort(ClientType params) {
- return factory.createSOAP12(params, App2ZusePort.class);
+ return factory.createMsgClient(params);
}
// Requirements: