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]