svn commit: r1051511 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java
Author: supun Date: Tue Dec 21 14:44:27 2010 New Revision: 1051511 URL: http://svn.apache.org/viewvc?rev=1051511&view=rev Log: removing un-necessary synchronizations as these method only reads information Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java?rev=1051511&r1=1051510&r2=1051511&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java Tue Dec 21 14:44:27 2010 @@ -41,7 +41,7 @@ public class ClientUtils { private static final Log log = LogFactory.getLog(ClientUtils.class); -public static synchronized TransportOutDescription inferOutTransport(AxisConfiguration ac, +public static TransportOutDescription inferOutTransport(AxisConfiguration ac, EndpointReference epr, MessageContext msgctx) throws AxisFault { @@ -83,7 +83,7 @@ public class ClientUtils { } } -public static synchronized TransportInDescription inferInTransport(AxisConfiguration ac, +public static TransportInDescription inferInTransport(AxisConfiguration ac, Options options, MessageContext msgCtxt) throws AxisFault {
svn commit: r1051519 - /axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
Author: supun Date: Tue Dec 21 15:10:58 2010 New Revision: 1051519 URL: http://svn.apache.org/viewvc?rev=1051519&view=rev Log: fixing issue AXIS2-4840 Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?rev=1051519&r1=1051518&r2=1051519&view=diff == --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Tue Dec 21 15:10:58 2010 @@ -55,16 +55,13 @@ import org.apache.commons.httpclient.par import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.http.protocol.HTTP; import javax.xml.namespace.QName; import java.io.IOException; import java.io.InputStream; 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.*; import java.util.zip.GZIPInputStream; public abstract class AbstractHTTPSender { @@ -599,6 +596,34 @@ public abstract class AbstractHTTPSender } } +// 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.getRequestHeaders(); + +boolean headerAdded = false; +for (Header header : headers) { +if (header.getName() != null && +header.getName().equals(((Map.Entry) headerEntry).getKey())) { +headerAdded = true; +break; +} +} + +if (!headerAdded) { +method.addRequestHeader(((Map.Entry) headerEntry).getKey().toString(), +((Map.Entry) headerEntry).getValue().toString()); +} +} +} +} + if (!isCustomUserAgentSet) { String userAgentString = getUserAgent(msgContext); method.setRequestHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString); @@ -606,6 +631,34 @@ public abstract class AbstractHTTPSender } + +/** + * 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;
svn commit: r1051525 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/SessionUtils.java
Author: supun Date: Tue Dec 21 15:18:15 2010 New Revision: 1051525 URL: http://svn.apache.org/viewvc?rev=1051525&view=rev Log: fixing documentation, AXIS2-4078 Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/SessionUtils.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/SessionUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/SessionUtils.java?rev=1051525&r1=1051524&r2=1051525&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/SessionUtils.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/SessionUtils.java Tue Dec 21 15:18:15 2010 @@ -28,9 +28,10 @@ import java.util.Iterator; public class SessionUtils { /** - * Walk through the list of services and use the minimum of the scopes as the scope for the whole service group + * Walk through the list of services and use the maximum of the scopes as the scope + * for the whole service group * - * @param axisServiceGroup + * @param axisServiceGroup the service group * @return scope for the service group */ public static String calculateMaxScopeForServiceGroup(AxisServiceGroup axisServiceGroup) { @@ -49,8 +50,8 @@ public class SessionUtils { /** * convert scope into a numerical value * - * @param scope - * @return integer + * @param scope scope as a string + * @return integer the scope as a number */ private static int getScopeIntValue(String scope) { if (Constants.SCOPE_REQUEST.equals(scope)) { @@ -69,8 +70,8 @@ public class SessionUtils { /** * Get the actual scope string given the numerical value * - * @param scope - * @return string + * @param scope scope as a number + * @return string scope as a string */ private static String getScopeString(int scope) { switch (scope) {
svn commit: r1051531 - /axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
Author: supun Date: Tue Dec 21 15:36:45 2010 New Revision: 1051531 URL: http://svn.apache.org/viewvc?rev=1051531&view=rev Log: doing some minor re-factoring Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=1051531&r1=1051530&r2=1051531&view=diff == --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Tue Dec 21 15:36:45 2010 @@ -58,8 +58,6 @@ public class CommonsHTTPTransportSender * {...@link #init(ConfigurationContext, TransportOutDescription)}. */ private TransportOutDescription transportOut; - -int soTimeout = HTTPConstants.DEFAULT_SO_TIMEOUT; private static final Log log = LogFactory .getLog(CommonsHTTPTransportSender.class); @@ -77,7 +75,9 @@ public class CommonsHTTPTransportSender */ private boolean defaultChunked = false; -int connectionTimeout = HTTPConstants.DEFAULT_CONNECTION_TIMEOUT; +private int soTimeout = HTTPConstants.DEFAULT_SO_TIMEOUT; + +private int connectionTimeout = HTTPConstants.DEFAULT_CONNECTION_TIMEOUT; public void cleanup(MessageContext msgContext) throws AxisFault { HttpMethod httpMethod = (HttpMethod) msgContext.getProperty(HTTPConstants.HTTP_METHOD); @@ -168,18 +168,21 @@ public class CommonsHTTPTransportSender format.setMimeBoundary((String) mimeBoundaryProperty); } - // set the timeout properteies - + // set the timeout properties Parameter soTimeoutParam = transportOut.getParameter(HTTPConstants.SO_TIMEOUT); Parameter connTimeoutParam = transportOut.getParameter(HTTPConstants.CONNECTION_TIMEOUT); -// set the property valuse only if they are not set by the user explicitly -if ((soTimeoutParam != null) && (msgContext.getProperty(HTTPConstants.SO_TIMEOUT) == null)) { -msgContext.setProperty(HTTPConstants.SO_TIMEOUT, new Integer((String)soTimeoutParam.getValue())); +// set the property values only if they are not set by the user explicitly +if ((soTimeoutParam != null) && +(msgContext.getProperty(HTTPConstants.SO_TIMEOUT) == null)) { +msgContext.setProperty(HTTPConstants.SO_TIMEOUT, +new Integer((String) soTimeoutParam.getValue())); } -if ((connTimeoutParam != null) && (msgContext.getProperty(HTTPConstants.CONNECTION_TIMEOUT) == null)) { -msgContext.setProperty(HTTPConstants.CONNECTION_TIMEOUT, new Integer((String)connTimeoutParam.getValue())); +if ((connTimeoutParam != null) && +(msgContext.getProperty(HTTPConstants.CONNECTION_TIMEOUT) == null)) { +msgContext.setProperty(HTTPConstants.CONNECTION_TIMEOUT, +new Integer((String) connTimeoutParam.getValue())); } //if a parameter has set been set, we will omit the SOAP action for SOAP 1.2 @@ -192,7 +195,9 @@ public class CommonsHTTPTransportSender if (parameterValue != null && JavaUtils.isTrueExplicitly(parameterValue)) { //Check whether user has already overridden this. -Object propertyValue = msgContext.getProperty(Constants.Configuration.DISABLE_SOAP_ACTION); +Object propertyValue = msgContext.getProperty( +Constants.Configuration.DISABLE_SOAP_ACTION); + if (propertyValue == null || !JavaUtils.isFalseExplicitly(propertyValue)) { msgContext.setProperty(Constants.Configuration.DISABLE_SOAP_ACTION, Boolean.TRUE);
svn commit: r1051543 - /axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
Author: supun Date: Tue Dec 21 16:27:34 2010 New Revision: 1051543 URL: http://svn.apache.org/viewvc?rev=1051543&view=rev Log: fixing issue AXIS2-3160 Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?rev=1051543&r1=1051542&r2=1051543&view=diff == --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Tue Dec 21 16:27:34 2010 @@ -480,6 +480,41 @@ public abstract class AbstractHTTPSender } } +/** + * 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, HttpMethod 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("http.connection.timeout", +tempConnTimeoutProperty); +} + +if (tempSoTimeoutProperty != null) { +// SO_TIMEOUT -- timeout for blocking reads +httpMethod.getParams().setSoTimeout(tempSoTimeoutProperty); +} else { +// set timeout in client +if (timeout > 0) { +httpMethod.getParams().setSoTimeout((int) timeout); +} +} +} + public void setFormat(OMOutputFormat format) { this.format = format; } @@ -560,7 +595,10 @@ public abstract class AbstractHTTPSender if (cookiePolicy != null) { method.getParams().setCookiePolicy(cookiePolicy); } -HttpState httpState = (HttpState)msgContext.getProperty(HTTPConstants.CACHED_HTTP_STATE); +HttpState httpState = (HttpState)msgContext.getProperty(HTTPConstants.CACHED_HTTP_STATE); + +setTimeouts(msgContext, method); + httpClient.executeMethod(config, method, httpState); }
svn commit: r1051548 - /axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
Author: supun Date: Tue Dec 21 16:39:06 2010 New Revision: 1051548 URL: http://svn.apache.org/viewvc?rev=1051548&view=rev Log: fixing issue AXIS2-3945 Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Modified: axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?rev=1051548&r1=1051547&r2=1051548&view=diff == --- axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original) +++ axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Tue Dec 21 16:39:06 2010 @@ -62,6 +62,8 @@ import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.*; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; import java.util.zip.GZIPInputStream; public abstract class AbstractHTTPSender { @@ -522,49 +524,64 @@ public abstract class AbstractHTTPSender protected HttpClient getHttpClient(MessageContext msgContext) { ConfigurationContext configContext = msgContext.getConfigurationContext(); -HttpClient httpClient = (HttpClient) msgContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT); +HttpClient httpClient = (HttpClient) msgContext.getProperty( +HTTPConstants.CACHED_HTTP_CLIENT); + if (httpClient == null) { httpClient = (HttpClient) configContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT); } + if (httpClient != null) { return httpClient; } -HttpConnectionManager connManager = -(HttpConnectionManager) msgContext.getProperty( - HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER); -if (connManager == null) { -connManager = -(HttpConnectionManager) msgContext.getProperty( - HTTPConstants.MUTTITHREAD_HTTP_CONNECTION_MANAGER); -} -if (connManager == null) { -// reuse HttpConnectionManager -synchronized (configContext) { -connManager = (HttpConnectionManager) configContext.getProperty( - HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER); -if (connManager == null) { -log.trace("Making new ConnectionManager"); -connManager = new MultiThreadedHttpConnectionManager(); - configContext.setProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER, - connManager); +synchronized (this) { +httpClient = (HttpClient) msgContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT); + +if (httpClient == null) { +httpClient = (HttpClient) configContext.getProperty( +HTTPConstants.CACHED_HTTP_CLIENT); +} + +if (httpClient != null) { +return httpClient; +} + +HttpConnectionManager connManager = +(HttpConnectionManager) msgContext.getProperty( +HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER); +if (connManager == null) { +connManager = +(HttpConnectionManager) msgContext.getProperty( + HTTPConstants.MUTTITHREAD_HTTP_CONNECTION_MANAGER); +} +if (connManager == null) { +// reuse HttpConnectionManager +synchronized (configContext) { +connManager = (HttpConnectionManager) configContext.getProperty( +HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER); +if (connManager == null) { +log.trace("Making new ConnectionManager"); +connManager = new MultiThreadedHttpConnectionManager(); +configContext.setProperty( + HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER, connManager); +} } } -} - -/* - * Create a new instance of HttpClient since the way - * it is used here it's not fully thread-safe. - */ -httpClient = new HttpClient(connManager); +/* + * Create a new instance of HttpClient since the way + * it is used here it's not fully thread-safe. + */ +httpClient = new HttpClient(connManager); -// Set the def
svn commit: r1051553 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java
Author: supun Date: Tue Dec 21 16:52:47 2010 New Revision: 1051553 URL: http://svn.apache.org/viewvc?rev=1051553&view=rev Log: applying patch AXIS2-4267, thanks Pradeep for the contribution Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java?rev=1051553&r1=1051552&r2=1051553&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisService.java Tue Dec 21 16:52:47 2010 @@ -2350,8 +2350,9 @@ public class AxisService extends AxisDes AxisService axisService = serviceBuilder.populateService(); AxisEndpoint axisEndpoint = (AxisEndpoint) axisService.getEndpoints() .get(axisService.getEndpointName()); - options.setTo(new EndpointReference(axisEndpoint.getEndpointURL())); + if (axisEndpoint != null) { +options.setTo(new EndpointReference(axisEndpoint.getEndpointURL())); options.setSoapVersionURI((String) axisEndpoint.getBinding() .getProperty(WSDL2Constants.ATTR_WSOAP_VERSION)); }
svn commit: r1051975 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java
Author: supun Date: Wed Dec 22 16:43:03 2010 New Revision: 1051975 URL: http://svn.apache.org/viewvc?rev=1051975&view=rev Log: synchronizing the method where the transport lister is added Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java?rev=1051975&r1=1051974&r2=1051975&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/ClientUtils.java Wed Dec 22 16:43:03 2010 @@ -83,7 +83,7 @@ public class ClientUtils { } } -public static TransportInDescription inferInTransport(AxisConfiguration ac, +public synchronized static TransportInDescription inferInTransport(AxisConfiguration ac, Options options, MessageContext msgCtxt) throws AxisFault {
svn commit: r1055433 - /axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java
Author: supun Date: Wed Jan 5 11:34:59 2011 New Revision: 1055433 URL: http://svn.apache.org/viewvc?rev=1055433&view=rev Log: fixing an constant name change in axis2 Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java?rev=1055433&r1=1055432&r2=1055433&view=diff == --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java Wed Jan 5 11:34:59 2011 @@ -277,7 +277,7 @@ public abstract class AbstractTransportL // There is a discrepency in what I thought, Axis2 spawns a nes threads to // send a message is this is TRUE - and I want it to be the other way -msgCtx.setProperty(MessageContext.TRANSPORT_NON_BLOCKING, Boolean.valueOf(!isNonBlocking)); +msgCtx.setProperty(MessageContext.CLIENT_API_NON_BLOCKING, Boolean.valueOf(!isNonBlocking)); // are these relevant? //msgCtx.setServiceGroupContextId(UUIDGenerator.getUUID());
svn commit: r1059789 - in /axis/axis2/java/transports/trunk/modules/base/src: main/java/org/apache/axis2/transport/base/threads/ main/java/org/apache/axis2/transport/base/threads/watermark/ test/java/
Author: supun Date: Mon Jan 17 08:04:18 2011 New Revision: 1059789 URL: http://svn.apache.org/viewvc?rev=1059789&view=rev Log: adding a ThreadPoolExecutor with a waterMark to control the threading behavior Added: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/DefaultWaterMarkQueue.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/WaterMarkExecutor.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/WaterMarkQueue.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/WaterMarkRejectionHandler.java axis/axis2/java/transports/trunk/modules/base/src/test/java/org/apache/axis2/transport/base/threads/ axis/axis2/java/transports/trunk/modules/base/src/test/java/org/apache/axis2/transport/base/threads/watermark/ axis/axis2/java/transports/trunk/modules/base/src/test/java/org/apache/axis2/transport/base/threads/watermark/WaterMarkExecutorTest.java Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/NativeWorkerPool.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/WorkerPoolFactory.java Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/NativeWorkerPool.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/NativeWorkerPool.java?rev=1059789&r1=1059788&r2=1059789&view=diff == --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/NativeWorkerPool.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/NativeWorkerPool.java Mon Jan 17 08:04:18 2011 @@ -19,11 +19,13 @@ package org.apache.axis2.transport.base.threads; +import org.apache.axis2.transport.base.threads.watermark.DefaultWaterMarkQueue; +import org.apache.axis2.transport.base.threads.watermark.WaterMarkExecutor; +import org.apache.axis2.transport.base.threads.watermark.WaterMarkQueue; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicInteger; /** * Worker pool implementation based on java.util.concurrent in JDK 1.5 or later. @@ -33,7 +35,7 @@ public class NativeWorkerPool implements static final Log log = LogFactory.getLog(NativeWorkerPool.class); private final ThreadPoolExecutor executor; -private final LinkedBlockingQueue blockingQueue; +private final BlockingQueue blockingQueue; public NativeWorkerPool(int core, int max, int keepAlive, int queueLength, String threadGroupName, String threadGroupId) { @@ -45,10 +47,123 @@ public class NativeWorkerPool implements (queueLength == -1 ? new LinkedBlockingQueue() : new LinkedBlockingQueue(queueLength)); executor = new ThreadPoolExecutor( -core, max, keepAlive, -TimeUnit.SECONDS, -blockingQueue, -new NativeThreadFactory(new ThreadGroup(threadGroupName), threadGroupId)); +core, max, keepAlive, +TimeUnit.SECONDS, +blockingQueue, +new NativeThreadFactory(new ThreadGroup(threadGroupName), threadGroupId)); +} + +public NativeWorkerPool(int core, int max, int keepAlive, +int queueLength, String threadGroupName, +String threadGroupId, BlockingQueue queue) { + +if (log.isDebugEnabled()) { +log.debug("Using native util.concurrent package.."); +} + +if (queue == null) { +blockingQueue = +(queueLength == -1 ? new LinkedBlockingQueue() +: new LinkedBlockingQueue(queueLength)); +} else { +blockingQueue = queue; +} + +executor = new ThreadPoolExecutor( +core, max, keepAlive, +TimeUnit.SECONDS, +blockingQueue, +new NativeThreadFactory(new ThreadGroup(threadGroupName), threadGroupId)); +} + +public NativeWorkerPool(int core, int max, int keepAlive, +int queueLength, String threadGroupName, +String threadGroupId, BlockingQueue queue, +RejectedExecutionHandler rejectedExecutio
svn commit: r1060810 - /axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/DefaultWaterMarkQueue.java
Author: supun Date: Wed Jan 19 13:40:18 2011 New Revision: 1060810 URL: http://svn.apache.org/viewvc?rev=1060810&view=rev Log: fixing an issue with using a LinkedBlockingDequeu Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/DefaultWaterMarkQueue.java Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/DefaultWaterMarkQueue.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/DefaultWaterMarkQueue.java?rev=1060810&r1=1060809&r2=1060810&view=diff == --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/DefaultWaterMarkQueue.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/threads/watermark/DefaultWaterMarkQueue.java Wed Jan 19 13:40:18 2011 @@ -50,7 +50,7 @@ public class DefaultWaterMarkQueue im * @param waterMark the waterMark of the queue */ public DefaultWaterMarkQueue(int waterMark) { -afterWaterMarkQueue = new LinkedBlockingDeque(); +afterWaterMarkQueue = new LinkedBlockingQueue(); waterMarkQueue = new ArrayBlockingQueue(waterMark); }
svn commit: r1063633 - /axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportView.java
Author: supun Date: Wed Jan 26 08:51:17 2011 New Revision: 1063633 URL: http://svn.apache.org/viewvc?rev=1063633&view=rev Log: improving the code by re-factoring Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportView.java Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportView.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportView.java?rev=1063633&r1=1063632&r2=1063633&view=diff == --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportView.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/TransportView.java Wed Jan 26 08:51:17 2011 @@ -19,8 +19,6 @@ package org.apache.axis2.transport.base; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.axis2.transport.TransportListener; import org.apache.axis2.transport.TransportSender; @@ -28,171 +26,143 @@ import java.util.Map; public class TransportView implements TransportViewMBean { -private static final Log log = LogFactory.getLog(TransportView.class); - -public static final int STOPPED = 0; -public static final int RUNNING = 1; -public static final int PAUSED = 2; -public static final int SHUTTING_DOWN = 3; +private ManagementSupport managementSupport = null; private TransportListener listener = null; + private TransportSender sender = null; public TransportView(TransportListener listener, TransportSender sender) { -this.listener = listener; -this.sender = sender; +if (listener != null) { +this.listener = listener; +if (listener instanceof ManagementSupport) { +managementSupport = (ManagementSupport) listener; +} +} +if (sender != null) { +this.sender = sender; +if (sender instanceof ManagementSupport) { +managementSupport = (ManagementSupport) sender; +} +} } // JMX Attributes public long getMessagesReceived() { -if (listener != null && listener instanceof ManagementSupport) { -return ((ManagementSupport) listener).getMessagesReceived(); -} else if (sender != null && sender instanceof ManagementSupport) { -return ((ManagementSupport) sender).getMessagesReceived(); +if (managementSupport != null) { +return managementSupport.getMessagesReceived(); } return -1; } public long getFaultsReceiving() { -if (listener != null && listener instanceof ManagementSupport) { -return ((ManagementSupport) listener).getFaultsReceiving(); -} else if (sender != null && sender instanceof ManagementSupport) { -return ((ManagementSupport) sender).getFaultsReceiving(); +if (managementSupport != null) { +return managementSupport.getFaultsReceiving(); } return -1; } public long getTimeoutsReceiving() { -if (listener != null && listener instanceof ManagementSupport) { -return ((ManagementSupport) listener).getTimeoutsReceiving(); -} else if (sender != null && sender instanceof ManagementSupport) { -return ((ManagementSupport) sender).getTimeoutsReceiving(); +if (managementSupport != null) { +return managementSupport.getTimeoutsReceiving(); } return -1; } public long getTimeoutsSending() { -if (listener != null && listener instanceof ManagementSupport) { -return ((ManagementSupport) listener).getTimeoutsSending(); -} else if (sender != null && sender instanceof ManagementSupport) { -return ((ManagementSupport) sender).getTimeoutsSending(); +if (managementSupport != null) { +managementSupport.getTimeoutsSending(); } return -1; } public long getBytesReceived() { -if (listener != null && listener instanceof ManagementSupport) { -return ((ManagementSupport) listener).getBytesReceived(); -} else if (sender != null && sender instanceof ManagementSupport) { -return ((ManagementSupport) sender).getBytesReceived(); +if (managementSupport != null) { +return managementSupport.getBytesReceived(); } return -1; } public long getMessagesSent() { -if (listener != null && listener instanceof ManagementSupport) { -return ((ManagementSupport
svn commit: r1066028 - /axis/axis2/java/transports/trunk/modules/jms/pom.xml
Author: supun Date: Tue Feb 1 12:27:31 2011 New Revision: 1066028 URL: http://svn.apache.org/viewvc?rev=1066028&view=rev Log: adding dynamic import to the jms bundle Modified: axis/axis2/java/transports/trunk/modules/jms/pom.xml Modified: axis/axis2/java/transports/trunk/modules/jms/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/jms/pom.xml?rev=1066028&r1=1066027&r2=1066028&view=diff == --- axis/axis2/java/transports/trunk/modules/jms/pom.xml (original) +++ axis/axis2/java/transports/trunk/modules/jms/pom.xml Tue Feb 1 12:27:31 2011 @@ -101,6 +101,7 @@ javax.xml.namespace; version=0.0.0, *; resolution:=optional +*
svn commit: r1152116 - in /axis/axis2/java/core/trunk/modules: kernel/src/org/apache/axis2/transport/ transport/http/src/org/apache/axis2/transport/http/ transport/http/src/org/apache/axis2/transport/
Author: supun Date: Fri Jul 29 06:07:56 2011 New Revision: 1152116 URL: http://svn.apache.org/viewvc?rev=1152116&view=rev Log: adding some utility methods, to process the messages when the builder is explicitly given Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/HTTPTransportUtils.java axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/util/RESTUtil.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java?rev=1152116&r1=1152115&r2=1152116&view=diff == --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java Fri Jul 29 06:07:56 2011 @@ -129,13 +129,13 @@ public class TransportUtils { * Objective of this method is to capture the SOAPEnvelope creation logic * and make it a common for all the transports and to in/out flows. * - * @param msgContext - * @param inStream - * @param contentType + * @param msgContext message context + * @param inStream input stream + * @param contentType content type of the message * @return the SOAPEnvelope - * @throws AxisFault - * @throws OMException - * @throws XMLStreamException + * @throws AxisFault if an error occurs + * @throws OMException if the xml is invalid + * @throws XMLStreamException if the stream is invalid * @throws FactoryConfigurationError */ public static SOAPEnvelope createSOAPMessage(MessageContext msgContext, @@ -147,6 +147,30 @@ public class TransportUtils { return createSOAPEnvelope(documentElement); } +/** + * Objective of this method is to capture the SOAPEnvelope creation logic + * and make it a common for all the transports and to in/out flows. + * + * @param msgContext message context + * @param inStream input stream + * @param contentType content type of the message + * @param builder the builder to be used + * @return the SOAPEnvelope + * @throws AxisFault if an error occurs + * @throws OMException if the xml is invalid + * @throws XMLStreamException if the stream is invalid + * @throws FactoryConfigurationError + */ +public static SOAPEnvelope createSOAPMessage(MessageContext msgContext, + InputStream inStream, + String contentType, + Builder builder) +throws AxisFault, OMException, XMLStreamException, FactoryConfigurationError { +OMElement documentElement = createDocumentElement(contentType, builder, +msgContext, inStream); +return createSOAPEnvelope(documentElement); +} + public static SOAPEnvelope createSOAPEnvelope(OMElement documentElement) { SOAPEnvelope envelope; // Check whether we have received a SOAPEnvelope or not @@ -166,7 +190,8 @@ public class TransportUtils { public static OMElement createDocumentElement(String contentType, MessageContext msgContext, - InputStream inStream) throws AxisFault, XMLStreamException { + InputStream inStream) +throws AxisFault, XMLStreamException { OMElement documentElement = null; String type = null; if (contentType != null) { @@ -181,23 +206,53 @@ public class TransportUtils { } } if (documentElement == null) { -if (msgContext.isDoingREST()) { -if (log.isDebugEnabled()) { -log.debug("Could not find a Builder for type (" + type + "). Using REST."); -} -OMXMLParserWrapper builder = BuilderUtil.createPOXBuilder(inStream, null); -documentElement = builder.getDocumentElement(); -} else { -// FIXME making soap defualt for the moment..might effect the -// performance -if (log.isDebugEnabled()) { -log.debug("Could not find a Builder for type (" + type + "). Using SOAP."); -} -String charSetEnc = (String) msgContext - .getProperty(Constants.Configuration.CHARACTER_SET_ENCODING); -SOAPModelBuilder builder =
svn commit: r1153064 - in /axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint: ./ config/
Author: supun Date: Tue Aug 2 08:48:23 2011 New Revision: 1153064 URL: http://svn.apache.org/viewvc?rev=1153064&view=rev Log: adding support for url endpoints Added: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpoint.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpointsConfiguration.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointFactory.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointsConfigurationFactory.java Added: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpoint.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpoint.java?rev=1153064&view=auto == --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpoint.java (added) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpoint.java Tue Aug 2 08:48:23 2011 @@ -0,0 +1,91 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.axis2.transport.base.endpoint; + +import org.apache.axis2.builder.Builder; +import org.apache.axis2.builder.SOAPBuilder; +import org.apache.axis2.context.MessageContext; +import org.apache.axis2.description.Parameter; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class URLEndpoint { + private Pattern urlPattern; + +private Map messageBuilders = new HashMap(); + +private List parameters = new ArrayList(); + +private Builder defaultBuilder = new SOAPBuilder(); + +public URLEndpoint(Pattern urlPattern) { +this.urlPattern = urlPattern; +} + +public boolean isMatching(String url) { +Matcher matcher = urlPattern.matcher(url); +return matcher.matches(); +} + +public void addBuilder(String name, Builder builder) { +messageBuilders.put(name, builder); +} + +public void addParameter(Parameter parameter) { +parameters.add(parameter); +} + +public Parameter getParameter(String name) { +for (Parameter p : parameters) { +if (p.getName().equals(name)) { +return p; +} +} +return null; +} + +public List getParameters() { +return parameters; +} + +public void setDefaultBuilder(Builder defaultBuilder) { +this.defaultBuilder = defaultBuilder; +} + +public Builder getBuilder(String contentType) { +Builder builder = messageBuilders.get(contentType); +if (builder == null) { +return defaultBuilder; +} + +return builder; +} + +public void setParameters(MessageContext msgCtx) { +for (Parameter p : parameters) { +msgCtx.setProperty(p.getName(), p.getValue()); +} +} +} Added: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpointsConfiguration.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpointsConfiguration.java?rev=1153064&view=auto == --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/endpoint/URLEndpointsConfiguration.java (added) +++ axis/axis2/java/transports/trunk/modules/bas
svn commit: r1181868 - /axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/iowrappers/BytesMessageOutputStream.java
Author: supun Date: Tue Oct 11 16:13:21 2011 New Revision: 1181868 URL: http://svn.apache.org/viewvc?rev=1181868&view=rev Log: Fixing an simple issue with a throw Modified: axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/iowrappers/BytesMessageOutputStream.java Modified: axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/iowrappers/BytesMessageOutputStream.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/iowrappers/BytesMessageOutputStream.java?rev=1181868&r1=1181867&r2=1181868&view=diff == --- axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/iowrappers/BytesMessageOutputStream.java (original) +++ axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/iowrappers/BytesMessageOutputStream.java Tue Oct 11 16:13:21 2011 @@ -41,7 +41,7 @@ public class BytesMessageOutputStream ex try { message.writeBytes(b, off, len); } catch (JMSException ex) { -new JMSExceptionWrapper(ex); +throw new JMSExceptionWrapper(ex); } }
svn commit: r1233893 - in /axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail: MailConstants.java MailTransportSender.java
Author: supun Date: Fri Jan 20 13:19:55 2012 New Revision: 1233893 URL: http://svn.apache.org/viewvc?rev=1233893&view=rev Log: fixing mail attachments Modified: axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java Modified: axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java?rev=1233893&r1=1233892&r2=1233893&view=diff == --- axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java (original) +++ axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java Fri Jan 20 13:19:55 2012 @@ -60,6 +60,7 @@ public class MailConstants { public static final String TRANSPORT_MAIL_FORMAT = "transport.mail.Format"; public static final String TRANSPORT_FORMAT_TEXT = "Text"; public static final String TRANSPORT_FORMAT_MP = "Multipart"; +public static final String TRANSPORT_FORMAT_ATTACHMENT_FILE = "AttachmentFile"; public static final String TRANSPORT_MAIL_FOLDER = "transport.mail.Folder"; public static final String TRANSPORT_MAIL_CONTENT_TYPE = "transport.mail.ContentType"; Modified: axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java?rev=1233893&r1=1233892&r2=1233893&view=diff == --- axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java (original) +++ axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java Fri Jan 20 13:19:55 2012 @@ -433,6 +433,15 @@ public class MailTransportSender extends mimeMultiPart.addBodyPart(mimeBodyPart1); mimeMultiPart.addBodyPart(mimeBodyPart2); message.setContent(mimeMultiPart); + +String fileName = (String) msgContext.getProperty( +MailConstants.TRANSPORT_FORMAT_ATTACHMENT_FILE); +if (fileName != null) { +mimeBodyPart2.setFileName(fileName); +} else { +mimeBodyPart2.setFileName("attachment"); +} + mainPart = mimeBodyPart2; } else { mainPart = message;
svn commit: r1234716 - in /axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail: MailConstants.java MailTransportSender.java
Author: supun Date: Mon Jan 23 09:40:55 2012 New Revision: 1234716 URL: http://svn.apache.org/viewvc?rev=1234716&view=rev Log: fixing an build break with multipart messages Modified: axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java Modified: axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java?rev=1234716&r1=1234715&r2=1234716&view=diff == --- axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java (original) +++ axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailConstants.java Mon Jan 23 09:40:55 2012 @@ -60,6 +60,7 @@ public class MailConstants { public static final String TRANSPORT_MAIL_FORMAT = "transport.mail.Format"; public static final String TRANSPORT_FORMAT_TEXT = "Text"; public static final String TRANSPORT_FORMAT_MP = "Multipart"; +public static final String TRANSPORT_FORMAT_ATTACHMENT = "Attachment"; public static final String TRANSPORT_FORMAT_ATTACHMENT_FILE = "AttachmentFile"; public static final String TRANSPORT_MAIL_FOLDER = "transport.mail.Folder"; Modified: axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java?rev=1234716&r1=1234715&r2=1234716&view=diff == --- axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java (original) +++ axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java Mon Jan 23 09:40:55 2012 @@ -433,6 +433,15 @@ public class MailTransportSender extends mimeMultiPart.addBodyPart(mimeBodyPart1); mimeMultiPart.addBodyPart(mimeBodyPart2); message.setContent(mimeMultiPart); +mainPart = mimeBodyPart2; +} else if (MailConstants.TRANSPORT_FORMAT_ATTACHMENT.equals(mFormat)) { +mimeMultiPart = new MimeMultipart(); +MimeBodyPart mimeBodyPart1 = new MimeBodyPart(); +mimeBodyPart1.setContent("Web Service Message Attached","text/plain"); +MimeBodyPart mimeBodyPart2 = new MimeBodyPart(); +mimeMultiPart.addBodyPart(mimeBodyPart1); +mimeMultiPart.addBodyPart(mimeBodyPart2); +message.setContent(mimeMultiPart); String fileName = (String) msgContext.getProperty( MailConstants.TRANSPORT_FORMAT_ATTACHMENT_FILE);