Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
 Sun Dec 17 22:34:08 2017
@@ -19,786 +19,48 @@
 
 package org.apache.axis2.transport.http.impl.httpclient4;
 
-
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.NamedValue;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.i18n.Messages;
-import org.apache.axis2.transport.MessageFormatter;
-import org.apache.axis2.transport.http.HTTPAuthenticator;
+import org.apache.axis2.transport.http.AxisRequestEntity;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.transport.http.HTTPSender;
-import org.apache.axis2.transport.http.HTTPTransportConstants;
-import org.apache.axis2.util.MessageProcessorSelector;
-import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.axis2.transport.http.Request;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.http.Header;
-import org.apache.http.HeaderElement;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.HttpVersion;
-import org.apache.http.NameValuePair;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
-import org.apache.http.auth.NTCredentials;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.auth.params.AuthPNames;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.client.params.AuthPolicy;
-import org.apache.http.client.params.ClientPNames;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.scheme.PlainSocketFactory;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.impl.auth.NTLMSchemeFactory;
-import org.apache.http.impl.client.AbstractHttpClient;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
-import org.apache.http.message.BasicHeader;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.CoreProtocolPNames;
-import org.apache.http.params.HttpParams;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HTTP;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.util.EntityUtils;
-
-import javax.xml.namespace.QName;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URISyntaxException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.HttpClientConnectionManager;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.ssl.SSLContexts;
+
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.zip.GZIPInputStream;
 
