From 9556dc6bd7e327dfbfc3c2d5228ad920ad7b9f8e Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Thu, 27 Jun 2019 14:41:51 +0200 Subject: Inject Configurable HTTP Policies to MsgClient - Refactor: Get rid of MsgClient, because MsgClientFactory can do all the work. - Add Connection Timeout and Request Timeout (Policies of HTTP Client) to mzs:DeliveryRequest/Config and application.yaml. - Update readme: Add JDK 12 Requirement --- src/main/java/at/gv/egiz/moazs/msg/MsgClient.java | 80 ----------------------- 1 file changed, 80 deletions(-) delete mode 100644 src/main/java/at/gv/egiz/moazs/msg/MsgClient.java (limited to 'src/main/java/at/gv/egiz/moazs/msg/MsgClient.java') diff --git a/src/main/java/at/gv/egiz/moazs/msg/MsgClient.java b/src/main/java/at/gv/egiz/moazs/msg/MsgClient.java deleted file mode 100644 index d834eff..0000000 --- a/src/main/java/at/gv/egiz/moazs/msg/MsgClient.java +++ /dev/null @@ -1,80 +0,0 @@ -package at.gv.egiz.moazs.msg; - -import at.gv.zustellung.msg.xsd.App2ZusePort; -import at.gv.zustellung.msg.xsd.App2ZusePortService; -import at.gv.zustellung.msg.xsd.DeliveryRequestStatusType; -import at.gv.zustellung.msg.xsd.DeliveryRequestType; -import org.apache.cxf.configuration.jsse.TLSClientParameters; -import org.apache.cxf.endpoint.Client; -import org.apache.cxf.frontend.ClientProxy; -import org.apache.cxf.jaxws.JaxWsClientFactoryBean; -import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; -import org.apache.cxf.message.Message; -import org.apache.cxf.phase.PhaseInterceptor; -import org.apache.cxf.transport.http.HTTPConduit; -import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.lang.Nullable; - -import javax.net.ssl.SSLContext; - -//TODO: Rethink design. could this entire class be replaced? -// Because everything the send() method does could be initialized in -// the MsgClientFactory as well. -public class MsgClient { - - private static final Logger log = LoggerFactory.getLogger(MsgClient.class); - - private final PhaseInterceptor interceptor; - - private final String address; - - //TODO: make configurable - private final int connectionTimeout = 0; - private final int receiveTimeout = 0; - - @Nullable - private final SSLContext sslContext; - - public MsgClient(PhaseInterceptor interceptor, - String address, - @Nullable SSLContext sslContext) { - this.interceptor = interceptor; - this.address = address; - this.sslContext = sslContext; - } - - /** - * Send {@code msgRequest} to {@code Config/Server/ZUSEUrlID} and run {@code interceptor} on response. - * @return - */ - public DeliveryRequestStatusType send(DeliveryRequestType msgRequest) { - - var factory = new JaxWsClientFactoryBean(); - - factory.setServiceClass(App2ZusePort.class); - factory.setAddress(address); - factory.getInInterceptors().add(interceptor); - - var proxy = new JaxWsProxyFactoryBean(factory).create(); - - Client client = ClientProxy.getClient(proxy); - HTTPConduit http = (HTTPConduit) client.getConduit(); - - var httpClientPolicy = new HTTPClientPolicy(); - httpClientPolicy.setConnectionTimeout(connectionTimeout); - httpClientPolicy.setReceiveTimeout(receiveTimeout); - http.setClient(httpClientPolicy); - - if (sslContext != null) { - var tlsParams = new TLSClientParameters(); - tlsParams.setSSLSocketFactory(sslContext.getSocketFactory()); - http.setTlsClientParameters(tlsParams); - log.info("SSLContext initialized. "); - } - - return ((App2ZusePort)proxy).delivery(msgRequest); - } - -} -- cgit v1.2.3