Axis2 patch to support  transaction configuration in axis2.xml.

-Irantha


In oder to support JTA transactions in synapse, I'm working on changing axis2 configuration (axis2.xml) to support following new transaction manager definition.

<transactionManager>
  <parameter name="string">text</parameter>*
</transactionManager>

Example,

<transactionManager>
<parameter name="java.naming.factory.initial">org.*jnp*.interfaces.NamingContextFactory</parameter>*
  <parameter name="java.naming.provider.url">localhost:1099</parameter>
<parameter name="UserTransactionJNDIName">UserTransaction</parameter> <parameter name="TransactionManagerJNDIName">TransactionManager</parameter>
</transactionManager>


-Irantha



Index: modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
===================================================================
--- modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java	(revision 718981)
+++ modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java	(working copy)
@@ -35,11 +35,7 @@
 import org.apache.axis2.dataretrieval.DRConstants;
 import org.apache.axis2.deployment.util.PhasesInfo;
 import org.apache.axis2.deployment.util.Utils;
-import org.apache.axis2.description.HandlerDescription;
-import org.apache.axis2.description.ModuleConfiguration;
-import org.apache.axis2.description.ParameterInclude;
-import org.apache.axis2.description.TransportInDescription;
-import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.*;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisObserver;
 import org.apache.axis2.engine.MessageReceiver;
@@ -186,9 +182,21 @@
                 clusterBuilder.buildCluster(clusterElement);
             }
 
-            /*
-            * Add Axis2 default builders if they are not overidden by the config
-            */
+            OMElement transactionElement = config_element
+                    .getFirstChildWithName(new QName(TAG_TRANSACTION));
+
+            ParameterInclude transactionConfig = new ParameterIncludeImpl();
+            if (transactionElement != null) {
+
+                Iterator parameters = transactionElement.getChildrenWithName(new QName(TAG_PARAMETER));
+                processParameters(parameters, transactionConfig, null);
+
+            }
+            axisConfig.setTransactionConfig(transactionConfig);
+
+                /*
+                * Add Axis2 default builders if they are not overidden by the config
+                */
             axisConfig.addMessageBuilder("multipart/related", new MIMEBuilder());
             axisConfig.addMessageBuilder("application/soap+xml", new SOAPBuilder());
             axisConfig.addMessageBuilder("text/xml", new SOAPBuilder());
Index: modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
===================================================================
--- modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java	(revision 718981)
+++ modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java	(working copy)
@@ -71,6 +71,7 @@
     String TAG_MEP = "mep";
     String TAG_DEFAULT_MODULE_VERSION = "defaultModuleVersions";
     String TAG_CLUSTER = "cluster";
+    String TAG_TRANSACTION = "transaction";
     String TAG_MESSAGE_BUILDERS =
             "messageBuilders"; //used to add pluggable support for diffrent wire formats
     String TAG_MESSAGE_BUILDER = "messageBuilder";
Index: modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
===================================================================
--- modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java	(revision 718981)
+++ modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java	(working copy)
@@ -136,6 +136,8 @@
 
     private AxisConfigurator configurator;
 
+    private ParameterInclude transactionConfig;
+
     /**
      * Constructor AxisConfiguration.
      */
@@ -1000,6 +1002,14 @@
         this.clusterManager = clusterManager;
     }
 
+     public ParameterInclude getTransactionConfig() {
+        return transactionConfig;
+    }
+
+    public void setTransactionConfig(ParameterInclude transactionConfig) {
+        this.transactionConfig = transactionConfig;
+    }
+
     public Object getKey() {
         return toString();
     }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to