+import javax.net.ssl.SSLContext;
 
 public class HTTPSenderImpl extends HTTPSender {
 
     private static final Log log = LogFactory.getLog(HTTPSenderImpl.class);
 
-    /**
-     * Used to send a request via HTTP Get method
-     *
-     * @param msgContext        - The MessageContext of the message
-     * @param url               - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected void sendViaGet(MessageContext msgContext, URL url, String 
soapActionString)
-            throws AxisFault {
-        HttpGet httpGet = new HttpGet();
-        AbstractHttpClient httpClient = getHttpClient(msgContext);
-        MessageFormatter messageFormatter = 
populateCommonProperties(msgContext, url, httpGet,
-                                                                     
httpClient, soapActionString);
-
-        // Need to have this here because we can have soap action when using 
the
-        // soap response MEP
-        String soapAction = messageFormatter
-                .formatSOAPAction(msgContext, format, soapActionString);
-
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            httpGet.setHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-
-        /*
-         * main execution takes place..
-         */
-        HttpResponse response = null;
-        try {
-            response = executeMethod(httpClient, msgContext, url, httpGet);
-            handleResponse(msgContext, response);
-        } catch (IOException e) {
-            log.info("Unable to sendViaGet to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, response);
-        }
-    }
-
     @Override
-    protected void cleanup(MessageContext msgContext, Object httpResponse) {
-        HttpResponse response;
-        if (httpResponse instanceof HttpResponse) {
-            response = (HttpResponse) httpResponse;
-        } else {
-            log.trace("HttpResponse expected, but found - " + httpResponse);
-            return;
-        }
-        if (msgContext.isPropertyTrue(HTTPConstants.CLEANUP_RESPONSE)) {
-            log.trace("Cleaning response : " + response);
-            HttpEntity entity = response.getEntity();
-            if (entity != null) {
-                try {
-                    EntityUtils.consume(entity);
-                } catch (IOException e) {
-                    log.error("Error while cleaning response : " + response, 
e);
-                }
-            }
-        }
-    }
-
-    /**
-     * Used to send a request via HTTP Delete Method
-     *
-     * @param msgContext        - The MessageContext of the message
-     * @param url               - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected void sendViaDelete(MessageContext msgContext, URL url, String 
soapActionString)
-            throws AxisFault {
-
-        HttpDelete deleteMethod = new HttpDelete();
-        AbstractHttpClient httpClient = getHttpClient(msgContext);
-        populateCommonProperties(msgContext, url, deleteMethod, httpClient, 
soapActionString);
-
-        /*
-         * main execution takes place..
-         */
-        HttpResponse response = null;
-        try {
-            response = executeMethod(httpClient, msgContext, url, 
deleteMethod);
-            handleResponse(msgContext, response);
-        } catch (IOException e) {
-            log.info("Unable to sendViaDelete to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, response);
-        }
-    }
-
-    /**
-     * Used to send a request via HTTP Post Method
-     *
-     * @param msgContext       - The MessageContext of the message
-     * @param url              - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected void sendViaPost(MessageContext msgContext, URL url, String 
soapActionString)
-            throws AxisFault {
-
-        AbstractHttpClient httpClient = getHttpClient(msgContext);
-
-        /*
-         * What's up with this, it never gets used anywhere?? --Glen String
-         * charEncoding = (String)
-         * msgContext.getProperty(Constants.Configuration
-         * .CHARACTER_SET_ENCODING);
-         *
-         * if (charEncoding == null) { charEncoding =
-         * MessageContext.DEFAULT_CHAR_SET_ENCODING; }
-         */
-
-        HttpPost postMethod = new HttpPost();
-        if (log.isTraceEnabled()) {
-            log.trace(Thread.currentThread() + " PostMethod " + postMethod + " 
/ " + httpClient);
-        }
-        MessageFormatter messageFormatter = 
populateCommonProperties(msgContext, url, postMethod,
-                                                                     
httpClient, soapActionString);
-        AxisRequestEntityImpl requestEntity =
-                new AxisRequestEntityImpl(messageFormatter, msgContext, format,
-                                          soapActionString, chunked, 
isAllowedRetry);
-        postMethod.setEntity(requestEntity);
-
-        if (!httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10) && chunked) {
-            requestEntity.setChunked(chunked);
-        }
-
-        String soapAction = messageFormatter.formatSOAPAction(msgContext, 
format, soapActionString);
-
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            postMethod.setHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-
-        /*
-         * main execution takes place..
-         */
-        HttpResponse response = null;
-        try {
-            response = executeMethod(httpClient, msgContext, url, postMethod);
-            handleResponse(msgContext, response);
-        } catch (IOException e) {
-            log.info("Unable to sendViaPost to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, response);
-        }
-    }
-
-    /**
-     * Used to send a request via HTTP Put Method
-     *
-     * @param msgContext       - The MessageContext of the message
-     * @param url              - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected void sendViaPut(MessageContext msgContext, URL url, String 
soapActionString)
-            throws AxisFault {
-
-        AbstractHttpClient httpClient = getHttpClient(msgContext);
-
-        /*
-         * Same deal - this value never gets used, why is it here? --Glen 
String
-         * charEncoding = (String)
-         * msgContext.getProperty(Constants.Configuration
-         * .CHARACTER_SET_ENCODING);
-         *
-         * if (charEncoding == null) { charEncoding =
-         * MessageContext.DEFAULT_CHAR_SET_ENCODING; }
-         */
-
-        HttpPut putMethod = new HttpPut();
-        MessageFormatter messageFormatter = 
populateCommonProperties(msgContext, url, putMethod,
-                                                                     
httpClient, soapActionString);
-        AxisRequestEntityImpl requestEntity =
-                new AxisRequestEntityImpl(messageFormatter, msgContext, format,
-                                          soapActionString, chunked, 
isAllowedRetry);
-        putMethod.setEntity(requestEntity);
-
-        if (!httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10) && chunked) {
-            requestEntity.setChunked(chunked);
-        }
-
-        String soapAction = messageFormatter.formatSOAPAction(msgContext, 
format, soapActionString);
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            putMethod.setHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-
-        /*
-         * main execution takes place..
-         */
-        HttpResponse response = null;
-        try {
-            response = executeMethod(httpClient, msgContext, url, putMethod);
-            handleResponse(msgContext, response);
-        } catch (IOException e) {
-            log.info("Unable to sendViaPut to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, response);
-        }
-    }
-
-    /**
-     * Used to handle the HTTP Response
-     *
-     * @param msgContext - The MessageContext of the message
-     * @param -          The HTTP method used
-     * @throws java.io.IOException - Thrown in case an exception occurs
-     */
-    protected void handleResponse(MessageContext msgContext, Object 
httpResponse)
-            throws IOException {
-        HttpResponse response;
-        if (httpResponse instanceof HttpResponse) {
-            response = (HttpResponse) httpResponse;
-        } else {
-            log.trace("HttpResponse expected, but found - " + httpResponse);
-            return;
-        }
-        int statusCode = response.getStatusLine().getStatusCode();
-        HTTPStatusCodeFamily family = getHTTPStatusCodeFamily(statusCode);
-        log.trace("Handling response - " + statusCode);
-        if (statusCode == HttpStatus.SC_ACCEPTED) {
-            msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, 
Boolean.TRUE);
-            /*
-            * When an HTTP 202 Accepted code has been received, this will be
-            * the case of an execution of an in-only operation. In such a
-            * scenario, the HTTP response headers should be returned, i.e.
-            * session cookies.
-            */
-            obtainHTTPHeaderInformation(response, msgContext);
-
-        } else if (HTTPStatusCodeFamily.SUCCESSFUL.equals(family)) {
-            // We don't clean the response here because the response will be 
used afterwards
-            msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, 
Boolean.FALSE);
-            processResponse(response, msgContext);
-
-        } else if (statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR
-                   || statusCode == HttpStatus.SC_BAD_REQUEST) {
-            msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, 
Boolean.TRUE);
-            Header contentTypeHeader = 
response.getFirstHeader(HTTPConstants.HEADER_CONTENT_TYPE);
-            String value = null;
-            if (contentTypeHeader != null) {
-                value = contentTypeHeader.getValue();
-            }
-            OperationContext opContext = msgContext.getOperationContext();
-            if (opContext != null) {
-                MessageContext inMessageContext = opContext
-                        
.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-                if (inMessageContext != null) {
-                    inMessageContext.setProcessingFault(true);
-                }
-            }
-            if (value != null) {
-                msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, 
Boolean.FALSE);
-                processResponse(response, msgContext);
-            }
-
-            if 
(org.apache.axis2.util.Utils.isClientThreadNonBlockingPropertySet(msgContext)) {
-                throw new AxisFault(Messages.
-                        getMessage("transportError",
-                                   String.valueOf(statusCode),
-                                   response.getStatusLine().toString()));
-            }
-        } else {
-            msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, 
Boolean.TRUE);
-            throw new AxisFault(Messages.getMessage("transportError", 
String.valueOf(statusCode),
-                                                    
response.getStatusLine().toString()));
-        }
-    }
-
-    /**
-     * Collect the HTTP header information and set them in the message context
-     *
-     * @param httpResponse which holds the header information
-     * @param msgContext the MessageContext in which to place the 
information... OR
-     *                   NOT!
-     * @throws AxisFault if problems occur
-     */
-    protected void obtainHTTPHeaderInformation(Object httpResponse, 
MessageContext msgContext)
-            throws AxisFault {
-        HttpResponse response;
-        if (httpResponse instanceof HttpResponse) {
-            response = (HttpResponse) httpResponse;
-        } else {
-            return;
-        }
-        // Set RESPONSE properties onto the REQUEST message context. They will
-        // need to be copied off the request context onto
-        // the response context elsewhere, for example in the
-        // OutInOperationClient.
-        Map transportHeaders = new 
HTTPTransportHeaders(response.getAllHeaders());
-        msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, 
transportHeaders);
-        msgContext.setProperty(HTTPConstants.MC_HTTP_STATUS_CODE,
-                               new 
Integer(response.getStatusLine().getStatusCode()));
-        Header header = 
response.getFirstHeader(HTTPConstants.HEADER_CONTENT_TYPE);
-
-        if (header != null) {
-            HeaderElement[] headers = header.getElements();
-            MessageContext inMessageContext = 
msgContext.getOperationContext().getMessageContext(
-                    WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-
-            Object contentType = header.getValue();
-            Object charSetEnc = null;
-
-            for (int i = 0; i < headers.length; i++) {
-                NameValuePair charsetEnc = headers[i]
-                        .getParameterByName(HTTPConstants.CHAR_SET_ENCODING);
-                if (charsetEnc != null) {
-                    charSetEnc = charsetEnc.getValue();
-                }
-            }
-
-            if (inMessageContext != null) {
-                
inMessageContext.setProperty(Constants.Configuration.CONTENT_TYPE, contentType);
-                
inMessageContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING,
-                                             charSetEnc);
-            } else {
-
-                // Transport details will be stored in a HashMap so that 
anybody
-                // interested can
-                // retrieve them
-                HashMap transportInfoMap = new HashMap();
-                transportInfoMap.put(Constants.Configuration.CONTENT_TYPE, 
contentType);
-                
transportInfoMap.put(Constants.Configuration.CHARACTER_SET_ENCODING, 
charSetEnc);
-
-                // the HashMap is stored in the outgoing message.
-                msgContext
-                        
.setProperty(Constants.Configuration.TRANSPORT_INFO_MAP, transportInfoMap);
-            }
-        }
-
-        String sessionCookie = null;
-        // Process old style headers first
-        Header[] cookieHeaders = 
response.getHeaders(HTTPConstants.HEADER_SET_COOKIE);
-        String customCoookiId = (String) 
msgContext.getProperty(Constants.CUSTOM_COOKIE_ID);
-
-        // The following only check for JSESSIONID / axis_session / 
custom-cookie-id from the Set-Cookie header.
-        // But it will ignore if there are other Set-Cookie values, which may 
cause issues at client level,
-        // when invoking via a load-balancer, which expect some specific 
Cookie value.
-        // So the correct fix is to add whatever the value(s) in the 
Set-Cookie header as session cookie.
-
-//        for (int i = 0; i < cookieHeaders.length; i++) {
-//            HeaderElement[] elements = cookieHeaders[i].getElements();
-//            for (int e = 0; e < elements.length; e++) {
-//                HeaderElement element = elements[e];
-//                if 
(Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())
-//                    || 
Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//                if (customCoookiId != null && 
customCoookiId.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//            }
-//        }
-
-        sessionCookie = processSetCookieHeaders(cookieHeaders);
-
-        // Overwrite old style cookies with new style ones if present
-        cookieHeaders = response.getHeaders(HTTPConstants.HEADER_SET_COOKIE2);
-        for (int i = 0; i < cookieHeaders.length; i++) {
-            HeaderElement[] elements = cookieHeaders[i].getElements();
-            for (int e = 0; e < elements.length; e++) {
-                HeaderElement element = elements[e];
-                if 
(Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())
-                    || 
Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
-                    sessionCookie = processCookieHeader(element);
-                }
-                if (customCoookiId != null && 
customCoookiId.equalsIgnoreCase(element.getName())) {
-                    sessionCookie = processCookieHeader(element);
-                }
-            }
-        }
-
-        if (sessionCookie != null  && !sessionCookie.equals("")) {
-            
msgContext.getServiceContext().setProperty(HTTPConstants.COOKIE_STRING, 
sessionCookie);
-        }
-    }
-
-    private String processCookieHeader(HeaderElement element) {
-        String cookie = element.getName() + "=" + element.getValue();
-        NameValuePair[] parameters = element.getParameters();
-        for (int j = 0; parameters != null && j < parameters.length; j++) {
-            NameValuePair parameter = parameters[j];
-            cookie = cookie + "; " + parameter.getName() + "=" + 
parameter.getValue();
-        }
-        return cookie;
-    }
-
-    private String processSetCookieHeaders(Header[] headers) {
-        String cookie = "";
-        for (Header header : headers) {
-            if (!cookie.equals("")) {
-                cookie = cookie + ";";
-            }
-            HeaderElement[] elements = header.getElements();
-            for (HeaderElement element : elements) {
-                cookie = cookie + element.getName() + "=" + element.getValue();
-                NameValuePair[] parameters = element.getParameters();
-                for (NameValuePair parameter : parameters) {
-                    cookie = cookie + "; " + parameter.getName() + "=" + 
parameter.getValue();
-                }
-            }
-        }
-        return cookie;
-    }
-
-    protected void processResponse(HttpResponse response, MessageContext 
msgContext)
-            throws IOException {
-        obtainHTTPHeaderInformation(response, msgContext);
-
-        HttpEntity httpEntity = response.getEntity();
-        InputStream in = httpEntity.getContent();
-        if (in == null) {
-            throw new AxisFault(Messages.getMessage("canNotBeNull", 
"InputStream"));
-        }
-        Header contentEncoding = httpEntity.getContentEncoding();
-        if (contentEncoding != null) {
-            if 
(contentEncoding.getValue().equalsIgnoreCase(HTTPConstants.COMPRESSION_GZIP)) {
-                in = new GZIPInputStream(in);
-                // If the content-encoding is identity we can basically ignore
-                // it.
-            } else if 
(!"identity".equalsIgnoreCase(contentEncoding.getValue())) {
-                throw new AxisFault("HTTP :" + "unsupported content-encoding 
of '"
-                                    + contentEncoding.getValue() + "' found");
-            }
-        }
-
-        OperationContext opContext = msgContext.getOperationContext();
-        if (opContext != null) {
-            opContext.setProperty(MessageContext.TRANSPORT_IN, in);
-        }
-    }
-
-    /**
-     * getting host configuration to support standard http/s, proxy and NTLM
-     * support
-     *
-     * @param client    active HttpClient
-     * @param msgCtx    active MessageContext
-     * @param targetURL the target URL
-     * @return a HostConfiguration set up with proxy information
-     * @throws org.apache.axis2.AxisFault if problems occur
-     */
-    protected HttpHost getHostConfiguration(AbstractHttpClient client, 
MessageContext msgCtx,
-                                            URL targetURL) throws AxisFault {
-
-        boolean isAuthenticationEnabled = isAuthenticationEnabled(msgCtx);
-        int port = targetURL.getPort();
-
-        String protocol = targetURL.getProtocol();
-        if (port == -1) {
-            if (HTTPTransportConstants.PROTOCOL_HTTP.equals(protocol)) {
-                port = 80;
-            } else if (HTTPTransportConstants.PROTOCOL_HTTPS.equals(protocol)) 
{
-                port = 443;
-            }
-        }
-        // to see the host is a proxy and in the proxy list - available in
-        // axis2.xml
-        HttpHost hostConfig = new HttpHost(targetURL.getHost(), port, 
targetURL.getProtocol());
-
-        // TODO : one might need to set his own socket factory. We have to 
allow that case as well.
-
-        if (isAuthenticationEnabled) {
-            // Basic, Digest, NTLM and custom authentications.
-            this.setAuthenticationInfo(client, msgCtx);
-        }
-        // proxy configuration
-
-        if (HTTPProxyConfigurator.isProxyEnabled(msgCtx, targetURL)) {
-            if (log.isDebugEnabled()) {
-                log.debug("Configuring HTTP proxy.");
-            }
-            HTTPProxyConfigurator.configure(msgCtx, client);
-        }
-
-        return hostConfig;
-    }
-
-    protected boolean isAuthenticationEnabled(MessageContext msgCtx) {
-        return (msgCtx.getProperty(HTTPConstants.AUTHENTICATE) != null);
-    }
-
-    /*
-     * This will handle server Authentication, It could be either NTLM, Digest
-     * or Basic Authentication. Apart from that user can change the priory or
-     * add a custom authentication scheme.
-     */
-    protected void setAuthenticationInfo(AbstractHttpClient agent, 
MessageContext msgCtx)
-            throws AxisFault {
-        HTTPAuthenticator authenticator;
-        Object obj = msgCtx.getProperty(HTTPConstants.AUTHENTICATE);
-        if (obj != null) {
-            if (obj instanceof HTTPAuthenticator) {
-                authenticator = (HTTPAuthenticator) obj;
-
-                String username = authenticator.getUsername();
-                String password = authenticator.getPassword();
-                String host = authenticator.getHost();
-                String domain = authenticator.getDomain();
-
-                int port = authenticator.getPort();
-                String realm = authenticator.getRealm();
-
-                /* If retrying is available set it first */
-                isAllowedRetry = authenticator.isAllowedRetry();
-
-                Credentials creds;
-
-                // TODO : Set preemptive authentication, but its not 
recommended in HC 4
-
-                if (host != null) {
-                    if (domain != null) {
-                        /* Credentials for NTLM Authentication */
-                        agent.getAuthSchemes().register("ntlm",new 
NTLMSchemeFactory());
-                        creds = new NTCredentials(username, password, host, 
domain);
-                    } else {
-                        /* Credentials for Digest and Basic Authentication */
-                        creds = new UsernamePasswordCredentials(username, 
password);
-                    }
-                    agent.getCredentialsProvider().
-                            setCredentials(new AuthScope(host, port, realm), 
creds);
-                } else {
-                    if (domain != null) {
-                        /*
-                         * Credentials for NTLM Authentication when host is
-                         * ANY_HOST
-                         */
-                        agent.getAuthSchemes().register("ntlm",new 
NTLMSchemeFactory());
-                        creds = new NTCredentials(username, password, 
AuthScope.ANY_HOST, domain);
-                        agent.getCredentialsProvider().
-                                setCredentials(new 
AuthScope(AuthScope.ANY_HOST, port, realm),
-                                               creds);
-                    } else {
-                        /* Credentials only for Digest and Basic 
Authentication */
-                        creds = new UsernamePasswordCredentials(username, 
password);
-                        agent.getCredentialsProvider().
-                                setCredentials(new AuthScope(AuthScope.ANY), 
creds);
-                    }
-                }
-                /* Customizing the priority Order */
-                List schemes = authenticator.getAuthSchemes();
-                if (schemes != null && schemes.size() > 0) {
-                    List authPrefs = new ArrayList(3);
-                    for (int i = 0; i < schemes.size(); i++) {
-                        if (schemes.get(i) instanceof AuthPolicy) {
-                            authPrefs.add(schemes.get(i));
-                            continue;
-                        }
-                        String scheme = (String) schemes.get(i);
-                        authPrefs.add(authenticator.getAuthPolicyPref(scheme));
-
-                    }
-                    
agent.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authPrefs);
-                }
-
-            } else {
-                throw new AxisFault("HttpTransportProperties.Authenticator 
class cast exception");
-            }
-        }
-
+    protected Request createRequest(MessageContext msgContext, String 
methodName, URL url,
+            AxisRequestEntity requestEntity) throws AxisFault {
+        return new RequestImpl(getHttpClient(msgContext), msgContext, 
methodName, url, requestEntity);
     }
 
-    /**
-     * Method used to copy all the common properties
-     *
-     * @param msgContext       - The messageContext of the request message
-     * @param url              - The target URL
-     * @param httpMethod       - The http method used to send the request
-     * @param httpClient       - The httpclient used to send the request
-     * @param soapActionString - The soap action atring of the request message
-     * @return MessageFormatter - The messageFormatter for the relavent request
-     *         message
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected MessageFormatter populateCommonProperties(MessageContext 
msgContext, URL url,
-                                                        HttpRequestBase 
httpMethod,
-                                                        AbstractHttpClient 
httpClient,
-                                                        String 
soapActionString)
-            throws AxisFault {
-
-        if (isAuthenticationEnabled(msgContext)) {
-            
httpMethod.getParams().setBooleanParameter(ClientPNames.HANDLE_AUTHENTICATION, 
true);
-        }
-
-        MessageFormatter messageFormatter = 
MessageProcessorSelector.getMessageFormatter(msgContext);
-
-        url = messageFormatter.getTargetAddress(msgContext, format, url);
-
-        try {
-            httpMethod.setURI(url.toURI());
-        } catch (URISyntaxException e) {
-            log.error("Error in URI : " + url, e);
-        }
-
-        httpMethod.setHeader(HTTPConstants.HEADER_CONTENT_TYPE,
-                             messageFormatter.getContentType(msgContext, 
format, soapActionString));
-
-        httpMethod.setHeader(HTTPConstants.HEADER_HOST, url.getHost());
-
-        if (msgContext.getOptions() != null && 
msgContext.getOptions().isManageSession()) {
-            // setting the cookie in the out path
-            Object cookieString = 
msgContext.getProperty(HTTPConstants.COOKIE_STRING);
-
-            if (cookieString != null) {
-                StringBuffer buffer = new StringBuffer();
-                buffer.append(cookieString);
-                httpMethod.setHeader(HTTPConstants.HEADER_COOKIE, 
buffer.toString());
-            }
-        }
-
-        if (httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10)) {
-            
httpClient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,
-                                                HttpVersion.HTTP_1_0);
-        }
-        return messageFormatter;
-    }
-
-    /**
-     * This is used to get the dynamically set time out values from the message
-     * context. If the values are not available or invalid then the default
-     * values or the values set by the configuration will be used
-     *
-     * @param msgContext the active MessageContext
-     * @param httpClient
-     */
-    protected void initializeTimeouts(MessageContext msgContext, 
AbstractHttpClient httpClient) {
-        // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the
-        // override the static config
-        Integer tempSoTimeoutProperty = (Integer) 
msgContext.getProperty(HTTPConstants.SO_TIMEOUT);
-        Integer tempConnTimeoutProperty = (Integer) msgContext
-                .getProperty(HTTPConstants.CONNECTION_TIMEOUT);
-        long timeout = msgContext.getOptions().getTimeOutInMilliSeconds();
-
-        if (tempConnTimeoutProperty != null) {
-            int connectionTimeout = tempConnTimeoutProperty.intValue();
-            // timeout for initial connection
-            
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
-                                                connectionTimeout);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
-                                                    (int) timeout);
-            }
-        }
-
-        if (tempSoTimeoutProperty != null) {
-            int soTimeout = tempSoTimeoutProperty.intValue();
-            // SO_TIMEOUT -- timeout for blocking reads
-            
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, soTimeout);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, (int) 
timeout);
-            }
-        }
-    }
-
-    /**
-     * This is used to get the dynamically set time out values from the message
-     * context. If the values are not available or invalid then the default
-     * values or the values set by the configuration will be used
-     *
-     * @param msgContext the active MessageContext
-     * @param httpMethod method
-     */
-    protected void setTimeouts(MessageContext msgContext, HttpRequestBase 
httpMethod) {
-        // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the
-        // override the static config
-        Integer tempSoTimeoutProperty = (Integer) 
msgContext.getProperty(HTTPConstants.SO_TIMEOUT);
-        Integer tempConnTimeoutProperty = (Integer) msgContext
-                .getProperty(HTTPConstants.CONNECTION_TIMEOUT);
-        long timeout = msgContext.getOptions().getTimeOutInMilliSeconds();
-
-        if (tempConnTimeoutProperty != null) {
-            // timeout for initial connection
-            
httpMethod.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
-                                                tempConnTimeoutProperty);
-        }
-
-        if (tempSoTimeoutProperty != null) {
-            // SO_TIMEOUT -- timeout for blocking reads
-            
httpMethod.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
-                                                tempSoTimeoutProperty);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                
httpMethod.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, (int) 
timeout);
-            }
-        }
-    }
-
-    protected AbstractHttpClient getHttpClient(MessageContext msgContext) {
+    private HttpClient getHttpClient(MessageContext msgContext) {
         ConfigurationContext configContext = 
msgContext.getConfigurationContext();
 
-        AbstractHttpClient httpClient = (AbstractHttpClient) msgContext
+        HttpClient httpClient = (HttpClient) msgContext
                 .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
 
         if (httpClient == null) {
-            httpClient = (AbstractHttpClient) configContext.
+            httpClient = (HttpClient) configContext.
                     getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
         }
 
@@ -807,11 +69,11 @@ public class HTTPSenderImpl extends HTTP
         }
 
         synchronized (this) {
-            httpClient = (AbstractHttpClient) msgContext.
+            httpClient = (HttpClient) msgContext.
                     getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
 
             if (httpClient == null) {
-                httpClient = (AbstractHttpClient) configContext
+                httpClient = (HttpClient) configContext
                         .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
             }
 
@@ -819,28 +81,31 @@ public class HTTPSenderImpl extends HTTP
                 return httpClient;
             }
 
-            ClientConnectionManager connManager = (ClientConnectionManager) 
msgContext
+            HttpClientConnectionManager connManager = 
(HttpClientConnectionManager) msgContext
                     
.getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
             if (connManager == null) {
-                connManager = (ClientConnectionManager) msgContext
+                connManager = (HttpClientConnectionManager) msgContext
                         
.getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
             }
             if (connManager == null) {
                 // reuse HttpConnectionManager
                 synchronized (configContext) {
-                    connManager = (ClientConnectionManager) configContext
+                    connManager = (HttpClientConnectionManager) configContext
                             
.getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
                     if (connManager == null) {
                         log.trace("Making new ConnectionManager");
-                        SchemeRegistry schemeRegistry = new SchemeRegistry();
-                        schemeRegistry.register(
-                                new Scheme("http", 80, 
PlainSocketFactory.getSocketFactory()));
-                        schemeRegistry.register(
-                                new Scheme("https", 443, 
SSLSocketFactory.getSocketFactory()));
-
-                        connManager = new 
PoolingClientConnectionManager(schemeRegistry);
-                        
((PoolingClientConnectionManager)connManager).setMaxTotal(200);
-                        
((PoolingClientConnectionManager)connManager).setDefaultMaxPerRoute(200);
+                        SSLContext sslContext = 
(SSLContext)configContext.getProperty(SSLContext.class.getName());
+                        if (sslContext == null) {
+                            sslContext = SSLContexts.createDefault();
+                        }
+                        Registry<ConnectionSocketFactory> 
socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
+                                .register("http", 
PlainConnectionSocketFactory.getSocketFactory())
+                                .register("https", new 
SSLConnectionSocketFactory(sslContext))
+                                .build();
+
+                        connManager = new 
PoolingHttpClientConnectionManager(socketFactoryRegistry);
+                        
((PoolingHttpClientConnectionManager)connManager).setMaxTotal(200);
+                        
((PoolingHttpClientConnectionManager)connManager).setDefaultMaxPerRoute(200);
                         configContext.setProperty(
                                 
HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER, connManager);
                     }
@@ -850,176 +115,11 @@ public class HTTPSenderImpl extends HTTP
              * Create a new instance of HttpClient since the way it is used 
here
              * it's not fully thread-safe.
              */
-            HttpParams clientParams = new BasicHttpParams();
-            clientParams.setParameter(CoreProtocolPNames.HTTP_ELEMENT_CHARSET, 
"UTF-8");
-            httpClient = new DefaultHttpClient(connManager, clientParams);
-
-            //We don't need to set timeout for connection manager, since we 
are doing it below
-            // and its enough
-
-            // Get the timeout values set in the runtime
-            initializeTimeouts(msgContext, httpClient);
-
-            return httpClient;
-        }
-    }
-
-    protected HttpResponse executeMethod(AbstractHttpClient httpClient, 
MessageContext msgContext,
-                                         URL url,
-                                         HttpRequestBase method) throws 
IOException {
-        HttpHost httpHost = this.getHostConfiguration(httpClient, msgContext, 
url);
-
-        // set the custom headers, if available
-        addCustomHeaders(method, msgContext);
-
-        // add compression headers if needed
-        if (msgContext.isPropertyTrue(HTTPConstants.MC_ACCEPT_GZIP)) {
-            method.addHeader(HTTPConstants.HEADER_ACCEPT_ENCODING,
-                             HTTPConstants.COMPRESSION_GZIP);
+            return HttpClientBuilder.create()
+                    .setConnectionManager(connManager)
+                    .setConnectionManagerShared(true)
+                    .build();
         }
-
-        if (msgContext.isPropertyTrue(HTTPConstants.MC_GZIP_REQUEST)) {
-            method.addHeader(HTTPConstants.HEADER_CONTENT_ENCODING,
-                             HTTPConstants.COMPRESSION_GZIP);
-        }
-
-        if (msgContext.getProperty(HTTPConstants.HTTP_METHOD_PARAMS) != null) {
-            HttpParams params = (HttpParams) msgContext
-                    .getProperty(HTTPConstants.HTTP_METHOD_PARAMS);
-            method.setParams(params);
-        }
-
-        String cookiePolicy = (String) 
msgContext.getProperty(HTTPConstants.COOKIE_POLICY);
-        if (cookiePolicy != null) {
-            method.getParams().setParameter(ClientPNames.COOKIE_POLICY, 
cookiePolicy);
-        }
-
-        setTimeouts(msgContext, method);
-        HttpContext localContext = new BasicHttpContext();
-        // Why do we have add context here
-        return httpClient.execute(httpHost, method, localContext);
-    }
-
-    public void addCustomHeaders(HttpRequestBase method, MessageContext 
msgContext) {
-
-        boolean isCustomUserAgentSet = false;
-        // set the custom headers, if available
-        Object httpHeadersObj = 
msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
-        if (httpHeadersObj != null) {
-            if (httpHeadersObj instanceof List) {
-                List httpHeaders = (List) httpHeadersObj;
-                for (int i = 0; i < httpHeaders.size(); i++) {
-                    NamedValue nv = (NamedValue) httpHeaders.get(i);
-                    if (nv != null) {
-                        Header header = new BasicHeader(nv.getName(), 
nv.getValue());
-                        if 
(HTTPConstants.HEADER_USER_AGENT.equals(header.getName())) {
-                            isCustomUserAgentSet = true;
-                        }
-                        method.addHeader(header);
-                    }
-                }
-
-            }
-            if (httpHeadersObj instanceof Map) {
-                Map httpHeaders = (Map) httpHeadersObj;
-                for (Iterator iterator = httpHeaders.entrySet().iterator(); 
iterator.hasNext(); ) {
-                    Map.Entry entry = (Map.Entry) iterator.next();
-                    String key = (String) entry.getKey();
-                    String value = (String) entry.getValue();
-                    if (HTTPConstants.HEADER_USER_AGENT.equals(key)) {
-                        isCustomUserAgentSet = true;
-                    }
-                    method.addHeader(key, value);
-                }
-            }
-        }
-
-        // we have to consider the TRANSPORT_HEADERS map as well
-        Map transportHeaders = (Map) 
msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-        if (transportHeaders != null) {
-            removeUnwantedHeaders(msgContext);
-
-            Set headerEntries = transportHeaders.entrySet();
-
-            for (Object headerEntry : headerEntries) {
-                if (headerEntry instanceof Map.Entry) {
-                    Header[] headers = method.getAllHeaders();
-
-                    boolean headerAdded = false;
-                    for (Header header : headers) {
-                        if (header.getName() != null
-                            && header.getName().equals(((Map.Entry) 
headerEntry).getKey())) {
-                            headerAdded = true;
-                            break;
-                        }
-                    }
-
-                    if (!headerAdded) {
-                        method.addHeader(((Map.Entry) 
headerEntry).getKey().toString(),
-                                         ((Map.Entry) 
headerEntry).getValue().toString());
-                    }
-                }
-            }
-        }
-
-        if (!isCustomUserAgentSet) {
-            String userAgentString = getUserAgent(msgContext);
-            method.setHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString);
-        }
-
-    }
-
-    /**
-     * Remove unwanted headers from the transport headers map of outgoing
-     * request. These are headers which should be dictated by the transport and
-     * not the user. We remove these as these may get copied from the request
-     * messages
-     *
-     * @param msgContext the Axis2 Message context from which these headers 
should be
-     *                   removed
-     */
-    private void removeUnwantedHeaders(MessageContext msgContext) {
-        Map headers = (Map) 
msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-
-        if (headers == null || headers.isEmpty()) {
-            return;
-        }
-
-        Iterator iter = headers.keySet().iterator();
-        while (iter.hasNext()) {
-            String headerName = (String) iter.next();
-            if (HTTP.CONN_DIRECTIVE.equalsIgnoreCase(headerName)
-                || HTTP.TRANSFER_ENCODING.equalsIgnoreCase(headerName)
-                || HTTP.DATE_HEADER.equalsIgnoreCase(headerName)
-                || HTTP.CONTENT_TYPE.equalsIgnoreCase(headerName)
-                || HTTP.CONTENT_LEN.equalsIgnoreCase(headerName)) {
-                iter.remove();
-            }
-        }
-    }
-
-    private String getUserAgent(MessageContext messageContext) {
-        String userAgentString = "Axis2";
-        boolean locked = false;
-        if (messageContext.getParameter(HTTPConstants.USER_AGENT) != null) {
-            OMElement userAgentElement = 
messageContext.getParameter(HTTPConstants.USER_AGENT)
-                    .getParameterElement();
-            userAgentString = userAgentElement.getText().trim();
-            OMAttribute lockedAttribute = userAgentElement.getAttribute(new 
QName("locked"));
-            if (lockedAttribute != null) {
-                if 
(lockedAttribute.getAttributeValue().equalsIgnoreCase("true")) {
-                    locked = true;
-                }
-            }
-        }
-        // Runtime overing part
-        if (!locked) {
-            if (messageContext.getProperty(HTTPConstants.USER_AGENT) != null) {
-                userAgentString = (String) 
messageContext.getProperty(HTTPConstants.USER_AGENT);
-            }
-        }
-
-        return userAgentString;
     }
 
 }

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/src/org/apache/axis2/transport/http/server/SimpleHttpServer.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/src/org/apache/axis2/transport/http/server/SimpleHttpServer.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/src/org/apache/axis2/transport/http/server/SimpleHttpServer.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/src/org/apache/axis2/transport/http/server/SimpleHttpServer.java
 Sun Dec 17 22:34:08 2017
