You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by sa...@apache.org on 2006/05/30 15:56:18 UTC

svn commit: r410286 - in /incubator/synapse/trunk/java: modules/core/ modules/core/conf/ modules/core/src/org/apache/synapse/core/axis2/ repository/conf/ repository/services/

Author: saminda
Date: Tue May 30 06:56:16 2006
New Revision: 410286

URL: http://svn.apache.org/viewvc?rev=410286&view=rev
Log:
Synapse has become a module now. So it shall be synapse.mar. Once the synapse.mar put into modules dir, 
SynapseDispacter will be the first dispatcher and direct all the trafic to synapse. One can provide location 
of the synapse.xml via the system property SYNAPSE_XML. 

Deprecated the class SynapseAxis2Intercepter.  

Added:
    incubator/synapse/trunk/java/modules/core/conf/module.xml
    incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseModule.java
Removed:
    incubator/synapse/trunk/java/repository/services/
Modified:
    incubator/synapse/trunk/java/modules/core/maven.xml
    incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseAxis2Interceptor.java
    incubator/synapse/trunk/java/repository/conf/axis2.xml

Added: incubator/synapse/trunk/java/modules/core/conf/module.xml
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/conf/module.xml?rev=410286&view=auto
==============================================================================
--- incubator/synapse/trunk/java/modules/core/conf/module.xml (added)
+++ incubator/synapse/trunk/java/modules/core/conf/module.xml Tue May 30 06:56:16 2006
@@ -0,0 +1,15 @@
+<module name="synapse" class="org.apache.synapse.core.axis2.SynapseModule">
+
+    <Description>
+        This module dynamically set the Synapse dispatcher. Synapse service and
+        SynapseMessageReceiver will be initialize by SynapseModule
+    </Description>
+
+    <inflow>
+        <handler name="SynapseDispatcher"
+                 class="org.apache.synapse.core.axis2.SynapseDispatcher">
+            <order phaseFirst="true" phase="Dispatch"/>
+        </handler>
+    </inflow>
+
+</module>

Modified: incubator/synapse/trunk/java/modules/core/maven.xml
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/maven.xml?rev=410286&r1=410285&r2=410286&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/maven.xml (original)
+++ incubator/synapse/trunk/java/modules/core/maven.xml Tue May 30 06:56:16 2006
@@ -20,30 +20,20 @@
     <goal name="synapse_core">
         <j:set var="class_test.dir" value="target/test-classes"/>
 
-        <echo message="----------------Creating First Dispatching aar----------------"/>
-        <mkdir dir="target/services/synapse/META-INF"/>
-        <copy file="test-resources/axis2/services/synapse/META-INF/services.xml"
-              tofile="target/services/synapse/META-INF/services.xml"/>
-        <jar jarfile="target/synapse.aar"
-             basedir="target/services/synapse">
+        <echo message="----------------Creating synapse.mar----------------"/>
+        <mkdir dir="target/modules/synapse/META-INF"/>
+        <copy file="conf/module.xml"
+              tofile="target/modules/synapse/META-INF/module.xml"/>
+        <jar jarfile="target/synapse.mar"
+             basedir="target/modules/synapse">
             <include name="**"/>
         </jar>
 
-        <echo message="----------------Creating Empty Mediator aar----------------"/>
-        <mkdir dir="target/services/emptymediator/META-INF"/>
-        <copy file="test-resources/axis2/services/emptymediator/META-INF/services.xml"
-              tofile="target/services/emptymediator/META-INF/services.xml"/>
-        <jar jarfile="target/emptymediator.aar"
-             basedir="target/services/emptymediator">
-            <include name="**"/>
-        </jar>
 
         <echo message="-----------Creating Testing Repository - Genral----------"/>
         <mkdir dir="target/synapse-repository"/>
