[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