Added: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/TargetRequestFactory.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/TargetRequestFactory.java?rev=1502663&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/TargetRequestFactory.java
 (added)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/TargetRequestFactory.java
 Fri Jul 12 19:25:40 2013
@@ -0,0 +1,170 @@
+/*
+ *  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.synapse.transport.passthru.util;
+
+import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+//import org.apache.axis2.util.MessageProcessorSelector;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.MessageFormatter;
+import org.apache.axis2.transport.TransportUtils;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.transport.http.SOAPMessageFormatter;
+import org.apache.axis2.util.MessageProcessorSelector;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.http.HttpVersion;
+import org.apache.http.protocol.HTTP;
+import org.apache.synapse.transport.nhttp.NhttpConstants;
+import org.apache.synapse.transport.passthru.PassThroughConstants;
+import org.apache.synapse.transport.passthru.TargetRequest;
+import org.apache.synapse.transport.passthru.config.TargetConfiguration;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Map;
+
+public class TargetRequestFactory {
+    
+       private static Log log = LogFactory.getLog(TargetRequestFactory.class);
+
+    public static TargetRequest create(MessageContext msgContext,
+                                       TargetConfiguration configuration) 
throws AxisFault {
+        try {
+            String httpMethod = (String) msgContext.getProperty(
+                    Constants.Configuration.HTTP_METHOD);
+            if (httpMethod == null) {
+                httpMethod = "POST";
+            }
+
+            // basic request
+            Boolean noEntityBody = (Boolean) 
msgContext.getProperty(PassThroughConstants.NO_ENTITY_BODY);
+            
+            if(msgContext.getEnvelope().getBody().getFirstElement() != null){
+               noEntityBody  =false;
+            }
+
+            EndpointReference epr = 
PassThroughTransportUtils.getDestinationEPR(msgContext);
+            URL url = new URL(epr.getAddress());
+            TargetRequest request = new TargetRequest(configuration, url, 
httpMethod,
+                    noEntityBody == null || !noEntityBody);
+
+            // headers
+            PassThroughTransportUtils.removeUnwantedHeaders(msgContext,
+                    configuration.isPreserveServerHeader(),
+                    configuration.isPreserveUserAgentHeader());
+
+
+            Object o = 
msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
+            if (o != null && o instanceof Map) {
+                Map headers = (Map) o;
+
+                for (Object entryObj : headers.entrySet()) {
+                    Map.Entry entry = (Map.Entry) entryObj;
+                    if (entry.getValue() != null && entry.getKey() instanceof 
String &&
+                            entry.getValue() instanceof String) {
+                        if 
(!HTTPConstants.HEADER_HOST.equalsIgnoreCase((String) entry.getKey())) {
+                            request.addHeader((String) entry.getKey(), 
(String) entry.getValue());
+                        }else {
+                            
if(msgContext.getProperty(NhttpConstants.REQUEST_HOST_HEADER) != null) {
+                               request.addHeader((String) (String) 
entry.getKey(),
+                                        
(String)msgContext.getProperty(NhttpConstants.REQUEST_HOST_HEADER));
+                            }
+                        }
+                    }
+                }
+            }
+
+            String cType = getContentType(msgContext);
+            if (cType != null) {
+                request.addHeader(HTTP.CONTENT_TYPE, cType);
+            }
+
+            // version
+            String forceHttp10 = (String) 
msgContext.getProperty(PassThroughConstants.FORCE_HTTP_1_0);
+            if ("true".equals(forceHttp10)) {
+                request.setVersion(HttpVersion.HTTP_1_0);
+            }
+
+            // keep alive
+            String noKeepAlie = (String) 
msgContext.getProperty(PassThroughConstants.NO_KEEPALIVE);
+            if ("true".equals(noKeepAlie)) {
+                request.setKeepAlive(false);
+            }
+
+            // port
+            int port = url.getPort();
+            request.setPort(port != -1 ? port : 80);
+
+            // chunk
+            String disableChunking = (String) msgContext.getProperty(
+                    PassThroughConstants.DISABLE_CHUNKING);
+            if ("true".equals(disableChunking)) {
+                request.setChunk(false);
+            }
+
+            // full url
+            String fullUrl = (String) 
msgContext.getProperty(PassThroughConstants.FULL_URI);
+            if ("true".equals(fullUrl)) {
+                request.setFullUrl(true);                
+            }
+
+            return request;
+        } catch (MalformedURLException e) {
+            handleException("Invalid to address" + 
msgContext.getTo().getAddress(), e);
+        }
+
+        return null;
+    }
+
+    private static String getContentType(MessageContext msgCtx) throws 
AxisFault {
+        MessageFormatter formatter = 
MessageProcessorSelector.getMessageFormatter(msgCtx);
+        OMOutputFormat format = 
PassThroughTransportUtils.getOMOutputFormat(msgCtx);
+        
+        if (formatter != null) {
+            String contentType= formatter.getContentType(msgCtx, format, 
msgCtx.getSoapAction());
+          //keep the formatter information to prevent multipart boundary 
override (this will be the content writing to header)
+            msgCtx.setProperty(PassThroughConstants.MESSAGE_OUTPUT_FORMAT, 
format);
+            return contentType;
+            
+        } else {
+            String contentType = (String) 
msgCtx.getProperty(Constants.Configuration.CONTENT_TYPE);
+            if (contentType != null) {
+                return contentType;
+            } else {
+                return new SOAPMessageFormatter().getContentType(
+                        msgCtx, format,  msgCtx.getSoapAction());
+            }
+        }
+    }
+
+    /**
+     * Throws an AxisFault if an error occurs at this level
+     * @param s a message describing the error
+     * @param e original exception leads to the error condition
+     * @throws org.apache.axis2.AxisFault wrapping the original exception
+     */
+    private static void handleException(String s, Exception e) throws 
AxisFault {
+        log.error(s, e);
+        throw new AxisFault(s, e);
+    }
+}