@@ -84,7 +84,9 @@ public class SimpleHttpServer {
         // Attempt to terminate the active processors nicely
         LOG.info("Shut down HTTP processors");
         this.requestExecutor.shutdownNow();
-        this.requestExecutor.awaitTermination(SHUTDOWN_GRACE_PERIOD, 
TimeUnit.MILLISECONDS);
+        if 
(!Boolean.parseBoolean(System.getProperty("org.apache.axis2.transport.http.server.fastShutdown",
 "false"))) {
+            this.requestExecutor.awaitTermination(SHUTDOWN_GRACE_PERIOD, 
TimeUnit.MILLISECONDS);
+        }
         if (!this.requestExecutor.isTerminated()) {
             // Terminate the active processors forcibly
             LOG.info("Force shut down HTTP processors");

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderTest.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderTest.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderTest.java
 Sun Dec 17 22:34:08 2017
@@ -18,11 +18,13 @@
  */
 package org.apache.axis2.transport.http;
 
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.mail.MessagingException;
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.namespace.QName;
 
@@ -48,8 +50,6 @@ import org.apache.axis2.transport.Transp
 import org.apache.axis2.transport.http.mock.MockAxisHttpResponse;
 import org.apache.axis2.transport.http.mock.MockHttpServletResponse;
 import org.apache.axis2.transport.http.mock.MockHTTPResponse;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.http.ProtocolVersion;
 import org.apache.http.RequestLine;
 import org.apache.http.message.BasicRequestLine;
@@ -69,8 +69,9 @@ public abstract class CommonsHTTPTranspo
                 .get("Content-Type"));
         assertEquals("Not the expected Header value", "custom-value", 
httpResponse.getHeaders()
                 .get("Custom-header"));
-        assertEquals("Not the expected body content", 
envelope.toString().replace("utf", "UTF"),
-                new 
String(httpResponse.getByteArrayOutputStream().toByteArray()));
+        assertAbout(xml())
+                .that(new 
String(httpResponse.getByteArrayOutputStream().toByteArray()))
+                .hasSameContentAs(envelope.toString());
     }
     
     public void testInvokeWithAxisHttpResponseImpl() throws Exception {
@@ -84,22 +85,11 @@ public abstract class CommonsHTTPTranspo
                 .get("Content-Type"));
         assertEquals("Not the expected Header value", "custom-value", 
httpResponse.getHeaders()
                 .get("Custom-header"));
