[jboss-svn-commits] JBL Code SVN: r31776 - in labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java: org/jboss/jbossts/performance and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Feb 22 12:37:49 EST 2010


Author: whitingjr
Date: 2010-02-22 12:37:47 -0500 (Mon, 22 Feb 2010)
New Revision: 31776

Added:
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/JPAConfiguration.java
Modified:
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic/ProfiledStateTransitions.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/MultiResourceTest.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/WarmedUpTest.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/ConcurrentTaskConfiguration.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/MultithreadedTestConfiguration.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/HibernateNativeTask.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/HibernateNativeTest.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/JDBCTask.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/JDBCTest.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeResourcesTest.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeTask.java
   labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/task/RecursiveTask.java
Log:
Updated test framework. Created a JDBC test implementation.
Cleaned up the configuration objects.

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic/ProfiledStateTransitions.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic/ProfiledStateTransitions.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/auction/test/basic/ProfiledStateTransitions.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -39,6 +39,7 @@
 import javax.persistence.ColumnResult;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.SqlResultSetMapping;
+import javax.sql.DataSource;
 import javax.transaction.UserTransaction;
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
@@ -98,6 +99,7 @@
 
 import com.arjuna.ats.arjuna.common.arjPropertyManager;
 import com.arjuna.ats.arjuna.coordinator.TxControl;
+import com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple;
 import com.arjuna.ats.jta.common.jtaPropertyManager;
 @SqlResultSetMapping(name = "PriceSellerResult", columns =
 {@ColumnResult(name = "IP"), @ColumnResult(name = "SID")
@@ -192,19 +194,13 @@
    private SessionFactory getSessionFactory(String jndiName)
    {
       SessionFactory returnValue = null;
-      try
+      Object sFactory =  getJNDIObject(jndiName);
+      
+      if (null != sFactory)
       {
-         logger.trace("Attempting to lookup session factory with jndi [" + jndiName + "]");
-         returnValue = (SessionFactory) jndi.lookup(jndiName);
+         returnValue = (SessionFactory)sFactory;
       }
-      catch (NameNotFoundException nnfe)
-      {
-         logger.error(nnfe.getMessage(), nnfe);
-      }
-      catch (NamingException ne)
-      {
-         logger.error(ne.getMessage(), ne);
-      }
+      
       return returnValue;
    }
 
@@ -507,6 +503,22 @@
       return (UserTransaction)jndi.lookup(JNDI_NAME_USERTX_B);
    }
    
+   private UserTransaction getUserTransaction(final String jndiName)
+   {
+      UserTransaction returnValue = null;
+      Object object = getJNDIObject(jndiName); 
+      if (null != object)
+      {
+         returnValue = (UserTransaction)object;
+      }
+      return returnValue;
+   }
+   
+   public UserTransaction getUserTransactionA()
+   {
+      return getUserTransaction(JNDI_NAME_USERTX);
+   }
+   
    protected EntityManagerFactory getEntityManagerFactoryB() throws Exception{
       return (EntityManagerFactory)jndi.lookup(JNDI_NAME_EMF_B);
   }
@@ -541,6 +553,57 @@
       }
       pStatement.executeBatch();
    }
+   
+   private DataSource getDataSource(String jndiName)
+   {
+      DataSource returnValue = null;
+      Object object = getJNDIObject(jndiName);
+      if (null != object )
+      {
+         returnValue = (DataSource)object;
+      }
+      return returnValue;
+   }
+   
+   private Object getJNDIObject(String jndiName)
+   {
+      Object returnValue  = null;
+      
+      try
+      {
+         logger.trace("Attempting to lookup DataSource with jndi [" + jndiName + "]");
+         returnValue = jndi.lookup(jndiName);
+      }
+      catch (NameNotFoundException nnfe)
+      {
+         logger.error(nnfe.getMessage(), nnfe);
+      }
+      catch (NamingException ne)
+      {
+         logger.error(ne.getMessage(), ne);
+      }
+      
+      return returnValue;
+   }
+   /*
+   private XADataSource getXADataSource(String jndi)
+   {
+      XADataSource returnValue = null;
+      Object dataSource = getJNDIObject(jndi);
+      
+      if (null != dataSource && dataSource.getClass().isInstance(XADataSource.class))
+      {
+         returnValue = (XADataSource)dataSource;
+      }
+      return returnValue;
+   }*/
+   
+   public DataSource getDataSourceA()
+   {
+      return getDataSource(JNDI_DATASOURCE);
+   }
+   public DataSource getDataSourceB()
+   {
+      return getDataSource(this.JNDI_DATASOURCE_B);
+   }
 }
-
-

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/MultiResourceTest.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/MultiResourceTest.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/MultiResourceTest.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -25,7 +25,7 @@
 /**
  * This object changes the default behaviour. Changing this here ensures the test framework
  * sets up a 2nd resource with default table data and settings.
- * @author whitingjr
+ * @author Jeremy Whiting
  *
  */
 public abstract class MultiResourceTest extends WarmedUpTest

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/WarmedUpTest.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/WarmedUpTest.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/WarmedUpTest.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -40,7 +40,7 @@
  * The purpose of this object is to run the test case several times to warm up
  * the compiler.
  * 
