[jboss-cvs] JBossAS SVN: r66994 - in branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions: unit and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 12 18:25:38 EST 2007


Author: wolfc
Date: 2007-11-12 18:25:38 -0500 (Mon, 12 Nov 2007)
New Revision: 66994

Modified:
   branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/QueueTestMDB.java
   branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/ReplyToCMDB.java
   branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/RollbackQueueTestMDB.java
   branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/StatelessFacadeBean.java
   branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/unit/MDBUnitTestCase.java
Log:
JBPAPP-347: Fixed mdbtransactions test

Modified: branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/QueueTestMDB.java
===================================================================
--- branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/QueueTestMDB.java	2007-11-12 23:05:54 UTC (rev 66993)
+++ branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/QueueTestMDB.java	2007-11-12 23:25:38 UTC (rev 66994)
@@ -22,14 +22,13 @@
 package org.jboss.ejb3.test.mdbtransactions;
 
 import javax.ejb.ActivationConfigProperty;
-import javax.ejb.EJB;
 import javax.ejb.MessageDriven;
+import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageListener;
 import javax.jms.ObjectMessage;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
-
 import org.jboss.logging.Logger;
 
 /**
@@ -45,20 +44,19 @@
    private static final Logger log = Logger.getLogger(QueueTestMDB.class);
    
    private @PersistenceContext EntityManager manager;
-   @EJB StatelessFacade stateless;
    
    public void onMessage(Message recvMsg)
    {    
       try
       {
          ObjectMessage message = (ObjectMessage)recvMsg;
-         Entity entity = (Entity)message.getObject(); 
-         stateless.persist(entity);
-         ++TestStatusBean.messageCount;
+         Entity entity = (Entity)message.getObject();
+         manager.remove(entity);
       }
-      catch (Throwable t)
+      catch (JMSException e)
       {
-         TestStatusBean.caughtRollback = true;
+         e.printStackTrace();
+         throw new RuntimeException(e);
       }
    }
 }

Modified: branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/ReplyToCMDB.java
===================================================================
--- branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/ReplyToCMDB.java	2007-11-12 23:05:54 UTC (rev 66993)
+++ branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/ReplyToCMDB.java	2007-11-12 23:25:38 UTC (rev 66994)
@@ -37,7 +37,8 @@
 import javax.jms.TextMessage;
 
 /**
- * Reply a message to queue/C whenever a message is received on queue/A.
+ * Reply a message to queue/C whenever a message is received on queue/B.
+ * Note that this has nothing to do with the actual test.
  * 
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version $Revision: $

Modified: branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/RollbackQueueTestMDB.java
===================================================================
--- branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/RollbackQueueTestMDB.java	2007-11-12 23:05:54 UTC (rev 66993)
+++ branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/RollbackQueueTestMDB.java	2007-11-12 23:25:38 UTC (rev 66994)
@@ -24,6 +24,7 @@
 import javax.ejb.ActivationConfigProperty;
 import javax.ejb.EJB;
 import javax.ejb.MessageDriven;
+import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageListener;
 import javax.jms.ObjectMessage;
@@ -52,12 +53,18 @@
       try
       {
          ObjectMessage message = (ObjectMessage)recvMsg;
-         Entity entity = (Entity)message.getObject();
-         manager.remove(entity);
+         Entity entity = (Entity)message.getObject(); 
+         stateless.persist(entity);
+         ++TestStatusBean.messageCount;
       }
-      catch (Throwable t)
+      catch (JMSException e)
       {
-          t.printStackTrace();
+         e.printStackTrace();
       }
+      catch (RuntimeException e)
+      {
+         TestStatusBean.caughtRollback = true;
+         throw e;
+      }
    }
 }

Modified: branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/StatelessFacadeBean.java
===================================================================
--- branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/StatelessFacadeBean.java	2007-11-12 23:05:54 UTC (rev 66993)
+++ branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/StatelessFacadeBean.java	2007-11-12 23:25:38 UTC (rev 66994)
@@ -54,7 +54,7 @@
       }
       catch (Throwable t)
       {
-         t.printStackTrace();
+         log.error("clear failed", t);
       }
    }
    
@@ -67,7 +67,7 @@
       }
       catch (Throwable t)
       {
-         t.printStackTrace();
+         log.error("persist failed", t);
       }
    }
 }

Modified: branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/unit/MDBUnitTestCase.java
===================================================================
--- branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/unit/MDBUnitTestCase.java	2007-11-12 23:05:54 UTC (rev 66993)
+++ branches/JBPAPP_4_2/ejb3/src/test/org/jboss/ejb3/test/mdbtransactions/unit/MDBUnitTestCase.java	2007-11-12 23:25:38 UTC (rev 66994)
@@ -132,12 +132,46 @@
       TestStatus status = (TestStatus)getInitialContext().lookup("TestStatusBean/remote");
       status.clear();
       
-      sendMessages("queue/mdbtest", 2);
+      sendMessages("queue/rollbackmdbtest", 2);
       
       Thread.sleep(5000);
       
       assertEquals(1, status.messageCount());
       assertTrue(status.caughtRollback());
+      
+      Queue queue = (Queue) getInitialContext().lookup("queue/DLQ");
+      QueueConnectionFactory factory = getQueueConnectionFactory();
+      QueueConnection connection = factory.createQueueConnection();
+      try
+      {
+         connection.start();
+         QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+         
+         QueueReceiver receiver = session.createReceiver(queue);
+         
+         /*
+         {
+            Queue sendQueue = (Queue) getInitialContext().lookup("queue/rollbackmdbtest");
+            QueueSender sender = session.createSender(sendQueue);
+            TextMessage message = session.createTextMessage("Should never arrive");
+            message.setIntProperty("JMS_JBOSS_REDELIVERY_LIMIT", 0);
+            sender.send(message);
+            sender.close();
+         }
+         */
+         
+         Message message = receiver.receive(5000);
+         assertNotNull(message);
+         
+         session.close();
+         connection.close();
+      }
+      finally
+      {
+         connection.close();
+      }
+      
+      sendMessages("queue/mdbtest", 1);
    }
    
    public void testRollback() throws Exception
