[jboss-cvs] JBossAS SVN: r101706 - in trunk/testsuite: src/main/org/jboss/test/jbossts/JTSContextPropagation01 and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 2 04:44:33 EST 2010
Author: istudens at redhat.com
Date: 2010-03-02 04:44:32 -0500 (Tue, 02 Mar 2010)
New Revision: 101706
Modified:
trunk/testsuite/imports/config/tests-jts-propagation.xml
trunk/testsuite/src/main/org/jboss/test/jbossts/JTSContextPropagation01/TestContextPropagation.java
trunk/testsuite/src/main/org/jboss/test/jbossts/recovery/ASTestResource.java
trunk/testsuite/src/main/org/jboss/test/jbossts/taskdefs/TransactionLog.java
trunk/testsuite/src/main/org/jboss/test/jbossts/txpropagation/EJBUtils.java
trunk/testsuite/src/main/org/jboss/test/jbossts/txpropagation/ORBWrapper.java
trunk/testsuite/src/resources/jbossts/scripts/as-tests.xml
Log:
finished IIOP/JRMP propagation tests, prepared integration with crash recovery tests, JBQA-2604
Modified: trunk/testsuite/imports/config/tests-jts-propagation.xml
===================================================================
--- trunk/testsuite/imports/config/tests-jts-propagation.xml 2010-03-02 09:12:15 UTC (rev 101705)
+++ trunk/testsuite/imports/config/tests-jts-propagation.xml 2010-03-02 09:44:32 UTC (rev 101706)
@@ -23,7 +23,7 @@
| ./build.sh tests-jts-propagation
|
| or for particular test scenario:
- | ./build.sh -Djbossts.ejbX={ejb2|ejb3} -Djbossts.transport={jrmp|iiop} -Djbossts.clientTx={false|true} -Djbossts.target=jts-propagation-tests-single tests-jts-propagation
+ | ./build.sh -Djbossts.ejbX={ejb2|ejb3} -Djbossts.transport={jrmp|iiop} -Djbossts.target=jts-propagation-tests-single tests-jts-propagation
|
| Note: If you want to force the wiping out any txs in doubt from DB before the test you can use the property -DwipeOutTxsInDoubtBeforeTest=true.
| Note 2: The default database is PostgreSQL 8.3. To change this you need to set the property jbossts.db like for the crash recovery tests.
@@ -44,7 +44,6 @@
<property name="jbossts.target" value="jts-propagation-tests" />
<property name="jbossts.max.time" value="300000" />
- <property name="jbossts.clientTx" value="false" />
<property name="jbossts.db" value="psql_8.3" />
<run-jts-propag-test target="${jbossts.target}" />
@@ -64,13 +63,14 @@
<classpath>
<pathelement location="${build.lib}/jts-propagation-client.jar"/>
<pathelement location="${ant.library.dir}/ant-launcher.jar"/>
+ <pathelement location="${jbosstest.dist}/common/lib/jboss-iiop.jar"/>
+ <fileset dir="${jbosstest.dist}/client"/>
<fileset refid="org.apache.ant:ant:jar"/>
<fileset refid="org.apache.ant:ant-junit:jar"/>
<fileset refid="junit:junit:jar"/>
<fileset refid="org.jboss.jbossas:jboss-server-manager:jar"/>
<fileset refid="jboss.jbossts:jbossjts:jar"/>
<fileset refid="jboss.jbossts:jbossjts-integration:jar"/>
- <fileset dir="${jbosstest.dist}/client"/>
</classpath>
<sysproperty key="ant.home" value="${ant.home}"/>
<sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
@@ -88,7 +88,6 @@
<sysproperty key="wipeOutTxsInDoubtBeforeTest" value="${wipeOutTxsInDoubtBeforeTest}" />
<sysproperty key="jbossts.ejbX" value="${jbossts.ejbX}" />
<sysproperty key="jbossts.transport" value="${jbossts.transport}" />
- <sysproperty key="jbossts.clientTx" value="${jbossts.clientTx}" />
<sysproperty key="jbossts.db" value="${jbossts.db}" />
<sysproperty key="node0" value="${node0}" />
<sysproperty key="node1" value="${node0}" /> <!-- uses the Service Binding Manager -->
@@ -134,28 +133,49 @@
<property name="target.server.dir" location="${jboss.dist}/server/jts-propagation-node1"/>
</ant>
- <setup-jts-propogation-crash-recovery conf="jts-propagation-node0"/>
- <setup-jts-propogation-crash-recovery conf="jts-propagation-node1"/>
+ <setup-jts-propogation-crash-recovery conf="jts-propagation-node0" nodeIdentifier="1"/>
+ <setup-jts-propogation-crash-recovery conf="jts-propagation-node1" nodeIdentifier="2"/>
</target>
<macrodef name="setup-jts-propogation-crash-recovery">
<attribute name="conf"/>
+ <attribute name="nodeIdentifier"/>
<sequential>
- <!-- enable crash recovery and point it to our datasource -->
+ <!-- put recovery datasource to the JTAEnvironmentBean section -->
<replaceregexp file="${jboss.dist}/server/@{conf}/deploy/transaction-jboss-beans.xml" flags="s"
match="(<bean name="JTAEnvironmentBean")(.*?)(</bean>)"
- replace="\1\2@@@PUT_RECOVERY_PROPERTY_HERE@@@\3" />
+ replace="\1\2@@@PUT_RECOVERY_PROPERTY_HERE@@@\3@@@PUT_JTS_ENVIRONMENT_BEAN_HERE@@@" />
<replace file="${jboss.dist}/server/@{conf}/deploy/transaction-jboss-beans.xml">
<replacetoken><![CDATA[@@@PUT_RECOVERY_PROPERTY_HERE@@@]]></replacetoken>
<replacevalue><![CDATA[
- <property name="xaResourceRecoveryInstances">
- <list elementClass="java.lang.String">
- <value>com.arjuna.ats.internal.jbossatx.jta.AppServerJDBCXARecovery;jndiname=CrashRecoveryDS</value>
- </list>
- </property>
+ <property name="xaResourceRecoveryInstances">
+ <list elementClass="java.lang.String">
+ <value>com.arjuna.ats.internal.jbossatx.jta.AppServerJDBCXARecovery;jndiname=CrashRecoveryDS</value>
+ </list>
+ </property>
]]></replacevalue>
</replace>
+ <!-- set alwaysPropagateContext=true -->
+ <replace file="${jboss.dist}/server/@{conf}/deploy/transaction-jboss-beans.xml">
+ <replacetoken><![CDATA[@@@PUT_JTS_ENVIRONMENT_BEAN_HERE@@@]]></replacetoken>
+ <replacevalue><![CDATA[
+ <bean name="JTSEnvironmentBean" class="com.arjuna.ats.jts.common.JTSEnvironmentBean">
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=JTSEnvironmentBean", exposedInterface=com.arjuna.ats.jts.common.JTSEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+ <constructor factoryClass="com.arjuna.ats.jts.common.jtsPropertyManager" factoryMethod="getJTSEnvironmentBean"/>
+ <property name="alwaysPropagateContext">true</property>
+ </bean>
+]]></replacevalue>
+ </replace>
+ <!-- set xaRecoveryNode -->
+ <replaceregexp file="${jboss.dist}/server/@{conf}/deploy/transaction-jboss-beans.xml" flags="s"
+ match="(xaRecoveryNodes.*?<value>)\d(</value>)"
+ replace="\1@{nodeIdentifier}\2" />
+ <!-- set nodeIdentifier -->
+ <replaceregexp file="${jboss.dist}/server/@{conf}/deploy/transaction-jboss-beans.xml" flags="s"
+ match="(<property name="nodeIdentifier">)1(</property>)"
+ replace="\1@{nodeIdentifier}\2" />
+
<!-- more verbose logging
FIXME modify it for new jbossts version, i.e. for deploy/transaction-jboss-beans.xml file
Modified: trunk/testsuite/src/main/org/jboss/test/jbossts/JTSContextPropagation01/TestContextPropagation.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jbossts/JTSContextPropagation01/TestContextPropagation.java 2010-03-02 09:12:15 UTC (rev 101705)
+++ trunk/testsuite/src/main/org/jboss/test/jbossts/JTSContextPropagation01/TestContextPropagation.java 2010-03-02 09:44:32 UTC (rev 101706)
@@ -36,7 +36,6 @@
import org.jboss.test.jbossts.crash.TestEntityHelperRem;
import org.jboss.remoting.CannotConnectException;
import org.omg.CORBA.ORBPackage.InvalidName;
-import org.omg.CosTransactions.SubtransactionsUnavailable;
import org.apache.tools.ant.BuildException;
import com.arjuna.ats.jts.OTSManager;
@@ -47,9 +46,6 @@
import java.util.Set;
import javax.ejb.EJBTransactionRolledbackException;
-import javax.naming.NamingException;
-import javax.transaction.NotSupportedException;
-import javax.transaction.SystemException;
import javax.transaction.UserTransaction;
/**
@@ -61,7 +57,7 @@
public class TestContextPropagation extends JUnitClientTest
{
// the longest time to wait in millis before declaring a test a failed (overridable)
- private static final int MAX_TEST_TIME = 300000; // 5 minutes - allows two intervals of recovery which is 2 minutes by default
+ private static final int MAX_TEST_TIME = 5*60 * 1000; // 5 minutes - allows two intervals of recovery which is 2 minutes by default
private boolean useOTS = false;
private boolean useEJB3 = false;
@@ -75,7 +71,7 @@
private String storeDirServer0 = null;
private String storeDirServer1 = null;
private String storeImple = "com.arjuna.ats.internal.arjuna.objectstore.HashedActionStore";
- private String storeType = "StateManager/BasicAction/TwoPhaseCoordinator/ArjunaTransactionImple";
+ private String storeType = "StateManager/BasicAction/TwoPhaseCoordinator/ArjunaTransactionImple.*";
private TransactionLog storeServer0;
private TransactionLog storeServer1;
private int existingUidsServer0;
@@ -256,7 +252,7 @@
storeDir = serverPath + "data/tx-object-store";
else
storeDir = serverPath + storeDir;
-
+
TransactionLog store = new TransactionLog(storeDir, storeImple);
return store;
@@ -268,6 +264,9 @@
{
String res = null;
+ if (useOTS)
+ initORB();
+
if (clientTx)
startTx(host0, jndiPort0);
@@ -281,8 +280,9 @@
TxPropagationEJB2Rem cr = EJBUtils.lookupTxPropagationBeanEJB2(host0, jndiPort0, corbaPort0, useOTS);
res = cr.testXA(fSpecsNode0, fSpecsNode1, testEntityPK0, testEntityPK1, host1, expectFailureNode1, useOTS, jndiPort1, corbaPort1);
}
-
- return "Passed".equalsIgnoreCase(res);
+
+ // in case of commit_halt on node1 there is no thrown exception, though that we need to pass through recoverUids()
+ return "Passed".equalsIgnoreCase(res) && recoverUids();
}
catch (CannotConnectException e)
{
@@ -321,8 +321,16 @@
}
finally
{
- if (clientTx)
- endTx();
+ try
+ {
+ if (clientTx)
+ endTx();
+ }
+ finally
+ {
+ if (orb != null)
+ orb.stop();
+ }
}
return false;
@@ -335,7 +343,7 @@
*/
private boolean recoverUids() throws IOException
{
- int retryPeriod = 60000; // 1 minute
+ int retryPeriod = 60 * 1000; // 1 minute
int maxWait = maxTestTime;
// wait for the server to start up the first time through, we will need it for later database checking
@@ -352,7 +360,7 @@
if (expectFailureNode0 || expectFailureNode1)
{
- suspendFor(2000); // a little waiting is needed sometimes in order to be able to start server again, 2 secs
+ suspendFor(2 * 1000); // a little waiting is needed sometimes in order to be able to start server again, 2 secs
if (expectFailureNode0)
config.startServer(serverName0);
@@ -435,8 +443,8 @@
TestEntityHelperRem hlp = (TestEntityHelperRem) config.getNamingContext(serverName).lookup(TestEntityHelper.REMOTE_JNDI_NAME);
TestEntity initEntity = hlp.initTestEntity(entityPK);
- if (isDebug)
- print("TestContextPropagation#initDatabase(serverName=" + serverName + "): initEntity = " + initEntity);
+// if (isDebug)
+// print("TestContextPropagation#initDatabase(serverName=" + serverName + "): initEntity = " + initEntity);
return initEntity;
}
@@ -450,11 +458,11 @@
if (checkedEntity != null)
{
- if (isDebug)
- {
- print("TestContextPropagation#checkDatabase(serverName=" + serverName + "): initEntity = " + initEntity);
- print("TestContextPropagation#checkDatabase(serverName=" + serverName + "): checkedEntity = " + checkedEntity);
- }
+// if (isDebug)
+// {
+// print("TestContextPropagation#checkDatabase(serverName=" + serverName + "): initEntity = " + initEntity);
+// print("TestContextPropagation#checkDatabase(serverName=" + serverName + "): checkedEntity = " + checkedEntity);
+// }
return (rollbackExpected) ? checkedEntity.getA() == initEntity.getA()
: checkedEntity.getA() != initEntity.getA();
@@ -484,7 +492,6 @@
if (useOTS)
{
- initORB();
OTSManager.get_current().begin();
}
else
@@ -502,20 +509,24 @@
try
{
if (useOTS)
- if (rollbackExpected)
+ {
+ if (OTSManager.get_current().get_status().value() == org.omg.CosTransactions.Status._StatusMarkedRollback)
OTSManager.get_current().rollback();
else
OTSManager.get_current().commit(true);
+ }
else
- if (rollbackExpected)
+ {
+ if (tx.getStatus() == javax.transaction.Status.STATUS_MARKED_ROLLBACK)
tx.rollback();
else
tx.commit();
+ }
}
catch (Throwable e)
{
- print("User tx " + (rollbackExpected ? "rollback" : "commit") + " failure: " + e.getMessage());
- e.printStackTrace();
+ print("User tx commit/rollback failure: " + e.getMessage());
+// e.printStackTrace();
}
}
@@ -620,9 +631,9 @@
if (spec != null && spec.willTerminateVM())
{
- if ("specsNode0".equals(specKey))
+ if ("specs0".equals(specKey))
expectFailureNode0 = true;
- else if ("specsNode1".equals(specKey))
+ else if ("specs1".equals(specKey))
expectFailureNode1 = true;
}
Modified: trunk/testsuite/src/main/org/jboss/test/jbossts/recovery/ASTestResource.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jbossts/recovery/ASTestResource.java 2010-03-02 09:12:15 UTC (rev 101705)
+++ trunk/testsuite/src/main/org/jboss/test/jbossts/recovery/ASTestResource.java 2010-03-02 09:44:32 UTC (rev 101706)
@@ -20,6 +20,8 @@
*/
package org.jboss.test.jbossts.recovery;
+import org.jboss.logging.Logger;
+
import javax.ejb.EJBException;
import javax.transaction.xa.XAResource;
import javax.transaction.xa.Xid;
@@ -38,321 +40,330 @@
*/
public class ASTestResource implements Synchronization, XAResource, Serializable
{
- private static final Map<String, XAException> xaCodeMap = new HashMap<String, XAException>();
+ private static Logger log = Logger.getLogger(ASTestResource.class);
- private ASFailureType _xaFailureType = ASFailureType.NONE;
- private ASFailureMode _xaFailureMode = ASFailureMode.NONE;
- private String[] _args;
- private int _suspend;
- private int _recoveryAttempts = 1;
- private XAException _xaException;
- private EJBException _ejbException;
- private int txTimeout = 10;
- private Set<Xid> _xids = new HashSet<Xid>();
- private transient boolean _isPrepared = false; // transient so it doesn't get persisted in the tx store
+ private static final Map<String, XAException> xaCodeMap = new HashMap<String, XAException>();
- static
- {
- init();
- }
-
- public ASTestResource()
- {
- }
+ private ASFailureType _xaFailureType = ASFailureType.NONE;
+ private ASFailureMode _xaFailureMode = ASFailureMode.NONE;
+ private String[] _args;
+ private int _suspend;
+ private int _recoveryAttempts = 1;
+ private XAException _xaException;
+ private EJBException _ejbException;
+ private int txTimeout = 10;
+ private Set<Xid> _xids = new HashSet<Xid>();
+ private transient boolean _isPrepared = false; // transient so it doesn't get persisted in the tx store
- public ASTestResource(ASFailureSpec spec)
- {
- this();
+ static
+ {
+ init();
+ }
- if (spec == null)
- throw new IllegalArgumentException("Invalid XA resource failure injection specification");
-
- setFailureMode(spec.getMode(), spec.getModeArg());
- setFailureType(spec.getType());
- setRecoveryAttempts(spec.getRecoveryArg());
- }
+ public ASTestResource()
+ {
+ }
- public void applySpec(String message) throws XAException
- {
- applySpec(message, _isPrepared);
- }
+ public ASTestResource(ASFailureSpec spec)
+ {
+ this();
- public void applySpec(String message, boolean prepared) throws XAException
- {
- if (_xaFailureType.equals(ASFailureType.NONE) || _xaFailureMode.equals(ASFailureMode.NONE) || !prepared)
- {
- System.out.println(message + (_isPrepared ? " ... " : " recovery"));
- return; // NB if !_isPrepared then we must have been called from the recovery subsystem
- }
+ if (spec == null)
+ throw new IllegalArgumentException("Invalid XA resource failure injection specification");
- System.out.println("Applying fault injection with " + _xids.size() + " active branches");
- if (_xaException != null)
- {
- System.out.println(message + " ... xa error: " + _xaException.getMessage());
- throw _xaException;
- }
- else if (_ejbException != null)
- {
- System.out.println(message + " ... ejb error: " + _ejbException.getMessage());
- throw _ejbException;
- }
- else if (_xaFailureMode.equals(ASFailureMode.HALT))
- {
- System.out.println(message + " ... halting");
- Runtime.getRuntime().halt(1);
- }
- else if (_xaFailureMode.equals(ASFailureMode.EXIT))
- {
- System.out.println(message + " ... exiting");
- System.exit(1);
- }
- else if (_xaFailureMode.equals(ASFailureMode.SUSPEND))
- {
- System.out.println(message + " ... suspending for " + _suspend);
- suspend(_suspend);
- System.out.println(message + " ... resuming");
- }
- else if (_xaFailureMode.equals(ASFailureMode.ROLLBACK_ONLY))
- {
- System.out.println(message + " ... marking the current transaction as rollback-only");
- setRollbackOnly();
- }
- }
-
- public String toString()
- {
- return _xaFailureType + ", " + _xaFailureMode + ", " + (_args != null && _args.length != 0 ? _args[0] : "");
- }
+ setFailureMode(spec.getMode(), spec.getModeArg());
+ setFailureType(spec.getType());
+ setRecoveryAttempts(spec.getRecoveryArg());
+ }
- private void suspend(int msecs)
- {
- try
- {
- Thread.sleep(msecs);
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
+ public void applySpec(String message) throws XAException
+ {
+ applySpec(message, _isPrepared);
+ }
- private void setRollbackOnly()
- {
- try
- {
- Transaction tx = com.arjuna.ats.jta.TransactionManager.transactionManager().getTransaction();
- tx.setRollbackOnly();
- }
- catch (Throwable e)
- {
- e.printStackTrace();
- }
- }
+ public void applySpec(String message, boolean prepared) throws XAException
+ {
+ log.info("message=" + message + ", prepared=" + prepared);
+
+ if (_xaFailureType.equals(ASFailureType.NONE) || _xaFailureMode.equals(ASFailureMode.NONE) || !prepared)
+ {
+ System.out.println(message + (_isPrepared ? " ... " : " recovery"));
+ return; // NB if !_isPrepared then we must have been called from the recovery subsystem
+ }
- public void setFailureMode(ASFailureMode mode, String ... args) throws IllegalArgumentException
- {
- _xaFailureMode = mode;
- _args = args;
+ System.out.println("Applying fault injection with " + _xids.size() + " active branches");
+ if (_xaException != null)
+ {
+ System.out.println(message + " ... xa error: " + _xaException.getMessage());
+ throw _xaException;
+ }
+ else if (_ejbException != null)
+ {
+ System.out.println(message + " ... ejb error: " + _ejbException.getMessage());
+ throw _ejbException;
+ }
+ else if (_xaFailureMode.equals(ASFailureMode.HALT))
+ {
+ System.out.println(message + " ... halting");
+ Runtime.getRuntime().halt(1);
+ }
+ else if (_xaFailureMode.equals(ASFailureMode.EXIT))
+ {
+ System.out.println(message + " ... exiting");
+ System.exit(1);
+ }
+ else if (_xaFailureMode.equals(ASFailureMode.SUSPEND))
+ {
+ System.out.println(message + " ... suspending for " + _suspend);
+ suspend(_suspend);
+ System.out.println(message + " ... resuming");
+ }
+ else if (_xaFailureMode.equals(ASFailureMode.ROLLBACK_ONLY))
+ {
+ System.out.println(message + " ... marking the current transaction as rollback-only");
+ setRollbackOnly();
+ }
+ }
- if (args != null && args.length != 0)
- {
- if (_xaFailureMode.equals(ASFailureMode.SUSPEND))
- {
- _suspend = Integer.parseInt(args[0]);
- }
- else if (_xaFailureMode.equals(ASFailureMode.XAEXCEPTION))
- {
- _xaException = xaCodeMap.get(args[0]);
+ public String toString()
+ {
+ return _xaFailureType + ", " + _xaFailureMode + ", " + (_args != null && _args.length != 0 ? _args[0] : "");
+ }
- if (_xaException == null)
- _xaException = new XAException(XAException.XAER_RMFAIL);
- }
- else if (_xaFailureMode.equals(ASFailureMode.EJBEXCEPTION))
- {
- _ejbException = new EJBException(args[0]);
- }
- }
- }
+ private void suspend(int msecs)
+ {
+ try
+ {
+ Thread.sleep(msecs);
+ }
+ catch (InterruptedException e)
+ {
+ e.printStackTrace();
+ }
+ }
- public void setFailureType(ASFailureType type)
- {
- _xaFailureType = type;
- }
+ private void setRollbackOnly()
+ {
+ try
+ {
+ Transaction tx = com.arjuna.ats.jta.TransactionManager.transactionManager().getTransaction();
+ tx.setRollbackOnly();
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace();
+ }
+ }
- public ASFailureType getFailureType()
- {
- return _xaFailureType;
- }
+ public void setFailureMode(ASFailureMode mode, String ... args) throws IllegalArgumentException
+ {
+ _xaFailureMode = mode;
+ _args = args;
- public void setRecoveryAttempts(int _recoveryAttempts)
- {
- this._recoveryAttempts = _recoveryAttempts;
- }
+ if (args != null && args.length != 0)
+ {
+ if (_xaFailureMode.equals(ASFailureMode.SUSPEND))
+ {
+ _suspend = Integer.parseInt(args[0]);
+ }
+ else if (_xaFailureMode.equals(ASFailureMode.XAEXCEPTION))
+ {
+ _xaException = xaCodeMap.get(args[0]);
- // Synchronizations
+ if (_xaException == null)
+ _xaException = new XAException(XAException.XAER_RMFAIL);
+ }
+ else if (_xaFailureMode.equals(ASFailureMode.EJBEXCEPTION))
+ {
+ _ejbException = new EJBException(args[0]);
+ }
+ }
+ }
- public void beforeCompletion()
- {
- if (_xaFailureType.equals(ASFailureType.SYNCH_BEFORE))
- try
- {
- applySpec("Before completion", true);
- }
- catch (XAException e)
- {
- throw new RuntimeException(e);
- }
- }
+ public void setFailureType(ASFailureType type)
+ {
+ _xaFailureType = type;
+ }
- public void afterCompletion(int i)
- {
- if (_xaFailureType.equals(ASFailureType.SYNCH_AFTER))
- try
- {
- applySpec("After completion");
- }
- catch (XAException e)
- {
- throw new RuntimeException(e);
- }
- }
+ public ASFailureType getFailureType()
+ {
+ return _xaFailureType;
+ }
- // XA Interface implementation
+ public void setRecoveryAttempts(int _recoveryAttempts)
+ {
+ this._recoveryAttempts = _recoveryAttempts;
+ }
- public void commit(Xid xid, boolean b) throws XAException
- {
- if (_xaFailureType.equals(ASFailureType.XARES_COMMIT))
- applySpec("xa commit");
+ // Synchronizations
- _isPrepared = false;
- _xids.remove(xid);
- }
+ public void beforeCompletion()
+ {
+ if (_xaFailureType.equals(ASFailureType.SYNCH_BEFORE))
+ try
+ {
+ applySpec("Before completion", true);
+ }
+ catch (XAException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
- public void rollback(Xid xid) throws XAException
- {
- if (_xaFailureType.equals(ASFailureType.XARES_ROLLBACK))
- applySpec("xa rollback");
+ public void afterCompletion(int i)
+ {
+ if (_xaFailureType.equals(ASFailureType.SYNCH_AFTER))
+ try
+ {
+ applySpec("After completion");
+ }
+ catch (XAException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
- _isPrepared = false;
- _xids.remove(xid);
- }
-
- public void end(Xid xid, int i) throws XAException
- {
- if (_xaFailureType.equals(ASFailureType.XARES_END))
- applySpec("xa end");
- }
+ // XA Interface implementation
- public void forget(Xid xid) throws XAException
- {
- if (_xaFailureType.equals(ASFailureType.XARES_FORGET))
- applySpec("xa forget");
+ public void commit(Xid xid, boolean b) throws XAException
+ {
+ log.fine("commit(Xid=" + xid + ", b=" + b);
+ if (_xaFailureType.equals(ASFailureType.XARES_COMMIT))
+ applySpec("xa commit");
- _isPrepared = false;
- _xids.remove(xid);
- }
+ _isPrepared = false;
+ _xids.remove(xid);
+ }
- public int getTransactionTimeout() throws XAException
- {
- return txTimeout;
- }
+ public void rollback(Xid xid) throws XAException
+ {
+ log.fine("rollback(Xid=" + xid);
+ if (_xaFailureType.equals(ASFailureType.XARES_ROLLBACK))
+ applySpec("xa rollback");
- public boolean isSameRM(XAResource xaResource) throws XAException
- {
- return false;
- }
+ _isPrepared = false;
+ _xids.remove(xid);
+ }
- public int prepare(Xid xid) throws XAException
- {
- _isPrepared = true;
-
- if (_xaFailureType.equals(ASFailureType.XARES_PREPARE))
- applySpec("xa prepare");
+ public void end(Xid xid, int i) throws XAException
+ {
+ log.fine("end(Xid=" + xid + ", i=" + i);
+ if (_xaFailureType.equals(ASFailureType.XARES_END))
+ applySpec("xa end");
+ }
- _xids.add(xid);
+ public void forget(Xid xid) throws XAException
+ {
+ if (_xaFailureType.equals(ASFailureType.XARES_FORGET))
+ applySpec("xa forget");
- return XA_OK;
- }
+ _isPrepared = false;
+ _xids.remove(xid);
+ }
- public Xid[] recover(int i) throws XAException
- {
- if (_recoveryAttempts <= 0)
- return _xids.toArray(new Xid[_xids.size()]);
+ public int getTransactionTimeout() throws XAException
+ {
+ return txTimeout;
+ }
- _recoveryAttempts -= 1;
+ public boolean isSameRM(XAResource xaResource) throws XAException
+ {
+ return false;
+ }
- if (_xaFailureType.equals(ASFailureType.XARES_RECOVER))
- applySpec("xa recover");
+ public int prepare(Xid xid) throws XAException
+ {
+ log.fine("prepare(Xid=" + xid);
+ _isPrepared = true;
- return new Xid[0];
- }
+ if (_xaFailureType.equals(ASFailureType.XARES_PREPARE))
+ applySpec("xa prepare");
- public boolean setTransactionTimeout(int txTimeout) throws XAException
- {
- this.txTimeout = txTimeout;
-
- return true; // set was successfull
- }
+ _xids.add(xid);
- public void start(Xid xid, int i) throws XAException
- {
- _xids.add(xid);
+ return XA_OK;
+ }
- if (_xaFailureType.equals(ASFailureType.XARES_START))
- applySpec("xa start");
- }
+ public Xid[] recover(int i) throws XAException
+ {
+ if (_recoveryAttempts <= 0)
+ return _xids.toArray(new Xid[_xids.size()]);
- public String getEISProductName() { return "Test XAResouce";}
-
- public String getEISProductVersion() { return "v666.0";}
+ _recoveryAttempts -= 1;
- @SuppressWarnings({"ThrowableInstanceNeverThrown"})
- private static void init()
- {
- xaCodeMap.put("XA_HEURCOM", new XAException(XAException.XA_HEURCOM));
- xaCodeMap.put("XA_HEURHAZ", new XAException(XAException.XA_HEURHAZ));
- xaCodeMap.put("XA_HEURMIX", new XAException(XAException.XA_HEURMIX));
- xaCodeMap.put("XA_HEURRB", new XAException(XAException.XA_HEURRB));
- xaCodeMap.put("XA_NOMIGRATE", new XAException(XAException.XA_NOMIGRATE));
- xaCodeMap.put("XA_RBBASE", new XAException(XAException.XA_RBBASE));
- xaCodeMap.put("XA_RBCOMMFAIL", new XAException(XAException.XA_RBCOMMFAIL));
- xaCodeMap.put("XA_RBDEADLOCK", new XAException(XAException.XA_RBDEADLOCK));
- xaCodeMap.put("XA_RBEND", new XAException(XAException.XA_RBEND));
- xaCodeMap.put("XA_RBINTEGRITY", new XAException(XAException.XA_RBINTEGRITY));
- xaCodeMap.put("XA_RBOTHER", new XAException(XAException.XA_RBOTHER));
- xaCodeMap.put("XA_RBPROTO", new XAException(XAException.XA_RBPROTO));
- xaCodeMap.put("XA_RBROLLBACK", new XAException(XAException.XA_RBROLLBACK));
- xaCodeMap.put("XA_RBTIMEOUT", new XAException(XAException.XA_RBTIMEOUT));
- xaCodeMap.put("XA_RBTRANSIENT", new XAException(XAException.XA_RBTRANSIENT));
- xaCodeMap.put("XA_RDONLY", new XAException(XAException.XA_RDONLY));
- xaCodeMap.put("XA_RETRY", new XAException(XAException.XA_RETRY));
- xaCodeMap.put("XAER_ASYNC", new XAException(XAException.XAER_ASYNC));
- xaCodeMap.put("XAER_DUPID", new XAException(XAException.XAER_DUPID));
- xaCodeMap.put("XAER_INVAL", new XAException(XAException.XAER_INVAL));
- xaCodeMap.put("XAER_NOTA", new XAException(XAException.XAER_NOTA));
- xaCodeMap.put("XAER_OUTSIDE", new XAException(XAException.XAER_OUTSIDE));
- xaCodeMap.put("XAER_PROTO", new XAException(XAException.XAER_PROTO));
- xaCodeMap.put("XAER_RMERR", new XAException(XAException.XAER_RMERR));
- xaCodeMap.put("XAER_RMFAIL ", new XAException(XAException.XAER_RMFAIL));
- }
+ if (_xaFailureType.equals(ASFailureType.XARES_RECOVER))
+ applySpec("xa recover");
- public boolean isXAResource()
- {
- return _xaFailureType.isXA() || _xaFailureType.equals(ASFailureType.NONE);
- }
+ return new Xid[0];
+ }
- public boolean isSynchronization()
- {
- return _xaFailureType.isSynchronization();
- }
+ public boolean setTransactionTimeout(int txTimeout) throws XAException
+ {
+ this.txTimeout = txTimeout;
- public boolean isPreCommit()
- {
- return _xaFailureType.isPreCommit();
- }
+ return true; // set was successfull
+ }
- public boolean expectException()
- {
- return _xaFailureMode.equals(ASFailureMode.XAEXCEPTION) || _xaFailureMode.equals(ASFailureMode.EJBEXCEPTION);
- }
+ public void start(Xid xid, int i) throws XAException
+ {
+ log.fine("start(Xid=" + xid + ", i=" + i);
+ _xids.add(xid);
+
+ if (_xaFailureType.equals(ASFailureType.XARES_START))
+ applySpec("xa start");
+ }
+
+ public String getEISProductName() { return "Test XAResouce";}
+
+ public String getEISProductVersion() { return "v666.0";}
+
+ @SuppressWarnings({"ThrowableInstanceNeverThrown"})
+ private static void init()
+ {
+ xaCodeMap.put("XA_HEURCOM", new XAException(XAException.XA_HEURCOM));
+ xaCodeMap.put("XA_HEURHAZ", new XAException(XAException.XA_HEURHAZ));
+ xaCodeMap.put("XA_HEURMIX", new XAException(XAException.XA_HEURMIX));
+ xaCodeMap.put("XA_HEURRB", new XAException(XAException.XA_HEURRB));
+ xaCodeMap.put("XA_NOMIGRATE", new XAException(XAException.XA_NOMIGRATE));
+ xaCodeMap.put("XA_RBBASE", new XAException(XAException.XA_RBBASE));
+ xaCodeMap.put("XA_RBCOMMFAIL", new XAException(XAException.XA_RBCOMMFAIL));
+ xaCodeMap.put("XA_RBDEADLOCK", new XAException(XAException.XA_RBDEADLOCK));
+ xaCodeMap.put("XA_RBEND", new XAException(XAException.XA_RBEND));
+ xaCodeMap.put("XA_RBINTEGRITY", new XAException(XAException.XA_RBINTEGRITY));
+ xaCodeMap.put("XA_RBOTHER", new XAException(XAException.XA_RBOTHER));
+ xaCodeMap.put("XA_RBPROTO", new XAException(XAException.XA_RBPROTO));
+ xaCodeMap.put("XA_RBROLLBACK", new XAException(XAException.XA_RBROLLBACK));
+ xaCodeMap.put("XA_RBTIMEOUT", new XAException(XAException.XA_RBTIMEOUT));
+ xaCodeMap.put("XA_RBTRANSIENT", new XAException(XAException.XA_RBTRANSIENT));
+ xaCodeMap.put("XA_RDONLY", new XAException(XAException.XA_RDONLY));
+ xaCodeMap.put("XA_RETRY", new XAException(XAException.XA_RETRY));
+ xaCodeMap.put("XAER_ASYNC", new XAException(XAException.XAER_ASYNC));
+ xaCodeMap.put("XAER_DUPID", new XAException(XAException.XAER_DUPID));
+ xaCodeMap.put("XAER_INVAL", new XAException(XAException.XAER_INVAL));
+ xaCodeMap.put("XAER_NOTA", new XAException(XAException.XAER_NOTA));
+ xaCodeMap.put("XAER_OUTSIDE", new XAException(XAException.XAER_OUTSIDE));
+ xaCodeMap.put("XAER_PROTO", new XAException(XAException.XAER_PROTO));
+ xaCodeMap.put("XAER_RMERR", new XAException(XAException.XAER_RMERR));
+ xaCodeMap.put("XAER_RMFAIL ", new XAException(XAException.XAER_RMFAIL));
+ }
+
+ public boolean isXAResource()
+ {
+ return _xaFailureType.isXA() || _xaFailureType.equals(ASFailureType.NONE);
+ }
+
+ public boolean isSynchronization()
+ {
+ return _xaFailureType.isSynchronization();
+ }
+
+ public boolean isPreCommit()
+ {
+ return _xaFailureType.isPreCommit();
+ }
+
+ public boolean expectException()
+ {
+ return _xaFailureMode.equals(ASFailureMode.XAEXCEPTION) || _xaFailureMode.equals(ASFailureMode.EJBEXCEPTION);
+ }
}
Modified: trunk/testsuite/src/main/org/jboss/test/jbossts/taskdefs/TransactionLog.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jbossts/taskdefs/TransactionLog.java 2010-03-02 09:12:15 UTC (rev 101705)
+++ trunk/testsuite/src/main/org/jboss/test/jbossts/taskdefs/TransactionLog.java 2010-03-02 09:44:32 UTC (rev 101706)
@@ -125,7 +125,7 @@
endOfList = true;
else
{
- if (objectType != null && !theName.equals(objectType))
+ if (objectType != null && !theName.matches(objectType))
continue;
InputObjectState uids = new InputObjectState();
@@ -154,8 +154,6 @@
// end of uids!
}
}
-
- System.out.println();
}
}
}
Modified: trunk/testsuite/src/main/org/jboss/test/jbossts/txpropagation/EJBUtils.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jbossts/txpropagation/EJBUtils.java 2010-03-02 09:12:15 UTC (rev 101705)
+++ trunk/testsuite/src/main/org/jboss/test/jbossts/txpropagation/EJBUtils.java 2010-03-02 09:44:32 UTC (rev 101706)
@@ -42,12 +42,14 @@
// ORB is the implementation name of the ORB (default name is JBoss
// - see conf/jacorb.properties property jacorb.implname)
// the port 3528 is the IIOP port officially assigned to JBoss by IANA
- private static String EJB2_JNDI_CORBA_URL = "corbaloc::HOST:PORT/ORB/Naming/root";
+// private static String EJB2_JNDI_CORBA_URL = "corbaloc::HOST:PORT/ORB/Naming/root";
+ private static String EJB2_JNDI_CORBA_URL = "corbaloc::HOST:PORT/NameService";
private static String JBOSS_ORB = "JBoss";
private static String JNDI_FAC = "org.jboss.naming.NamingContextFactory"; //"org.jnp.interfaces.NamingContextFactory"
private static String JNDI_URL = "jnp://HOST:PORT";
private static String JNDI_PKGS = "org.jboss.naming.client:org.jnp.interfaces";
+ private static String JNDI_CORBA_PKGS = "org.jboss.iiop.naming:org.jboss.naming.client:org.jnp.interfaces";
// private static String JNDI_PKGS_SERVER = "org.jboss.naming:org.jnp.interfaces";
@@ -108,15 +110,23 @@
// initOrb();
Properties properties = new Properties();
- String url = useOTS ? EJB2_JNDI_CORBA_URL : JNDI_URL;
- String fac = useOTS ? EJB2_JNDI_CORBA_FAC : JNDI_FAC;
+ String url = useOTS ? EJB2_JNDI_CORBA_URL : JNDI_URL;
+ String fac = useOTS ? EJB2_JNDI_CORBA_FAC : JNDI_FAC;
+ String pkgs = useOTS ? JNDI_CORBA_PKGS : JNDI_PKGS;
url = url.replace("HOST", host).replace("ORB", JBOSS_ORB);
url = url.replace("PORT", Integer.toString(useOTS ? corbaPort : jndiPort));
-
System.out.println("jndi url: " + url);
+
+ if (useOTS) {
+ org.omg.CORBA.ORB norb = org.jboss.iiop.naming.ORBInitialContextFactory.getORB();
+ if (norb != null)
+ properties.put("java.naming.corba.orb", norb);
+ properties.put(Context.OBJECT_FACTORIES, "org.jboss.tm.iiop.client.IIOPClientUserTransactionObjectFactory");
+ }
+
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, fac);
- properties.setProperty(Context.URL_PKG_PREFIXES, JNDI_PKGS);
+ properties.setProperty(Context.URL_PKG_PREFIXES, pkgs);
properties.setProperty(Context.PROVIDER_URL, url);
return new InitialContext(properties);
Modified: trunk/testsuite/src/main/org/jboss/test/jbossts/txpropagation/ORBWrapper.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jbossts/txpropagation/ORBWrapper.java 2010-03-02 09:12:15 UTC (rev 101705)
+++ trunk/testsuite/src/main/org/jboss/test/jbossts/txpropagation/ORBWrapper.java 2010-03-02 09:44:32 UTC (rev 101706)
@@ -40,6 +40,9 @@
orb.initORB(new String[] {}, null);
oa.initOA();
+
+ com.arjuna.ats.internal.jts.ORBManager.setORB(orb);
+ com.arjuna.ats.internal.jts.ORBManager.setPOA(oa);
}
public void stop()
Modified: trunk/testsuite/src/resources/jbossts/scripts/as-tests.xml
===================================================================
--- trunk/testsuite/src/resources/jbossts/scripts/as-tests.xml 2010-03-02 09:12:15 UTC (rev 101705)
+++ trunk/testsuite/src/resources/jbossts/scripts/as-tests.xml 2010-03-02 09:44:32 UTC (rev 101706)
@@ -27,16 +27,16 @@
-->
<target name="crash-tests" depends="want-all-dbs, want-all-tstypes, want-all-tsdemarc, want-all-testcases, crash-tests-single" />
- <target name="crash-tests-single-db" depends="set-db, want-all-tstypes, want-all-tsdemarc, want-all-testcases, crash-tests-single" />
+ <target name="crash-tests-single-db" depends="want-all-tstypes, want-all-tsdemarc, want-all-testcases, crash-tests-single" />
- <target name="crash-tests-single-db-tstype" depends="set-db, set-tstype, want-all-tsdemarc, want-all-testcases, crash-tests-single" />
+ <target name="crash-tests-single-db-tstype" depends="want-all-tsdemarc, want-all-testcases, crash-tests-single" />
- <target name="crash-tests-single" depends="init, prepare-drivers, set-db, set-tstype, set-tsdemarc, set-testcase, crash-tests-tstype-jta, crash-tests-tstype-jts" />
+ <target name="crash-tests-single" depends="init, set-db, prepare-drivers, set-tstype, set-tsdemarc, set-testcase, crash-tests-tstype-jta, crash-tests-tstype-jts" />
<target name="jts-propagation-tests" depends="want-all-ejbX, want-all-transports, jts-propagation-tests-single" />
- <target name="jts-propagation-tests-single" depends="init-propagation-tests, prepare-drivers, set-db, set-ejbX, set-transport, propag-tests-select-db" />
+ <target name="jts-propagation-tests-single" depends="init-propagation-tests, set-db, prepare-drivers, set-ejbX, set-transport, propag-tests-select-db" />
<!--
@@ -180,7 +180,7 @@
<target name="call-tests-for-psql_8.2" if="want.psql_8.2">
<antcall target="${call.target}">
- <param name="dbdriver" value="postgresql-8.2.jar"/>
+ <param name="dbdriver" value="${driver.name.psql_8.2}"/>
<param name="datasource" value="postgres82-xa-ds.xml" />
<param name="dbname" value="psql82" />
</antcall>
@@ -188,7 +188,7 @@
<target name="call-tests-for-psql_8.3" if="want.psql_8.3">
<antcall target="${call.target}">
- <param name="dbdriver" value="postgresql-8.3.jar"/>
+ <param name="dbdriver" value="${driver.name.psql_8.3}"/>
<param name="datasource" value="postgres83-xa-ds.xml" />
<param name="dbname" value="psql83" />
</antcall>
@@ -196,46 +196,31 @@
<target name="call-tests-for-oracle_10" if="want.oracle_10">
<antcall target="${call.target}">
- <param name="dbdriver" value="ojdbc14.jar"/>
+ <param name="dbdriver" value="${driver.name.oracle_10}"/>
<param name="datasource" value="oracle10-xa-ds.xml" />
<param name="dbname" value="oracle10" />
</antcall>
</target>
<target name="call-tests-for-oracle_11" if="want.oracle_11">
- <!-- Oracle has qot different .jar for jdk 1.5 vs. 1.6 runtime -->
- <condition property="oracle.driver" value="ojdbc6.jar">
- <equals arg1="${java.specification.version}" arg2="1.6"/>
- </condition>
- <property name="oracle.driver" value="ojdbc5.jar"/>
<antcall target="${call.target}">
- <param name="dbdriver" value="${oracle.driver}"/>
+ <param name="dbdriver" value="${driver.name.oracle_11}"/>
<param name="datasource" value="oracle11-xa-ds.xml" />
<param name="dbname" value="oracle11" />
</antcall>
</target>
<target name="call-tests-for-mssql_2005" if="want.mssql_2005">
- <!-- MSSQL needs different .jar for jdk 1.5 vs. 1.6 runtime -->
- <condition property="mssql.driver" value="sqljdbc4.jar">
- <equals arg1="${java.specification.version}" arg2="1.6"/>
- </condition>
- <property name="mssql.driver" value="sqljdbc.jar"/>
<antcall target="${call.target}">
- <param name="dbdriver" value="${mssql.driver}"/>
+ <param name="dbdriver" value="${driver.name.mssql_2005}"/>
<param name="datasource" value="mssql2005-xa-ds.xml" />
<param name="dbname" value="mssql2005" />
</antcall>
</target>
<target name="call-tests-for-mssql_2008" if="want.mssql_2008">
- <!-- MSSQL needs different .jar for jdk 1.5 vs. 1.6 runtime -->
- <condition property="mssql.driver" value="sqljdbc4.jar">
- <equals arg1="${java.specification.version}" arg2="1.6"/>
- </condition>
- <property name="mssql.driver" value="sqljdbc.jar"/>
<antcall target="${call.target}">
- <param name="dbdriver" value="${mssql.driver}"/>
+ <param name="dbdriver" value="${driver.name.mssql_2008}"/>
<param name="datasource" value="mssql2008-xa-ds.xml" />
<param name="dbname" value="mssql2008" />
</antcall>
@@ -243,7 +228,7 @@
<target name="call-tests-for-mysql_5.0" if="want.mysql_5.0">
<antcall target="${call.target}">
- <param name="dbdriver" value="mysql-connector-java-5.0.8.jar"/>
+ <param name="dbdriver" value="${driver.name.mysql_5.0}"/>
<param name="datasource" value="mysql50-xa-ds.xml" />
<param name="dbname" value="mysql50" />
</antcall>
@@ -251,39 +236,23 @@
<target name="call-tests-for-mysql_5.1" if="want.mysql_5.1">
<antcall target="${call.target}">
- <param name="dbdriver" value="mysql-connector-java-5.1.7.jar"/>
+ <param name="dbdriver" value="${driver.name.mysql_5.1}"/>
<param name="datasource" value="mysql51-xa-ds.xml" />
<param name="dbname" value="mysql51" />
</antcall>
</target>
- <target name="call-tests-for-db2_8.2" if="want.db2_8.2">
- <antcall target="${call.target}">
- <param name="dbdriver" value="DB2_v8.2_fp14/db2jcc*.jar"/>
- <param name="datasource" value="db2_82-xa-ds.xml" />
- <param name="dbname" value="db2_82" />
- </antcall>
- </target>
-
<target name="call-tests-for-db2_9.7" if="want.db2_9.7">
<antcall target="${call.target}">
- <param name="dbdriver" value="db2jcc.jar" />
+ <param name="dbdriver" value="${driver.name.db2_9.7}" />
<param name="datasource" value="db2_97-xa-ds.xml" />
<param name="dbname" value="db2_9" />
</antcall>
</target>
- <target name="call-tests-for-sybase_12" if="want.sybase_12">
- <antcall target="${call.target}">
- <param name="dbdriver" value="jconn3.jar"/>
- <param name="datasource" value="sybase12-xa-ds.xml" />
- <param name="dbname" value="sybase12" />
- </antcall>
- </target>
-
<target name="call-tests-for-sybase_15" if="want.sybase_15">
<antcall target="${call.target}">
- <param name="dbdriver" value="jconn3.jar"/>
+ <param name="dbdriver" value="${driver.name.sybase_15}"/>
<param name="datasource" value="sybase15-xa-ds.xml" />
<param name="dbname" value="sybase15" />
</antcall>
@@ -527,46 +496,86 @@
<!-- set these to the location(s) of the database drivers -->
<property name="driver.url" value="http://reports.qa.atl.jboss.com/jdbc-drivers/"/>
+ <property name="driver.name.psql_8.2" value="postgresql-8.2.jar"/>
+ <property name="driver.name.psql_8.3" value="postgresql-8.3.jar"/>
+ <property name="driver.name.sybase_15" value="jconn3.jar"/>
+ <property name="driver.name.oracle_10" value="ojdbc14.jar"/>
+ <property name="driver.name.oracle_11" value="ojdbc6.jar"/>
+ <property name="driver.name.db2_9.7" value="db2jcc.jar"/>
+ <property name="driver.name.mysql_5.0" value="mysql-connector-java-5.0.8.jar"/>
+ <property name="driver.name.mysql_5.1" value="mysql-connector-java-5.1.7.jar"/>
+ <property name="driver.name.mssql_2005" value="sqljdbc4.jar"/>
+ <property name="driver.name.mssql_2008" value="sqljdbc4.jar"/>
<target name="prepare-drivers">
- <available file="${driver.home}" property="have.dbdrivers" value="true"/>
+ <available file="${driver.home}/${driver.name.oracle_10}" property="have.dbdriver.oracle_10" value="true"/>
+ <available file="${driver.home}/${driver.name.oracle_11}" property="have.dbdriver.oracle_11" value="true"/>
+ <available file="${driver.home}/${driver.name.mssql_2005}" property="have.dbdriver.mssql_2005" value="true"/>
+ <available file="${driver.home}/${driver.name.mssql_2008}" property="have.dbdriver.mssql_2008" value="true"/>
+ <available file="${driver.home}/${driver.name.psql_8.3}" property="have.dbdriver.psql_8.3" value="true"/>
+ <available file="${driver.home}/${driver.name.psql_8.2}" property="have.dbdriver.psql_8.2" value="true"/>
+ <available file="${driver.home}/${driver.name.mysql_5.1}" property="have.dbdriver.mysql_5.1" value="true"/>
+ <available file="${driver.home}/${driver.name.mysql_5.0}" property="have.dbdriver.mysql_5.0" value="true"/>
+ <available file="${driver.home}/${driver.name.db2_9.7}" property="have.dbdriver.db2_9.7" value="true"/>
+ <available file="${driver.home}/${driver.name.sybase_15}" property="have.dbdriver.sybase_15" value="true"/>
+
+ <mkdir dir="${driver.home}" />
<antcall target="get.drivers" />
</target>
- <target name="get.drivers" unless="have.dbdrivers">
-
- <mkdir dir="${driver.home}" />
+ <target name="get.drivers"
+ depends="get.driver.oracle_10,
+ get.driver.oracle_11,
+ get.driver.mssql_2005,
+ get.driver.mssql_2008,
+ get.driver.psql_8.3,
+ get.driver.psql_8.2,
+ get.driver.mysql_5.1,
+ get.driver.mysql_5.0,
+ get.driver.db2_9.7,
+ get.driver.sybase_15" />
+ <target name="get.driver.oracle_10" unless="have.dbdriver.oracle_10" if="want.oracle_10">
<get src="${driver.url}/maven2/com/oracle/ojdbc14/10.2.0.4/ojdbc14-10.2.0.4.jar"
- dest="${driver.home}/ojdbc14.jar"/>
- <get src="${driver.url}/maven2/com/oracle/ojdbc5/11.1.0.7.0/ojdbc5-11.1.0.7.0.jar"
- dest="${driver.home}/ojdbc5.jar"/>
+ dest="${driver.home}/${driver.name.oracle_10}"/>
+ </target>
+ <target name="get.driver.oracle_11" unless="have.dbdriver.oracle_11" if="want.oracle_11">
<get src="${driver.url}/maven2/com/oracle/ojdbc6/11.1.0.7.0/ojdbc6-11.1.0.7.0.jar"
- dest="${driver.home}/ojdbc6.jar"/>
-
- <get src="${driver.url}/maven2/com/microsoft/sqlserver/msjdbc/2.0.1008.2/msjdbc-2.0.1008.2.jar"
- dest="${driver.home}/sqljdbc.jar"/>
+ dest="${driver.home}/${driver.name.oracle_11}"/>
+ </target>
+ <target name="get.driver.mssql_2005" unless="have.dbdriver.mssql_2005" if="want.mssql_2005">
<get src="${driver.url}/maven2/com/microsoft/sqlserver/msjdbc/2.0.1008.2/msjdbc-2.0.1008.2-4.jar"
- dest="${driver.home}/sqljdbc4.jar"/>
-
+ dest="${driver.home}/${driver.name.mssql_2005}"/>
+ </target>
+ <target name="get.driver.mssql_2008" unless="have.dbdriver.mssql_2008" if="want.mssql_2008">
+ <get src="${driver.url}/maven2/com/microsoft/sqlserver/msjdbc/2.0.1008.2/msjdbc-2.0.1008.2-4.jar"
+ dest="${driver.home}/${driver.name.mssql_2008}"/>
+ </target>
+ <target name="get.driver.psql_8.3" unless="have.dbdriver.psql_8.3" if="want.psql_8.3">
<get src="${driver.url}/maven2/postgresql/postgresql/8.3-604/postgresql-8.3-604-jdbc4.jar"
- dest="${driver.home}/postgresql-8.3.jar"/>
+ dest="${driver.home}/${driver.name.psql_8.3}"/>
+ </target>
+ <target name="get.driver.psql_8.2" unless="have.dbdriver.psql_8.2" if="want.psql_8.2">
<get src="${driver.url}/maven2/postgresql/postgresql/8.2-504/postgresql-8.2-504-jdbc3.jar"
- dest="${driver.home}/postgresql-8.2.jar"/>
-
+ dest="${driver.home}/${driver.name.psql_8.2}"/>
+ </target>
+ <target name="get.driver.mysql_5.1" unless="have.dbdriver.mysql_5.1" if="want.mysql_5.1">
<get src="${driver.url}/maven2/mysql/mysql-connector-java/5.1.7/mysql-connector-java-5.1.7.jar"
- dest="${driver.home}/mysql-connector-java-5.1.7.jar"/>
+ dest="${driver.home}/${driver.name.mysql_5.1}"/>
+ </target>
+ <target name="get.driver.mysql_5.0" unless="have.dbdriver.mysql_5.0" if="want.mysql_5.0">
<get src="${driver.url}/maven2/mysql/mysql-connector-java/5.0.8/mysql-connector-java-5.0.8.jar"
- dest="${driver.home}/mysql-connector-java-5.0.8.jar"/>
-
+ dest="${driver.home}/${driver.name.mysql_5.0}"/>
+ </target>
+ <target name="get.driver.db2_9.7" unless="have.dbdriver.db2_9.7" if="want.db2_9.7">
<get src="${driver.url}/maven2/com/ibm/db2jcc/3.1.57/db2jcc-3.1.57.jar"
- dest="${driver.home}/db2jcc.jar"/>
+ dest="${driver.home}/${driver.name.db2_9.7}"/>
<get src="${driver.url}/maven2/com/ibm/db2jcc_license_cu/3.1.57/db2jcc_license_cu-3.1.57.jar"
dest="${driver.home}/db2jcc_license_cu.jar"/>
-
+ </target>
+ <target name="get.driver.sybase_15" unless="have.dbdriver.sybase_15" if="want.sybase_15">
<get src="${driver.url}/maven2/com/sybase/jconnect/6.0.5/jconnect-6.0.5.jar"
- dest="${driver.home}/jconn3.jar"/>
-
+ dest="${driver.home}/${driver.name.sybase_15}"/>
</target>
<!-- =========== JTS Propagation Test ========== -->
@@ -636,29 +645,47 @@
<target name="jts-propagation-tests-batch">
- <condition property="test.name.clientTx" value="clientTx-" else="">
- <istrue value="${jbossts.clientTx}"/>
- </condition>
<condition property="test.name.ejbX" value="ejb3" else="ejb2">
<istrue value="${ejb3}"/>
</condition>
<condition property="test.name.transport" value="iiop" else="jrmp">
<istrue value="${ots}"/>
</condition>
- <property name="testname.prefix" value="${test.name.clientTx}${test.name.ejbX}-${test.name.transport}"/>
+ <property name="testname.prefix.noClientTx" value="${test.name.ejbX}-${test.name.transport}"/>
+ <property name="testname.prefix.clientTx" value="clientTx-${testname.prefix.noClientTx}"/>
<!-- batch of jts propagation test scenarios -->
- <run-jts-propagation-test specs0="none" specs1="none" rollbackExpected="false" />
- <run-jts-propagation-test specs0="none" specs1="pre_prepare_rollbackonly" rollbackExpected="true" />
- <run-jts-propagation-test specs0="pre_prepare_rollbackonly" specs1="none" rollbackExpected="true" />
- <run-jts-propagation-test specs0="none" specs1="pre_prepare_ejbexception" rollbackExpected="true" />
- <run-jts-propagation-test specs0="pre_prepare_ejbexception" specs1="none" rollbackExpected="true" />
- <run-jts-propagation-test specs0="none" specs1="synch_before_rollbackonly" rollbackExpected="true" />
- <run-jts-propagation-test specs0="synch_before_rollbackonly" specs1="none" rollbackExpected="true" />
- <run-jts-propagation-test specs0="none" specs1="prepare_ex_rollback" rollbackExpected="true" />
- <run-jts-propagation-test specs0="prepare_ex_rollback" specs1="none" rollbackExpected="true" />
- <run-jts-propagation-test specs0="none" specs1="pre_prepare_suspend" rollbackExpected="true" />
- <!--run-jts-propagation-test specs0="pre_prepare_suspend" specs1="none" rollbackExpected="true" /-->
+ <!-- client initiated transactions -->
+ <run-jts-propagation-test specs0="none" specs1="none" rollbackExpected="false" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="pre_prepare_rollbackonly" rollbackExpected="true" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+ <run-jts-propagation-test specs0="pre_prepare_rollbackonly" specs1="none" rollbackExpected="true" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="synch_before_rollbackonly" rollbackExpected="true" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+ <run-jts-propagation-test specs0="synch_before_rollbackonly" specs1="none" rollbackExpected="true" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="prepare_ex_rollback" rollbackExpected="true" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+ <run-jts-propagation-test specs0="prepare_ex_rollback" specs1="none" rollbackExpected="true" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="pre_prepare_suspend" rollbackExpected="true" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+ <run-jts-propagation-test specs0="pre_prepare_suspend" specs1="none" rollbackExpected="true" clientTx="true" testNamePref="${testname.prefix.clientTx}" />
+
+ <!-- server initiated transactions -->
+ <run-jts-propagation-test specs0="none" specs1="none" rollbackExpected="false" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="pre_prepare_rollbackonly" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="pre_prepare_rollbackonly" specs1="none" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="pre_prepare_ejbexception" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="pre_prepare_ejbexception" specs1="none" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="synch_before_rollbackonly" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="synch_before_rollbackonly" specs1="none" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="prepare_ex_rollback" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="prepare_ex_rollback" specs1="none" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="pre_prepare_suspend" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="pre_prepare_suspend" specs1="none" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+
+ <!-- tests integrated with crash recovery -->
+ <run-jts-propagation-test specs0="none" specs1="prepare_ex" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="prepare_ex" specs1="none" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="prepare_halt" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="prepare_halt" specs1="none" rollbackExpected="true" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="none" specs1="commit_halt" rollbackExpected="false" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
+ <run-jts-propagation-test specs0="commit_halt" specs1="none" rollbackExpected="false" clientTx="false" testNamePref="${testname.prefix.noClientTx}" />
</target>
<target name="start-servers-for-jts-propagation-tests" unless="dont.start.server.for.astests">
@@ -701,10 +728,13 @@
<attribute name="specs0"/>
<attribute name="specs1"/>
<attribute name="rollbackExpected"/>
+ <attribute name="clientTx"/>
+ <attribute name="testNamePref"/>
<sequential>
+
<astest:action abortOnFail="false" waitFor="10000" impl="org.jboss.test.jbossts.taskdefs.JUnitClientAction">
<param key="testClass" value="org.jboss.test.jbossts.JTSContextPropagation01.TestContextPropagation" />
- <param key="name" value="${testname.prefix}-@{specs0}-@{specs1}" />
+ <param key="name" value="@{testNamePref}-@{specs0}-@{specs1}" />
<param key="specs0" value="@{specs0}" />
<param key="specs1" value="@{specs1}" />
<param key="ots" value="${ots}" />
@@ -713,12 +743,12 @@
<param key="serverName1" value="jts-propagation-node1" />
<param key="host0" value="${node0}" />
<param key="host1" value="${node1}" />
- <param key="clientTx" value="${jbossts.clientTx}" />
+ <param key="clientTx" value="@{clientTx}" />
<param key="rollbackExpected" value="@{rollbackExpected}" />
<param key="wipeOutTxsInDoubtBeforeTest" value="${wipeOutTxsInDoubtBeforeTest}" />
<param key="wipeOutTxsInDoubt" value="${wipeOutTxsInDoubt}" />
<param key="debug" value="true" />
- <param key="reportFile" value="${build.reports}/TEST-org.jboss.test.jbossts.JTSContextPropagation01.TestContextPropagation-${testname.prefix}-@{specs0}-@{specs1}.xml" />
+ <param key="reportFile" value="${build.reports}/TEST-org.jboss.test.jbossts.JTSContextPropagation01.TestContextPropagation-@{testNamePref}-@{specs0}-@{specs1}.xml" />
<param key="testTime" value="${testTime}" />
</astest:action>
</sequential>
More information about the jboss-cvs-commits
mailing list