-        <copy file="target/synapse.aar"
-              tofile="target/synapse-repository/services/synapse.aar"/>
-        <copy file="target/emptymediator.aar"
-              tofile="target/synapse-repository/services/emptymediator.aar"/>
+        <copy file="target/synapse.mar"
+              tofile="target/synapse-repository/modules/synapse.mar"/>
         <mkdir dir="target/synapse-repository/modules"/>
         <copy file="../../repository/modules/addressing-${addressing.version}.mar"
               tofile="target/synapse-repository/modules/addressing-${addressing.version}.mar"/>
@@ -55,9 +45,7 @@
 
         <ant:delete dir="target/modules"/>
         <ant:delete dir="target/services"/>
-        <ant:delete file="target/emptymediator.aar"/>
-        <ant:delete file="target/synapse.aar"/>
-        <ant:delete file="target/environmentaware-mediator.aar"/>
+        <ant:delete file="target/synapse.mar"/>
 
         <ant:path id="classes_test.dir" location="${class_test.dir}"/>
         <maven:addPath id="maven.dependency.classpath" refid="classes_test.dir"/>

Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseAxis2Interceptor.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseAxis2Interceptor.java?rev=410286&r1=410285&r2=410286&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseAxis2Interceptor.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseAxis2Interceptor.java Tue May 30 06:56:16 2006
@@ -39,6 +39,8 @@
  * The Synapse Axis2 interceptor will be invoked by Axis2 upon Axis initialization.
  * This allows the Synapse engine to be initialized at Axis2 startup, and store the
  * initial Synapse configuration into the AxisConfiguration for subsequent lookup.
