[jboss-cvs] JBossAS SVN: r110310 - in projects/jboss-jca/trunk/core/src: main/java/org/jboss/jca/core/connectionmanager/notx and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 10 08:40:00 EST 2011


Author: maeste
Date: 2011-01-10 08:39:59 -0500 (Mon, 10 Jan 2011)
New Revision: 110310

Modified:
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/AbstractConnectionManager.java
   projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/notx/NoTxConnectionManagerImpl.java
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/common/MockConnectionManager.java
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/notx/NoTxConnectionManagerTestCase.java
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/tx/TxConnectionManagerTestCase.java
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/tx/XATxConnectionManagerTestCase.java
   projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/unit/AbstractConnectionManagerTestCase.java
Log:
JBJCA-489 JBJCA-488 JBJCA-487 refactoring COnnectionManager moving some method from abstract class to concrete impls and testing them in right testcase. Both positive and negative test provided for isTransactional() method

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/AbstractConnectionManager.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/AbstractConnectionManager.java	2011-01-10 09:25:17 UTC (rev 110309)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/AbstractConnectionManager.java	2011-01-10 13:39:59 UTC (rev 110310)
@@ -50,38 +50,37 @@
 import javax.transaction.TransactionManager;
 
 import org.jboss.logging.Logger;
