[jboss-cvs] JBossAS SVN: r77478 - in trunk: connector/src/main/org/jboss/resource/connectionmanager and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Aug 26 06:24:26 EDT 2008
Author: alex.loubyansky at jboss.com
Date: 2008-08-26 06:24:26 -0400 (Tue, 26 Aug 2008)
New Revision: 77478
Added:
trunk/testsuite/src/resources/jca/deployment/xa-interleaving-ds.xml
Modified:
trunk/connector/src/main/org/jboss/resource/adapter/jdbc/local/LocalTxDataSource.java
trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java
trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManagerMBean.java
trunk/connector/src/main/org/jboss/resource/deployers/builder/ConnectionManagerBuilder.java
trunk/connector/src/main/org/jboss/resource/deployers/management/DsDataSourceTemplateInfo.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/LocalDataSourceDeploymentMetaData.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionEmptyContentAdapter.java
trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java
trunk/testsuite/src/main/org/jboss/test/jca/test/AbstractPoolingStressTest.java
trunk/testsuite/src/main/org/jboss/test/jca/test/ManagedDeploymentUnitTestCase.java
trunk/testsuite/src/resources/jca/deployment/empty-content-ds.xml
trunk/testsuite/src/resources/jca/deployment/track-connection-by-tx-ds.xml
Log:
JBAS-5203 Deprecate the track-connection-by-tx (enabled-by-default) with a <interleaving/> flag for XA Users; corrected one connection factory marshalling test which fails now (it should have) and added one more for xa cf marshalling test which also fails currently for the same reason
Modified: trunk/connector/src/main/org/jboss/resource/adapter/jdbc/local/LocalTxDataSource.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/adapter/jdbc/local/LocalTxDataSource.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/connector/src/main/org/jboss/resource/adapter/jdbc/local/LocalTxDataSource.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -91,7 +91,7 @@
connectionManager = new TxConnectionManager(cachedConnectionManager, pool, transactionManager);
connectionManager.setLocalTransactions(true);
- connectionManager.setTrackConnectionByTx(true);
+ connectionManager.setInterleaving(false);
pool.setConnectionListenerFactory(connectionManager);
datasource = connectionManager.getPoolingStrategy().getManagedConnectionFactory().createConnectionFactory(new ConnectionManagerDelegate());
bindConnectionFactory();
Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManager.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -137,7 +137,7 @@
private TransactionManager tm;
- private boolean trackConnectionByTx = false;
+ private boolean interleaving;
private boolean localTransactions;
@@ -222,16 +222,30 @@
this.tm = tm;
}
+ @Deprecated
public boolean isTrackConnectionByTx()
{
- return trackConnectionByTx;
+ log.warn("isTrackConnectionByTx() is deprecated in favor of isInterleaving()");
+ return !isInterleaving();
}
+ @Deprecated
public void setTrackConnectionByTx(boolean trackConnectionByTx)
{
- this.trackConnectionByTx = trackConnectionByTx;
+ log.warn("setTrackConnectionByTx(boolean value) is deprecated in favor of setInterleaving(boolean value)");
+ setInterleaving(!trackConnectionByTx);
}
+ public boolean isInterleaving()
+ {
+ return interleaving;
+ }
+
+ public void setInterleaving(boolean value)
+ {
+ this.interleaving = value;
+ }
+
public boolean isLocalTransactions()
{
return localTransactions;
@@ -241,7 +255,7 @@
{
this.localTransactions = localTransactions;
if (localTransactions)
- setTrackConnectionByTx(true);
+ setInterleaving(false);
}
public int getXAResourceTransactionTimeout()
@@ -354,7 +368,7 @@
Transaction tx = tm.getTransaction();
if (tx != null && TxUtils.isActive(tx) == false)
throw new ResourceException("Transaction is not active: tx=" + tx);
- if (trackConnectionByTx)
+ if (!interleaving)
trackByTransaction = tx;
}
catch (Throwable t)
@@ -363,7 +377,7 @@
}
if (trace)
- log.trace("getManagedConnection trackByTx=" + trackConnectionByTx + " tx=" + trackByTransaction);
+ log.trace("getManagedConnection interleaving=" + interleaving + " tx=" + trackByTransaction);
return super.getManagedConnection(trackByTransaction, subject, cri);
}
Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManagerMBean.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManagerMBean.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/TxConnectionManagerMBean.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -67,19 +67,36 @@
/**
* mbean get-set pair for field trackConnectionByTx Get the value of trackConnectionByTx
+ * Deprecated in favor of isInterleaving()
*
* @return value of trackConnectionByTx
*/
+ @Deprecated
boolean isTrackConnectionByTx();
/**
* Set the value of trackConnectionByTx
+ * Deprecated in favor of setInterleaving(boolean value)
*
* @param trackConnectionByTx Value to assign to trackConnectionByTx
*/
+ @Deprecated
void setTrackConnectionByTx(boolean trackConnectionByTx);
/**
+ * Whether interleaving transactions are allowed in case of XA
+ * @return the value of interleaving
+ */
+ boolean isInterleaving();
+
+ /**
+ * Whether interleaving transaction are allowed in case of XA
+ *
+ * @param value the value of interleaving
+ */
+ void setInterleaving(boolean value);
+
+ /**
* mbean get-set pair for field localTransactions Get the value of localTransactions
*
* @return value of localTransactions
Modified: trunk/connector/src/main/org/jboss/resource/deployers/builder/ConnectionManagerBuilder.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/deployers/builder/ConnectionManagerBuilder.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/connector/src/main/org/jboss/resource/deployers/builder/ConnectionManagerBuilder.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -163,7 +163,10 @@
attribute = buildSimpleAttribute("LocalTransactions", String.valueOf(md.getLocalTransactions()));
attributes.add(attribute);
- attribute = buildSimpleAttribute("TrackConnectionByTx", String.valueOf(md.getTrackConnectionByTransaction()));
+ //attribute = buildSimpleAttribute("TrackConnectionByTx", String.valueOf(md.getTrackConnectionByTransaction()));
+ //attributes.add(attribute);
+
+ attribute = buildSimpleAttribute("Interleaving", String.valueOf(md.isInterleaving()));
attributes.add(attribute);
if(md.getTransactionSupportMetaData().equals(ManagedConnectionFactoryTransactionSupportMetaData.XA))
Modified: trunk/connector/src/main/org/jboss/resource/deployers/management/DsDataSourceTemplateInfo.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/deployers/management/DsDataSourceTemplateInfo.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/connector/src/main/org/jboss/resource/deployers/management/DsDataSourceTemplateInfo.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -225,7 +225,8 @@
addManagedProperty("no-tx-separate-pools", "", true, SimpleMetaType.BOOLEAN, mo);
addManagedProperty("statistics-formatter", "", true, SimpleMetaType.STRING, mo);
addManagedProperty("isSameRM-override-value", "", true, SimpleMetaType.BOOLEAN, mo);
- addManagedProperty("track-connection-by-tx", "", true, SimpleMetaType.BOOLEAN, mo);
+ addManagedProperty("track-connection-by-tx", "", false, SimpleMetaType.BOOLEAN, mo);
+ addManagedProperty("interleaving", "", false, SimpleMetaType.BOOLEAN, mo);
MetaType type = new MapCompositeMetaType(SimpleMetaType.STRING);
addManagedProperty("config-property", "The connection factory config properties", false, type, mo);
addManagedProperty("security-domain", "The security-domain used to validate connections", false, SimpleMetaType.STRING, mo);
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/LocalDataSourceDeploymentMetaData.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/LocalDataSourceDeploymentMetaData.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/LocalDataSourceDeploymentMetaData.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -47,7 +47,6 @@
public LocalDataSourceDeploymentMetaData()
{
- setTrackConnectionByTransaction(true);
setLocalTransactions(true);
setTransactionSupportMetaData(ManagedConnectionFactoryTransactionSupportMetaData.LOCAL);
}
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionEmptyContentAdapter.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionEmptyContentAdapter.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionEmptyContentAdapter.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -23,6 +23,7 @@
import javax.xml.bind.annotation.adapters.XmlAdapter;
+import org.jboss.logging.Logger;
import org.w3c.dom.Element;
/**
@@ -33,6 +34,7 @@
*/
public class ManagedConnectionEmptyContentAdapter extends XmlAdapter<Object, Boolean>
{
+ private static Logger log = Logger.getLogger(ManagedConnectionEmptyContentAdapter.class);
@Override
public Boolean unmarshal(Object obj) throws Exception
@@ -40,14 +42,19 @@
Element e = (Element)obj;
Boolean results = Boolean.FALSE;
-
- if (e.getNodeName().equals("track-connection-by-tx") || e.getNodeName().equals("no-tx-separate-pools")
- || e.getNodeName().equals("local-transaction") || e.getNodeName().equals("use-strict-min") || e.getNodeName().equals("xa-transaction"))
+ String node = e.getNodeName();
+ if (node.equals("interleaving") || node.equals("no-tx-separate-pools")
+ || node.equals("local-transaction") || node.equals("use-strict-min") || node.equals("xa-transaction"))
{
results = Boolean.TRUE;
-
}
+ if(node.equals("track-connection-by-tx"))
+ {
+ log.warn("<track-connection-by-tx/> is deprecated and is now assumed to be present by default (JBAS-5203)");
+ results = Boolean.TRUE;
+ }
+
return results;
}
Modified: trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -119,11 +119,17 @@
@XmlElement(name="isSameRM-override-value")
private Boolean isSameRMOverrideValue = Boolean.FALSE;
-
+
+ // is always true now and left here for the xml binding
+ @Deprecated
@XmlJavaTypeAdapter(ManagedConnectionEmptyContentAdapter.class)
@XmlElement(name="track-connection-by-tx")
- private Boolean trackConnectionByTransaction = Boolean.FALSE;
-
+ private Boolean trackConnectionByTransaction;
+
+ @XmlJavaTypeAdapter(ManagedConnectionEmptyContentAdapter.class)
+ @XmlElement(name="interleaving")
+ private Boolean interleaving;
+
/** The transactionSupportMetaData */
@XmlTransient
private ManagedConnectionFactoryTransactionSupportMetaData transactionSupportMetaData = ManagedConnectionFactoryTransactionSupportMetaData.NONE;
@@ -154,6 +160,10 @@
@XmlElement(name="local-transaction")
private Boolean localTransactions = Boolean.FALSE;
+ public ManagedConnectionFactoryDeploymentMetaData()
+ {
+ this.interleaving = Boolean.FALSE;
+ }
/**
* Get the connectionDefinition.
@@ -506,17 +516,32 @@
this.isSameRMOverrideValue = isSameRMOverrideValue;
}
+ @Deprecated
@ManagementProperty(name="track-connection-by-tx", includeInTemplate=true)
public Boolean getTrackConnectionByTransaction()
{
- return getLocalTransactions() || trackConnectionByTransaction;
+ return !isInterleaving();
}
+ @Deprecated
public void setTrackConnectionByTransaction(Boolean trackConnectionByTransaction)
{
- this.trackConnectionByTransaction = trackConnectionByTransaction;
+ if(getLocalTransactions() && !trackConnectionByTransaction)
+ throw new IllegalStateException("In case of local transactions track-connection-by-tx must always be true");
+ setInterleaving(!trackConnectionByTransaction);
}
+ @ManagementProperty(name="interleaving", includeInTemplate=true)
+ public Boolean isInterleaving()
+ {
+ return !getLocalTransactions() && interleaving;
+ }
+
+ public void setInterleaving(Boolean interleaving)
+ {
+ this.interleaving = interleaving;
+ }
+
@ManagementProperty(name="local-transaction", use={ViewUse.RUNTIME})
public Boolean getLocalTransactions()
{
Modified: trunk/testsuite/src/main/org/jboss/test/jca/test/AbstractPoolingStressTest.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/test/AbstractPoolingStressTest.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/testsuite/src/main/org/jboss/test/jca/test/AbstractPoolingStressTest.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -76,12 +76,12 @@
cm = new TxConnectionManager(ccm, poolingStrategy, tm);
if (isSticky())
{
- cm.setTrackConnectionByTx(true);
+ cm.setInterleaving(false);
mcf.setFailJoin(true);
}
else
{
- cm.setTrackConnectionByTx(false);
+ cm.setInterleaving(true);
mcf.setFailJoin(false);
}
mcf.setSleepInStart(200);
Modified: trunk/testsuite/src/main/org/jboss/test/jca/test/ManagedDeploymentUnitTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jca/test/ManagedDeploymentUnitTestCase.java 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/testsuite/src/main/org/jboss/test/jca/test/ManagedDeploymentUnitTestCase.java 2008-08-26 10:24:26 UTC (rev 77478)
@@ -47,20 +47,23 @@
if(md instanceof NoTxDataSourceDeploymentMetaData)
{
assertFalse(md.getLocalTransactions());
- assertFalse(md.getTrackConnectionByTransaction());
+ assertTrue(md.getTrackConnectionByTransaction());
+ assertFalse(md.isInterleaving());
assertTrue(md.getTransactionSupportMetaData().equals(ManagedConnectionFactoryTransactionSupportMetaData.NONE));
}else if(md instanceof LocalDataSourceDeploymentMetaData)
{
assertTrue(md.getLocalTransactions());
assertTrue(md.getTrackConnectionByTransaction());
+ assertFalse(md.isInterleaving());
assertFalse(md.getNoTxSeparatePools());
assertTrue(md.getTransactionSupportMetaData().equals(ManagedConnectionFactoryTransactionSupportMetaData.LOCAL));
}else if(md instanceof XADataSourceDeploymentMetaData)
{
assertFalse(md.getLocalTransactions());
- assertFalse(md.getTrackConnectionByTransaction());
+ assertTrue(md.getTrackConnectionByTransaction());
+ assertFalse(md.isInterleaving());
assertTrue(md.getTransactionSupportMetaData().equals(ManagedConnectionFactoryTransactionSupportMetaData.XA));
}
@@ -85,11 +88,10 @@
{
assertFalse(md.getLocalTransactions());
assertFalse(md.getTrackConnectionByTransaction());
+ assertFalse(md.isInterleaving());
assertTrue(md.getTransactionSupportMetaData().equals(ManagedConnectionFactoryTransactionSupportMetaData.NONE));
-
}
}
-
}
@@ -112,7 +114,8 @@
{
ManagedConnectionFactoryDeploymentGroup group = ManagedDeploymentSupportHelper.unmarshalResource("jca/deployment/empty-content-ds.xml");
ManagedConnectionFactoryDeploymentMetaData md = group.getDeployments().get(0);
- assertTrue(md.getTrackConnectionByTransaction());
+ assertTrue(md.getTrackConnectionByTransaction()); // this is always true for local tx
+ assertFalse(md.isInterleaving());
assertTrue(md.getNoTxSeparatePools());
assertTrue(md.getUseStrictMin());
}
@@ -120,15 +123,27 @@
public void testEmptyContentMarshal() throws Exception
{
ManagedConnectionFactoryDeploymentGroup group = ManagedDeploymentSupportHelper.unmarshalResource("jca/deployment/empty-content-ds.xml");
- ManagedConnectionFactoryDeploymentMetaData md = group.getDeployments().get(0);
String result = ManagedDeploymentSupportHelper.marshalResourceAsString(group);
group = ManagedDeploymentSupportHelper.unmarshalSource(result);
- assertTrue(md.getTrackConnectionByTransaction());
+ ManagedConnectionFactoryDeploymentMetaData md = group.getDeployments().get(0);
+ assertTrue(md.getTrackConnectionByTransaction()); // this is always true for local tx
+ assertFalse(md.isInterleaving());
assertTrue(md.getNoTxSeparatePools());
assertTrue(md.getUseStrictMin());
}
+ public void testXAWithInterleavingMarshal() throws Exception
+ {
+ ManagedConnectionFactoryDeploymentGroup group = ManagedDeploymentSupportHelper.unmarshalResource("jca/deployment/xa-interleaving-ds.xml");
+ String result = ManagedDeploymentSupportHelper.marshalResourceAsString(group);
+ group = ManagedDeploymentSupportHelper.unmarshalSource(result);
+ ManagedConnectionFactoryDeploymentMetaData md = group.getDeployments().get(0);
+ assertFalse(md.getTrackConnectionByTransaction());
+ assertTrue(md.isInterleaving());
+
+ }
+
public void testBasicUnmarshal() throws Exception
{
ManagedConnectionFactoryDeploymentGroup group = ManagedDeploymentSupportHelper.unmarshalResource("jca/remote-jdbc/remote-ds.xml");
@@ -171,7 +186,7 @@
{
ManagedConnectionFactoryDeploymentGroup group = ManagedDeploymentSupportHelper.unmarshalResource("jca/deployment/track-connection-by-tx-ds.xml");
List<ManagedConnectionFactoryDeploymentMetaData> deployments = group.getDeployments();
- assertEquals(3, deployments.size());
+ assertEquals(4, deployments.size());
for (ManagedConnectionFactoryDeploymentMetaData md : deployments)
{
@@ -179,16 +194,25 @@
if(md.getJndiName().equals("XAWithTrackConnectionByTx"))
{
assertTrue(md.getTrackConnectionByTransaction());
+ assertFalse(md.isInterleaving());
assertFalse(md.getLocalTransactions());
}
+ else if(md.getJndiName().equals("DefaultXA"))
+ {
+ assertTrue(md.getTrackConnectionByTransaction());
+ assertFalse(md.isInterleaving());
+ assertFalse(md.getLocalTransactions());
+ }
else if(md.getJndiName().equals("XAWithInterleaving"))
{
assertFalse(md.getTrackConnectionByTransaction());
+ assertTrue(md.isInterleaving());
assertFalse(md.getLocalTransactions());
}
else if(md.getJndiName().equals("Local"))
{
assertTrue(md.getTrackConnectionByTransaction());
+ assertFalse(md.isInterleaving());
assertTrue(md.getLocalTransactions());
}
else
@@ -207,6 +231,7 @@
suite.addTest(new ManagedDeploymentUnitTestCase("testDefaultValuesUnmarshal"));
suite.addTest(new ManagedDeploymentUnitTestCase("testConnectionPoolUnmarshal"));
suite.addTest(new ManagedDeploymentUnitTestCase("testTrackConnectionByTxUnmarshal"));
+ suite.addTest(new ManagedDeploymentUnitTestCase("testXAWithInterleavingMarshal"));
return suite;
}
Modified: trunk/testsuite/src/resources/jca/deployment/empty-content-ds.xml
===================================================================
--- trunk/testsuite/src/resources/jca/deployment/empty-content-ds.xml 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/testsuite/src/resources/jca/deployment/empty-content-ds.xml 2008-08-26 10:24:26 UTC (rev 77478)
@@ -8,7 +8,6 @@
<metadata>
<type-mapping>Hypersonic SQL</type-mapping>
</metadata>
- <track-connection-by-tx/>
<no-tx-separate-pools/>
<use-strict-min/>
</local-tx-datasource>
Modified: trunk/testsuite/src/resources/jca/deployment/track-connection-by-tx-ds.xml
===================================================================
--- trunk/testsuite/src/resources/jca/deployment/track-connection-by-tx-ds.xml 2008-08-26 09:03:11 UTC (rev 77477)
+++ trunk/testsuite/src/resources/jca/deployment/track-connection-by-tx-ds.xml 2008-08-26 10:24:26 UTC (rev 77478)
@@ -5,8 +5,13 @@
<track-connection-by-tx/>
</tx-connection-factory>
<tx-connection-factory>
+ <jndi-name>DefaultXA</jndi-name>
+ <xa-transaction/>
+ </tx-connection-factory>
+ <tx-connection-factory>
<jndi-name>XAWithInterleaving</jndi-name>
<xa-transaction/>
+ <interleaving/>
</tx-connection-factory>
<tx-connection-factory>
<jndi-name>Local</jndi-name>
Added: trunk/testsuite/src/resources/jca/deployment/xa-interleaving-ds.xml
===================================================================
--- trunk/testsuite/src/resources/jca/deployment/xa-interleaving-ds.xml (rev 0)
+++ trunk/testsuite/src/resources/jca/deployment/xa-interleaving-ds.xml 2008-08-26 10:24:26 UTC (rev 77478)
@@ -0,0 +1,7 @@
+<datasources>
+ <tx-connection-factory>
+ <jndi-name>XAWithInterleaving</jndi-name>
+ <xa-transaction/>
+ <interleaving/>
+ </tx-connection-factory>
+</datasources>
More information about the jboss-cvs-commits
mailing list