- * @author whitingjr Jeremy Whiting
+ * @author Jeremy Whiting
  * 
  */
 public abstract class WarmedUpTest extends ProfiledStateTransitions 

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/ConcurrentTaskConfiguration.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/ConcurrentTaskConfiguration.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/ConcurrentTaskConfiguration.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -1,54 +1,34 @@
 package org.jboss.jbossts.performance.configuration;
 
-import java.util.List;
 import java.util.Stack;
-import java.util.concurrent.CyclicBarrier;
 
-import javax.persistence.EntityManagerFactory;
-
 /**
  * This object encapsulates the configuration for a test case task. 
  * 
- * @author whitingjr
+ * @author Jeremy Whiting
  *
  */
 public class ConcurrentTaskConfiguration
 { 
-   private final EntityManagerFactory emfactoryA;
-   private final EntityManagerFactory emfactoryB;
    private final int iterationCount;
-   private final CyclicBarrier completionBarrier;
    private final boolean isOptionalWriteEnabled;
    private final Stack NDCstack;
-   private final Long threadIdentity; // this is not shared, each thread has it's own identity
-   private final List<Long> threadResults ;// shared access to object, serialized behaviour baked in at construction time
-   public ConcurrentTaskConfiguration(final EntityManagerFactory emfA, final EntityManagerFactory emfB, final int iterations, 
-         final CyclicBarrier barrier, final boolean isOptionalWEnabled, final Stack stack, final Long identity, final List<Long> results)
+   private final MultithreadedTestConfiguration testConfiguration;
+   public ConcurrentTaskConfiguration( final int iterations, 
+         final boolean isOptionalWEnabled, final Stack stack, final MultithreadedTestConfiguration testConf)
    {
-      this.emfactoryA = emfA;
-      this.emfactoryB = emfB;
       this.iterationCount = iterations;
-      this.completionBarrier = barrier;
       this.isOptionalWriteEnabled = isOptionalWEnabled;
       this.NDCstack = stack;
-      this.threadIdentity = identity;
-      this.threadResults = results;
+      this.testConfiguration = testConf;
    }
-   public EntityManagerFactory getEmfactoryA()
-   {
-      return emfactoryA;
-   }
-   public EntityManagerFactory getEmfactoryB()
-   {
-      return emfactoryB;
-   }
    public int getIterationCount()
    {
       return iterationCount;
    }
-   public CyclicBarrier getCompletionBarrier()
+   public MultithreadedTestConfiguration getTestConfiguration()
    {
-      return completionBarrier;
+      return testConfiguration;
    }
    public boolean isOptionalWriteEnabled()
    {
@@ -58,12 +38,4 @@
    {
       return NDCstack;
    }
-   public Long getThreadIdentity()
-   {
-      return threadIdentity;
-   }
-   public List<Long> getThreadResults()
-   {
-      return threadResults;
-   }
 }

Added: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/JPAConfiguration.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/JPAConfiguration.java	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/JPAConfiguration.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -0,0 +1,54 @@
+package org.jboss.jbossts.performance.configuration;
+
+import java.util.Stack;
+
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+import javax.transaction.UserTransaction;
+
+public class JPAConfiguration extends ConcurrentTaskConfiguration
+{
+   private final EntityManagerFactory entityManagerFactoryA;
+   private final EntityManagerFactory entityManagerFactoryB;
+   private final DataSource dataSourceA;
+   private final DataSource dataSourceB;
+   private final UserTransaction userTransaction;
+   private final MultithreadedTestConfiguration testConfiguration;
+
+   public JPAConfiguration(final DataSource resA, final DataSource resB, final UserTransaction userT ,final EntityManagerFactory sFactoryA, final EntityManagerFactory sFactoryB,  final int iterations, 
+         final boolean isOptionalWEnabled, final Stack stack, final MultithreadedTestConfiguration testConf)
+   {
+      super(iterations, isOptionalWEnabled, stack, testConf);
+      this.entityManagerFactoryA = sFactoryA;
+      this.entityManagerFactoryB = sFactoryB;
+      this.dataSourceA = resA;
+      this.dataSourceB = resB;
+      this.userTransaction = userT;
+      this.testConfiguration = testConf;
+   }
+
+   public EntityManagerFactory getEntityManagerFactoryA()
+   {
+      return entityManagerFactoryA;
+   }
+
+   public EntityManagerFactory getEntityManagerFactoryB()
+   {
+      return entityManagerFactoryB;
+   }
+
+   public DataSource getDataSourceA()
+   {
+      return dataSourceA;
+   }
+
+   public DataSource getDataSourceB()
+   {
+      return dataSourceB;
+   }
+
+   public UserTransaction getUserTransaction()
+   {
+      return userTransaction;
+   }
+}

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/MultithreadedTestConfiguration.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/MultithreadedTestConfiguration.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/configuration/MultithreadedTestConfiguration.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -6,7 +6,7 @@
 /**
  * This object holds the configuration for Task objects.
  * 
- * @author whitingjr
+ * @author Jeremy Whiting
  * 
  */
 public class MultithreadedTestConfiguration

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/HibernateNativeTask.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/HibernateNativeTask.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/HibernateNativeTask.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -28,7 +28,7 @@
 
 import org.hibernate.Transaction;
 import org.hibernate.ejb.EntityManagerImpl;
-import org.jboss.jbossts.performance.configuration.ConcurrentTaskConfiguration;
+import org.jboss.jbossts.performance.configuration.JPAConfiguration;
 import org.jboss.jbossts.performance.task.RecursiveTask;
 import org.jboss.tm.TransactionLocal;
 import org.testng.Assert;
@@ -43,16 +43,19 @@
  */
 public class HibernateNativeTask extends RecursiveTask
 {
-    
-   public HibernateNativeTask(final ConcurrentTaskConfiguration taskConfiguration)
+   private final EntityManagerFactory entityManagerFactoryA;
+   private final EntityManagerFactory entityManagerFactoryB;
+   public HibernateNativeTask(final JPAConfiguration taskConfiguration)
    {
       super(taskConfiguration);
+      this.entityManagerFactoryA = taskConfiguration.getEntityManagerFactoryA();
+      this.entityManagerFactoryB= taskConfiguration.getEntityManagerFactoryB();
    }
 
    public void task(final int iteration)
       throws Exception
    {
-      String readSQL = String.format("select user0_.USER_ID , user0_.CREATED , user0_.DEFAULT_BILLING_DETAILS_ID , user0_.EMAIL , user0_.FIRSTNAME , user0_.HOME_CITY , user0_.HOME_STREET as HOME6_4_1_, user0_.HOME_ZIPCODE , user0_.LASTNAME , user0_.PASSWD , user0_.RANK , user0_.USERNAME , user0_.OBJ_VERSION , user0_1_.CITY , user0_1_.STREET , user0_1_.ZIPCODE , addressent1_.ADDRESS_ID , addressent1_.CITY , addressent1_.STREET , addressent1_.OBJ_VERSION , addressent1_.ZIPCODE from USERS user0_ left outer join BILLING_ADDRESS user0_1_ on user0_.USER_ID=user0_1_.USER_ID left outer join ADDRESS addressent1_ on user0_.USER_ID=addressent1_.ADDRESS_ID where user0_.USER_ID=%1$d", this.threadId);
+      String readSQL = String.format("select user0_.USER_ID , user0_.CREATED , user0_.DEFAULT_BILLING_DETAILS_ID , user0_.EMAIL , user0_.FIRSTNAME , user0_.HOME_CITY , user0_.HOME_STREET as HOME6_4_1_, user0_.HOME_ZIPCODE , user0_.LASTNAME , user0_.PASSWD , user0_.RANK , user0_.USERNAME , user0_.OBJ_VERSION , user0_1_.CITY , user0_1_.STREET , user0_1_.ZIPCODE , addressent1_.ADDRESS_ID , addressent1_.CITY , addressent1_.STREET , addressent1_.OBJ_VERSION , addressent1_.ZIPCODE from USERS user0_ left outer join BILLING_ADDRESS user0_1_ on user0_.USER_ID=user0_1_.USER_ID left outer join ADDRESS addressent1_ on user0_.USER_ID=addressent1_.ADDRESS_ID where user0_.USER_ID=%1$d", this.getTaskConfiguration().getTestConfiguration().getThreadIdentity());
       
       EntityManagerImpl emA = null;
       EntityManagerImpl emB = null;
@@ -69,7 +72,7 @@
       
       long time = System.currentTimeMillis();
       String writeSQLResA = String.format("update USERS set DEFAULT_BILLING_DETAILS_ID=%1$d, EMAIL='%2$s', FIRSTNAME='%3$s', HOME_CITY='%4$s', HOME_STREET='%5$s', HOME_ZIPCODE='%6$s', LASTNAME='%7$s', PASSWD='%8$s', RANK=%9$d, USERNAME='%10$s', OBJ_VERSION=%11$d where USER_ID=%12$d and OBJ_VERSION=%13$d", 
-            null, "anotheruser at mail.tld", "Ben"+time, "Foocity", "Foostreet", "22222", "User", "secret", 0, "anotheruser110"+this.threadId, version.intValue()+1, this.threadId, version.intValue());
+            null, "anotheruser at mail.tld", "Ben"+time, "Foocity", "Foostreet", "22222", "User", "secret", 0, "anotheruser110"+this.getTaskConfiguration().getTestConfiguration().getThreadIdentity(), version.intValue()+1, this.getTaskConfiguration().getTestConfiguration().getThreadIdentity(), version.intValue());
       version = null;
       
       if (this.isOptionalWriteEnabled)
@@ -81,7 +84,7 @@
       version = (Number) usrB[12];
       //logger.debug(usrB.toString());
       String writeSQLResB = String.format("update USERS set DEFAULT_BILLING_DETAILS_ID=%1$d, EMAIL='%2$s', FIRSTNAME='%3$s', HOME_CITY='%4$s', HOME_STREET='%5$s', HOME_ZIPCODE='%6$s', LASTNAME='%7$s', PASSWD='%8$s', RANK=%9$d, USERNAME='%10$s', OBJ_VERSION=%11$d where USER_ID=%12$d and OBJ_VERSION=%13$d", 
-            null, "anotheruser at mail.tld", "Ben"+time, "Foocity", "Foostreet", "22222", "User", "secret", 0, "anotheruser110"+this.threadId, version.intValue()+1, this.threadId, version.intValue());
+            null, "anotheruser at mail.tld", "Ben"+time, "Foocity", "Foostreet", "22222", "User", "secret", 0, "anotheruser110"+this.getTaskConfiguration().getTestConfiguration().getThreadIdentity(), version.intValue()+1, this.getTaskConfiguration().getTestConfiguration().getThreadIdentity(), version.intValue());
       
       writeUserB(emB, writeSQLResB);
       transaction.commit();
@@ -114,11 +117,11 @@
    
    public EntityManagerFactory getEMFactoryA()
    {
-      return this.emfA;
+      return this.entityManagerFactoryA;
    }
    
    public EntityManagerFactory getEMFactoryB()
    {
-      return this.emfB;
+      return this.entityManagerFactoryB;
    }
 }