-        assertEquals("Not the expected body content", 
envelope.toString().replace("utf", "UTF"),
-                new 
String(httpResponse.getByteArrayOutputStream().toByteArray()));
+        assertAbout(xml())
+                .that(new 
String(httpResponse.getByteArrayOutputStream().toByteArray()))
+                .hasSameContentAs(envelope.toString());
     }
 
-    public void testCleanup() throws AxisFault {
-        TransportSender sender = getTransportSender();
-        MessageContext msgContext = new MessageContext();
-        HttpMethod httpMethod = new GetMethod();
-        msgContext.setProperty(HTTPConstants.HTTP_METHOD, httpMethod);
-        assertNotNull("HttpMethod can not be null",
-                msgContext.getProperty(HTTPConstants.HTTP_METHOD));
-        sender.cleanup(msgContext);
-        assertNull("HttpMethod should be null", 
msgContext.getProperty(HTTPConstants.HTTP_METHOD));
-
-    }
-    
     public void testInit() throws AxisFault {
         ConfigurationContext confContext = ConfigurationContextFactory
                 .createEmptyConfigurationContext();
@@ -144,7 +134,7 @@ public abstract class CommonsHTTPTranspo
 
     }
     
-    static SOAPEnvelope getEnvelope() throws IOException, MessagingException {
+    static SOAPEnvelope getEnvelope() throws IOException {
         SOAPFactory soapFac = OMAbstractFactory.getSOAP11Factory();
         OMFactory omFac = OMAbstractFactory.getOMFactory();
         SOAPEnvelope enp = soapFac.createSOAPEnvelope();

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4SenderTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4SenderTest.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4SenderTest.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4SenderTest.java
 Sun Dec 17 22:34:08 2017
@@ -19,156 +19,12 @@
 
 package org.apache.axis2.transport.http;
 
-import org.apache.axis2.Constants;
 import org.apache.axis2.transport.http.impl.httpclient4.HTTPSenderImpl;
 
-import javax.ws.rs.core.HttpHeaders;
-
 public class HTTPClient4SenderTest extends HTTPSenderTest {
 
     @Override
     protected HTTPSender getHTTPSender() {
         return new HTTPSenderImpl();
     }
-
-    @Override
-    public void testSendViaGet() throws Exception {
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_GET, "urn:getService", 
"http://localhost:";
-                                                                               
+ port + "/getService", true);
-        assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_GET,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", 
"/getService?part=sample%20data",
-                     getStringContent());
-        assertNull("Not the expected HTTP Header value", 
getHeaders().get("SOAPAction"));
-        assertEquals("Not the expected HTTP Header value",
-                     
"application/x-www-form-urlencoded;action=\"urn:getService\";",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
-
-    @Override
-    public void testSendViaPost() throws Exception {
-        // test with REST payload
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_POST, 
"urn:postService",
-                    "http://localhost:"; + port + "/postService", true);
-        assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_POST,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", 
getEnvelope().getFirstElement().getFirstElement()
-                .toString(), getStringContent());
-        assertNull("Not the expected HTTP Header value", 
getHeaders().get("SOAPAction"));
-        assertEquals("Not the expected HTTP Header value", "application/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-
-        // test with SOAP payload.
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_POST, 
"urn:postService",
-                    "http://localhost:"; + port + "/postService", false);
-        assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_POST,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().toString(), 
getStringContent());
-        assertEquals("Not the expected HTTP Header value", "urn:postService",
-                     getHeaders().get("SOAPAction").replace("\"", ""));
-        assertEquals("Not the expected HTTP Header value", "text/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
-
-    @Override
-    public void testSendViaPut() throws Exception {
-        // test with REST payload
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_PUT, "urn:putService", 
"http://localhost:";
-                                                                               
+ port + "/putService", true);
-        assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_PUT,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", 
getEnvelope().getFirstElement().getFirstElement()
-                .toString(), getStringContent());
-        assertNull("Not the expected HTTP Header value", 
getHeaders().get("SOAPAction"));
-        assertEquals("Not the expected HTTP Header value", "application/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-
-        // test with SOAP payload.
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_PUT, "urn:putService", 
"http://localhost:";
-                                                                               
+ port + "/putService", false);
-        assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_PUT,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().toString(), 
getStringContent());
-        assertEquals("Not the expected HTTP Header value", "urn:putService",
-                     getHeaders().get("SOAPAction").replace("\"", ""));
-        assertEquals("Not the expected HTTP Header value", "text/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
-
-    @Override
-    public void testSendViaDelete() throws Exception {
-        // test with REST payload
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_DELETE, 
"urn:deleteService",
-                    "http://localhost:"; + port + "/deleteService", true);
-        assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_DELETE,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", 
"/deleteService?part=sample%20data",
-                     getStringContent());
-        assertEquals("Not the expected HTTP Header value",
-                     
"application/x-www-form-urlencoded;action=\"urn:deleteService\";", getHeaders()
-                .get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
-
-    @Override
-    public void testSendViaHead() throws Exception {
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_HEAD, 
"urn:deleteService",
-                    "http://localhost:"; + port + "/deleteService", true);
-        assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_POST,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", 
getEnvelope().getFirstElement().getFirstElement()
-                .toString(), getStringContent());
-        assertEquals("Not the expected HTTP Header value", "application/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-
-    }
-
-    @Override
-    public void testSendNOHTTPMethod() throws Exception {
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(null, "urn:noService", "http://localhost:"; + port + 
"/noService", true);
-        assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_POST,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", 
getEnvelope().getFirstElement().getFirstElement()
-                .toString(), getStringContent());
-        assertNull("Not the expected HTTP Header value", 
getHeaders().get("SOAPAction"));
-        assertEquals("Not the expected HTTP Header value", "application/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
 }

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4TransportSenderTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4TransportSenderTest.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4TransportSenderTest.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4TransportSenderTest.java
 Sun Dec 17 22:34:08 2017
