User: dmaplesden
Date: 01/09/19 15:45:23
Modified: src/main/org/jboss/test/jbossmq/test
JBossMQUnitTestCase.java
Log:
added additional simple tests
Revision Changes Path
1.3 +221 -10
jbosstest/src/main/org/jboss/test/jbossmq/test/JBossMQUnitTestCase.java
Index: JBossMQUnitTestCase.java
===================================================================
RCS file:
/cvsroot/jboss/jbosstest/src/main/org/jboss/test/jbossmq/test/JBossMQUnitTestCase.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JBossMQUnitTestCase.java 2001/09/15 01:50:16 1.2
+++ JBossMQUnitTestCase.java 2001/09/19 22:45:23 1.3
@@ -15,14 +15,14 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-package org.jboss.test.jbossmq.test;
+package org.jboss.test.jbossmq.test;
import javax.naming.*;
import javax.jms.*;
import java.util.*;
-import org.apache.log4j.Category;
import org.jboss.test.JBossTestCase;
+import org.apache.log4j.Category;
/**
* JBossMQUnitTestCase.java
@@ -32,7 +32,7 @@
* @author
* @version
*/
-public class JBossMQUnitTestCase
+public class JBossMQUnitTestCase
extends JBossTestCase
{
// Provider specific
@@ -43,6 +43,7 @@
static String TEST_TOPIC = "topic/testTopic";
//JMSProviderAdapter providerAdapter;
+ static Context context;
static QueueConnection queueConnection;
static TopicConnection topicConnection;
@@ -55,7 +56,7 @@
private void drainQueue() throws Exception {
QueueSession session = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
- Queue queue = (Queue)getInitialContext().lookup(TEST_QUEUE);
+ Queue queue = (Queue)context.lookup(TEST_QUEUE);
QueueReceiver receiver = session.createReceiver(queue);
Message message = receiver.receive( 2000 );
@@ -82,10 +83,15 @@
protected void connect() throws Exception {
- QueueConnectionFactory queueFactory = (QueueConnectionFactory)
getInitialContext().lookup(QUEUE_FACTORY);
+ if( context == null ) {
+
+ context = new InitialContext();
+
+ }
+ QueueConnectionFactory queueFactory = (QueueConnectionFactory)
context.lookup(QUEUE_FACTORY);
queueConnection = queueFactory.createQueueConnection();
- TopicConnectionFactory topicFactory =
(TopicConnectionFactory)getInitialContext().lookup(TOPIC_FACTORY);
+ TopicConnectionFactory topicFactory =
(TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
topicConnection = topicFactory.createTopicConnection();
getLog().debug("Connection to spyderMQ established.");
@@ -117,7 +123,7 @@
drainQueue();
QueueSession session = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
- Queue queue = (Queue)getInitialContext().lookup(TEST_QUEUE);
+ Queue queue = (Queue)context.lookup(TEST_QUEUE);
QueueSender sender = session.createSender(queue);
TextMessage message = session.createTextMessage();
@@ -173,9 +179,10 @@
public void run() {
Category log = Category.getInstance(getClass().getName());
try {
+
log.debug("Server Thread Started");
QueueSession session = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
- Queue queue = (Queue)new InitialContext().lookup(TEST_QUEUE);
+ Queue queue = (Queue)context.lookup(TEST_QUEUE);
QueueReceiver queueReceiver = session.createReceiver(queue);
@@ -198,7 +205,7 @@
log.debug("Server Thread Finished");
} catch ( Exception e ) {
- log.error("Error", e);
+ log.error("Error",e);
}
}
};
@@ -206,7 +213,7 @@
serverThread.start();
QueueSession session = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
- Queue queue = (Queue)getInitialContext().lookup(TEST_QUEUE);
+ Queue queue = (Queue)context.lookup(TEST_QUEUE);
QueueRequestor queueRequestor = new QueueRequestor(session, queue);
TextMessage message = session.createTextMessage();
@@ -231,4 +238,208 @@
getLog().debug("RequestReplyQueue passed");
}
+
+ public void testMessageListener() throws Exception{
+ getLog().debug("Starting MessageListener test");
+
+ connect();
+ queueConnection.start();
+ drainQueue();
+
+ QueueSession session = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
+ Queue queue = (Queue)context.lookup(TEST_QUEUE);
+
+ QueueReceiver receiver = session.createReceiver(queue);
+ receiver.setMessageListener(new MessageListener(){
+ public void onMessage(Message msg){
+ Category log = Category.getInstance(getClass().getName());
+ log.debug("ML");
+ try{
+ if(msg instanceof TextMessage)
+ log.debug(((TextMessage)msg).getText());
+ }catch(Exception e){}
+ }
+ });
+
+ QueueSender sender = session.createSender(queue);
+
+ TextMessage message = session.createTextMessage();
+ message.setText("Normal message");
+ sender.send(queue, message, DeliveryMode.NON_PERSISTENT, 4, 0);
+ message.setText("Persistent message");
+ sender.send(queue, message, DeliveryMode.PERSISTENT, 4, 0);
+ message.setText("High Priority Persistent message");
+ sender.send(queue, message, DeliveryMode.PERSISTENT, 10, 0);
+
+ try{ Thread.sleep(5*1000); }catch(InterruptedException e){}
+
+ receiver.setMessageListener(new MessageListener(){
+ public void onMessage(Message msg){
+ Category log = Category.getInstance(getClass().getName());
+ log.debug("ML 2");
+ try{
+ if(msg instanceof TextMessage)
+ log.debug(((TextMessage)msg).getText());
+ }catch(Exception e){}
+ }
+ });
+
+ message.setText("Persistent message");
+ sender.send(queue, message, DeliveryMode.PERSISTENT, 4, 0);
+ message.setText("High Priority Persistent message");
+ sender.send(queue, message, DeliveryMode.PERSISTENT, 10, 0);
+ try{ Thread.sleep(5*1000); }catch(InterruptedException e){}
+
+ receiver.setMessageListener(null);
+
+ message.setText("Persistent message");
+ sender.send(queue, message, DeliveryMode.PERSISTENT, 4, 0);
+ message.setText("High Priority Persistent message");
+ sender.send(queue, message, DeliveryMode.PERSISTENT, 10, 0);
+
+ sender.close();
+ drainQueue();
+ disconnect();
+ getLog().debug("MessageListener test passed");
+ }
+
+ public void testApplicationServerStuff() throws Exception{
+ getLog().debug("Testing app server stuff");
+ connect();
+
+ Queue testQueue = (Queue)context.lookup(TEST_QUEUE);
+ final QueueSession session =
queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
+
+ session.setMessageListener(new MessageListener(){
+ public void onMessage(Message mess){
+ Category log = Category.getInstance(getClass().getName());
+ log.debug("Processing message");
+ try{
+ if(mess instanceof TextMessage)
+ log.debug(((TextMessage)mess).getText());
+ }catch(Exception e){
+ log.error("Error",e);
+ }
+ }
+ });
+
+ QueueSender sender = session.createSender(testQueue);
+ sender.send(session.createTextMessage("Hi"));
+ sender.send(session.createTextMessage("There"));
+ sender.send(session.createTextMessage("Guys"));
+ queueConnection.createConnectionConsumer(testQueue,null,new
ServerSessionPool(){
+ public ServerSession getServerSession(){
+ Category.getInstance(getClass().getName()).debug("Getting server
session.");
+ return new ServerSession(){
+ public Session getSession(){
+ return session;
+ }
+ public void start(){
+ Category.getInstance(getClass().getName()).debug("Starting server
session.");
+ session.run();
+ }
+ };
+ }
+ },10);
+
+ queueConnection.start();
+
+ try{ Thread.sleep(5*1000); }catch(Exception e){}
+
+ disconnect();
+ getLog().debug("Done testing app server stuff");
+ }
+
+ public void testPM() throws Exception{
+ //simply put a few messages on the test queue for next time.
+ connect();
+
+ Queue testQueue = (Queue)context.lookup(TEST_QUEUE);
+ QueueSession session =
queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
+ QueueSender sender = session.createSender(testQueue);
+ sender.send(session.createTextMessage("From last time"));
+ sender.send(session.createTextMessage("From last time"));
+ sender.send(session.createTextMessage("From last time"));
+ sender.close();
+ session.close();
+ disconnect();
+
+ }
+
+ private void drainMessagesForTopic(TopicSubscriber sub) throws JMSException{
+ Message msg = sub.receive(2000);
+ int c = 0;
+ while(msg != null){
+ c++;
+ if(msg instanceof TextMessage)
+ getLog().debug(((TextMessage)msg).getText());
+ msg = sub.receive(2000);
+ }
+ getLog().debug("Received "+c+" messages from topic.");
+ }
+
+ public void testTopics() throws Exception {
+ getLog().debug("Starting Topic test");
+
+ TopicConnectionFactory topicFactory =
(TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
+ topicConnection = topicFactory.createTopicConnection("john","needle");
+
+ topicConnection.start();
+
+ //set up some subscribers to the topic
+ TopicSession session = topicConnection.createTopicSession(false,
Session.AUTO_ACKNOWLEDGE);
+ Topic topic = (Topic)context.lookup(TEST_TOPIC);
+
+ TopicSubscriber sub1 = session.createDurableSubscriber(topic,"sub1");
+ TopicSubscriber sub2 = session.createSubscriber(topic);
+ TopicSubscriber sub3 = session.createSubscriber(topic);
+
+ //Now a sender
+ TopicPublisher sender = session.createPublisher(topic);
+
+ //send some messages
+ sender.publish(session.createTextMessage("Message 1"));
+ sender.publish(session.createTextMessage("Message 2"));
+ sender.publish(session.createTextMessage("Message 3"));
+ drainMessagesForTopic(sub1);
+ drainMessagesForTopic(sub2);
+ drainMessagesForTopic(sub3);
+
+ //close some subscribers
+ sub1.close();
+ sub2.close();
+
+ //send some more messages
+ sender.publish(session.createTextMessage("Message 4"));
+ sender.publish(session.createTextMessage("Message 5"));
+ sender.publish(session.createTextMessage("Message 6"));
+
+ //give time for message 4 to be negatively acked (as it will be cause last
receive timed out)
+ try{ Thread.sleep(5*1000); }catch(InterruptedException e){}
+
+ drainMessagesForTopic(sub3);
+
+ //open subscribers again.
+ sub1 = session.createDurableSubscriber(topic,"sub1");
+ sub2 = session.createSubscriber(topic);
+
+ //Send a final message
+ sender.publish(session.createTextMessage("Final message"));
+ sender.close();
+
+ drainMessagesForTopic(sub1);
+ drainMessagesForTopic(sub2);
+ drainMessagesForTopic(sub3);
+
+ sub1.close();
+ sub2.close();
+ sub3.close();
+
+ session.unsubscribe("sub1");
+
+ topicConnection.stop();
+ topicConnection.close();
+ getLog().debug("Topic test passed");
+ }
+
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development