\ No newline at end of file

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/HibernateNativeTest.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/HibernateNativeTest.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/HibernateNativeTest.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -24,7 +24,7 @@
 
 import org.apache.log4j.NDC;
 import org.jboss.jbossts.performance.MultiThreadedTest;
-import org.jboss.jbossts.performance.configuration.ConcurrentTaskConfiguration;
+import org.jboss.jbossts.performance.configuration.JPAConfiguration;
 import org.jboss.jbossts.performance.configuration.MultithreadedTestConfiguration;
 
 public class HibernateNativeTest extends MultiThreadedTest
@@ -32,7 +32,7 @@
    @Override
    public Runnable getTask(final MultithreadedTestConfiguration taskConfiguration) throws Exception
    {
-      return new HibernateNativeTask(new ConcurrentTaskConfiguration(getEntityManagerFactory(), getEntityManagerFactoryB(), taskConfiguration.getIterationCount(), taskConfiguration.getCompletionBarrier(), this.isOptionalWriteEnabled, NDC.cloneStack(), taskConfiguration.getThreadIdentity(), taskConfiguration.getResults()));
+      return new HibernateNativeTask(new JPAConfiguration(getDataSourceA(), getDataSourceB(), getUserTransaction(), getEntityManagerFactory(), getEntityManagerFactoryB(), taskConfiguration.getIterationCount(), this.isOptionalWriteEnabled, NDC.cloneStack(), taskConfiguration));
    }
    @Override
    protected boolean isMultiResourceTest()

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/JDBCTask.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/JDBCTask.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/JDBCTask.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -22,17 +22,15 @@
 
 package org.jboss.jbossts.performance.jdbc;
 
