[jboss-cvs] JBoss Messaging SVN: r8307 - in branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms: clustering and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue May 17 20:37:24 EDT 2011
Author: bershath27
Date: 2011-05-17 20:37:24 -0400 (Tue, 17 May 2011)
New Revision: 8307
Modified:
branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/ConnectionConsumerTest.java
branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/WireFormatTest.java
branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/clustering/FakeClusterConnectionManager.java
branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/clustering/MessageSuckerTest.java
branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/server/connectionmanager/SimpleConnectionManagerTest.java
Log:
JBPAPP-6386
Modified: branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/ConnectionConsumerTest.java
===================================================================
--- branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/ConnectionConsumerTest.java 2011-05-18 00:06:59 UTC (rev 8306)
+++ branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/ConnectionConsumerTest.java 2011-05-18 00:37:24 UTC (rev 8307)
@@ -30,9 +30,22 @@
import javax.jms.ServerSessionPool;
import javax.jms.Session;
import javax.jms.TextMessage;
+import javax.jms.XAConnection;
+import javax.jms.XASession;
+import javax.naming.InitialContext;
+import javax.transaction.HeuristicMixedException;
+import javax.transaction.HeuristicRollbackException;
+import javax.transaction.NotSupportedException;
+import javax.transaction.RollbackException;
+import javax.transaction.SystemException;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
+import javax.transaction.xa.XAResource;
import org.jboss.jms.client.JBossConnectionConsumer;
import org.jboss.test.messaging.tools.ServerManagement;
+import org.jboss.test.messaging.tools.container.InVMInitialContextFactory;
+import org.jboss.test.messaging.tools.container.ServiceContainer;
import EDU.oswego.cs.dl.util.concurrent.Latch;
@@ -54,7 +67,9 @@
// Static --------------------------------------------------------
// Attributes ----------------------------------------------------
-
+ private TransactionManager tm;
+ private Transaction suspended;
+
// Constructors --------------------------------------------------
public ConnectionConsumerTest(String name)
@@ -63,7 +78,35 @@
}
// TestCase overrides -------------------------------------------
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ if (!ServerManagement.isRemote())
+ {
+ InitialContext localIc = new InitialContext(InVMInitialContextFactory.getJNDIEnvironment());
+
+ tm = (TransactionManager)localIc.lookup(ServiceContainer.TRANSACTION_MANAGER_JNDI_NAME);
+
+ suspended = tm.suspend();
+
+ log.debug("setup done");
+ }
+ }
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+
+ if (!ServerManagement.isRemote())
+ {
+ if (suspended != null)
+ {
+ tm.resume(suspended);
+ }
+ }
+ }
+
// Public --------------------------------------------------------
public void testSimple() throws Exception
@@ -133,7 +176,53 @@
}
}
-
+ //https://jira.jboss.org/browse/JBMESSAGING-1831
+ public void testWaitForDeliveryFinish() throws Exception
+ {
+ if (ServerManagement.isRemote()) return;
+
+ XAConnection connConsumer = null;
+
+ Connection connProducer = null;
+
+ try
+ {
+ connConsumer = cf.createXAConnection();
+
+ connConsumer.start();
+
+ XASession sessCons = connConsumer.createXASession();
+
+ TxMessageListener listener = new TxMessageListener();
+
+ sessCons.setMessageListener(listener);
+
+ MockServerSessionPool2 pool = new MockServerSessionPool2(sessCons, tm);
+
+ JBossConnectionConsumer cc = (JBossConnectionConsumer)connConsumer.createConnectionConsumer(queue1, null, pool, 1);
+
+ connProducer = cf.createConnection();
+
+ Session sessProd = connProducer.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageProducer prod = sessProd.createProducer(queue1);
+
+ TextMessage m1 = sessProd.createTextMessage("a");
+ prod.send(m1);
+
+ cc.close();
+ pool.shutdown();
+
+ connProducer.close();
+ connProducer = null;
+ connConsumer.close();
+ connConsumer = null;
+ }
+ finally
+ {
+ if (connConsumer != null) connConsumer.close();
+ if (connConsumer != null) connProducer.close();
+ }
+ }
public void testRedeliveryTransacted() throws Exception
{
@@ -349,6 +438,20 @@
}
}
+ class TxMessageListener implements MessageListener
+ {
+
+ public TxMessageListener()
+ {
+ }
+
+ //need client ack
+ public void onMessage(Message msg)
+ {
+ log.info("Message got: " + msg);
+
+ }
+ }
class SimpleMessageListener implements MessageListener
{
@@ -590,3 +693,95 @@
return serverSession;
}
}
+
+class MockServerSessionPool2 implements ServerSessionPool
+{
+ private MockServerSession2 serverSession;
+
+ MockServerSessionPool2(XASession sess, TransactionManager tm)
+ {
+ serverSession = new MockServerSession2(sess, tm);
+ }
+
+ public void shutdown()
+ {
+ try
+ {
+ serverSession.join();
+ }
+ catch (InterruptedException e)
+ {
+ }
+ }
+
+ public ServerSession getServerSession() throws JMSException
+ {
+ return serverSession;
+ }
+}
+
+class MockServerSession2 extends Thread implements ServerSession
+{
+ XASession session;
+ TransactionManager tm;
+
+ MockServerSession2(XASession sess, TransactionManager tm)
+ {
+ this.session = sess;
+ this.tm = tm;
+ }
+
+ public Session getSession() throws JMSException
+ {
+ return session;
+ }
+
+ public void run()
+ {
+ try
+ {
+ tm.begin();
+
+ Transaction tx = tm.getTransaction();
+
+ XAResource res = session.getXAResource();
+ tx.enlistResource(res);
+
+ session.run();
+
+ try
+ {
+ Thread.sleep(5000);
+ }
+ catch (InterruptedException e)
+ {
+ }
+
+ tx.delistResource(res, XAResource.TMSUCCESS);
+
+ tm.commit();
+ }
+ catch (NotSupportedException e)
+ {
+ }
+ catch (SystemException e)
+ {
+ }
+ catch (IllegalStateException e)
+ {
+ }
+ catch (RollbackException e)
+ {
+ }
+ catch (SecurityException e)
+ {
+ }
+ catch (HeuristicMixedException e)
+ {
+ }
+ catch (HeuristicRollbackException e)
+ {
+ }
+ }
+
+}
Modified: branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/WireFormatTest.java
===================================================================
--- branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/WireFormatTest.java 2011-05-18 00:06:59 UTC (rev 8306)
+++ branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/WireFormatTest.java 2011-05-18 00:37:24 UTC (rev 8307)
@@ -57,6 +57,7 @@
import org.jboss.jms.wireformat.ClosingRequest;
import org.jboss.jms.wireformat.ClosingResponse;
import org.jboss.jms.wireformat.ConnectionCreateSessionDelegateRequest;
+import org.jboss.jms.wireformat.ConnectionCreateSessionDelegateRequest2;
import org.jboss.jms.wireformat.ConnectionCreateSessionDelegateResponse;
import org.jboss.jms.wireformat.ConnectionFactoryAddCallbackRequest;
import org.jboss.jms.wireformat.ConnectionFactoryCreateConnectionDelegateRequest;
@@ -166,6 +167,11 @@
wf.testConnectionCreateSessionDelegateRequest();
}
+ public void testConnectionCreateSessionDelegateRequest2() throws Exception
+ {
+ wf.testConnectionCreateSessionDelegateRequest2();
+ }
+
public void testConnectionGetClientIDRequest() throws Exception
{
wf.testConnectionGetClientIDRequest();
@@ -503,11 +509,19 @@
public void testConnectionCreateSessionDelegateRequest() throws Exception
{
RequestSupport req =
- new ConnectionCreateSessionDelegateRequest("23", (byte)77, true, 23, true);;
+ new ConnectionCreateSessionDelegateRequest("23", (byte)77, true, 23, true);
testPacket(req, PacketSupport.REQ_CONNECTION_CREATESESSIONDELEGATE);
}
+ public void testConnectionCreateSessionDelegateRequest2() throws Exception
+ {
+ RequestSupport req =
+ new ConnectionCreateSessionDelegateRequest2("23", (byte)77, true, 23, true, false);
+
+ testPacket(req, PacketSupport.REQ_CONNECTION_CREATESESSIONDELEGATE2);
+ }
+
public void testConnectionGetClientIDRequest() throws Exception
{
RequestSupport req =
Modified: branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/clustering/FakeClusterConnectionManager.java
===================================================================
--- branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/clustering/FakeClusterConnectionManager.java 2011-05-18 00:06:59 UTC (rev 8306)
+++ branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/clustering/FakeClusterConnectionManager.java 2011-05-18 00:37:24 UTC (rev 8307)
@@ -61,7 +61,8 @@
*/
public class FakeClusterConnectionManager
{
-
+ private static final Logger log = Logger.getLogger(FakeClusterConnectionManager.class);
+
public static final long CLOSE_TIMEOUT = 2000;
private Map connections;
@@ -154,6 +155,12 @@
return info.checkMessageSucked(messages);
}
+ public void cleanDirtyMessages(int node) throws JMSException
+ {
+ FakeConnectionInfo info = (FakeConnectionInfo)connections.get(new Integer(node));
+ info.cleanMessages();
+ }
+
public String checkMessageNotSucked(int node) throws JMSException
{
FakeConnectionInfo info = (FakeConnectionInfo)connections.get(new Integer(node));
@@ -392,6 +399,23 @@
{
return null;
}
+
+ public void setClustered(boolean isClustered)
+ {
+ }
+
+ public void staticMerge(org.jboss.messaging.core.contract.Queue queue) throws Exception
+ {
+ }
+
+ public List listInProcessMessages()
+ {
+ return null;
+ }
+
+ public void setDeliveringCounterLevel(int delCounterLevel)
+ {
+ }
}
// Inner classes -------------------------------------------------
@@ -513,6 +537,11 @@
return result;
}
+ public void cleanMessages()
+ {
+ suckBuffer.clear();
+ }
+
public String checkMessageNotSucked() throws JMSException
{
String result = null;
Modified: branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/clustering/MessageSuckerTest.java
===================================================================
--- branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/clustering/MessageSuckerTest.java 2011-05-18 00:06:59 UTC (rev 8306)
+++ branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/clustering/MessageSuckerTest.java 2011-05-18 00:37:24 UTC (rev 8307)
@@ -106,6 +106,8 @@
// Now kill Node 0
ServerManagement.stop(0);
+
+ clusterConnMgr.cleanDirtyMessages(0);
// Sucker connection should receive notification
clusterConnMgr.checkConnectionFailureDetected(0);
@@ -232,6 +234,8 @@
// Now kill Node 0
ServerManagement.stop(0);
+
+ clusterConnMgr.cleanDirtyMessages(0);
// Sucker connection should receive notification
clusterConnMgr.checkConnectionFailureDetected(0);
Modified: branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/server/connectionmanager/SimpleConnectionManagerTest.java
===================================================================
--- branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/server/connectionmanager/SimpleConnectionManagerTest.java 2011-05-18 00:06:59 UTC (rev 8306)
+++ branches/JBossMessaging_1_4_6_GA_JBPAPP-6386/tests/src/org/jboss/test/messaging/jms/server/connectionmanager/SimpleConnectionManagerTest.java 2011-05-18 00:37:24 UTC (rev 8307)
@@ -329,6 +329,11 @@
return closed;
}
+ public SessionDelegate createSessionDelegate(boolean transacted, int acknowledgmentMode, boolean isXA, boolean isCC) throws JMSException
+ {
+ return null;
+ }
+
public SessionDelegate createSessionDelegate(boolean transacted, int acknowledgmentMode, boolean isXA) throws JMSException
{
return null;
@@ -376,6 +381,7 @@
{
return null;
}
+
}
}
More information about the jboss-cvs-commits
mailing list