View Javadoc

1   /*
2    * $Id:JBossArjunaTransactionManagerFactory.java 8215 2007-09-05 16:56:51Z aperepel $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.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.module.jboss.transaction;
12  
13  import org.mule.RegistryContext;
14  import org.mule.api.transaction.TransactionManagerFactory;
15  
16  import com.arjuna.ats.arjuna.common.Environment;
17  import com.arjuna.ats.arjuna.common.arjPropertyManager;
18  
19  import java.util.HashMap;
20  import java.util.Iterator;
21  import java.util.Map;
22  
23  import javax.transaction.TransactionManager;
24  
25  public class JBossArjunaTransactionManagerFactory implements TransactionManagerFactory
26  {
27      private Map properties = new HashMap();
28  
29      //static
30      //{
31      //arjPropertyManager.propertyManager.setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler");
32      //arjPropertyManager.propertyManager.setProperty(LogFactory.LOGGER_PROPERTY, "jakarta");
33      //arjPropertyManager.propertyManager.setProperty(LogFactory.DEBUG_LEVEL, String.valueOf(DebugLevel.FULL_DEBUGGING));
34      //commonPropertyManager.propertyManager.setProperty(LogFactory.LOGGER_PROPERTY, "jakarta");
35      //commonPropertyManager.propertyManager.setProperty(LogFactory.DEBUG_LEVEL, String.valueOf(DebugLevel.FULL_DEBUGGING));
36      //}
37  
38      private TransactionManager tm;
39  
40      public JBossArjunaTransactionManagerFactory()
41      {
42          //arjPropertyManager.propertyManager.setProperty("com.arjuna.ats.arjuna.objectstore.objectStoreType", "ShadowNoFileLockStore");
43          //arjPropertyManager.propertyManager.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_JDBCStore().stringForm());
44  
45  
46      }
47  
48      public synchronized TransactionManager create() throws Exception
49      {
50          if (tm == null)
51          {
52              if (!properties.containsKey(Environment.OBJECTSTORE_DIR))
53              {
54                  final String muleInternalDir = RegistryContext.getConfiguration().getWorkingDirectory();
55                  arjPropertyManager.propertyManager.setProperty(Environment.OBJECTSTORE_DIR, muleInternalDir + "/transaction-log");
56              }
57  
58              for (Iterator i = properties.entrySet().iterator(); i.hasNext();)
59              {
60                  Map.Entry entry = (Map.Entry) i.next();
61                  arjPropertyManager.propertyManager.setProperty((String) entry.getKey(), (String) entry.getValue());
62              }
63              tm = com.arjuna.ats.jta.TransactionManager.transactionManager();
64  
65          }
66          return tm;
67      }
68  
69      public Map getProperties()
70      {
71          return properties;
72      }
73  
74      public void setProperties(Map properties)
75      {
76          this.properties = properties;
77      }
78  }