User: peter   
  Date: 01/03/01 19:11:28

  Added:       src/main/org/jboss/test/cts/jms ContainerMBox.java
                        MsgSender.java
  Log:
  Added tests for section 9.3.2 covering container
  class implementation obligations.
  
  Revision  Changes    Path
  1.1                  jbosstest/src/main/org/jboss/test/cts/jms/ContainerMBox.java
  
  Index: ContainerMBox.java
  ===================================================================
  package org.jboss.test.cts.jms;
  
  import java.io.*;
  import java.util.*;
  import java.util.Date;
  import javax.naming.*;
  import javax.jms.*;
  
  public class ContainerMBox
    implements MessageListener
  {
    public final static String JMS_FACTORY="QueueConnectionFactory";
    public final static String QUEUE="queue/testQueue";
  
    private QueueConnectionFactory qconFactory;
    private QueueConnection qcon;
    private QueueSession qsession;
    private QueueReceiver qreceiver;
    private TextMessage msg;
    private Queue queue;
  
    public static final String EJB_CREATE_MSG = "EJB_CREATE_MSG";
    public static final String EJB_POST_CREATE_MSG = "EJB_POST_CREATE_MSG";
    public static final String EJB_ACTIVATE_MSG = "EJB_ACTIVATE_MSG";
    public static final String EJB_PASSIVATE_MSG = "EJB_PASSIVATE_MSG";
    public static final String EJB_REMOVE_MSG = "EJB_REMOVE_MSG";
    public static final String EJB_LOAD_MSG = "EJB_LOAD_MSG";
    public static final String EJB_STORE_MSG = "EJB_STORE_MSG";
    public static final String SET_ENTITY_CONTEXT_MSG = "SET_ENTITY_CONTEXT_MSG";
    public static final String UNSET_ENTITY_CONTEXT_MSG = "UNSET_ENTITY_CONTEXT_MSG";
  
    private HashMap messageList = new HashMap( );
  
    public ContainerMBox ( )
    {
      try
      {
        init( new InitialContext(), QUEUE );
      }
      catch(Exception ex)
      {
        ex.printStackTrace();
      }
    }
  
    // MessageListener interface
    public void onMessage(Message msg)
    {
      try 
      {
        String msgText;
        if (msg instanceof TextMessage) 
        {
          msgText = ((TextMessage)msg).getText();
        } 
        else 
        {
          msgText = msg.toString();
        }
  
        System.out.println("[BEAN MESSAGE]: "+ msgText );
        messageList.put(msgText, "msg" );
      } 
      catch (JMSException jmse) 
      {
        jmse.printStackTrace();
      }
    }
  
    /**
     * Create all the necessary objects for receiving
     * messages from a JMS queue.
     */
    public void init(Context ctx, String queueName)
         throws NamingException, JMSException
    {
      qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
      qcon = qconFactory.createQueueConnection();
      qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      try 
      {
        queue = (Queue) ctx.lookup(queueName);
      } 
      catch (NamingException ne) 
      {
        queue = qsession.createQueue(queueName);
        ctx.bind(queueName, queue);
      }
      qreceiver = qsession.createReceiver(queue);
      qreceiver.setMessageListener(this);
      qcon.start();
    }
  
    /**
     * Close JMS objects.
     */
    public void close()
         throws JMSException
    {
      qreceiver.close();
      qsession.close();
      qcon.close();
    }
  
    public boolean messageReceived( String message )
    {
        return messageList.containsKey(message);
    }
  
    public void clearMessages( )
    {
        messageList = null;
        messageList = new HashMap();
    }
    
    private static InitialContext getInitialContext(String url)
         throws NamingException
    {
        //Hashtable env = new Hashtable();
        //env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
        //env.put(Context.PROVIDER_URL, url);
        //return new InitialContext(env);
        return new InitialContext();
    }
  
  }
  
  
  
  
  
  
  
  
  
  1.1                  jbosstest/src/main/org/jboss/test/cts/jms/MsgSender.java
  
  Index: MsgSender.java
  ===================================================================
  package org.jboss.test.cts.jms;
  
  import java.io.*;
  import java.util.*;
  import java.util.Date;
  import javax.naming.*;
  import javax.jms.*;
  
  public class MsgSender
  {
    public final static String JMS_FACTORY="QueueConnectionFactory";
    public final static String QUEUE="queue/testQueue";
  
    private QueueConnectionFactory qconFactory;
    private QueueConnection qcon;
    private QueueSession qsession;
    private QueueSender qsender;
    private TextMessage msg;
    private Queue queue;
  
    public MsgSender ( )
    {
      try
      {
        init( new InitialContext(), QUEUE);
      }
      catch(Exception ex)
      {
          ex.printStackTrace();
      }
    }
  
    /**
     * Create all the necessary objects for receiving
     * messages from a JMS queue.
     */
    public void init(Context ctx, String queueName)
         throws NamingException, JMSException
    {
      qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
      qcon = qconFactory.createQueueConnection();
      qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      try 
      {
        queue = (Queue) ctx.lookup(queueName);
      } 
      catch (NamingException ne) 
      {
        queue = qsession.createQueue(queueName);
        ctx.bind(queueName, queue);
      }
      qcon.start();
    }
  
    /**
     * Close JMS objects.
     */
    public void close()
         throws JMSException
    {
      qsender.close();
      qsession.close();
      qcon.close();
    }
  
    public void sendMsg( String message )
    {
      try
      {
        System.out.println("Sending a message.." );
        qsender = qsession.createSender(queue);
        msg = qsession.createTextMessage();
        msg.setText(message);
        qsender.send(msg);
      }
      catch(Exception ex)
      {
        ex.printStackTrace( );
      }
    }
  
    private static InitialContext getInitialContext(String url)
         throws NamingException
    {
        //Hashtable env = new Hashtable();
        //env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
        //env.put(Context.PROVIDER_URL, url);
        //return new InitialContext(env);
        return new InitialContext();
    }
  
  }
  
  
  
  
  
  
  
  
  

Reply via email to