+import java.sql.Connection;
 import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Types;
 
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Query;
-
-import org.hibernate.Transaction;
-import org.hibernate.ejb.EntityManagerImpl;
-import org.jboss.jbossts.performance.configuration.ConcurrentTaskConfiguration;
+import org.apache.commons.dbutils.DbUtils;
+import org.jboss.jbossts.performance.configuration.JPAConfiguration;
 import org.jboss.jbossts.performance.task.RecursiveTask;
-import org.jboss.tm.TransactionLocal;
 import org.testng.Assert;
 
 /**
@@ -45,8 +43,7 @@
  */
 public class JDBCTask extends RecursiveTask
 {
-    
-   public JDBCTask(final ConcurrentTaskConfiguration taskConfiguration)
+   public JDBCTask(final JPAConfiguration taskConfiguration)
    {
       super(taskConfiguration);
    }
@@ -54,71 +51,110 @@
    public void task(final int iteration)
       throws Exception
    {
-      String readSQL = String.format("select user0_.USER_ID , user0_.CREATED , user0_.DEFAULT_BILLING_DETAILS_ID , user0_.EMAIL , user0_.FIRSTNAME , user0_.HOME_CITY , user0_.HOME_STREET as HOME6_4_1_, user0_.HOME_ZIPCODE , user0_.LASTNAME , user0_.PASSWD , user0_.RANK , user0_.USERNAME , user0_.OBJ_VERSION , user0_1_.CITY , user0_1_.STREET , user0_1_.ZIPCODE , addressent1_.ADDRESS_ID , addressent1_.CITY , addressent1_.STREET , addressent1_.OBJ_VERSION , addressent1_.ZIPCODE from USERS user0_ left outer join BILLING_ADDRESS user0_1_ on user0_.USER_ID=user0_1_.USER_ID left outer join ADDRESS addressent1_ on user0_.USER_ID=addressent1_.ADDRESS_ID where user0_.USER_ID=%1$d", this.threadId);
-      
-      EntityManagerImpl emA = null;
-      EntityManagerImpl emB = null;
-      emA = (EntityManagerImpl) getEMFactoryA().createEntityManager();
-      Transaction transaction =emA.getSession().beginTransaction();
-      TransactionLocal session = new TransactionLocal();
-      session.set(emA);
-      
-      //PreparedStatement pStatement = emA.get
-      //Number version = (Number ) usrA[12];
-      /*
-      long time = System.currentTimeMillis();
-      String writeSQLResA = String.format("update USERS set DEFAULT_BILLING_DETAILS_ID=%1$d, EMAIL='%2$s', FIRSTNAME='%3$s', HOME_CITY='%4$s', HOME_STREET='%5$s', HOME_ZIPCODE='%6$s', LASTNAME='%7$s', PASSWD='%8$s', RANK=%9$d, USERNAME='%10$s', OBJ_VERSION=%11$d where USER_ID=%12$d and OBJ_VERSION=%13$d", 
-            null, "anotheruser at mail.tld", "Ben"+time, "Foocity", "Foostreet", "22222", "User", "secret", 0, "anotheruser110"+this.threadId, version.intValue()+1, this.threadId, version.intValue());
-      //version = null;
-      
-      if (this.isOptionalWriteEnabled)
+      Connection connectionA = null;
+      Connection connectionB = null;
+      PreparedStatement pStatementARead = null;
+      PreparedStatement  pStatementAWrite = null;
+      PreparedStatement pStatementBRead = null;
+      PreparedStatement  pStatementBWrite = null;
+      ResultSet resultA = null;
+      ResultSet resultB = null;
+      boolean completed = false;
+      try
       {
-         writeUserA(emA, writeSQLResA);
+         //getTaskConfiguration().getUserTransaction().begin();
+         connectionA = getTaskConfiguration().getDataSourceA().getConnection();
+         connectionA.setAutoCommit(false);
+         pStatementARead = connectionA.prepareStatement("select user0_.USER_ID , user0_.CREATED , user0_.DEFAULT_BILLING_DETAILS_ID , user0_.EMAIL , user0_.FIRSTNAME , user0_.HOME_CITY , user0_.HOME_STREET as HOME6_4_1_, user0_.HOME_ZIPCODE , user0_.LASTNAME , user0_.PASSWD , user0_.RANK , user0_.USERNAME , user0_.OBJ_VERSION , user0_1_.CITY , user0_1_.STREET , user0_1_.ZIPCODE , addressent1_.ADDRESS_ID , addressent1_.CITY , addressent1_.STREET , addressent1_.OBJ_VERSION , addressent1_.ZIPCODE from USERS user0_ left outer join BILLING_ADDRESS user0_1_ on user0_.USER_ID=user0_1_.USER_ID left outer join ADDRESS addressent1_ on user0_.USER_ID=addressent1_.ADDRESS_ID where user0_.USER_ID=?");
+         resultA = findUsingResourceA(pStatementARead, this.getTaskConfiguration().getTestConfiguration().getThreadIdentity());
+         Assert.assertTrue(resultA.next());
+         int version = resultA.getInt(13);
+         long time = System.currentTimeMillis();
+         
+         if (this.isOptionalWriteEnabled)
+         {
+            pStatementAWrite = connectionA.prepareStatement("update USERS set DEFAULT_BILLING_DETAILS_ID=?, EMAIL=?, FIRSTNAME=?, HOME_CITY=?, HOME_STREET=?, HOME_ZIPCODE=?, LASTNAME=?, PASSWD=?, RANK=?, USERNAME=?, OBJ_VERSION=? where USER_ID=? and OBJ_VERSION=?");
+            pStatementAWrite.setNull(1, Types.NUMERIC);
+            pStatementAWrite.setString(2, "anotheruser at mail.tld");
+            pStatementAWrite.setString(3, String.format("Ben%1$d", time));
+            pStatementAWrite.setString(4, "Foocity");
+            pStatementAWrite.setString(5, "Foostreet");
+            pStatementAWrite.setString(6, "22222");
+            pStatementAWrite.setString(7, "User");
+            pStatementAWrite.setString(8, "secret");
+            pStatementAWrite.setInt(9, 0);
+            pStatementAWrite.setString(10, String.format("anotheruser%1$d", this.getTaskConfiguration().getTestConfiguration().getThreadIdentity().intValue()));
+            pStatementAWrite.setInt(11, (version+1));
+            pStatementAWrite.setInt(12, this.getTaskConfiguration().getTestConfiguration().getThreadIdentity().intValue());
+            pStatementAWrite.setInt(13, version);
+            Assert.assertEquals(pStatementAWrite.executeUpdate(), 1) ;
+         }
+         connectionA.commit();
+         
+         connectionB= getTaskConfiguration().getDataSourceB().getConnection();
+         connectionB.setAutoCommit(false);
+         pStatementBRead = connectionB.prepareStatement("select user0_.USER_ID , user0_.CREATED , user0_.DEFAULT_BILLING_DETAILS_ID , user0_.EMAIL , user0_.FIRSTNAME , user0_.HOME_CITY , user0_.HOME_STREET as HOME6_4_1_, user0_.HOME_ZIPCODE , user0_.LASTNAME , user0_.PASSWD , user0_.RANK , user0_.USERNAME , user0_.OBJ_VERSION , user0_1_.CITY , user0_1_.STREET , user0_1_.ZIPCODE , addressent1_.ADDRESS_ID , addressent1_.CITY , addressent1_.STREET , addressent1_.OBJ_VERSION , addressent1_.ZIPCODE from USERS user0_ left outer join BILLING_ADDRESS user0_1_ on user0_.USER_ID=user0_1_.USER_ID left outer join ADDRESS addressent1_ on user0_.USER_ID=addressent1_.ADDRESS_ID where user0_.USER_ID=?");
+         resultB = findUsingResourceB(pStatementBRead, this.getTaskConfiguration().getTestConfiguration().getThreadIdentity());
+         Assert.assertTrue(resultB.next());
+         version = resultB.getInt(13);
+         
+         pStatementBWrite = connectionB.prepareStatement("update USERS set DEFAULT_BILLING_DETAILS_ID=?, EMAIL=?, FIRSTNAME=?, HOME_CITY=?, HOME_STREET=?, HOME_ZIPCODE=?, LASTNAME=?, PASSWD=?, RANK=?, USERNAME=?, OBJ_VERSION=? where USER_ID=? and OBJ_VERSION=?");
+         pStatementBWrite.setNull(1, Types.NUMERIC);
+         pStatementBWrite.setString(2, "anotheruser at mail.tld");
+         pStatementBWrite.setString(3, String.format("Ben%1$d", time));
+         pStatementBWrite.setString(4, "Foocity");
+         pStatementBWrite.setString(5, "Foostreet");
+         pStatementBWrite.setString(6, "22222");
+         pStatementBWrite.setString(7, "User");
+         pStatementBWrite.setString(8, "secret");
+         pStatementBWrite.setInt(9, 0);
+         pStatementBWrite.setString(10, String.format("anotheruser%1$d", this.getTaskConfiguration().getTestConfiguration().getThreadIdentity().intValue()));
+         pStatementBWrite.setInt(11, (version+1));
+         pStatementBWrite.setInt(12, this.getTaskConfiguration().getTestConfiguration().getThreadIdentity().intValue());
+         pStatementBWrite.setInt(13, version);
+         Assert.assertEquals(pStatementBWrite.executeUpdate(), 1) ;
+         connectionB.commit();
+         
+         completed = true;
       }
-      session.set(emB);
-      Object[] usrB = (Object[])findUsingResourceB(emB, readSQL);//discard details
-      //version = (Number) usrB[12];
-      //logger.debug(usrB.toString());
-      String writeSQLResB = String.format("update USERS set DEFAULT_BILLING_DETAILS_ID=%1$d, EMAIL='%2$s', FIRSTNAME='%3$s', HOME_CITY='%4$s', HOME_STREET='%5$s', HOME_ZIPCODE='%6$s', LASTNAME='%7$s', PASSWD='%8$s', RANK=%9$d, USERNAME='%10$s', OBJ_VERSION=%11$d where USER_ID=%12$d and OBJ_VERSION=%13$d", 
-            null, "anotheruser at mail.tld", "Ben"+time, "Foocity", "Foostreet", "22222", "User", "secret", 0, "anotheruser110"+this.threadId, version.intValue()+1, this.threadId, version.intValue());
-      
-      writeUserB(emB, writeSQLResB);
-      transaction.commit();
-      */
+      finally
+      {
+         DbUtils.closeQuietly(resultA);
+         DbUtils.closeQuietly(pStatementARead) ;
+         DbUtils.closeQuietly(pStatementAWrite);
+         
+         DbUtils.closeQuietly(resultB);
+         DbUtils.closeQuietly(pStatementBRead) ;
+         DbUtils.closeQuietly(pStatementBWrite);
+         
+         DbUtils.closeQuietly(connectionA);
+         DbUtils.closeQuietly(connectionB);
+         /*
+         if (completed)
+         {
+            this.getTaskConfiguration().getUserTransaction().commit();
+         }
+         else
+         {
+            getTaskConfiguration().getUserTransaction().rollback();
+         }
+         */
+      }
    }
-   private void writeUserA(final EntityManager em, final String sql)
+   private ResultSet findUsingResourceA(final PreparedStatement preparedStatement, final Long id)
+      throws SQLException
    {
-      performWrite(em, sql);
+      return findUsingResource(preparedStatement, id);
    }
-   private void writeUserB(final EntityManager em, final String sql)
+   private ResultSet findUsingResourceB(final PreparedStatement preparedStatement, final Long id)
+   throws SQLException
    {
-      performWrite(em, sql);
+      return findUsingResource(preparedStatement, id);
    }
-   private void performWrite(final EntityManager em, final String sql)
+   private ResultSet findUsingResource(final PreparedStatement statement, final Long id)
+      throws SQLException
    {
-      Query query = em.createNativeQuery(sql);
-      Assert.assertEquals(1, query.executeUpdate()) ;
+      statement.setLong(1, id);
+      return statement.executeQuery();
    }
-   private Object findUsingResourceA(final EntityManager em, final String sql)
-   {
-      return findUsingResource(em, sql);
-   }
-   private Object findUsingResourceB(final EntityManager em, final String sql)
-   {
-      return findUsingResource(em, sql);
-   }
-   private Object findUsingResource(final EntityManager em, final String sql)
-   {
-      return em.createNativeQuery(sql).getSingleResult();         
-   }
-   
-   public EntityManagerFactory getEMFactoryA()
-   {
-      return this.emfA;
-   }
-   
-   public EntityManagerFactory getEMFactoryB()
-   {
-      return this.emfB;
-   }
 }
