View Javadoc

1   /*
2    * $Id: JmsMuleSideDurableTopicXATxTestCase.java 22431 2011-07-18 07:40:35Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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  import static org.junit.Assert.assertEquals;
19  import static org.junit.Assert.assertNotNull;
20  import static org.junit.Assert.assertNull;
21  
22  /**
23   * Testing durable topic with XA transactions
24   */
25  public class JmsMuleSideDurableTopicXATxTestCase extends AbstractJmsFunctionalTestCase
26  {
27  
28      public static final String CONNECTOR1_NAME = "jmsConnectorC1";
29  
30      @Override
31      protected String getConfigResources()
32      {
33          return "integration/jms-muleside-durable-topic-xa-tx.xml";
34      }
35  
36      @Test
37      public void testMuleXaTopic() throws Exception
38      {
39          // There is a need to guarantee that XaMessageTopicReceiver connected to
40          // topic
41          Thread.sleep(5000);
42  
43          MuleMessage result;
44          MuleClient client = new MuleClient(muleContext);
45          client.dispatch("vm://in", DEFAULT_INPUT_MESSAGE, null);
46          result = client.request("vm://out", getTimeout());
47          assertNotNull(result);
48          result = client.request("vm://out", getTimeout());
49          assertNotNull(result);
50          result = client.request("vm://out", getTimeout());
51          assertNull(result);
52  
53          muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).stop();
54          assertEquals(muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).isStarted(), false);
55          logger.info(CONNECTOR1_NAME + " is stopped");
56          client.dispatch("vm://in", DEFAULT_INPUT_MESSAGE, null);
57          Thread.sleep(1000);
58          muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).start();
59          Thread.sleep(1000);
60          logger.info(CONNECTOR1_NAME + " is started");
61          result = client.request("vm://out", getTimeout());
62          assertNotNull(result);
63          logger.info("Received " + result.getPayload());
64          result = client.request("vm://out", getTimeout());
65          assertNotNull(result);
66          logger.info("Received " + result.getPayload());
67          result = client.request("vm://out", getSmallTimeout());
68          assertNull(result);
69      }
70  }