1
2
3
4
5
6
7
8
9
10 package org.mule.test.integration.providers.jms.functional;
11
12 import org.mule.tck.FunctionalTestCase;
13
14 import javax.jms.Connection;
15 import javax.jms.ConnectionFactory;
16 import javax.jms.Message;
17 import javax.jms.MessageConsumer;
18 import javax.jms.MessageProducer;
19 import javax.jms.Session;
20 import javax.jms.TextMessage;
21
22 import org.apache.activemq.ActiveMQConnectionFactory;
23 import org.apache.activemq.command.ActiveMQQueue;
24
25 public class JmsSingleTransactionRecieveAndSendTestCase extends FunctionalTestCase
26 {
27
28 private Connection connection = null;
29 private Session session = null;
30
31 protected String getConfigResources()
32 {
33 return "providers/activemq/jms-single-tx-recieve-send-in-one-tx.xml";
34 }
35
36 public void testSingleTransactionBeginOrJoinAndAlwaysBegin() throws Exception
37 {
38 try
39 {
40 ConnectionFactory factory = new ActiveMQConnectionFactory(AbstractJmsFunctionalTestCase.DEFAULT_BROKER_URL);
41 connection = factory.createConnection();
42 connection.start();
43
44 try
45 {
46 session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
47 ActiveMQQueue destination = new ActiveMQQueue(AbstractJmsFunctionalTestCase.DEFAULT_INPUT_MQ_QUEUE_NAME);
48 MessageProducer producer = null;
49 try
50 {
51 producer = session.createProducer(destination);
52 producer.send(session.createTextMessage(AbstractJmsFunctionalTestCase.DEFAULT_INPUT_MESSAGE));
53 session.commit();
54 }
55 finally
56 {
57 if (producer != null)
58 {
59 producer.close();
60 }
61 }
62
63 destination = new ActiveMQQueue(AbstractJmsFunctionalTestCase.DEFAULT_OUTPUT_MQ_QUEUE_NAME);
64 MessageConsumer consumer = null;
65 try
66 {
67 consumer = session.createConsumer(destination);
68 Message message = consumer.receive(AbstractJmsFunctionalTestCase.TIMEOUT);
69 assertNotNull(message);
70 assertTrue(TextMessage.class.isAssignableFrom(message.getClass()));
71 assertEquals(((TextMessage) message).getText(), AbstractJmsFunctionalTestCase.DEFAULT_OUTPUT_MESSAGE);
72 session.commit();
73
74 }
75 finally
76 {
77 if (consumer != null)
78 {
79 consumer.close();
80 }
81 }
82 }
83 finally
84 {
85 if (session != null)
86 {
87 session.close();
88 }
89 }
90 }
91 finally
92 {
93 if (connection != null)
94 {
95 connection.close();
96 }
97 }
98
99 }
100
101
102 }