\ No newline at end of file

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/JDBCTest.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/JDBCTest.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/jdbc/JDBCTest.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -24,7 +24,7 @@
 
 import org.apache.log4j.NDC;
 import org.jboss.jbossts.performance.MultiThreadedTest;
-import org.jboss.jbossts.performance.configuration.ConcurrentTaskConfiguration;
+import org.jboss.jbossts.performance.configuration.JPAConfiguration;
 import org.jboss.jbossts.performance.configuration.MultithreadedTestConfiguration;
 
 /**
@@ -38,7 +38,7 @@
    @Override
    public Runnable getTask(final MultithreadedTestConfiguration taskConfiguration) throws Exception
    {
-      return new JDBCTask(new ConcurrentTaskConfiguration(getEntityManagerFactory(), getEntityManagerFactoryB(), taskConfiguration.getIterationCount(), taskConfiguration.getCompletionBarrier(), this.isOptionalWriteEnabled, NDC.cloneStack(), taskConfiguration.getThreadIdentity(), taskConfiguration.getResults()));
+      return new JDBCTask(new JPAConfiguration(getDataSourceA(), getDataSourceB(), getUserTransactionA(), getEntityManagerFactory(), getEntityManagerFactoryB(), taskConfiguration.getIterationCount(), this.isOptionalWriteEnabled, NDC.cloneStack(), taskConfiguration));
    }
    @Override
    protected boolean isMultiResourceTest()

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeResourcesTest.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeResourcesTest.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeResourcesTest.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -24,12 +24,12 @@
 
 import org.apache.log4j.NDC;
 import org.jboss.jbossts.performance.MultiThreadedTest;
-import org.jboss.jbossts.performance.configuration.ConcurrentTaskConfiguration;
+import org.jboss.jbossts.performance.configuration.JPAConfiguration;
 import org.jboss.jbossts.performance.configuration.MultithreadedTestConfiguration;
 
 /**
  * This is in all intents and purposes has ended up being a factory.
- * @author whitingjr
+ * @author Jeremy Whiting
  *
  */
 public class SynchronizeResourcesTest extends MultiThreadedTest
