[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