Modified: synapse/trunk/java/pom.xml
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/pom.xml?rev=1502663&r1=1502662&r2=1502663&view=diff
==============================================================================
--- synapse/trunk/java/pom.xml (original)
+++ synapse/trunk/java/pom.xml Fri Jul 12 19:25:40 2013
@@ -1048,7 +1048,7 @@
         <module>modules/distribution</module>
         <module>modules/packaging/package-skeleton</module>
         <module>modules/packaging/package-archetype</module>
-        <module>modules/integration</module>
+        <!--module>modules/integration</module-->
        <module>modules/documentation</module>
     </modules>
 

Modified: synapse/trunk/java/repository/conf/axis2.xml
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/axis2.xml?rev=1502663&r1=1502662&r2=1502663&view=diff
==============================================================================
--- synapse/trunk/java/repository/conf/axis2.xml (original)
+++ synapse/trunk/java/repository/conf/axis2.xml Fri Jul 12 19:25:40 2013
@@ -130,13 +130,13 @@
     <!--format  serialization in Axis2. These message formats are expected to 
be resolved based on the content type. -->
     <messageFormatters>
         <messageFormatter contentType="application/x-www-form-urlencoded"
-                          
class="org.apache.synapse.core.relay.ExpandingMessageFormatter"/>
+                          
class="org.apache.synapse.transport.passthru.util.ExpandingMessageFormatter"/>
         <messageFormatter contentType="multipart/form-data"
-                          
class="org.apache.synapse.core.relay.ExpandingMessageFormatter"/>
+                          
class="org.apache.synapse.transport.passthru.util.ExpandingMessageFormatter"/>
         <messageFormatter contentType="application/xml"
-                          
class="org.apache.synapse.core.relay.ExpandingMessageFormatter"/>
+                          
class="org.apache.synapse.transport.passthru.util.ExpandingMessageFormatter"/>
         <messageFormatter contentType="text/xml"
-                          
class="org.apache.synapse.core.relay.ExpandingMessageFormatter"/>
+                          
class="org.apache.synapse.transport.passthru.util.ExpandingMessageFormatter"/>
 
         <!--messageFormatter contentType="application/x-www-form-urlencoded"
                          
