Package org.activemq.jca

Source Code of org.activemq.jca.JCAContainerWithoutSpringTest

package org.activemq.jca;

import javax.jms.Connection;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;

import junit.framework.TestCase;

import org.activemq.ActiveMQConnectionFactory;
import org.activemq.ra.ActiveMQActivationSpec;
import org.activemq.ra.ActiveMQResourceAdapter;
import org.activemq.work.SpringWorkManager;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;

import EDU.oswego.cs.dl.util.concurrent.Slot;

public class JCAContainerWithoutSpringTest extends TestCase {
   
    public void testSendReceiveWithVMConnection() throws Exception {
       
        final Slot messageSlot = new Slot();
       
        final MessageListener bean = new MessageListener() {
            public void onMessage(Message message) {
                System.out.println(message);
                try {
                    messageSlot.offer(message, 1000);
                } catch (InterruptedException e) {
                }
            }           
        };

        JCAContainer jcac = new JCAContainer();
        jcac.setBeanFactory(new BeanFactory() {
            public Object getBean(String name) throws BeansException {
                return bean;
            }
            public Object getBean(String name, Class clazz) throws BeansException {
                return bean;
            }
            public boolean containsBean(String name) {
                return true;
            }
            public boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
                return true;
            }
            public String[] getAliases(String name) throws NoSuchBeanDefinitionException {
                return null;
            }
            public Class getType(String arg0) throws NoSuchBeanDefinitionException {
                return null;
            }
        });

        ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter();
        ra.setServerUrl("vm://localhost");
        ra.setBrokerXmlConfig("org/activemq/jca/broker-vmpersistence.xml");
        ra.setUseEmbeddedBroker(Boolean.TRUE);

        jcac.setResourceAdapter(ra);

        SpringWorkManager wm = new SpringWorkManager();
        wm.afterPropertiesSet();

        jcac.setWorkManager(wm);

        jcac.afterPropertiesSet();

        ActiveMQActivationSpec spec = new ActiveMQActivationSpec();
        spec.setDestinationType(Queue.class.getName());
        spec.setDestination("GauntletWorkQueue");
        spec.validate();

        JCAConnector connector = jcac.addConnector();
        connector.setActivationSpec(spec);
        connector.setRef("test");
        connector.setBeanFactory(jcac.getBeanFactory());
        connector.afterPropertiesSet();
       
        // Fire a test message into the broker.
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
        Connection connection = factory.createConnection();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue("GauntletWorkQueue");
        MessageProducer producer = session.createProducer(queue);
        producer.send(session.createTextMessage("test"));
        System.out.println("Message sent");
        connection.close();
       
        // Assert the message got there:
        assertNotNull(messageSlot.poll(1000*5));       
       
    }

}
TOP

Related Classes of org.activemq.jca.JCAContainerWithoutSpringTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.