+ * @deprecated
+ * SynapseModule will initialize the SynapseEnvironment. 
  */
 public class SynapseAxis2Interceptor implements AxisObserver, Constants {
 

Added: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseModule.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseModule.java?rev=410286&view=auto
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseModule.java (added)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/core/axis2/SynapseModule.java Tue May 30 06:56:16 2006
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.core.axis2;
+
+import org.apache.axis2.modules.Module;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.description.*;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.config.SynapseConfiguration;
+import org.apache.synapse.config.SynapseConfigurationBuilder;
+import org.apache.synapse.Constants;
+import org.apache.synapse.SynapseException;
+
+import javax.xml.namespace.QName;
+
+public class SynapseModule implements Module, Constants {
+
+    private static final String SYNAPSE_SERVICE_NAME = "synapse";
+    private static final QName MEDIATE_OPERATION_Q_NAME = new QName("mediate");
+
+    private static final Log log = LogFactory.getLog(SynapseModule.class);
+
+    public void init(ConfigurationContext configurationContext,
+                     AxisModule axisModule) throws AxisFault {
+        log.info("Initializing Synapse Service from SynapseModule ..");
+        // Dynamically initialize the Empty Synapse Service
+        AxisConfiguration axisCfg = configurationContext.getAxisConfiguration();
+        AxisService synapseService = new AxisService(SYNAPSE_SERVICE_NAME);
+        AxisOperation mediateOperation =
+                new InOutAxisOperation(MEDIATE_OPERATION_Q_NAME);
+        mediateOperation.setMessageReceiver(new SynapseMessageReceiver());
+        synapseService.addOperation(mediateOperation);
+        axisCfg.addService(synapseService);
+
+        // Initializing the SynapseEnvironment For Synapse to work
+
+        log.info("Initializing Synapse Environment ...");
+
+        SynapseConfiguration synCfg = null;
+
+        // if the system property synapse.xml is specified, use it.. else default config
+        String config = System.getProperty(Constants.SYNAPSE_XML);
+
+        if (config != null) {
+            log.info("System property '" + Constants.SYNAPSE_XML +
+                     "' specifies synapse configuration as " + config);
+            synCfg = SynapseConfigurationBuilder.getConfiguration(config);
+        } else {
+            log.info("System property '" + Constants.SYNAPSE_XML +
+                     "' is not specified. Using default configuration");
+            synCfg = SynapseConfigurationBuilder.getDefaultConfiguration();
+        }
+
+        // set the Synapse configuration and environment into the Axis2 configuration
+        Parameter synapseCtxParam = new Parameter(SYNAPSE_CONFIG, null);
+        synapseCtxParam.setValue(synCfg);
+
+        Parameter synapseEnvParam = new Parameter(SYNAPSE_ENV, null);
+        synapseEnvParam.setValue(new Axis2SynapseEnvironment(axisCfg));
+
+        try {
+            axisCfg.addParameter(synapseCtxParam);
+            axisCfg.addParameter(synapseEnvParam);
+
+        } catch (AxisFault e) {
+            handleException(
+                    "Could not set parameters '" + SYNAPSE_CONFIG +
+                    "' and/or '" + SYNAPSE_ENV +
+                    "'to the Axis2 configuration : " + e.getMessage(), e);
+        }
+
+        log.info("Synapse Environment initialized...");
+
+
+    }
+
+    public void engageNotify(AxisDescription axisDescription) throws AxisFault {
+        // FixMe
+    }
+
+    public void shutdown(ConfigurationContext configurationContext)
+            throws AxisFault {
+        // FixMe
+    }
+
+    private void handleException(String msg, Exception e) {
+        log.error(msg, e);
+        throw new SynapseException(msg, e);
+    }
+}

Modified: incubator/synapse/trunk/java/repository/conf/axis2.xml
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/repository/conf/axis2.xml?rev=410286&r1=410285&r2=410286&view=diff
==============================================================================
--- incubator/synapse/trunk/java/repository/conf/axis2.xml (original)
+++ incubator/synapse/trunk/java/repository/conf/axis2.xml Tue May 30 06:56:16 2006
@@ -1,167 +1,162 @@
-<axisconfig name="SynapseAxisJava2.0">
-    <!-- ================================================= -->
-    <!-- Parameters -->
-    <!-- ================================================= -->
-    <parameter name="hotdeployment" locked="false">true</parameter>
-    <parameter name="hotupdate" locked="false">false</parameter>
-    <parameter name="enableMTOM" locked="false">false</parameter>
-    <parameter name="sendStacktraceDetailsWithFaults" locked="false">true</parameter>
-
-    <!-- Uncomment this to enable REST support -->
-    <!--    <parameter name="enableREST" locked="false">true</parameter>-->
-
-    <parameter name="userName" locked="false">admin</parameter>
-    <parameter name="password" locked="false">axis2</parameter>
-    
-    <!-- Always engage addressing for Synapse -->
-    <module ref="addressing"/>
-    <!-- This interceptor initializes Synapse on Axis2 startup -->
-    <listener class="org.apache.synapse.core.axis2.SynapseAxis2Interceptor"/>
-
-
-    <!-- ================================================= -->
-    <!-- Message Receivers -->
-    <!-- ================================================= -->
-    <!--This is the Deafult Message Receiver 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 ovride this for 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"/>
-    </messageReceivers>
-    <!-- ================================================= -->
-    <!-- Transport Ins -->
-    <!-- ================================================= -->
-    <transportReceiver name="http"
-                       class="org.apache.axis2.transport.http.SimpleHTTPServer">
-        <parameter name="port" locked="false">6060</parameter>
-        <!--If you want to give your own host address for EPR generation-->
-        <!--uncommet following paramter , and set as you required.-->
-        <!--<parameter name="hostname" locked="false">http://myApp.com/ws</parameter>-->
-    </transportReceiver>
-
-    <transportReceiver name="tcp"
-                       class="org.apache.axis2.transport.tcp.TCPServer">
-        <parameter name="port" locked="false">6061</parameter>
-        <!--If you want to give your own host address for EPR generation-->
-        <!--uncommet following paramter , and set as you required.-->
-        <!--<parameter name="hostname" locked="false">tcp://myApp.com/ws</parameter>-->
-    </transportReceiver>
-
-    <!-- ================================================= -->
-    <!-- Transport Outs -->
-    <!-- ================================================= -->
-
-    <transportSender name="tcp"
-                     class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
-    <transportSender name="local"
-                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
-    <transportSender name="jms"
-                     class="org.apache.axis2.transport.jms.JMSSender"/>
-    <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
-        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
-        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
-    </transportSender>
-    <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
-        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
-        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
-    </transportSender>
-
-    <!-- ================================================= -->
-    <!-- Phases  -->
-    <!-- ================================================= -->
-    <phaseOrder type="inflow">
-        <!--  System pre defined phases       -->
-         <phase name="Transport">
-            <!--<handler name="RequestURIBasedDispatcher"-->
-                     <!--class="org.apache.axis2.engine.RequestURIBasedDispatcher">-->
-                <!--<order phase="Dispatch"/>-->
-            <!--</handler>-->
-            <!--<handler name="SOAPActionBasedDispatcher"-->
-                     <!--class="org.apache.axis2.engine.SOAPActionBasedDispatcher">-->
-                <!--<order phase="Dispatch"/>-->
-            <!--</handler>-->
-        </phase>
-        <phase name="Security"/>
-        <phase name="PreDispatch"/>
-        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
-            <handler name="SynapseDispatcher"
-                     class="org.apache.synapse.core.axis2.SynapseDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-
-            <!--<handler name="AddressingBasedDispatcher"-->
-                     <!--class="org.apache.axis2.engine.AddressingBasedDispatcher">-->
-                <!--<order phase="Dispatch"/>-->
-            <!--</handler>-->
-
-            <!--<handler name="SOAPMessageBodyBasedDispatcher"-->
-                     <!--class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">-->
-                <!--<order phase="Dispatch"/>-->
-            <!--</handler>-->
-
-            <handler name="InstanceDispatcher"
-                     class="org.apache.axis2.engine.InstanceDispatcher">
-                <order phase="PostDispatch"/>
-            </handler>
-        </phase>
-        <!--  System pre defined phases       -->
-        <!--   After Postdispatch phase module author or or service author can add any phase he want      -->
-        <phase name="OperationInPhase"/>
-    </phaseOrder>
-    <phaseOrder type="outflow">
-        <!--      user can add his own phases to this area  -->
-        <phase name="OperationOutPhase"/>
-        <!--system predefined phase-->
-        <!--these phase will run irrespective of the service-->
-        <phase name="PolicyDetermination"/>
-        <phase name="MessageOut"/>
-    </phaseOrder>
-    <phaseOrder type="INfaultflow">
-        <phase name="PreDispatch"/>
-        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
-
-            <handler name="SynapseDispatcher"
-                     class="org.apache.synapse.core.axis2.SynapseDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-
-            <!--<handler name="RequestURIBasedDispatcher"-->
-                     <!--class="org.apache.axis2.engine.RequestURIBasedDispatcher">-->
-                <!--<order phase="Dispatch"/>-->
-            <!--</handler>-->
-
-            <!--<handler name="SOAPActionBasedDispatcher"-->
-                     <!--class="org.apache.axis2.engine.SOAPActionBasedDispatcher">-->
-                <!--<order phase="Dispatch"/>-->
-            <!--</handler>-->
-
-            <!--<handler name="AddressingBasedDispatcher"-->
-                     <!--class="org.apache.axis2.engine.AddressingBasedDispatcher">-->
-                <!--<order phase="Dispatch"/>-->
-            <!--</handler>-->
-
-            <!--<handler name="SOAPMessageBodyBasedDispatcher"-->
-                     <!--class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">-->
-                <!--<order phase="Dispatch"/>-->
-            <!--</handler>-->
-            <handler name="InstanceDispatcher"
-                     class="org.apache.axis2.engine.InstanceDispatcher">
-                <order phase="PostDispatch"/>
-            </handler>
-        </phase>
-        <!--      user can add his own phases to this area  -->
-        <phase name="OperationInFaultPhase"/>
-    </phaseOrder>
-    <phaseOrder type="Outfaultflow">
-        <!--      user can add his own phases to this area  -->
-        <phase name="OperationOutFaultPhase"/>
-        <phase name="PolicyDetermination"/>
-        <phase name="MessageOut"/>
-    </phaseOrder>
-</axisconfig>
\ No newline at end of file
+<axisconfig name="AxisJava2.0">
+    <!-- ================================================= -->
+    <!-- Parameters -->
+    <!-- ================================================= -->
+    <parameter name="hotdeployment" locked="false">true</parameter>
+    <parameter name="hotupdate" locked="false">false</parameter>
+    <parameter name="enableMTOM" locked="false">false</parameter>
+
+    <!--During a fault, stacktrace can be sent with the fault message. The following flag will control -->
+    <!--that behaviour.-->
+    <parameter name="sendStacktraceDetailsWithFaults" locked="false">true</parameter>
+
+    <!--If there aren't any information available to find out the fault reason, we set the message of the expcetion-->
+    <!--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" locked="false">false</parameter>
+
+    <!--This is the user name and password of admin console-->
+    <parameter name="userName" locked="false">admin</parameter>
+    <parameter name="password" locked="false">axis2</parameter>
+
+    <!-- ==================================================== -->
+    <module ref="addressing"/>
+    <module ref="synapse"/>
+
+    <!-- ==================================================== -->
+
+    <!-- ================================================= -->
+    <!-- Message Receivers -->
+    <!-- ================================================= -->
+    <!--This is the Deafult Message Receiver 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 ovride this for 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"/>
+    </messageReceivers>
+    <!-- ================================================= -->
+    <!-- Transport Ins -->
+    <!-- ================================================= -->
+    <transportReceiver name="http"
+                       class="org.apache.axis2.transport.http.SimpleHTTPServer">
+        <parameter name="port" locked="false">6060</parameter>
+        <!--If you want to give your own host address for EPR generation-->
+        <!--uncommet following paramter , and set as you required.-->
+        <!--<parameter name="hostname" locked="false">http://myApp.com/ws</parameter>-->
+    </transportReceiver>
+
+    <transportReceiver name="tcp"
+                       class="org.apache.axis2.transport.tcp.TCPServer">
+        <parameter name="port" locked="false">6061</parameter>
+        <!--If you want to give your own host address for EPR generation-->
+        <!--uncommet following paramter , and set as you required.-->
+        <!--<parameter name="hostname" locked="false">tcp://myApp.com/ws</parameter>-->
+    </transportReceiver>
+
+    <!-- ================================================= -->
+    <!-- Transport Outs -->
+    <!-- ================================================= -->
+
+    <transportSender name="tcp"
+                     class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+    <transportSender name="local"
+                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <transportSender name="jms"
+                     class="org.apache.axis2.transport.jms.JMSSender"/>
+    <transportSender name="http"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+    </transportSender>
+    <transportSender name="https"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+    </transportSender>
+
+    <!-- ================================================= -->
+    <!-- Phases  -->
+    <!-- ================================================= -->
+    <phaseOrder type="inflow">
+        <!--  System pre defined phases       -->
+         <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.engine.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.engine.AddressingBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+            <handler name="InstanceDispatcher"
+                     class="org.apache.axis2.engine.InstanceDispatcher">
+                <order phase="PostDispatch"/>
+            </handler>
+        </phase>
+        <!--  System pre defined phases       -->
+        <!--   After Postdispatch phase module author or or service author can add any phase he want      -->
+        <phase name="OperationInPhase"/>
+    </phaseOrder>
+    <phaseOrder type="outflow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationOutPhase"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+    </phaseOrder>
+    <phaseOrder type="INfaultflow">
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.engine.RequestURIBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.engine.AddressingBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+            <handler name="InstanceDispatcher"
+                     class="org.apache.axis2.engine.InstanceDispatcher">
+                <order phase="PostDispatch"/>
+            </handler>
+        </phase>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationInFaultPhase"/>
+    </phaseOrder>
+    <phaseOrder type="Outfaultflow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationOutFaultPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+    </phaseOrder>
+</axisconfig>



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org