User: starksm
Date: 01/12/13 19:31:22
Modified: src/main/org/jboss/test/mdb/test Tag: Branch_2_4 Main.java
Log:
Add test for the MDB dead message queue
Revision Changes Path
No revision
No revision
1.5.2.2 +228 -157 jbosstest/src/main/org/jboss/test/mdb/test/Attic/Main.java
Index: Main.java
===================================================================
RCS file: /cvsroot/jboss/jbosstest/src/main/org/jboss/test/mdb/test/Attic/Main.java,v
retrieving revision 1.5.2.1
retrieving revision 1.5.2.2
diff -u -r1.5.2.1 -r1.5.2.2
--- Main.java 2001/07/09 01:06:04 1.5.2.1
+++ Main.java 2001/12/14 03:31:22 1.5.2.2
@@ -5,12 +5,12 @@
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -19,13 +19,17 @@
import javax.naming.*;
import javax.jms.*;
+import javax.jms.QueueReceiver;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.jboss.test.mdb.bean.CustomMessage;
+import org.apache.log4j.BasicConfigurator;
+import org.apache.log4j.Category;
+import org.jboss.logging.TracePriority;
+import org.jboss.test.mdb.bean.CustomMessage;
import org.jboss.test.util.Deploy;
//import org.jboss.jms.jndi.*;
@@ -50,160 +54,227 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Antman</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Jason Dillon</a>
- * @version <pre>$Revision: 1.5.2.1 $</pre>
+ * @version <pre>$Revision: 1.5.2.2 $</pre>
*/
-public class Main
- extends TestCase
+public class Main extends TestCase
{
- // Static --------------------------------------------------------
- static boolean deployed = false;
-
- // Provider specific
- static String TOPIC_FACTORY = "TopicConnectionFactory";
- static String QUEUE_FACTORY = "QueueConnectionFactory";
-
- QueueConnection queueConnection;
- TopicConnection topicConnection;
-
- // JMSProviderAdapter providerAdapter;
- Context context;
-
- String dest;
-
- public Main(String name, String dest) throws Exception {
- super(name);
- this.dest = dest;
- // Get JMS JNDI Adapter
- // Class cls = Class.forName(providerAdapterClass);
- // providerAdapter = (JMSProviderAdapter)cls.newInstance();
- context = new InitialContext();
- // This is not completly clean since it still have to use
- // provider specific queue and topic names!!
- }
-
- protected void setUp() throws Exception {
- // test methods call getXXXSession() to create session & connection
- }
-
- protected void tearDown() throws Exception {
- if (topicConnection != null) {
- topicConnection.close();
- }
- if (queueConnection != null) {
- queueConnection.close();
- }
- }
-
- protected void printHeader() {
- System.out.println("\n---- Testing method " + name() +
- " for destination " +dest);
- }
-
- private QueueSession getQueueSession() throws Exception {
- if (queueConnection == null) {
- QueueConnectionFactory queueFactory =
- (QueueConnectionFactory)context.lookup(QUEUE_FACTORY);
-
- queueConnection = queueFactory.createQueueConnection();
- }
- return queueConnection.createQueueSession(false,
- Session.AUTO_ACKNOWLEDGE);
- }
-
- private TopicSession getTopicSession() throws Exception {
- if (topicConnection == null) {
- TopicConnectionFactory topicFactory =
- (TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
- topicConnection = topicFactory.createTopicConnection();
- }
-
- // No transaction & auto ack
- return topicConnection.createTopicSession(false,
- Session.AUTO_ACKNOWLEDGE);
- }
-
- /**
- * Test sending messages to Topic testTopic
- */
- public void testQueue() throws Exception {
- printHeader();
- QueueSession session = getQueueSession();
- Queue queue = (Queue)context.lookup(dest);
- QueueSender sender = session.createSender(queue);
-
- System.out.println("TestQueue: " + dest + " Sending 10 messages 1-10");
- for (int i = 1; i < 11; i++) {
- TextMessage message = session.createTextMessage();
- message.setText("Queue Message " + dest + " nr " + i);
- sender.send(queue, message);
- }
-
- sender.close();
- }
-
- /**
- * Test sending messages to Queue testQueue
- */
- public void testTopic() throws Exception {
- printHeader();
- TopicSession session = getTopicSession();
- Topic topic = (Topic)context.lookup(dest);
- TopicPublisher pub = session.createPublisher(topic);
-
- System.out.println("TestTopic: " + dest +
- ": Sending 10st messages 1-10");
-
- for (int i = 1; i < 11; i++) {
- TextMessage message = session.createTextMessage();
- message.setText("Topic Message " + dest + " nr " + i);
- pub.publish(topic, message);
- }
-
- pub.close();
- }
-
- /**
- * Test sending messages to queue testObjectMessage
- */
- public void testObjectMessage() throws Exception {
- printHeader();
- QueueSession session = getQueueSession();
- // Non portable!!
- Queue queue = (Queue)context.lookup("queue/testObjectMessage");
- QueueSender sender = session.createSender(queue);
-
- System.out.println("TestQueue: Sending 10 messages 1-10");
- for (int i = 1; i < 11; i++) {
- ObjectMessage message = session.createObjectMessage();
- message.setObject(new CustomMessage(i));
- sender.send(queue, message);
- }
-
- sender.close();
- session.close();
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite();
-
- try {
- System.out.println("Deploying...");
- Deploy.deploy("../deploy/mdb.jar");
-
- suite.addTest(new Main("testObjectMessage",""));
- suite.addTest(new Main("testQueue","queue/testQueue"));
- suite.addTest(new Main("testTopic","topic/testTopic"));
- suite.addTest(new Main("testTopic","topic/testDurableTopic"));
- suite.addTest(new Main("testQueue","queue/ex"));
-
- // add a test case to undeploy our support applications
- suite.addTest(new Deploy.Undeployer("../deploy/mdb.jar"));
- }
- catch (Throwable t) {
- t.printStackTrace();
- System.exit(0);
- }
-
- return suite;
- }
+ // Static --------------------------------------------------------
+ static boolean deployed = false;
+
+ // Provider specific
+ static String TOPIC_FACTORY = "ConnectionFactory";
+ static String QUEUE_FACTORY = "ConnectionFactory";
+
+ QueueConnection queueConnection;
+ TopicConnection topicConnection;
+
+ // JMSProviderAdapter providerAdapter;
+ Context context;
+
+ String dest;
+ Message deadMsg;
+
+ public Main(String name, String dest) throws Exception
+ {
+ super(name);
+ this.dest = dest;
+ // Get JMS JNDI Adapter
+ // Class cls = Class.forName(providerAdapterClass);
+ // providerAdapter = (JMSProviderAdapter)cls.newInstance();
+ context = new InitialContext();
+ // This is not completly clean since it still have to use
+ // provider specific queue and topic names!!
+ }
+
+ protected void setUp() throws Exception
+ {
+ // test methods call getXXXSession() to create session & connection
+ }
+
+ protected void tearDown() throws Exception
+ {
+ if (topicConnection != null)
+ {
+ topicConnection.close();
+ }
+ if (queueConnection != null)
+ {
+ queueConnection.close();
+ }
+ }
+
+ protected void printHeader()
+ {
+ System.out.println("\n---- Testing method " + name() +
+ " for destination " +dest);
+ }
+
+ private QueueSession getQueueSession() throws Exception
+ {
+ if (queueConnection == null)
+ {
+ QueueConnectionFactory queueFactory =
+ (QueueConnectionFactory)context.lookup(QUEUE_FACTORY);
+
+ queueConnection = queueFactory.createQueueConnection();
+ }
+ return queueConnection.createQueueSession(false,
+ Session.AUTO_ACKNOWLEDGE);
+ }
+
+ private TopicSession getTopicSession() throws Exception
+ {
+ if (topicConnection == null)
+ {
+ TopicConnectionFactory topicFactory =
+ (TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
+ topicConnection = topicFactory.createTopicConnection();
+ }
+
+ // No transaction & auto ack
+ return topicConnection.createTopicSession(false,
+ Session.AUTO_ACKNOWLEDGE);
+ }
+
+ /**
+ * Test sending messages to Topic testTopic
+ */
+ public void testQueue() throws Exception
+ {
+ printHeader();
+ QueueSession session = getQueueSession();
+ Queue queue = (Queue)context.lookup(dest);
+ QueueSender sender = session.createSender(queue);
+
+ System.out.println("TestQueue: " + dest + " Sending 10 messages 1-10");
+ for (int i = 1; i < 11; i++)
+ {
+ TextMessage message = session.createTextMessage();
+ message.setText("Queue Message " + dest + " nr " + i);
+ sender.send(queue, message);
+ }
+ sender.close();
+ }
+
+ /**
+ * Test sending messages to Queue testQueue
+ */
+ public void testTopic() throws Exception
+ {
+ printHeader();
+ TopicSession session = getTopicSession();
+ Topic topic = (Topic)context.lookup(dest);
+ TopicPublisher pub = session.createPublisher(topic);
+
+ System.out.println("TestTopic: " + dest +
+ ": Sending 10st messages 1-10");
+
+ for (int i = 1; i < 11; i++)
+ {
+ TextMessage message = session.createTextMessage();
+ message.setText("Topic Message " + dest + " nr " + i);
+ pub.publish(topic, message);
+ }
+
+ pub.close();
+ }
+
+ /**
+ * Test sending messages to queue testObjectMessage
+ */
+ public void testObjectMessage() throws Exception
+ {
+ printHeader();
+ QueueSession session = getQueueSession();
+ // Non portable!!
+ Queue queue = (Queue)context.lookup("queue/testObjectMessage");
+ QueueSender sender = session.createSender(queue);
+
+ System.out.println("TestQueue: Sending 10 messages 1-10");
+ for (int i = 1; i < 11; i++)
+ {
+ ObjectMessage message = session.createObjectMessage();
+ message.setObject(new CustomMessage(i));
+ sender.send(queue, message);
+ }
+
+ sender.close();
+ session.close();
+ }
+
+ public void testDLQ() throws Exception
+ {
+ printHeader();
+ QueueSession session = getQueueSession();
+ System.out.println("testDLQ, queue/DLQ Setup dead message listener");
+ Queue dlq = (Queue) context.lookup("queue/DLQ");
+ QueueReceiver recv = session.createReceiver(dlq);
+ recv.setMessageListener(new MessageListener()
+ {
+ public void onMessage(Message msg)
+ {
+ System.out.println("Received dead message: "+msg);
+ deadMsg = msg;
+ }
+ }
+ );
+ queueConnection.start();
+
+ Queue queue = (Queue) context.lookup(dest);
+ QueueSender sender = session.createSender(queue);
+ System.out.println("testDLQ, " + dest + " Sending 1 message");
+ TextMessage message = session.createTextMessage();
+ message.setText("Queue Message " + dest + " nr 1");
+ sender.send(queue, message);
+
+ if( deadMsg == null )
+ {
+ synchronized(this)
+ {
+ this.wait(5000);
+ }
+ }
+ assert("deadMsg != null", deadMsg != null );
+ System.out.println("testDLQ, received dead message: "+deadMsg);
+
+ sender.close();
+ recv.close();
+ session.close();
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite();
+ try
+ {
+ System.out.println("Deploying...");
+ Deploy.deploy("../deploy/mdb.jar");
+
+ suite.addTest(new Main("testObjectMessage",""));
+ suite.addTest(new Main("testQueue","queue/testQueue"));
+ suite.addTest(new Main("testTopic","topic/testTopic"));
+ suite.addTest(new Main("testTopic","topic/testDurableTopic"));
+ suite.addTest(new Main("testQueue","queue/ex"));
+ suite.addTest(new Main("testDLQ","queue/A"));
+
+ // add a test case to undeploy our support applications
+ suite.addTest(new Deploy.Undeployer("../deploy/mdb.jar"));
+ }
+ catch (Throwable t)
+ {
+ t.printStackTrace();
+ System.exit(0);
+ }
+
+ return suite;
+ }
+
+ public static void main(java.lang.String[] args)
+ {
+ BasicConfigurator.configure();
+ Category mq = Category.getInstance("org.jboss.mq");
+ mq.setPriority(TracePriority.TRACE);
+ Test suite = Main.suite();
+ junit.textui.TestRunner.run(suite);
+ }
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development