@@ -145,85 +179,80 @@
       TestStatus status = (TestStatus)getInitialContext().lookup("TestStatusBean/remote");
       status.clear();
       
-      sendMessages("queue/rollbackmdbtest", 1);
-      
-      Thread.sleep(5000);
-      
-      Queue queue = (Queue) getInitialContext().lookup("queue/DLQ");
-      QueueConnectionFactory factory = getQueueConnectionFactory();
-      QueueConnection connection = factory.createQueueConnection();
-      connection.start();
-      QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
-      QueueReceiver receiver = session.createReceiver(queue);
-      Message message = receiver.receiveNoWait();
-      assertNotNull(message);
-      
-      session.close();
-      connection.close();
    }
    
+   /**
+    * Test sending a message to a MDB which can not be created.
+    * @throws Exception
+    */
    public void testBadCreation() throws Exception
    {
       TestStatus status = (TestStatus)getInitialContext().lookup("TestStatusBean/remote");
       status.clear();
       
-      InitialContext ctx = new InitialContext();
+      sendMessages("queue/badcreationmdb", 1);
+      
+      InitialContext ctx = getInitialContext();
       Queue dlq = (Queue) ctx.lookup("queue/DLQ");
-      log.info("queue = " + dlq);
       QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("ConnectionFactory");
       QueueConnection connection = factory.createQueueConnection();
-      connection.start();
-      QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
-      /*
+      try
       {
-         QueueBrowser browser = session.createBrowser(dlq);
-         Enumeration<?> e = browser.getEnumeration();
-         int size = 0;
-         while(e.hasMoreElements())
+         connection.start();
+         QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+         QueueReceiver receiver = session.createReceiver(dlq);
+         
+         //sendMessages(session, "queue/badcreationmdb", 1);
+         /*
          {
-            e.nextElement();
-            size++;
+            Queue queue = (Queue) ctx.lookup("queue/badcreationmdb");
+            QueueSender sender = session.createSender(queue);
+            TextMessage message = session.createTextMessage("Should never arrive");
+            message.setIntProperty("JMS_JBOSS_REDELIVERY_LIMIT", 0);
+            sender.send(message);
+            sender.close();
          }
-         browser.close();
+         */
          
-         log.info("queue size = " + size);
+         //Thread.sleep(5000);
+         
+         log.info("ENTERING RECEIVE");
+         Message message = receiver.receive(5000);
+         log.info("EXITING RECEIVE WITH " + message);
+         assertNotNull(message);
+         
+         session.close();
       }
-      */
-      QueueReceiver receiver = session.createReceiver(dlq);
-      
-      //sendMessages("queue/badcreationmdb", 1);
+      finally
       {
-         Queue queue = (Queue) ctx.lookup("queue/badcreationmdb");
-         QueueSender sender = session.createSender(queue);
-         TextMessage message = session.createTextMessage("Should never arrive");
-         message.setIntProperty("JMS_JBOSS_REDELIVERY_LIMIT", 0);
-         sender.send(message);
-         sender.close();
+         connection.close();
       }
-      
-      //Thread.sleep(5000);
-      
-      log.info("ENTERING RECEIVE");
-      Message message = receiver.receive(5000);
-      log.info("EXITING RECEIVE WITH " + message);
-      assertNotNull(message);
-      
-      session.close();
-      connection.close();
    }
    
    protected void sendMessages(String queueName, int numMessages) throws Exception
    {
-      QueueConnection connection = null;
+      InitialContext ctx = getInitialContext();
+      QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("ConnectionFactory");
+      QueueConnection connection = factory.createQueueConnection();
+      try
+      {
+         connection.start();
+         QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+         sendMessages(session, queueName, numMessages);
+         session.close();
+      }
+      finally
+      {
+         connection.close();
+      }
+   }
+   
+   protected void sendMessages(QueueSession session, String queueName, int numMessages) throws Exception
+   {
       QueueSender sender = null;
-      QueueSession session = null;
 
       Queue queue = (Queue) getInitialContext().lookup(
             queueName);
-      QueueConnectionFactory factory = getQueueConnectionFactory();
-      connection = factory.createQueueConnection();
-      connection.start();
-      session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
       
       QueueReceiver receiver = session.createReceiver(queue);
       Message message = receiver.receiveNoWait();
@@ -244,9 +273,6 @@
       
       for (int i = 0 ; i < numMessages ; ++i)
          sender.send(msg);
- 
-      session.close();
-      connection.close();
    }
    
    protected QueueConnectionFactory getQueueConnectionFactory()




More information about the jboss-cvs-commits mailing list