-
 import org.jboss.security.SubjectFactory;
 
 /**
  * AbstractConnectionManager.
- * 
+ *
  * @author <a href="mailto:gurkanerdogdu at yahoo.com">Gurkan Erdogdu</a>
  * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
  */
 public abstract class AbstractConnectionManager implements ConnectionManager
 {
    /** Log instance */
-   private Logger log = Logger.getLogger(getClass());
-   
+   private final Logger log = Logger.getLogger(getClass());
+
    /** Log trace */
-   private boolean trace;
-   
+   private final boolean trace;
+
    /**
     * Note that this copy has a trailing / unlike the original in
     * JaasSecurityManagerService.
     */
    private static final String SECURITY_MGR_PATH = "java:/jaas/";
-   
+
    /** The pool */
    private Pool pool;
-   
+
    /** Security domain jndi name */
    private String securityDomainJndiName;
-   
+
    /** SubjectFactory */
    private SubjectFactory subjectFactory;
-   
+
    /** Number of retry to allocate connection */
    private int allocationRetry;
 
@@ -89,22 +88,22 @@
    private long allocationRetryWaitMillis;
 
    /** Startup/ShutDown flag */
-   private AtomicBoolean shutdown = new AtomicBoolean(false);
-   
+   private final AtomicBoolean shutdown = new AtomicBoolean(false);
+
    /** Cached connection manager */
    private CachedConnectionManager cachedConnectionManager;
-   
+
    /** Jndi name */
    private String jndiName;
-   
+
    /**
-    * Creates a new instance of connection manager.   
+    * Creates a new instance of connection manager.
     */
    protected AbstractConnectionManager()
    {
       this.trace = log.isTraceEnabled();
    }
-   
+
    /**
     * Gets log.
     * @return log instance
@@ -113,7 +112,7 @@
    {
       return log;
    }
-   
+
    /**
     * Set the pool.
     * @param pool the pool
@@ -122,7 +121,7 @@
    {
       this.pool = pool;
    }
-   
+
    /**
     * Get the pool.
     * @return the pool
@@ -130,8 +129,8 @@
    public Pool getPool()
    {
       return pool;
-   }   
-   
+   }
+
    /**
     * Sets cached connection manager.
     * @param cachedConnectionManager cached connection manager
@@ -140,7 +139,7 @@
    {
       this.cachedConnectionManager = cachedConnectionManager;
    }
-   
+
    /**
     * Gets cached connection manager.
     * @return cached connection manager
@@ -149,7 +148,7 @@
    {
       return cachedConnectionManager;
    }
-   
+
    /**
     * Sets shut down flag.
     * @param shutDown shut down flag
@@ -158,7 +157,7 @@
    {
       this.shutdown.set(shutDown);
    }
-   
+
    /**
     * Gets jndi name.
     * @return jndi name
@@ -176,7 +175,7 @@
    {
       this.jndiName = jndiName;
    }
-   
+
    /**
     * Sets security domain jndi name.
     * @param securityDomainJndiName security jndi name
@@ -188,7 +187,7 @@
          securityDomainJndiName = securityDomainJndiName.substring(SECURITY_MGR_PATH.length());
          log.warn("WARNING: UPDATE YOUR SecurityDomainJndiName! REMOVE " + SECURITY_MGR_PATH);
       }
-      
+
       this.securityDomainJndiName = securityDomainJndiName;
    }
 
@@ -200,7 +199,7 @@
    {
       return securityDomainJndiName;
    }
- 
+
    /**
     * Gets subject factory instance.
     * @return subject factory
@@ -218,8 +217,8 @@
    {
       this.subjectFactory = subjectFactory;
    }
-   
-   
+
+
    /**
     * Gets managed connection factory.
     * @return managed connection factory
@@ -236,12 +235,12 @@
       }
       else
       {
-         return pool.getManagedConnectionFactory();   
+         return pool.getManagedConnectionFactory();
       }
-      
+
       return null;
    }
-   
+
    /**
     * Set the number of allocation retries
     * @param number retry number
@@ -279,11 +278,11 @@
    {
       return allocationRetryWaitMillis;
    }
-   
+
    /**
     * Public for use in testing pooling functionality by itself.
     * called by both allocateConnection and reconnect.
-    * 
+    *
     * @param subject a <code>Subject</code> value
     * @param cri a <code>ConnectionRequestInfo</code> value
     * @return a <code>ManagedConnection</code> value
@@ -293,26 +292,26 @@
    {
       return getManagedConnection(null, subject, cri);
    }
-   
+
    /**
     * Get the managed connection from the pool.
-    * 
+    *
     * @param transaction the transaction for track by transaction
     * @param subject the subject
     * @param cri the ConnectionRequestInfo
     * @return a managed connection
     * @exception ResourceException if an error occurs
     */
-   protected ConnectionListener getManagedConnection(Transaction transaction, Subject subject, 
+   protected ConnectionListener getManagedConnection(Transaction transaction, Subject subject,
          ConnectionRequestInfo cri) throws ResourceException
    {
       ResourceException failure = null;
 
       if (shutdown.get())
       {
-         throw new ResourceException("The connection manager is shutdown " + jndiName);  
+         throw new ResourceException("The connection manager is shutdown " + jndiName);
       }
-      
+
       // First attempt
       try
       {
@@ -321,7 +320,7 @@
       catch (ResourceException e)
       {
          failure = e;
-         
+
          // Retry?
          if (allocationRetry != 0)
          {
@@ -329,19 +328,19 @@
             {
                if (shutdown.get())
                {
-                  throw new ResourceException("The connection manager is shutdown " + jndiName);  
+                  throw new ResourceException("The connection manager is shutdown " + jndiName);
                }
 
                if (trace)
                {
-                  log.trace("Attempting allocation retry for cri=" + cri);  
+                  log.trace("Attempting allocation retry for cri=" + cri);
                }
 
                try
                {
                   if (allocationRetryWaitMillis != 0)
                   {
-                     Thread.sleep(allocationRetryWaitMillis);  
+                     Thread.sleep(allocationRetryWaitMillis);
                   }
 
                   return pool.getConnection(transaction, subject, cri);
@@ -362,7 +361,7 @@
       // If we get here all retries failed, throw the lastest failure
       throw new ResourceException("Unable to get managed connection for " + jndiName, failure);
    }
-   
+
    /**
     * Kill given connection listener wrapped connection instance.
     * @param cl connection listener that wraps connection
@@ -373,14 +372,14 @@
       Pool localStrategy = cl.getPool();
       if (localStrategy != pool)
       {
-         kill = true;  
+         kill = true;
       }
 
       try
       {
          if (!kill && cl.getState().equals(ConnectionState.NORMAL))
          {
-            cl.tidyup();  
+            cl.tidyup();
          }
       }
       catch (Throwable t)
@@ -388,7 +387,7 @@
          log.warn("Error during tidy up connection" + cl, t);
          kill = true;
       }
-      
+
       try
       {
          localStrategy.returnConnection(cl, kill);
@@ -400,16 +399,16 @@
          // these errors
          if (kill)
          {
-            log.debug("resourceException killing connection (error retrieving from pool?)", re);  
+            log.debug("resourceException killing connection (error retrieving from pool?)", re);
          }
          else
          {
-            log.warn("resourceException returning connection: " + cl.getManagedConnection(), re);  
+            log.warn("resourceException returning connection: " + cl.getManagedConnection(), re);
          }
       }
    }
-   
-   
+
+
    /**
     * {@inheritDoc}
     */
@@ -419,13 +418,13 @@
       if (pool == null)
       {
          throw new ResourceException("You are trying to use a connection factory that has been shut down: " +
-               "ManagedConnectionFactory is null.");         
+               "ManagedConnectionFactory is null.");
       }
 
       //it is an explicit spec requirement that equals be used for matching rather than ==.
       if (!pool.getManagedConnectionFactory().equals(mcf))
       {
-         throw new ResourceException("Wrong ManagedConnectionFactory sent to allocateConnection!");  
+         throw new ResourceException("Wrong ManagedConnectionFactory sent to allocateConnection!");
       }
 
       // Pick a managed connection from the pool
@@ -443,13 +442,13 @@
       }
       catch (Throwable t)
       {
-         try 
+         try
          {
             managedConnectionDisconnected(cl);
          }
          catch (ResourceException re)
          {
-            log.trace("Get exception from managedConnectionDisconnected, maybe delist() have problem" + re);            
+            log.trace("Get exception from managedConnectionDisconnected, maybe delist() have problem" + re);
             returnManagedConnection(cl, true);
          }
          JBossResourceException.rethrowAsResourceException(
@@ -458,19 +457,19 @@
 
       // Associate managed connection with the connection
       registerAssociation(cl, connection);
-      
+
       if (cachedConnectionManager != null)
       {
-         cachedConnectionManager.registerConnection(this, cl, connection, cri);  
+         cachedConnectionManager.registerConnection(this, cl, connection, cri);
       }
-      
+
       return connection;
    }
 
    /**
     * {@inheritDoc}
     */
-   public void disconnect(Collection<ConnectionRecord> conRecords, Set<String> unsharableResources) 
+   public void disconnect(Collection<ConnectionRecord> conRecords, Set<String> unsharableResources)
       throws ResourceException
    {
       // if we have an unshareable connection do not remove the association
@@ -495,8 +494,8 @@
       }
       for (Iterator<ConnectionListener> i = cls.iterator(); i.hasNext();)
       {
-         disconnectManagedConnection(i.next());  
-      }      
+         disconnectManagedConnection(i.next());
+      }
    }
 
    /**
@@ -512,9 +511,9 @@
          return;
       }
 
-      Map<ConnectionRequestInfo, ConnectionListener> criToCLMap = 
+      Map<ConnectionRequestInfo, ConnectionListener> criToCLMap =
          new HashMap<ConnectionRequestInfo, ConnectionListener>(conns.size());
-      
+
       for (Iterator<ConnectionRecord> i = conns.iterator(); i.hasNext();)
       {
          ConnectionRecord cr = i.next();
@@ -538,7 +537,7 @@
          cr.setConnectionListener(cl);
       }
    }
-   
+
    /**
     * Unregister association.
     * @param cl connection listener
@@ -551,10 +550,10 @@
    {
       cl.unregisterConnection(c);
    }
-   
+
    /**
     * Invoked to reassociate a managed connection.
-    * 
+    *
     * @param cl the managed connection
     * @throws ResourceException for exception
     */
@@ -574,7 +573,7 @@
 
    /**
     * Invoked when a managed connection is no longer associated
-    * 
+    *
     * @param cl the managed connection
     */
    protected void disconnectManagedConnection(ConnectionListener cl)
@@ -588,11 +587,11 @@
          log.warn("Unchecked throwable in managedConnectionDisconnected() cl=" + cl, t);
       }
    }
-   
+
    /**
     * For polymorphism.
     * <p>
-    * 
+    *
     * Do not invoke directly, use reconnectManagedConnection
     * which does the relevent exception handling
     * @param cl connection listener
@@ -606,7 +605,7 @@
    /**
     * For polymorphism.
     * <p>
-    * 
+    *
     * Do not invoke directly, use disconnectManagedConnection
     * which does the relevent exception handling
     * @param cl connection listener
@@ -620,42 +619,28 @@
    /**
     * Register connection with connection listener.
     * @param cl connection listener
-    * @param c connection 
+    * @param c connection
     * @throws ResourceException exception
     */
    private void registerAssociation(ConnectionListener cl, Object c) throws ResourceException
    {
       cl.registerConnection(c);
    }
-   
+
    /**
     * {@inheritDoc}
     */
-   public void transactionStarted(Collection<ConnectionRecord> conns) throws SystemException
-   {
-      // Reimplement in subclasses
-      // This needs to go away - as non-tx and tx should be separate
-   }
+   public abstract void transactionStarted(Collection<ConnectionRecord> conns) throws SystemException;
 
    /**
     * {@inheritDoc}
     */
-   public TransactionManager getTransactionManager()
-   {
-      // Reimplement in subclasses
-      // This needs to go away - as non-tx and tx should be separate
-      return null;
-   }
- 
+   public abstract TransactionManager getTransactionManager();
+
    /**
     * {@inheritDoc}
     */
-   public boolean isTransactional()
-   {
-      // Reimplement in subclasses
-      // This needs to go away - as non-tx and tx should be separate
-      return false;
-   }
+   public abstract boolean isTransactional();
 
    /**
     * Gets subject.
@@ -664,17 +649,17 @@
    private Subject getSubject()
    {
       Subject subject = null;
-      
+
       if (subjectFactory != null && securityDomainJndiName != null)
       {
          subject = subjectFactory.createSubject(securityDomainJndiName);
-      } 
-      
+      }
+
       if (trace)
       {
-         log.trace("subject: " + subject);  
+         log.trace("subject: " + subject);
       }
-      
+
       return subject;
    }
 

Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/notx/NoTxConnectionManagerImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/notx/NoTxConnectionManagerImpl.java	2011-01-10 09:25:17 UTC (rev 110309)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/connectionmanager/notx/NoTxConnectionManagerImpl.java	2011-01-10 13:39:59 UTC (rev 110310)
@@ -23,17 +23,20 @@
 package org.jboss.jca.core.connectionmanager.notx;
 
 import org.jboss.jca.core.connectionmanager.AbstractConnectionManager;
+import org.jboss.jca.core.connectionmanager.ConnectionRecord;
 import org.jboss.jca.core.connectionmanager.NoTxConnectionManager;
 import org.jboss.jca.core.connectionmanager.listener.ConnectionListener;
 import org.jboss.jca.core.connectionmanager.listener.NoTxConnectionListener;
 
-
+import java.util.Collection;
 import javax.resource.ResourceException;
 import javax.resource.spi.ManagedConnection;
+import javax.transaction.SystemException;
+import javax.transaction.TransactionManager;
 
 /**
  * Non transactional connection manager implementation.
- * 
+ *
  * @author <a href="mailto:gurkanerdogdu at yahoo.com">Gurkan Erdogdu</a>
  * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
  */
@@ -52,12 +55,31 @@
    /**
     * {@inheritDoc}
     */
-   public ConnectionListener createConnectionListener(ManagedConnection managedConnection, Object context) 
+   public ConnectionListener createConnectionListener(ManagedConnection managedConnection, Object context)
       throws ResourceException
    {
       ConnectionListener cli = new NoTxConnectionListener(this, managedConnection, getPool(), context);
       managedConnection.addConnectionEventListener(cli);
-      
+
       return cli;
    }
+
+   @Override
+   public void transactionStarted(Collection<ConnectionRecord> conns) throws SystemException
+   {
+      //doing nothing
+
+   }
+
+   @Override
+   public TransactionManager getTransactionManager()
+   {
+      return null;
+   }
+
+   @Override
+   public boolean isTransactional()
+   {
+      return false;
+   }
 }

Modified: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/common/MockConnectionManager.java
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/common/MockConnectionManager.java	2011-01-10 09:25:17 UTC (rev 110309)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/common/MockConnectionManager.java	2011-01-10 13:39:59 UTC (rev 110310)
@@ -22,14 +22,19 @@
 package org.jboss.jca.core.connectionmanager.common;
 
 import org.jboss.jca.core.connectionmanager.AbstractConnectionManager;
+import org.jboss.jca.core.connectionmanager.ConnectionRecord;
 import org.jboss.jca.core.connectionmanager.listener.ConnectionListener;
 
+import java.util.Collection;
+
 import javax.resource.ResourceException;
 import javax.resource.spi.ManagedConnection;
+import javax.transaction.SystemException;
+import javax.transaction.TransactionManager;
 
 /**
  * Mock connection manager.
- * @author <a href="mailto:gurkanerdogdu at yahoo.com">Gurkan Erdogdu</a> 
+ * @author <a href="mailto:gurkanerdogdu at yahoo.com">Gurkan Erdogdu</a>
  * @version $Rev$ $Date$
  *
  */
@@ -48,10 +53,28 @@
    /**
     * {@inheritDoc}
     */
-   public ConnectionListener createConnectionListener(ManagedConnection managedConnection, 
+   public ConnectionListener createConnectionListener(ManagedConnection managedConnection,
          Object context) throws ResourceException
    {
       return null;
    }
 
+   @Override
+   public void transactionStarted(Collection<ConnectionRecord> conns) throws SystemException
+   {
+      //doing nothing
+   }
+
+   @Override
+   public TransactionManager getTransactionManager()
+   {
+      return null;
+   }
+
+   @Override
+   public boolean isTransactional()
+   {
+      return false;
+   }
+
 }

Modified: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/notx/NoTxConnectionManagerTestCase.java
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/notx/NoTxConnectionManagerTestCase.java	2011-01-10 09:25:17 UTC (rev 110309)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/notx/NoTxConnectionManagerTestCase.java	2011-01-10 13:39:59 UTC (rev 110310)
@@ -34,7 +34,6 @@
 import org.jboss.jca.core.connectionmanager.pool.api.PoolFactory;
 import org.jboss.jca.core.connectionmanager.pool.api.PoolStrategy;
 
-import javax.resource.ResourceException;
 import javax.resource.spi.ManagedConnectionFactory;
 import javax.resource.spi.TransactionSupport.TransactionSupportLevel;
 import javax.security.auth.Subject;
@@ -44,8 +43,11 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsInstanceOf.instanceOf;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
 /**
@@ -83,54 +85,55 @@
 
    /**
     * Test allocate connection.
+    *  @throws Exception in case of error and test fail
     */
    @Test
-   public void allocateCOnnectionShouldReturnCorrectHandle()
+   public void allocateCOnnectionShouldReturnCorrectHandle() throws Exception
    {
       Object object = null;
-      try
-      {
-         object = connectionManager.allocateConnection(mcf, new MockConnectionRequestInfo());
-      }
-      catch (ResourceException e)
-      {
-         e.printStackTrace();
-      }
+      object = connectionManager.allocateConnection(mcf, new MockConnectionRequestInfo());
 
       assertNotNull(object);
-      assertTrue(object instanceof MockHandle);
+      assertThat(object, instanceOf(MockHandle.class));
    }
 
    /**
     * connectionListenerInjectedIntoManagedConnectionShouldBeNoTx
-    */
+    * @throws Exception in case of error and test fail
+   */
    @Test
-   public void connectionListenerInjectedIntoManagedConnectionShouldBeNoTx()
+   public void connectionListenerInjectedIntoManagedConnectionShouldBeNoTx() throws Exception
    {
-      ConnectionListener listener =  null;
-      try
-      {
-         NoTxConnectionManagerImpl noTxCm = ((NoTxConnectionManagerImpl)connectionManager);
+      ConnectionListener listener = null;
 
-         Subject subject = null;
+      NoTxConnectionManagerImpl noTxCm = ((NoTxConnectionManagerImpl) connectionManager);
 
-         if (noTxCm.getSubjectFactory() != null && noTxCm.getSecurityDomainJndiName() != null)
-         {
-            subject = noTxCm.getSubjectFactory().createSubject(noTxCm.getSecurityDomainJndiName());
-         }
+      Subject subject = null;
 
-         listener =  noTxCm.getManagedConnection(subject,  new MockConnectionRequestInfo());
-      }
-      catch (ResourceException e)
+      if (noTxCm.getSubjectFactory() != null && noTxCm.getSecurityDomainJndiName() != null)
       {
-         e.printStackTrace();
+         subject = noTxCm.getSubjectFactory().createSubject(noTxCm.getSecurityDomainJndiName());
       }
 
+      listener = noTxCm.getManagedConnection(subject, new MockConnectionRequestInfo());
+
       assertNotNull(listener);
-      assertTrue(listener instanceof NoTxConnectionListener);
+      assertThat(listener, instanceOf(NoTxConnectionListener.class));
    }
 
    /**
+    * testIsTransactional.
+    * @throws Exception in case of error and test fail
+   */
+   @Test
+   public void isTransactionalShouldReturnFalse() throws Exception
+   {
+      NoTxConnectionManagerImpl noTxCm = ((NoTxConnectionManagerImpl) connectionManager);
+
+      assertThat(noTxCm.isTransactional(), is(false));
+   }
+
+   /**
     * Destroy.
     */
    @AfterClass
@@ -139,4 +142,5 @@
       connectionManager = null;
       mcf = null;
    }
