View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.test.integration.transport.jdbc;
8   
9   import org.mule.api.transaction.TransactionFactory;
10  import org.mule.module.jboss.transaction.JBossArjunaTransactionManagerFactory;
11  import org.mule.transaction.XaTransactionFactory;
12  import org.mule.transport.jdbc.xa.DataSourceWrapper;
13  
14  import javax.sql.DataSource;
15  import javax.transaction.TransactionManager;
16  
17  import org.enhydra.jdbc.standard.StandardXADataSource;
18  
19  
20  public class JdbcTransactionalXaFunctionalTestCase extends AbstractJdbcTransactionalFunctionalTestCase
21  {
22      private TransactionManager txManager;
23  
24      @Override
25      protected void doSetUp() throws Exception
26      {
27          txManager = new JBossArjunaTransactionManagerFactory().create(muleContext.getConfiguration());
28          super.doSetUp();
29          muleContext.setTransactionManager(txManager);
30      }
31  
32      @Override
33      protected TransactionFactory getTransactionFactory()
34      {
35          return new XaTransactionFactory();
36      }
37  
38      @Override
39      protected DataSource createDataSource() throws Exception
40      {
41          StandardXADataSource ds = new StandardXADataSource();
42          ds.setDriverName(EMBEDDED_DRIVER_NAME);
43          ds.setUrl(EMBEDDED_CONNECTION_STRING);
44          ds.setTransactionManager(txManager);
45          return new DataSourceWrapper(ds);
46      }
47  }