@@ -38,12 +38,11 @@
    public Runnable getTask(final MultithreadedTestConfiguration taskConfiguration)
       throws Exception
    {
-      return new SynchronizeTask(new ConcurrentTaskConfiguration( getEntityManagerFactory(), getEntityManagerFactoryB(), taskConfiguration.getIterationCount(), taskConfiguration.getCompletionBarrier(),  this.isOptionalWriteEnabled, NDC.cloneStack(), taskConfiguration.getThreadIdentity(), taskConfiguration.getResults()));
+      return new SynchronizeTask(new JPAConfiguration(getDataSourceA(), getDataSourceB(), getUserTransaction(), getEntityManagerFactory(), getEntityManagerFactoryB(),  taskConfiguration.getIterationCount(), this.isOptionalWriteEnabled, NDC.cloneStack(), taskConfiguration));
    }
    @Override
    protected boolean isMultiResourceTest()
    {
       return true;
    }
-   
 }

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeTask.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeTask.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeTask.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -1,12 +1,11 @@
 package org.jboss.jbossts.performance.resource;
 
 import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
 import javax.persistence.Query;
 
 import org.hibernate.Transaction;
 import org.hibernate.ejb.EntityManagerImpl;
-import org.jboss.jbossts.performance.configuration.ConcurrentTaskConfiguration;
+import org.jboss.jbossts.performance.configuration.JPAConfiguration;
 import org.jboss.jbossts.performance.synchronization.SessionSynchronization;
 import org.jboss.jbossts.performance.task.RecursiveTask;
 import org.jboss.tm.TransactionLocal;