+
 }

Modified: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/tx/TxConnectionManagerTestCase.java
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/tx/TxConnectionManagerTestCase.java	2011-01-10 09:25:17 UTC (rev 110309)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/tx/TxConnectionManagerTestCase.java	2011-01-10 13:39:59 UTC (rev 110310)
@@ -46,19 +46,26 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
-import static org.junit.Assert.*;
-
 /**
  * TxConnectionManagerTestCase.
- * @author <a href="mailto:gurkanerdogdu at yahoo.com">Gurkan Erdogdu</a> 
- * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a> 
+ * @author <a href="mailto:gurkanerdogdu at yahoo.com">Gurkan Erdogdu</a>
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
  */
 public class TxConnectionManagerTestCase
 {
    /**Embedded JCA*/
    private static Embedded embedded = null;
-   
+
+   private static TxConnectionManager txConnectionManager = null;
+
+   private static ManagedConnectionFactory mcf = null;
+
    /**
     * testTxAllocateConnection.
     * @throws Throwable for exception
@@ -66,42 +73,31 @@
    @Test
    public void testAllocateConnection() throws Throwable
    {
-      TransactionManager tm = embedded.lookup("RealTransactionManager", TransactionManager.class);
-      assertNotNull(tm);
-      
-      ManagedConnectionFactory mcf = new MockManagedConnectionFactory();
-      PoolConfiguration pc = new PoolConfiguration();      
-      PoolFactory pf = new PoolFactory();      
-      
-      Pool pool = pf.create(PoolStrategy.ONE_POOL, mcf, pc, true);
-      
-      ConnectionManagerFactory cmf = new ConnectionManagerFactory();
-      ConnectionManager connectionManager = cmf.createTransactional(TransactionSupportLevel.LocalTransaction, 
-                                                                    pool, null, null, tm, 
-                                                                    null, null, null, null, null);
-      assertNotNull(connectionManager);
-      
-      assertTrue(connectionManager instanceof TxConnectionManager);
-      
-      TxConnectionManager txConnectionManager = (TxConnectionManager)connectionManager;
-      
+
       assertNotNull(txConnectionManager.getCachedConnectionManager());
-      
+
       TransactionManager transactionManager = txConnectionManager.getTransactionManager();
       TransactionSynchronizer.setTransactionManager(transactionManager);
-      
+
       assertNotNull(transactionManager);
-      
-      transactionManager.begin();
-      
-      Object handle = connectionManager.allocateConnection(mcf, new MockConnectionRequestInfo());
-      assertNotNull(handle);
-      
-      assertTrue(handle instanceof MockHandle);
-      
-      transactionManager.commit();
+      try
+      {
+         transactionManager.begin();
+
+         Object handle = txConnectionManager.allocateConnection(mcf, new MockConnectionRequestInfo());
+         assertNotNull(handle);
+
+         assertTrue(handle instanceof MockHandle);
+
+         transactionManager.commit();
+      }
+      catch (Exception e)
+      {
+         transactionManager.rollback();
+         throw e;
+      }
    }
-   
+
    /**
     * testGetTimeLeftBeforeTrsTimeout.
     * @throws Throwable for exception
@@ -109,25 +105,7 @@
    @Test
    public void testGetTimeLeftBeforeTrsTimeout() throws Throwable
    {
-      TransactionManager tm = embedded.lookup("RealTransactionManager", TransactionManager.class);
-      assertNotNull(tm);
-      
-      ManagedConnectionFactory mcf = new MockManagedConnectionFactory();
-      PoolConfiguration pc = new PoolConfiguration();      
-      PoolFactory pf = new PoolFactory();      
-      
-      Pool pool = pf.create(PoolStrategy.ONE_POOL, mcf, pc, true);
-      
-      ConnectionManagerFactory cmf = new ConnectionManagerFactory();
-      ConnectionManager connectionManager = cmf.createTransactional(TransactionSupportLevel.LocalTransaction, 
-                                                                    pool, null, null, tm, 
-                                                                    null, null, null, null, null);
-      assertNotNull(connectionManager);
-      
-      assertTrue(connectionManager instanceof TxConnectionManager);
 
-      TxConnectionManager txConnectionManager = (TxConnectionManager)connectionManager;
-      
       try
       {
          assertEquals(-1L, txConnectionManager.getTimeLeftBeforeTransactionTimeout(false));
@@ -145,9 +123,9 @@
    @Test
    public void testConnectionEventListenerConnectionClosed() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testSynchronizationAfterCompletion.
     * @throws Exception for exception
@@ -155,9 +133,9 @@
    @Test
    public void testSynchronizationAfterCompletion() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testSynchronizationAfterCompletionTxTimeout.
     * @throws Exception for exception
@@ -165,9 +143,9 @@
    @Test
    public void testSynchronizationAfterCompletionTxTimeout() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testGetManagedConnection.
     * @throws Exception for exception
@@ -175,9 +153,9 @@
    @Test
    public void testGetManagedConnection() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testGetManagedConnectionTimeout.
     * @throws Exception for exception
@@ -185,9 +163,9 @@
    @Test
    public void testGetManagedConnectionTimeout() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testGetManagedConnectionTrackByTx.
     * @throws Exception for exception
@@ -195,9 +173,9 @@
    @Test
    public void testGetManagedConnectionTrackByTx() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testGetManagedConnectionTimeoutTrackByTx.
     * @throws Exception for exception
@@ -205,9 +183,9 @@
    @Test
    public void testGetManagedConnectionTimeoutTrackByTx() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testConnectionError.
     * @throws Exception for exception.
@@ -215,9 +193,9 @@
    @Test
    public void testConnectionError() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testConnectionErrorTrackByTx.
     * @throws Exception for exception
@@ -225,9 +203,9 @@
    @Test
    public void testConnectionErrorTrackByTx() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testSimulateConnectionError.
     * @throws Exception for exception.
@@ -235,9 +213,9 @@
    @Test
    public void testSimulateConnectionError() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testSimulateConnectionErrorTrackByTx.
     * @throws Exception for exception
@@ -245,12 +223,56 @@
    @Test
    public void testSimulateConnectionErrorTrackByTx() throws Exception
    {
-      
+
    }
-   
+
    /**
+    * testIsTransactional.
+    * @throws Exception in case of error and test fail
+    */
+   @Test
+   public void isTransactionalShouldReturnTrueIfTxRunning() throws Exception
+   {
+      //given
+      TransactionManager transactionManager = txConnectionManager.getTransactionManager();
+      TransactionSynchronizer.setTransactionManager(transactionManager);
+      try
+      {
+         //when
+         transactionManager.begin();
+
+         //then
+         assertThat(txConnectionManager.isTransactional(), is(true));
+         transactionManager.commit();
+      }
+      catch (Exception e)
+      {
+         transactionManager.rollback();
+         throw e;
+      }
+   }
+
+   /**
+    * testIsTransactional.
+    * @throws Exception in case of error and test fail
+    */
+   @Test
+   public void isTransactionalShouldReturnFalseIfTxNotRunning() throws Exception
+   {
+      //given
+      TransactionManager transactionManager = txConnectionManager.getTransactionManager();
+      TransactionSynchronizer.setTransactionManager(transactionManager);
+
+      //when no transactionManager.begin() called
+
+      //then
+      assertThat(txConnectionManager.isTransactional(), is(false));
+
+   }
+
+   /**
     * Lifecycle start, before the suite is executed
-    * @throws Throwable throwable exception 
+    * @throws Throwable throwable exception
     */
    @BeforeClass
    public static void beforeClass() throws Throwable
@@ -267,11 +289,25 @@
 
       embedded.deploy(naming);
       embedded.deploy(transaction);
+
+      TransactionManager tm = embedded.lookup("RealTransactionManager", TransactionManager.class);
+
+      mcf = new MockManagedConnectionFactory();
+      PoolConfiguration pc = new PoolConfiguration();
+      PoolFactory pf = new PoolFactory();
+
+      Pool pool = pf.create(PoolStrategy.ONE_POOL, mcf, pc, true);
+
+      ConnectionManagerFactory cmf = new ConnectionManagerFactory();
+      ConnectionManager connectionManager = cmf.createTransactional(TransactionSupportLevel.LocalTransaction, pool,
+         null, null, tm, null, null, null, null, null);
+
+      txConnectionManager = (TxConnectionManager) connectionManager;
    }