class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
@@ -160,13 +160,13 @@
     <!--formats in Axis2. These message formats are expected to be resolved 
based on the content type. -->
     <messageBuilders>
         <messageBuilder contentType="application/xml"
-                        
class="org.apache.synapse.core.relay.BinaryRelayBuilder"/>
+                        
class="org.apache.synapse.transport.passthru.util.BinaryRelayBuilder"/>
         <messageBuilder contentType="application/x-www-form-urlencoded"
-                        
class="org.apache.synapse.core.relay.BinaryRelayBuilder"/>
+                        
class="org.apache.synapse.transport.passthru.util.BinaryRelayBuilder"/>
         <messageBuilder contentType="multipart/form-data"
-                        
class="org.apache.synapse.core.relay.BinaryRelayBuilder"/>
+                        
class="org.apache.synapse.transport.passthru.util.BinaryRelayBuilder"/>
         <messageBuilder contentType="text/xml"
-                        
class="org.apache.synapse.core.relay.BinaryRelayBuilder"/>
+                        
class="org.apache.synapse.transport.passthru.util.BinaryRelayBuilder"/>
 
         <!--messageBuilder contentType="application/xml"
                          
class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
@@ -507,6 +507,7 @@
                      
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
                 <order phase="Transport"/>
             </handler>
+            <handler name="EarlyBuilder" 
class="org.apache.synapse.core.relay.ServiceRequestEarlyBuilder"/>
         </phase>
         <phase name="Addressing">
             <handler name="AddressingBasedDispatcher"