@@ -29,7 +28,8 @@
  */
 public class SynchronizeTask extends RecursiveTask
 {
-   public SynchronizeTask(final ConcurrentTaskConfiguration taskConfiguration)
+   
+   public SynchronizeTask(final JPAConfiguration taskConfiguration)
    {
       super(taskConfiguration);
    }
@@ -42,8 +42,8 @@
    public void task(final int iteration)
       throws Exception
    {
-      final EntityManagerImpl emA  = (EntityManagerImpl) getEMFactoryA().createEntityManager();
-      final EntityManagerImpl emB = (EntityManagerImpl) getEMFactoryB().createEntityManager();
+      final EntityManagerImpl emA  = (EntityManagerImpl) this.getTaskConfiguration().getEntityManagerFactoryA().createEntityManager();
+      final EntityManagerImpl emB = (EntityManagerImpl) this.getTaskConfiguration().getEntityManagerFactoryB().createEntityManager();
       final Transaction transaction =emA.getSession().beginTransaction();
       final TransactionLocal session = new TransactionLocal();
       
@@ -65,10 +65,10 @@
 
       // Prepare a user object
       session.set(emA);
-      String name = String.format("Ben[%1$d][%2$d]", this.threadId, System.currentTimeMillis()) ;
+      String name = String.format("Ben[%1$d][%2$d]", this.getTaskConfiguration().getTestConfiguration().getThreadIdentity(), System.currentTimeMillis()) ;
       
       final User userA = findUsingResourceA(userDAO_A);
-      Assert.assertNotNull(userA, String.format( "User A should not be null.[%1$d][%2$d]", this.threadId, iteration));
+      Assert.assertNotNull(userA, String.format( "User A should not be null.[%1$d][%2$d]", this.getTaskConfiguration().getTestConfiguration().getThreadIdentity(), iteration));
        
       if (this.isOptionalWriteEnabled)
       {
@@ -95,17 +95,6 @@
        * point only EM B's persistence context has any pending writes. */
       transaction.commit(); 
    }
-   
-   public EntityManagerFactory getEMFactoryA()
-   {
-      return this.emfA;
-   }
-   
-   public EntityManagerFactory getEMFactoryB()
-   {
-      return this.emfB;
-   }
-   
    /**
     * This method exists purely for the profiler to separate resource duration 
     *
@@ -114,17 +103,13 @@
    {
       entityManager.flush();
    }
-   /*   private void resourceBFlush(EntityManager entityManager)
+   private User findUsingResourceA(UserDAOBeanMultiResource daoBean)
    {
-      entityManager.flush();
+      return daoBean.findById(this.getTaskConfiguration().getTestConfiguration().getThreadIdentity(), false);
    }
-*/   private User findUsingResourceA(UserDAOBeanMultiResource daoBean)
-   {
-      return daoBean.findById(this.threadId, false);
-   }
    private User findUsingResourceB(final UserDAOBeanMultiResource daoBean)
    {
-      return daoBean.findById(this.threadId, false);
+      return daoBean.findById(this.getTaskConfiguration().getTestConfiguration().getThreadIdentity(), false);
    }
    
    private void writeUserA(final EntityManager em, final String sql)

Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/task/RecursiveTask.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/task/RecursiveTask.java	2010-02-22 17:36:06 UTC (rev 31775)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/task/RecursiveTask.java	2010-02-22 17:37:47 UTC (rev 31776)
@@ -23,14 +23,11 @@
 package org.jboss.jbossts.performance.task;
 
 import java.util.Stack;
-import java.util.concurrent.CyclicBarrier;
 
-import javax.persistence.EntityManagerFactory;
-
 import org.apache.commons.lang.mutable.MutableLong;
 import org.apache.log4j.Logger;
 import org.apache.log4j.NDC;
-import org.jboss.jbossts.performance.configuration.ConcurrentTaskConfiguration;
+import org.jboss.jbossts.performance.configuration.JPAConfiguration;
 import org.jboss.jbossts.performance.resource.SynchronizeTask;
 import org.testng.Assert;
 
@@ -43,26 +40,16 @@
  */
 public abstract class RecursiveTask implements Runnable
 {
-   protected final EntityManagerFactory emfA;
-   protected final EntityManagerFactory emfB;
    protected final boolean isOptionalWriteEnabled;
    private final int recurseCount;
    private final static Logger logger = Logger.getLogger(SynchronizeTask.class);
-   private final CyclicBarrier completionBarrier;
-   //private final CountDownLatch latch;
-   protected final Long threadId;
    private final Stack parentNDC;
-   private final ConcurrentTaskConfiguration taskConfiguration;
-   public RecursiveTask(final ConcurrentTaskConfiguration configuration)
+   private final JPAConfiguration taskConfiguration;
+   public RecursiveTask(final JPAConfiguration configuration)
    {
-      this.emfA = configuration.getEmfactoryA();
-      this.emfB = configuration.getEmfactoryB();
       this.recurseCount = configuration.getIterationCount();
-      this.completionBarrier = configuration.getCompletionBarrier();
       this.isOptionalWriteEnabled = configuration.isOptionalWriteEnabled();
-      //this.latch = null;
       this.parentNDC = configuration.getNDCstack();
-      this.threadId = configuration.getThreadIdentity();
       this.taskConfiguration = configuration;
    }
    @Override
@@ -73,34 +60,34 @@
       method. 
       */
          NDC.inherit(this.parentNDC);
-         NDC.push(this.threadId.toString());
-         this.completionBarrier.await();// await all threads ready to start
+         NDC.push(this.taskConfiguration.getTestConfiguration().getThreadIdentity().toString());
+         this.taskConfiguration.getTestConfiguration().getCompletionBarrier().await();// await all threads ready to start
          MutableLong totalTime = recurse(this.recurseCount);
          if (logger.isInfoEnabled())
          {
             logger.info("Finished recursing. Awaiting on synch point.");
          }
 
-         if (!this.completionBarrier.isBroken())
+         if (!this.taskConfiguration.getTestConfiguration().getCompletionBarrier().isBroken())
          {// fall out of thread without waiting.
-            if (null != this.taskConfiguration.getThreadResults())
+            if (null != this.taskConfiguration.getTestConfiguration().getResults())
             {
                /* Put into the results object a value. The value is the average time for 
-                * this thread to execute the task. */
-               this.taskConfiguration.getThreadResults().add(( totalTime.toLong()/this.recurseCount));// serialized modification, insertion order not important
+                * this thread to execute the task. nano seconds */
+               this.taskConfiguration.getTestConfiguration().getResults().add(( totalTime.toLong()/this.recurseCount));// serialized modification, insertion order not important
             }
-            this.completionBarrier.await();// await all threads have finished
+            this.taskConfiguration.getTestConfiguration().getCompletionBarrier().await();// await all threads have finished
          }
       }
       catch (Exception e)
       {
          logger.error(e.getMessage(), e);
-         this.completionBarrier.reset();
+         this.taskConfiguration.getTestConfiguration().getCompletionBarrier().reset();
          Assert.fail(e.getMessage());
       }
       catch (AssertionError ae)
       {
-         this.completionBarrier.reset();
+         this.taskConfiguration.getTestConfiguration().getCompletionBarrier().reset();
          throw ae;
       }
       finally
@@ -127,16 +114,20 @@
             returnValue.add (System.nanoTime() - start);
             if (logger.isDebugEnabled())
             {
-               logger.debug(String.format("Completed profiled run of testbody for thread [%1$d] count [%2$d].", this.threadId, i));
+               logger.debug(String.format("Completed profiled run of testbody for thread [%1$d] count [%2$d].", this.taskConfiguration.getTestConfiguration().getThreadIdentity(), i));
             }
             
          } catch (Exception e)
          {
-            this.completionBarrier.reset();
-            logger.error(String.format("Failed profiled run of testbody for thread [%1$d] count [%2$d].", this.threadId, i ));
+            this.taskConfiguration.getTestConfiguration().getCompletionBarrier().reset();
+            logger.error(String.format("Failed profiled run of testbody for thread [%1$d] count [%2$d].", this.taskConfiguration.getTestConfiguration().getThreadIdentity(), i ));
             Assert.fail(e.getMessage(), e);
          }
       }
       return returnValue ;
    }
+   public JPAConfiguration getTaskConfiguration()
+   {
+      return taskConfiguration;
+   }
 }



More information about the jboss-svn-commits mailing list