-   
+
    /**
     * Lifecycle stop, after the suite is executed
-    * @throws Throwable throwable exception 
+    * @throws Throwable throwable exception
     */
    @AfterClass
    public static void afterClass() throws Throwable
@@ -288,5 +324,5 @@
 
       // Set embedded to null
       embedded = null;
-   }   
+   }
 }

Modified: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/tx/XATxConnectionManagerTestCase.java
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/tx/XATxConnectionManagerTestCase.java	2011-01-10 09:25:17 UTC (rev 110309)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/tx/XATxConnectionManagerTestCase.java	2011-01-10 13:39:59 UTC (rev 110310)
@@ -21,7 +21,6 @@
  */
 package org.jboss.jca.core.connectionmanager.tx;
 
-import org.jboss.jca.core.api.connectionmanager.ConnectionManager;
 import org.jboss.jca.core.connectionmanager.ConnectionManagerFactory;
 import org.jboss.jca.core.connectionmanager.TxConnectionManager;
 import org.jboss.jca.core.connectionmanager.common.MockConnectionRequestInfo;
@@ -37,6 +36,7 @@
 
 import java.net.URL;
 
+import javax.resource.spi.ConnectionManager;
 import javax.resource.spi.ManagedConnectionFactory;
 import javax.resource.spi.TransactionSupport.TransactionSupportLevel;
 import javax.transaction.RollbackException;
