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

Reply via email to