1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.jms.integration;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.module.client.MuleClient;
15
16 import org.junit.Test;
17
18
19
20
21 public class JmsMuleSideDurableTopicXATxTestCase extends AbstractJmsFunctionalTestCase
22 {
23 public static final String CONNECTOR1_NAME = "jmsConnectorC1";
24
25 protected String getConfigResources()
26 {
27 return "integration/jms-muleside-durable-topic-xa-tx.xml";
28 }
29
30 @Test
31 public void testMuleXaTopic() throws Exception
32 {
33
34
35 Thread.sleep(5000);
36
37 MuleMessage result;
38 MuleClient client = new MuleClient(muleContext);
39 client.dispatch("vm://in", DEFAULT_INPUT_MESSAGE, null);
40 result = client.request("vm://out", getTimeout());
41 assertNotNull(result);
42 result = client.request("vm://out", getTimeout());
43 assertNotNull(result);
44 result = client.request("vm://out", getTimeout());
45 assertNull(result);
46
47 muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).stop();
48 assertEquals(muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).isStarted(), false);
49 logger.info(CONNECTOR1_NAME + " is stopped");
50 client.dispatch("vm://in", DEFAULT_INPUT_MESSAGE, null);
51 Thread.sleep(1000);
52 muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).start();
53 Thread.sleep(1000);
54 logger.info(CONNECTOR1_NAME + " is started");
55 result = client.request("vm://out", getTimeout());
56 assertNotNull(result);
57 logger.info("Received " + result.getPayload());
58 result = client.request("vm://out", getTimeout());
59 assertNotNull(result);
60 logger.info("!Received " + result.getPayload());
61 result = client.request("vm://out", getSmallTimeout());
62 assertNull(result);
63 }
64 }