@@ -46,19 +46,26 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
-import static org.junit.Assert.*;
-
 /**
  * XATxConnectionManagerTestCase.
- * @author <a href="mailto:gurkanerdogdu at yahoo.com">Gurkan Erdogdu</a> 
- * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a> 
+ * @author <a href="mailto:gurkanerdogdu at yahoo.com">Gurkan Erdogdu</a>
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
  */
 public class XATxConnectionManagerTestCase
 {
    /**Embedded JCA*/
    private static Embedded embedded = null;
-   
+
+   private static TxConnectionManager txConnectionManager = null;
+
+   private static ManagedConnectionFactory mcf = null;
+
    /**
     * testTxAllocateConnection.
     * @throws Throwable for exception
@@ -66,42 +73,30 @@
    @Test
    public void testAllocateConnection() throws Throwable
    {
-      TransactionManager tm = embedded.lookup("RealTransactionManager", TransactionManager.class);
-      assertNotNull(tm);
-      
-      ManagedConnectionFactory mcf = new MockManagedConnectionFactory();
-      PoolConfiguration pc = new PoolConfiguration();      
-      PoolFactory pf = new PoolFactory();      
-      
-      Pool pool = pf.create(PoolStrategy.ONE_POOL, mcf, pc, true);
-      
-      ConnectionManagerFactory cmf = new ConnectionManagerFactory();
-      ConnectionManager connectionManager = cmf.createTransactional(TransactionSupportLevel.XATransaction,
-                                                                    pool,
-                                                                    null, null,
-                                                                    tm, 
-                                                                    Boolean.FALSE, null, null, null, null);
-      assertNotNull(connectionManager);
-      
-      assertTrue(connectionManager instanceof TxConnectionManager);
-      
-      TxConnectionManager txConnectionManager = (TxConnectionManager)connectionManager;
-      
-      TransactionManager transactionManager = txConnectionManager.getTransactionManager();      
+
+      TransactionManager transactionManager = txConnectionManager.getTransactionManager();
       assertNotNull(transactionManager);
-      
+
       TransactionSynchronizer.setTransactionManager(transactionManager);
-      
-      transactionManager.begin();
-      
-      Object handle = connectionManager.allocateConnection(mcf, new MockConnectionRequestInfo());
-      assertNotNull(handle);
-      
-      assertTrue(handle instanceof MockHandle);
-      
-      transactionManager.commit();
+
+      try
+      {
+         transactionManager.begin();
+
+         Object handle = txConnectionManager.allocateConnection(mcf, new MockConnectionRequestInfo());
+         assertNotNull(handle);
+
+         assertTrue(handle instanceof MockHandle);
+
+         transactionManager.commit();
+      }
+      catch (Exception e)
+      {
+         transactionManager.rollback();
+         throw e;
+      }
    }
-   
+
    /**
     * testGetTimeLeftBeforeTrsTimeout.
     * @throws Throwable for exception
@@ -109,25 +104,7 @@
    @Test
    public void testGetTimeLeftBeforeTrsTimeout() throws Throwable
    {
-      TransactionManager tm = embedded.lookup("RealTransactionManager", TransactionManager.class);
-      assertNotNull(tm);
-      
-      ManagedConnectionFactory mcf = new MockManagedConnectionFactory();
-      PoolConfiguration pc = new PoolConfiguration();      
-      PoolFactory pf = new PoolFactory();      
-      
-      Pool pool = pf.create(PoolStrategy.ONE_POOL, mcf, pc, true);
-      
-      ConnectionManagerFactory cmf = new ConnectionManagerFactory();
-      ConnectionManager connectionManager = cmf.createTransactional(TransactionSupportLevel.XATransaction, 
-                                                                    pool, null, null, tm, 
-                                                                    Boolean.FALSE, null, null, null, null);
-      assertNotNull(connectionManager);
-      
-      assertTrue(connectionManager instanceof TxConnectionManager);
 
-      TxConnectionManager txConnectionManager = (TxConnectionManager)connectionManager;
-
       try
       {
          assertEquals(-1L, txConnectionManager.getTimeLeftBeforeTransactionTimeout(false));
@@ -137,7 +114,7 @@
          //No action
       }
    }
-   
+
    /**
     * testEnlistInExistingTx.
     * @throws Exception for exception
@@ -145,9 +122,9 @@
    @Test
    public void testEnlistInExistingTx() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testEnlistCheckedOutConnectionInNewTx.
     * @throws Exception for exception
@@ -155,9 +132,9 @@
    @Test
    public void testEnlistCheckedOutConnectionInNewTx() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testReconnectConnectionHandlesOnNotification.
     * @throws Exception for exception.
@@ -165,9 +142,9 @@
    @Test
    public void testReconnectConnectionHandlesOnNotification() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testEnlistAfterMarkRollback.
     * @throws Exception for exception
@@ -175,9 +152,9 @@
    @Test
    public void testEnlistAfterMarkRollback() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testBrokenConnectionAndTrackByTx.
     * @throws Exception for exception.
@@ -185,33 +162,75 @@
    @Test
    public void testBrokenConnectionAndTrackByTx() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testFailedStartTx.
     * @throws Exception for exception.
     */
-   @Test   
+   @Test
    public void testFailedStartTx() throws Exception
    {
-      
+
    }
-   
+
    /**
     * testFailedEndTx.
     * @throws Exception for exception.
     */
-   @Test   
+   @Test
    public void testFailedEndTx() throws Exception
    {
-      
+
    }
-   
-   
+
    /**
+    * testIsTransactional.
+    * @throws Exception in case of error and test fail
+    */
+   @Test
+   public void isTransactionalShouldReturnTrueIfTxRunning() throws Exception
+   {
+      //given
+      TransactionManager transactionManager = txConnectionManager.getTransactionManager();
+      TransactionSynchronizer.setTransactionManager(transactionManager);
+      try
+      {
+         //when
+         transactionManager.begin();
+
+         //then
+         assertThat(txConnectionManager.isTransactional(), is(true));
+         transactionManager.commit();
+      }
+      catch (Exception e)
+      {
+         transactionManager.rollback();
+         throw e;
+      }
+   }
+
+   /**
+    * testIsTransactional.
+    * @throws Exception in case of error and test fail
+    */
+   @Test
+   public void isTransactionalShouldReturnFalseIfTxNotRunning() throws Exception
+   {
+      //given
+      TransactionManager transactionManager = txConnectionManager.getTransactionManager();
+      TransactionSynchronizer.setTransactionManager(transactionManager);
+
+      //when no transactionManager.begin() called
+
+      //then
+      assertThat(txConnectionManager.isTransactional(), is(false));
+   }
+
+   /**
     * Lifecycle start, before the suite is executed
-    * @throws Throwable throwable exception 
+    * @throws Throwable throwable exception
     */
    @BeforeClass
    public static void beforeClass() throws Throwable
@@ -228,11 +247,30 @@
 
       embedded.deploy(naming);
       embedded.deploy(transaction);
+
+      TransactionManager tm = embedded.lookup("RealTransactionManager", TransactionManager.class);
+      assertNotNull(tm);
+
+      mcf = new MockManagedConnectionFactory();
+      PoolConfiguration pc = new PoolConfiguration();
+      PoolFactory pf = new PoolFactory();
+
+      Pool pool = pf.create(PoolStrategy.ONE_POOL, mcf, pc, true);
+
+      ConnectionManagerFactory cmf = new ConnectionManagerFactory();
+      ConnectionManager connectionManager = cmf.createTransactional(TransactionSupportLevel.XATransaction, pool,
+         null, null, tm, Boolean.FALSE, null, null, null, null);
+      assertNotNull(connectionManager);
+
+      assertTrue(connectionManager instanceof TxConnectionManager);
+
+      txConnectionManager = (TxConnectionManager) connectionManager;
+
    }