Added: synapse/trunk/java/repository/conf/axis2_server.xml
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/axis2_server.xml?rev=1502663&view=auto
==============================================================================
--- synapse/trunk/java/repository/conf/axis2_server.xml (added)
+++ synapse/trunk/java/repository/conf/axis2_server.xml Fri Jul 12 19:25:40 2013
@@ -0,0 +1,573 @@
+<!--
+  ~  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.
+  -->
+
+<axisconfig name="AxisJava2.0">
+    <!-- ================================================= -->
+    <!-- Parameters -->
+    <!-- ================================================= -->
+
+    <!-- WARNING: Hot deployment is turned on by default, but it is highly 
recommended to set this to false
+            on production environments, unless you really want to use hot 
deployment in production -->
+    <parameter name="hotdeployment">true</parameter>
+    <parameter name="hotupdate">true</parameter>
+    <parameter name="enableMTOM">false</parameter>
+    <parameter name="enableSwA">false</parameter>
+
+    <!--Uncomment if you want to enable file caching for attachments -->
+    <!--parameter name="cacheAttachments">true</parameter>
+    <parameter name="attachmentDIR"></parameter>
+    <parameter name="sizeThreshold">4000</parameter-->
+
+    <!--This will give out the timout of the configuration contexts, in 
milliseconds-->
+    <parameter name="ConfigContextTimeoutInterval">30000</parameter>
+
+    <!--During a fault, stacktrace can be sent with the fault message. The 
following flag will control -->
+    <!--that behavior.-->
+    <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
+
+    <!--If there aren't any information available to find out the fault 
reason, we set the message of the exception-->
+    <!--as the faultreason/Reason. But when a fault is thrown from a service 
or some where, it will be -->
+    <!--wrapped by different levels. Due to this the initial exception message 
can be lost. If this flag-->
+    <!--is set, then Axis2 tries to get the first exception and set its 
message as the faultreason/Reason.-->
+    <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
+
+    <parameter name="userName">admin</parameter>
+    <parameter name="password">axis2</parameter>
+
+    <!--To override repository/services you need to uncomment following 
parameter and value SHOULD be absolute file path.-->
+    <!--ServicesDirectory only works on the following cases-->
+    <!---File based configurator and in that case the value should be a file 
URL (http:// not allowed)-->
+    <!---When creating URL Based configurator with URL "file://"  -->
+    <!--- War based configurator with expanded case , -->
+
+    <!--All the other scenarios it will be ignored.-->
+    <!--<parameter name="ServicesDirectory">service</parameter>-->
+    <!--To override repository/modules you need to uncomment following 
parameter and value SHOULD be absolute file path-->
+    <!--<parameter name="ModulesDirectory">modules</parameter>-->
+
+
+
+    <!--Following params will set the proper context paths for invocations. 
All the endpoints will have a commons context-->
+    <!--root which can configured using the following contextRoot parameter-->
+    <parameter name="contextRoot">/</parameter>
+
+    <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters 
can be used to distinguiush those endpoints-->
+    <!--In case of a servlet, if you change this you have to manually change 
the settings of your servlet container to map this -->
+    <!--context path to proper Axis2 servlets-->
+    <parameter name="servicePath">services</parameter>
+    <parameter name="restPath">rest</parameter>
+
+    <!-- Following parameter will completely disable REST handling in Axis2-->
+    <parameter name="disableREST" locked="true">false</parameter>
+
+    <!-- Extension deployer
+         ***** Uncomment the following line to enable (hot) deployment of 
Synapse extensions (mediators and startups) ***** -->
+    <!--<deployer extension="xar" directory="extensions" 
class="org.apache.synapse.deployers.ExtensionDeployer"/>-->
+
+    <!-- WARNING: Synapse Artifact Deployers, it is highly recommended to 
comment out these deployers in production
+                unless you really want to use hot deployment/update -->
+    <deployer extension="xml" directory="conf/synapse-config/sequences" 
class="org.apache.synapse.deployers.SequenceDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/endpoints" 
class="org.apache.synapse.deployers.EndpointDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/local-entries" 
class="org.apache.synapse.deployers.LocalEntryDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/proxy-services" 
class="org.apache.synapse.deployers.ProxyServiceDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/event-sources" 
class="org.apache.synapse.deployers.EventSourceDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/tasks" 
class="org.apache.synapse.deployers.TaskDeployer"/>
+    <deployer extension="xml" 
directory="conf/synapse-config/priority-executors" 
class="org.apache.synapse.deployers.PriorityExecutorDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/templates" 
class="org.apache.synapse.deployers.TemplateDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/message-stores" 
class="org.apache.synapse.deployers.MessageStoreDeployer"/>
+    <deployer extension="xml" 
directory="conf/synapse-config/message-processors" 
class="org.apache.synapse.deployers.MessageProcessorDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/api" 
class="org.apache.synapse.deployers.APIDeployer"/>
+    <deployer extension="xml" directory="conf/synapse-config/imports" 
class="org.apache.synapse.deployers.ImportDeployer"/>
+    <deployer extension="zip" directory="conf/synapse-libs" 
class="org.apache.synapse.deployers.LibraryArtifactDeployer"/>
+
+    <!-- Following parameter will set the host name for the epr-->
+    <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
+
+    <!-- If you have a frontend host which exposes this webservice using a 
different public URL  -->
+    <!-- use this parameter to override autodetected url -->
+    <!--<parameter 
name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
+
+
+    <!--    The way of adding listener to the system-->
+    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
+    <!--        <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
+    <!--    </listener>-->
+
+    <!-- ================================================= -->
+    <!-- Message Receivers -->
+    <!-- ================================================= -->
+    <!--This is the deafult MessageReceiver for the system , if you want to 
have MessageReceivers for -->
+    <!--all the other MEP implement it and add the correct entry to here , so 
that you can refer from-->
+    <!--any operation -->
+    <!--Note : You can ovrride this for a particular service by adding the 
same element with your requirement-->
+    <messageReceivers>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only";
+                         
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out";
+                         
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only";
+                         
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out";
+                         
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+    </messageReceivers>
+
+    <!-- ================================================= -->
+    <!-- Message Formatter -->
+    <!-- ================================================= -->
+    <!--Following content type to message formatter mapping can be used to 
implement support for different message -->
+    <!--format  serialization in Axis2. These message formats are expected to 
be resolved based on the content type. -->
+    <messageFormatters>
+        <messageFormatter contentType="application/x-www-form-urlencoded"
+                         
class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
+        <messageFormatter contentType="multipart/form-data"
+                         
class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
+        <messageFormatter contentType="application/xml"
+                         
class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
+        <!--<messageFormatter contentType="x-application/hessian"
+                         
class="org.apache.synapse.format.hessian.HessianMessageFormatter"/>-->
+        <!--<messageFormatter contentType=""
+                         
class="org.apache.synapse.format.hessian.HessianMessageFormatter"/>-->
+        <!--<messageFormatter contentType="application/json"
+                         
class="org.apache.axis2.json.JSONMessageFormatter"/>-->
+
+    </messageFormatters>
+
+    <!-- ================================================= -->
+    <!-- Message Builders -->
+    <!-- ================================================= -->
+    <!--Following content type to builder mapping can be used to implement 
support for different message -->
+    <!--formats in Axis2. These message formats are expected to be resolved 
based on the content type. -->
+    <messageBuilders>
+        <messageBuilder contentType="application/xml"
+                         
class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
+        <messageBuilder contentType="application/x-www-form-urlencoded"
+                         
class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
+        <messageBuilder contentType="multipart/form-data"
+                         
class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
+        <!--<messageBuilder contentType="x-application/hessian"
+                         
class="org.apache.synapse.format.hessian.HessianMessageBuilder"/>-->
+        <!--<messageBuilder contentType=""
+                         
class="org.apache.synapse.format.hessian.HessianMessageBuilder"/>-->
+        <!--<messageBuilder contentType="application/json"
+                         class="org.apache.axis2.json.JSONOMBuilder"/>-->
+    </messageBuilders>
+
+    <!-- ================================================= -->
+    <!-- Transport Ins -->
+    <!-- ================================================= -->
+    <!-- the non blocking http transport based on HttpCore + NIO extensions -->
+    <transportReceiver name="http" 
class="org.apache.synapse.transport.nhttp.HttpCoreNIOListener">
+       <parameter name="port">8280</parameter>
+       <parameter name="non-blocking">true</parameter>
+        <!--parameter name="bind-address" locked="false">hostname or IP 
address</parameter-->
+        <!--parameter name="WSDLEPRPrefix" 
locked="false">https://apachehost:port/somepath</parameter-->
+        <!-- paramter name="priorityConfigFile" locked="false">location of 
priority configuration file<parameter-->
+    </transportReceiver>
+
+    <!-- the non blocking https transport based on HttpCore + SSL-NIO 
extensions -->
+    <transportReceiver name="https" 
class="org.apache.synapse.transport.nhttp.HttpCoreNIOSSLListener">
+       <parameter name="port" locked="false">8243</parameter>
+        <!--parameter name="bind-address" locked="false">hostname or IP 
address</parameter-->
+        <!--parameter name="WSDLEPRPrefix" 
locked="false">http://apachehost:port/somepath</parameter-->
+        <parameter name="non-blocking" locked="false">true</parameter>
+        <parameter name="keystore" locked="false">
+            <KeyStore>
+                <Location>lib/identity.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+                <KeyPassword>password</KeyPassword>
+            </KeyStore>
+        </parameter>
+        <parameter name="truststore" locked="false">
+            <TrustStore>
+                <Location>lib/trust.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+            </TrustStore>
+        </parameter>
+        <!--<parameter name="SSLVerifyClient">require</parameter>
+            supports optional|require or defaults to none -->
+    </transportReceiver>
+
+    <!--Uncomment this and configure as appropriate for JMS transport support, 
after setting up your JMS environment (e.g. ActiveMQ)
+    <transportReceiver name="jms" 
class="org.apache.axis2.transport.jms.JMSListener">
+        <parameter name="myTopicConnectionFactory">
+               <parameter 
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+               <parameter 
name="java.naming.provider.url">tcp://localhost:61616</parameter>
+               <parameter 
name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
+               <parameter name="transport.jms.ConnectionFactoryType" 
locked="false">topic</parameter>
+        </parameter>
+
+        <parameter name="myQueueConnectionFactory">
+               <parameter 
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+               <parameter 
name="java.naming.provider.url">tcp://localhost:61616</parameter>
+               <parameter 
name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+               <parameter name="transport.jms.ConnectionFactoryType" 
locked="false">queue</parameter>
+        </parameter>
+
+        <parameter name="default">
+               <parameter 
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+               <parameter 
name="java.naming.provider.url">tcp://localhost:61616</parameter>
+               <parameter 
name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+               <parameter name="transport.jms.ConnectionFactoryType" 
locked="false">queue</parameter>
+        </parameter>
+    </transportReceiver>-->
+
+    <transportReceiver name="vfs" 
class="org.apache.synapse.transport.vfs.VFSTransportListener"/>
+
+    <transportReceiver name="mailto" 
class="org.apache.axis2.transport.mail.MailTransportListener">
+        <!-- configure any optional POP3/IMAP properties
+        check com.sun.mail.pop3 and com.sun.mail.imap package documentation 
for more details-->
+    </transportReceiver>
+
+     <!--Uncomment this for FIX transport support
+    <transportReceiver name="fix" 
class="org.apache.synapse.transport.fix.FIXTransportListener">
+        <parameter name="non-blocking">true</parameter>
+    </transportReceiver>-->
+
+    <!--Uncomment this for TCP transport support
+    <transportReceiver name="tcp" 
class="org.apache.axis2.transport.tcp.TCPServer">
+        <parameter name="port">6060</parameter>
+    </transportReceiver>-->
+
+    <!--Uncomment this for UDP transport support
+    <transportReceiver name="udp" 
class="org.apache.axis2.transport.udp.UDPListener"/>-->
+
+    <!-- ================================================= -->
+    <!-- Transport Outs -->
+    <!-- ================================================= -->
+
+    <transportSender name="http"  
class="org.apache.synapse.transport.nhttp.HttpCoreNIOSender">
+        <parameter name="non-blocking" locked="false">true</parameter>
+        <parameter name="warnOnHTTP500" locked="false">*</parameter>
+        <!--parameter name="http.proxyHost" 
locked="false">localhost</parameter>
+        <parameter name="http.proxyPort" locked="false">3128</parameter>
+        <parameter name="http.nonProxyHosts" 
locked="false">localhost|moon|sun</parameter-->
+    </transportSender>
+    <transportSender name="https" 
class="org.apache.synapse.transport.nhttp.HttpCoreNIOSSLSender">
+        <parameter name="non-blocking" locked="false">true</parameter>
+        <parameter name="warnOnHTTP500" locked="false">*</parameter>
+        <parameter name="keystore" locked="false">
+            <KeyStore>
+                <Location>lib/identity.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+                <KeyPassword>password</KeyPassword>
+            </KeyStore>
+        </parameter>
+        <parameter name="truststore" locked="false">
+            <TrustStore>
+                <Location>lib/trust.jks</Location>
+                <Type>JKS</Type>
+                <Password>password</Password>
+            </TrustStore>
+        </parameter>
+        <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
+            supports Strict|AllowAll|DefaultAndLocalhost or the default if 
none specified -->
+    </transportSender>
+
+    <!-- Uncomment Transport sender for the non blocking local transport-->
+    <!--transportSender name="local" 
class="org.apache.axis2.transport.local.NonBlockingLocalTransportSender"/-->
+
+    <transportSender name="jms" 
class="org.apache.axis2.transport.jms.JMSSender">
+        <!-- uncomment this and configure to use connection pools for sending 
messages
+        <parameter name="myTopicConnectionFactory">
+            <parameter 
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter 
name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter 
name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
+        </parameter>
+
+        <parameter name="myQueueConnectionFactory">
+            <parameter 
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter 
name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter 
name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+        </parameter>
+
+        <parameter name="default">
+            <parameter 
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter 
name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter 
name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+        </parameter> -->
+    </transportSender>
+
+    <transportSender name="vfs" 
class="org.apache.synapse.transport.vfs.VFSTransportSender"/>
+
+    <!-- Uncomment and configure the SMTP server information
+    check com.sun.mail.smtp package documentation for descriptions of 
properties
+    <transportSender name="mailto" 
class="org.apache.axis2.transport.mail.MailTransportSender">
+        <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
+        <parameter name="mail.smtp.port">587</parameter>
+        <parameter name="mail.smtp.starttls.enable">true</parameter>
+        <parameter name="mail.smtp.auth">true</parameter>
+        <parameter name="mail.smtp.user">synapse.demo.0</parameter>
+        <parameter name="mail.smtp.password">mailpassword</parameter>
+        <parameter name="mail.smtp.from">[email protected]</parameter>
+    </transportSender>-->
+
+    <!--Uncomment this for FIX transport support
+    <transportSender name="fix" 
class="org.apache.synapse.transport.fix.FIXTransportSender">
+           <parameter name="non-blocking">true</parameter>
+    </transportSender>-->
+
+    <!--Uncomment this for TCP transport support
+    <transportSender name="tcp" 
class="org.apache.axis2.transport.tcp.TCPTransportSender"/>-->
+
+    <!--Uncomment this for UDP transport support
+    <transportSender name="udp" 
class="org.apache.axis2.transport.udp.UDPSender"/>-->
+
+    <!-- ================================================= -->
+    <!-- Global Modules  -->
+    <!-- ================================================= -->
+    <!-- Comment this to disable Addressing -->
+    <module ref="addressing"/>
+
+    <!--Configuring module , providing parameters for modules whether they 
refer or not-->
+    <!--<moduleConfig name="addressing">-->
+    <!--<parameter name="addressingPara">N/A</parameter>-->
+    <!--</moduleConfig>-->
+
+    <!-- ================================================= -->
+    <!--                  Clustering                       -->
+    <!-- ================================================= -->
+    <!-- Configure the following for preparing Synapse to a clustered 
environment -->
+    <clustering 
class="org.apache.axis2.clustering.tribes.TribesClusteringAgent" enable="false">
+
+        <!--
+           This parameter indicates whther the cluster has to be automatically 
initalized
+           when the AxisConfiguration is built. If set to "true" the 
initialization will not be
+           done at that stage, and some other party will have to explictly 
initialize the cluster.
+        -->
+        <parameter name="AvoidInitiation">false</parameter>
+
+        <!--
+           The membership scheme used in this setup. The only values supported 
at the moment are
+           "multicast" and "wka"
+
+           1. multicast - membership is automatically discovered using 
multicasting
+           2. wka - Well-Known Address based multicasting. Membership is 
discovered with the help
+                    of one or more nodes running at a Well-Known Address. New 
members joining a
+                    cluster will first connect to a well-known node, register 
with the well-known node
+                    and get the membership list from it. When new members 
join, one of the well-known
+                    nodes will notify the others in the group. When a member 
leaves the cluster or
+                    is deemed to have left the cluster, it will be detected by 
the Group Membership
+                    Service (GMS) using a TCP ping mechanism.
+        -->
+        <parameter name="membershipScheme">multicast</parameter>
+
+        <!--
+         The clustering domain/group. Nodes in the same group will belong to 
the same multicast
+         domain. There will not be interference between nodes in different 
groups.
+        -->
+        <parameter name="domain">apache.synapse.domain</parameter>
+
+        <!--
+           When a Web service request is received, and processed, before the 
response is sent to the
+           client, should we update the states of all members in the cluster? 
If the value of
+           this parameter is set to "true", the response to the client will be 
sent only after
+           all the members have been updated. Obviously, this can be time 
consuming. In some cases,
+           such this overhead may not be acceptable, in which case the value 
of this parameter
+           should be set to "false"
+        -->
+        <parameter name="synchronizeAll">true</parameter>
+
+        <!--
+          The maximum number of times we need to retry to send a message to a 
particular node
+          before giving up and considering that node to be faulty
+        -->
+        <parameter name="maxRetries">10</parameter>
+
+        <!-- The multicast address to be used -->
+        <parameter name="mcastAddress">228.0.0.4</parameter>
+
+        <!-- The multicast port to be used -->
+        <parameter name="mcastPort">45564</parameter>
+
+        <!-- The frequency of sending membership multicast messages (in ms) -->
+        <parameter name="mcastFrequency">500</parameter>
+
+        <!-- The time interval within which if a member does not respond, the 
member will be
+         deemed to have left the group (in ms)
+         -->
+        <parameter name="memberDropTime">3000</parameter>
+
+        <!--
+           The IP address of the network interface to which the multicasting 
has to be bound to.
+           Multicasting would be done using this interface.
+        -->
+        <parameter name="mcastBindAddress">127.0.0.1</parameter>
+
+        <!-- The host name or IP address of this member -->
+        <parameter name="localMemberHost">127.0.0.1</parameter>
+
+        <!--
+        The TCP port used by this member. This is the port through which other 
nodes will
+        contact this member
+         -->
+        <parameter name="localMemberPort">4000</parameter>
+
+        <!--
+           The list of static or well-known members. These entries will only 
be valid if the
+           "membershipScheme" above is set to "wka"
+        -->
+        <members>
+            <member>
+                <hostName>127.0.0.1</hostName>
+                <port>4000</port>
+            </member>
+            <member>
+                <hostName>127.0.0.1</hostName>
+                <port>4001</port>
+            </member>
+        </members>
+
+        <!--
+        Enable the groupManagement entry if you need to run this node as a 
cluster manager.
+        Multiple application domains with different GroupManagementAgent 
implementations
+        can be defined in this section.
+        -->
+        <groupManagement enable="false">
+            <applicationDomain name="apache.axis2.app.domain"
+                               description="Axis2 group"
+                               
agent="org.apache.axis2.clustering.management.DefaultGroupManagementAgent"/>
+        </groupManagement>
+
+        <!--
+           This interface is responsible for handling context replication. The 
property changes in
+           the Axis2 context hierarchy in this node, are propagated to all 
other nodes in the cluster.
+
+           The "excludes" patterns can be used to specify the prefixes (e.g. 
local_*) or
+           suffixes (e.g. *_local) of the properties to be excluded from 
replication. The pattern
+           "*" indicates that all properties in a particular context should 
not be replicated.
+
+            The "enable" attribute indicates whether context replication has 
been enabled
+        -->
+        <contextManager 
class="org.apache.axis2.clustering.context.DefaultContextManager"
+                         enable="false">
+            <listener 
class="org.apache.axis2.clustering.context.DefaultContextManagerListener"/>
+            <replication>
+                <defaults>
+                    <exclude name="local_*"/>
+                    <exclude name="LOCAL_*"/>
+                </defaults>
+                <context class="org.apache.axis2.context.ConfigurationContext">
+                    <exclude name="UseAsyncOperations"/>
+                    <exclude name="SequencePropertyBeanMap"/>
+                </context>
+                <context class="org.apache.axis2.context.ServiceGroupContext">
+                    <exclude name="my.sandesha.*"/>
+                </context>
+                <context class="org.apache.axis2.context.ServiceContext">
+                    <exclude name="my.sandesha.*"/>
+                </context>
+            </replication>
+        </contextManager>
+    </clustering>
+
+    <!-- ================================================= -->
+    <!-- Phases  -->
+    <!-- ================================================= -->
+    <phaseOrder type="InFlow">
+        <!--  System pre defined phases       -->
+        <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+        </phase>
+        <phase name="Addressing">
+             <handler name="AddressingBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                 <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="CustomURIBasedDispatcher"
+                     
class="org.apache.synapse.core.axis2.CustomURIBasedDispatcher"/>
+            <handler name="RequestURIBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+
+            <handler name="HTTPLocationBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <!--  System predefined phases       -->
+        <!--   After Postdispatch phase module author or service author can 
add any phase he want      -->
+        <phase name="OperationInPhase"/>
+        <phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="soapmonitorPhase"/>
+        <phase name="OperationOutPhase"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+    <phaseOrder type="InFaultFlow">
+        <phase name="Addressing">
+             <handler name="AddressingBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                 <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+
+            <handler name="HTTPLocationBasedDispatcher"
+                     
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationInFaultPhase"/>
+        <phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFaultFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="soapmonitorPhase"/>
+        <phase name="OperationOutFaultPhase"/>
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+</axisconfig>
\ No newline at end of file


Reply via email to