User: chirino
Date: 01/06/24 18:25:54
Added: src/main/org/jboss/test/jbossmq/test Main.java
Log:
Relabled the spydermq stuff to jbossmq.
Revision Changes Path
1.1 jbosstest/src/main/org/jboss/test/jbossmq/test/Main.java
Index: Main.java
===================================================================
/*
* Copyright (c) 2000 Hiram Chirino <[EMAIL PROTECTED]>
*
* This library is free software; you can redistribute it and/or
* 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
*/
package org.jboss.test.jbossmq.test;
import javax.naming.*;
import javax.jms.*;
import java.util.*;
/**
* Main.java
*
* Some simple tests of spyderMQ
*
* @author
* @version
*/
public class Main extends junit.framework.TestCase {
// Provider specific
static String TOPIC_FACTORY = "TopicConnectionFactory";
static String QUEUE_FACTORY = "QueueConnectionFactory";
static String TEST_QUEUE = "queue/testQueue";
static String TEST_TOPIC = "topic/testTopic";
//JMSProviderAdapter providerAdapter;
static Context context;
static QueueConnection queueConnection;
static TopicConnection topicConnection;
public Main(String name) throws Exception{
super(name);
}
// Emptys out all the messages in a queue
private void drainQueue() throws Exception {
QueueSession session = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue)context.lookup(TEST_QUEUE);
QueueReceiver receiver = session.createReceiver(queue);
Message message = receiver.receive( 2000 );
int c=0;
while( message != null ) {
message = receiver.receive( 2000 );
c++;
}
if( c!=0 )
System.out.println(" Drained "+c+" messages from the queue");
session.close();
}
static public void main ( String []args ) {
String newArgs[] = { "org.jboss.test.spydermq.test.Main" };
junit.swingui.TestRunner.main(newArgs);
}
protected void connect() throws Exception {
if( context == null ) {
context = new InitialContext();
}
QueueConnectionFactory queueFactory = (QueueConnectionFactory)
context.lookup(QUEUE_FACTORY);
queueConnection = queueFactory.createQueueConnection();
TopicConnectionFactory topicFactory =
(TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
topicConnection = topicFactory.createTopicConnection();
System.out.println("Connection to spyderMQ established.");
}
protected void disconnect() throws Exception {
queueConnection.close();
topicConnection.close();
}
/**
* Test that messages are ordered by message arrival and priority.
* This also tests :
* Using a non-transacted AUTO_ACKNOWLEDGE session
* Using a QueueReceiver
* Using a QueueSender
* Sending PERSITENT and NON_PERSISTENT text messages.
* Using a QueueBrowser
*/
public void testQueueMessageOrder() throws Exception {
System.out.println("Starting QueueMessageOrder test");
connect();
queueConnection.start();
drainQueue();
QueueSession session = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue)context.lookup(TEST_QUEUE);
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);
//message.setText("Expiring Persistent message");
//sender.send(queue, message, DeliveryMode.NON_PERSISTENT, 4, 1);
QueueBrowser browser = session.createBrowser( queue );
Enumeration enum = browser.getEnumeration();
//message = (TextMessage)enum.nextElement();
//if( !message.getText().equals("High Priority Persistent message") )
// throw new Exception("Queue is not prioritizing messages
correctly. Unexpected Message:"+message);
System.out.println(message.getText());
message = (TextMessage)enum.nextElement();
//if( !message.getText().equals("Normal message") )
// throw new Exception("Queue is not ordering messages correctly.
Unexpected Message:"+message);
System.out.println(message.getText());
message = (TextMessage)enum.nextElement();
//if( !message.getText().equals("Persistent message") )
// throw new Exception("Queue is not ordering messages correctly.
Unexpected Message:"+message);
System.out.println(message.getText());
// if( enum.hasMoreElements() )
// throw new Exception("Queue does not expire messages correctly.
Unexpected Message:"+enum.nextElement());
disconnect();
System.out.println("QueueMessageOrder passed");
}
/**
* Test that a using QueueRequestor works.
* this also tests that :
* temporary queues work.
*/
public void testRequestReplyQueue() throws Exception {
System.out.println("Starting RequestReplyQueue test");
connect();
{
queueConnection.start();
drainQueue( );
}
Thread serverThread = new Thread() {
public void run() {
try {
System.out.println("Server Thread Started");
QueueSession session =
queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue =
(Queue)context.lookup(TEST_QUEUE);
QueueReceiver queueReceiver =
session.createReceiver(queue);
boolean done = false;
while ( !done ) {
TextMessage message = (TextMessage)
queueReceiver.receive();
Queue tempQueue = (Queue)
message.getJMSReplyTo();
QueueSender replySender =
session.createSender(tempQueue);
TextMessage reply =
session.createTextMessage();
reply.setText("Request Processed");
reply.setJMSCorrelationID(message.getJMSMessageID());
replySender.send(reply);
if( message.getText().equals("Quit") )
done = true;
}
session.close();
System.out.println("Server Thread Finished");
} catch ( Exception e ) {
e.printStackTrace();
}
}
};
serverThread.start();
QueueSession session = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue)context.lookup(TEST_QUEUE);
QueueRequestor queueRequestor = new QueueRequestor(session, queue);
TextMessage message = session.createTextMessage();
message.setText("Request Test");
for( int i=0; i < 5; i ++ ) {
System.out.println("Making client request #"+i);
TextMessage reply = (TextMessage)
queueRequestor.request(message);
String replyID = new String(reply.getJMSCorrelationID());
if (!replyID.equals(message.getJMSMessageID()))
throw new Exception("REQUEST: ERROR: Reply does not
match sent message");
}
System.out.println("Making client request to shut server down.");
message.setText("Quit");
queueRequestor.request(message);
serverThread.join();
disconnect();
System.out.println("RequestReplyQueue passed");
}
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development