-   
+
    /**
     * Lifecycle stop, after the suite is executed
-    * @throws Throwable throwable exception 
+    * @throws Throwable throwable exception
     */
    @AfterClass
    public static void afterClass() throws Throwable
@@ -249,6 +287,6 @@
 
       // Set embedded to null
       embedded = null;
-   }   
-   
+   }
+
 }

Modified: projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/unit/AbstractConnectionManagerTestCase.java
===================================================================
--- projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/unit/AbstractConnectionManagerTestCase.java	2011-01-10 09:25:17 UTC (rev 110309)
+++ projects/jboss-jca/trunk/core/src/test/java/org/jboss/jca/core/connectionmanager/unit/AbstractConnectionManagerTestCase.java	2011-01-10 13:39:59 UTC (rev 110310)
@@ -37,7 +37,9 @@
 
 import org.junit.Test;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
 /**
  * AbstractConnectionManagerTestCase.
@@ -188,16 +190,6 @@
    }
    
    /**
-    * testIsTransactional.
-    */
-   @Test
-   public void testIsTransactional()
-   {
-      AbstractConnectionManager connectionManager = new MockConnectionManager();
-      assertFalse(connectionManager.isTransactional());
-   }
-   
-   /**
     * testGetManagedConnectionFactoryIsNull.
     */
    @Test



More information about the jboss-cvs-commits mailing list