@@ -33,7 +33,6 @@ public class HTTPClient4TransportSenderT
         return new HTTPClient4TransportSender();
     }
 
-    @Override
     public void testCleanup() throws AxisFault {
         TransportSender sender = getTransportSender();
         MessageContext msgContext = new MessageContext();

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPSenderTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPSenderTest.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPSenderTest.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HTTPSenderTest.java
 Sun Dec 17 22:34:08 2017
@@ -27,8 +27,11 @@ import org.apache.axis2.context.Operatio
 import org.apache.axis2.transport.http.mock.server.AbstractHTTPServerTest;
 import org.apache.axis2.transport.http.mock.server.BasicHttpServer;
 
-import javax.mail.MessagingException;
 import javax.ws.rs.core.HttpHeaders;
+
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
 import java.io.IOException;
 import java.net.URL;
 
@@ -54,11 +57,9 @@ public abstract class HTTPSenderTest ext
      *            the rest
      * @throws IOException
      *             Signals that an I/O exception has occurred.
-     * @throws MessagingException
-     *             the messaging exception
      */
     protected void sendViaHTTP(String httpMethod, String soapAction, String 
address, boolean rest)
-            throws IOException, MessagingException {
+            throws IOException {
         httpSender = getHTTPSender();
         MessageContext msgContext = new MessageContext();
         ConfigurationContext configContext = ConfigurationContextFactory
@@ -127,7 +128,7 @@ public abstract class HTTPSenderTest ext
                 "http://localhost:"; + port + "/postService", false);
         assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_POST,
                 getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().toString(), 
getStringContent());
+        
assertAbout(xml()).that(getStringContent()).hasSameContentAs(getEnvelope().toString());
         assertEquals("Not the expected HTTP Header value", "urn:postService",
                 getHeaders().get("SOAPAction").replace("\"", ""));
         assertEquals("Not the expected HTTP Header value", "text/xml",
@@ -169,7 +170,7 @@ public abstract class HTTPSenderTest ext
                 + port + "/putService", false);
         assertEquals("Not the expected HTTP Method", 
Constants.Configuration.HTTP_METHOD_PUT,
                 getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().toString(), 
getStringContent());
+        
assertAbout(xml()).that(getStringContent()).hasSameContentAs(getEnvelope().toString());
         assertEquals("Not the expected HTTP Header value", "urn:putService",
                 getHeaders().get("SOAPAction").replace("\"", ""));
         assertEquals("Not the expected HTTP Header value", "text/xml",
@@ -211,7 +212,8 @@ public abstract class HTTPSenderTest ext
      * @throws Exception
      *             the exception
      */
-    public void testSendViaHead() throws Exception {
+    // This is test is bullshit; if we send a HEAD request, we shouldn't 
expect the method to be POST
+    public void _testSendViaHead() throws Exception {
 
         int port = getBasicHttpServer().getPort();
         sendViaHTTP(Constants.Configuration.HTTP_METHOD_HEAD, 
"urn:deleteService",
@@ -252,7 +254,7 @@ public abstract class HTTPSenderTest ext
                 getHeaders().get(HttpHeaders.USER_AGENT));
 
         sendViaHTTP(null, "urn:noService", "http://localhost:"; + port + 
"/noService", false);
-        assertEquals("Not the expected content", getEnvelope().toString(), 
getStringContent());
+        
assertAbout(xml()).that(getStringContent()).hasSameContentAs(getEnvelope().toString());
         assertEquals("Not the expected HTTP Header value", "urn:noService",
                 getHeaders().get("SOAPAction").replace("\"", ""));
         assertEquals("Not the expected HTTP Header value", "text/xml",

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HttpTransportDescriptionFactory.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HttpTransportDescriptionFactory.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HttpTransportDescriptionFactory.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/HttpTransportDescriptionFactory.java
 Sun Dec 17 22:34:08 2017
@@ -22,6 +22,7 @@ package org.apache.axis2.transport.http;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.description.TransportOutDescription;
+import 
org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.axis2.transport.testkit.axis2.TransportDescriptionFactory;
 import org.apache.axis2.transport.testkit.http.HttpTestEnvironment;
 import org.apache.axis2.transport.testkit.tests.Setup;
@@ -44,7 +45,7 @@ public class HttpTransportDescriptionFac
 
     public TransportOutDescription createTransportOutDescription() throws 
Exception {
         TransportOutDescription desc = new TransportOutDescription("http");
-        desc.setSender(new CommonsHTTPTransportSender());
+        desc.setSender(new HTTPClient4TransportSender());
         return desc;
     }
 }

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/mock/server/AbstractHTTPServerTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/mock/server/AbstractHTTPServerTest.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/mock/server/AbstractHTTPServerTest.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/http/test/org/apache/axis2/transport/http/mock/server/AbstractHTTPServerTest.java
 Sun Dec 17 22:34:08 2017
@@ -22,7 +22,6 @@ package org.apache.axis2.transport.http.
 import java.io.IOException;
 import java.util.Map;
 
-import javax.mail.MessagingException;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMAbstractFactory;
@@ -144,10 +143,8 @@ public abstract class AbstractHTTPServer
      * @return the envelope
      * @throws IOException
      *             Signals that an I/O exception has occurred.
-     * @throws MessagingException
-     *             the messaging exception
      */
-    public static SOAPEnvelope getEnvelope() throws IOException, 
MessagingException {
+    public static SOAPEnvelope getEnvelope() throws IOException {
         SOAPFactory soapFac = OMAbstractFactory.getSOAP11Factory();
         OMFactory omFac = OMAbstractFactory.getOMFactory();
         SOAPEnvelope enp = soapFac.createSOAPEnvelope();

Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/pom.xml
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/pom.xml?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/pom.xml 
(original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/pom.xml Sun 
Dec 17 22:34:08 2017
@@ -22,9 +22,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
 
     <groupId>org.apache.axis2</groupId>
@@ -82,7 +82,6 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>1.4.0</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
@@ -167,6 +166,16 @@
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.truth</groupId>
+            <artifactId>truth</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     
     <properties>

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
 Sun Dec 17 22:34:08 2017
@@ -20,7 +20,6 @@ import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.builder.Builder;
-import org.apache.axis2.builder.BuilderUtil;
 import org.apache.axis2.builder.SOAPBuilder;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.util.MessageProcessorSelector;
@@ -431,9 +430,17 @@ public class JMSUtils extends BaseUtils
         throws JMSException {
 
         if (dest instanceof Queue) {
-            return ((QueueSession) session).createReceiver((Queue) dest, 
messageSelector);
+            if (session instanceof QueueSession) {
+                return ((QueueSession) session).createReceiver((Queue) dest, 
messageSelector);
+            } else {
+                return session.createConsumer(dest, messageSelector);
+            }
         } else {
-            return ((TopicSession) session).createSubscriber((Topic) dest, 
messageSelector, false);
+            if (session instanceof TopicSession) {
+                return ((TopicSession) session).createSubscriber((Topic) dest, 
messageSelector, false);
+            } else {
+                return session.createConsumer(dest, messageSelector);
+            }
         }
     }
 
@@ -714,7 +721,10 @@ public class JMSUtils extends BaseUtils
                         "dynamicTopics/" : "dynamicQueues/") + 
destinationName);
             } catch (NamingException x) {
                 log.warn("Cannot locate destination : " + destinationName);
-                throw x;
+                // Rethrow the original exception. If we get here this most 
likely means that
+                // the JMS provider doesn't support dynamic(Queues|Topics) and 
we should simply
+                // report the original lookup failure.
+                throw e;
             }
         } catch (NamingException e) {
             log.warn("Cannot locate destination : " + destinationName, e);

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/package.html
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/package.html?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/package.html
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/package.html
 Sun Dec 17 22:34:08 2017
@@ -2,6 +2,8 @@
 <title>JMS Transport Configuration</title>
 <body>
 
+Transport implementation for JMS.
+
 <h2>JMS Listener Configuration (axis2.xml)</h2>
 
 e.g:

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSAsyncClient.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSAsyncClient.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSAsyncClient.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSAsyncClient.java
 Sun Dec 17 22:34:08 2017
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.jms;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSClient.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSClient.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSClient.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSClient.java
 Sun Dec 17 22:34:08 2017
@@ -25,8 +25,8 @@ import javax.jms.Destination;
 import javax.jms.Message;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
-import javax.mail.internet.ContentType;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.base.BaseConstants;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.client.TestClient;

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseClient.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseClient.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseClient.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseClient.java
 Sun Dec 17 22:34:08 2017
@@ -25,8 +25,8 @@ import javax.jms.Destination;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.Session;
-import javax.mail.internet.ContentType;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.client.RequestResponseTestClient;
 import org.apache.axis2.transport.testkit.message.IncomingMessage;

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/ctype/ContentTypeRuleTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/ctype/ContentTypeRuleTest.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/ctype/ContentTypeRuleTest.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/ctype/ContentTypeRuleTest.java
 Sun Dec 17 22:34:08 2017
@@ -22,7 +22,7 @@ import javax.jms.Message;
 import junit.framework.TestCase;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.deployment.ServiceBuilder;
 import org.apache.axis2.description.AxisService;
@@ -42,7 +42,7 @@ public class ContentTypeRuleTest extends
         
         InputStream in = 
ContentTypeRuleTest.class.getResourceAsStream(getName() + ".xml");
         try {
-            OMElement element = new StAXOMBuilder(in).getDocumentElement();
+            OMElement element = 
OMXMLBuilderFactory.createOMBuilder(in).getDocumentElement();
             new ServiceBuilder(cfgCtx, service).populateService(element);
         } finally {
             in.close();

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/transport/local/pom.xml
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/transport/local/pom.xml?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- axis/axis2/java/core/branches/AXIS2-4091/modules/transport/local/pom.xml 
(original)
+++ axis/axis2/java/core/branches/AXIS2-4091/modules/transport/local/pom.xml 
Sun Dec 17 22:34:08 2017
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-transport-local</artifactId>
     <name>Apache Axis2 - Transport - Local</name>


Reply via email to