[jboss-svn-commits] JBL Code SVN: r28595 - in labs/jbosstm/trunk: ArjunaCore/txoj and 25 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 30 06:35:53 EDT 2009


Author: jhalliday
Date: 2009-07-30 06:35:51 -0400 (Thu, 30 Jul 2009)
New Revision: 28595

Added:
   labs/jbosstm/trunk/ArjunaCore/txoj/tests/classes/com/hp/mwtests/ts/txoj/basic/BeanPopulatorTest.java
   labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/JDBCEnvironmentBean.java
   labs/jbosstm/trunk/ArjunaJTA/jdbc/tests/classes/com/hp/mwtests/ts/jdbc/basic/BeanPopulatorTest.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java
   labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/BeanPopulatorTest.java
Modified:
   labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/common/BeanPopulatorTest.java
   labs/jbosstm/trunk/ArjunaCore/txoj/build.xml
   labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java
   labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java
   labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java
   labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/lockstore/LockStore.java
   labs/jbosstm/trunk/ArjunaJTA/jdbc/build.xml
   labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/ConnectionImple.java
   labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java
   labs/jbosstm/trunk/ArjunaJTA/jta/build.xml
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/LastResourceRecord.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/client/ImplicitClient.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAAbort.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAOrder.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATest.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/NullResource.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/Performance.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/hammer/JTAHammer.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/lastresource/LastResourceAllowedTestCase.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java
   labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/twophase/SimpleTest.java
Log:
Convert config property handling in ArjunaCore and ArjunaJTA from property manager to the new bean style. JBTM-596


Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/common/BeanPopulatorTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/common/BeanPopulatorTest.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/common/BeanPopulatorTest.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -40,8 +40,8 @@
     @Test
     public void testArjunaCorePropertiesPopulation() throws Exception {
 
-        // check that all the ArjunaCore Environment properties are looked for
-        // by the set of beans which wrap them and conversly that no undefined
+        // check that all the Environment properties are looked for
+        // by the set of beans which wrap them and conversely that no undefined
         // properties are looked for. i.e. that the Environment and Beans are in sync
 
         DummyPropertyManager testManager = new DummyPropertyManager(null);

Modified: labs/jbosstm/trunk/ArjunaCore/txoj/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/build.xml	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/build.xml	2009-07-30 10:35:51 UTC (rev 28595)
@@ -27,6 +27,7 @@
     <target name="init" depends="sharedbuild.init">
 
         <import-module.macro module="common"/>
+        <import-module.macro module="common_tests"/>
         <import-module.macro module="arjuna"/>
 
     </target>

Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -77,12 +77,8 @@
 				     FacilityCode.FAC_LOCK_STORE, "BasicPersistentLockStore.BasicPersistentLockStore("+key+")");
 	}
 
-	if (lockStoreLocation == null) {
-	    lockStoreLocation = txojPropertyManager.getPropertyManager().getProperty(Environment.LOCKSTORE_DIR);
-	    if (lockStoreLocation == null || lockStoreLocation.length() == 0)
-		lockStoreLocation = com.arjuna.ats.txoj.common.Configuration.lockStoreRoot();
+        lockStoreLocation = txojPropertyManager.getTxojEnvironmentBean().getLockStoreDir();
 	    com.arjuna.ats.txoj.common.Configuration.setLockStoreRoot(lockStoreLocation);
-	}
 
 	_key = lockStoreLocation;
 

Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -1379,13 +1379,7 @@
 
     static
     {
-	String nl = txojPropertyManager.getPropertyManager().getProperty(Environment.ALLOW_NESTED_LOCKING);
-
-	if (nl != null)
-	{
-	    if (nl.equals("NO"))
-		nestedLocking = false;
-	}
+        nestedLocking = txojPropertyManager.getTxojEnvironmentBean().isAllowNestedLocking();
     }
 
 }

Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -33,7 +33,10 @@
 
 import com.arjuna.common.util.propertyservice.PropertyManager;
 import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
+import com.arjuna.common.internal.util.propertyservice.BeanPopulator;
 
+import java.util.concurrent.atomic.AtomicBoolean;
+
 /**
  * Property manager wrapper for the TXOJ module.
  *
@@ -45,4 +48,22 @@
     {
         return PropertyManagerFactory.getPropertyManagerForModule("txoj", Environment.PROPERTIES_FILE);
     }
-}
+
+    private static final AtomicBoolean txojEnvironmentBeanInit = new AtomicBoolean(false);
+    private static final TxojEnvironmentBean txojEnvironmentBean = new TxojEnvironmentBean();
+
+    public static TxojEnvironmentBean getTxojEnvironmentBean()
+    {
+        synchronized (txojEnvironmentBeanInit) {
+            if(!txojEnvironmentBeanInit.get()) {
+                try {
+                    BeanPopulator.configureFromPropertyManager(txojEnvironmentBean, getPropertyManager());
+                } catch(Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+
+        return txojEnvironmentBean;
+    }
+}
\ No newline at end of file

Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/lockstore/LockStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/lockstore/LockStore.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/lockstore/LockStore.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -67,8 +67,7 @@
 
 	if (!singleCheck)
 	{
-	    singleLockStoreType = new ClassName(txojPropertyManager.getPropertyManager().getProperty(Environment.SINGLE_LOCKSTORE,
-									    TxOJNames.Implementation_LockStore_defaultStore().stringForm()));
+	    singleLockStoreType = new ClassName(txojPropertyManager.getTxojEnvironmentBean().getSingleLockStore());
 	    singleCheck = true;
 	}
 
@@ -86,8 +85,7 @@
 	{
 	    if (!singleCheck)
 	    {
-		singleLockStoreType = new ClassName(txojPropertyManager.getPropertyManager().getProperty(Environment.SINGLE_LOCKSTORE,
-										TxOJNames.Implementation_LockStore_defaultStore().stringForm()));
+		singleLockStoreType = new ClassName(txojPropertyManager.getTxojEnvironmentBean().getSingleLockStore());
 		singleCheck = true;
 	    }
 
@@ -126,7 +124,7 @@
 	    {
 		if (!singleCheck)
 		{
-		    type = txojPropertyManager.getPropertyManager().getProperty(Environment.SINGLE_LOCKSTORE);
+		    type = txojPropertyManager.getTxojEnvironmentBean().getSingleLockStore();
 		    singleCheck = true;
 
 		    if (type != null)
@@ -140,7 +138,7 @@
 	    {
 		if (!multipleCheck)
 		{
-		    type = txojPropertyManager.getPropertyManager().getProperty(Environment.MULTIPLE_LOCKSTORE, null);
+		    type = txojPropertyManager.getTxojEnvironmentBean().getMultipleLockStore();
 		    multipleCheck = true;
 
 		    if (type != null)

Added: labs/jbosstm/trunk/ArjunaCore/txoj/tests/classes/com/hp/mwtests/ts/txoj/basic/BeanPopulatorTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/tests/classes/com/hp/mwtests/ts/txoj/basic/BeanPopulatorTest.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/tests/classes/com/hp/mwtests/ts/txoj/basic/BeanPopulatorTest.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2009,
+ * @author JBoss, a division of Red Hat.
+ */
+package com.hp.mwtests.ts.txoj.basic;
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import com.arjuna.common.tests.simple.DummyPropertyManager;
+import com.arjuna.common.internal.util.propertyservice.BeanPopulator;
+import com.arjuna.ats.txoj.common.TxojEnvironmentBean;
+import com.arjuna.ats.txoj.common.Environment;
+
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * Check behaviour of the BeanPopulator util which copies old PropertyManager values into new EnvironmentBeans.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at redhat.com)
+ */
+public class BeanPopulatorTest
+{
+    @Test
+    public void testTxojPropertiesPopulation() throws Exception {
+
+        // check that all the Environment properties are looked for
+        // by the set of beans which wrap them and conversely that no undefined
+        // properties are looked for. i.e. that the Environment and Beans are in sync
+
+        DummyPropertyManager testManager = new DummyPropertyManager(null);
+
+        BeanPopulator.configureFromPropertyManager(new TxojEnvironmentBean(), testManager);
+
+        Set<String> expectedKeys = new HashSet<String>();
+        expectedKeys.addAll( DummyPropertyManager.extractKeys(Environment.class));
+
+        assertEquals(expectedKeys, testManager.usedKeys);
+    }
+}

Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/build.xml	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/build.xml	2009-07-30 10:35:51 UTC (rev 28595)
@@ -32,6 +32,7 @@
     <target name="init" depends="sharedbuild.init">
 
         <import-module.macro module="common"/>
+        <import-module.macro module="common_tests"/>
         <import-module.macro module="arjuna"/>
         <import-module.macro module="jta"/>
 

Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/ConnectionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/ConnectionImple.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/ConnectionImple.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -1058,31 +1058,6 @@
 
 	static
 	{
-		String isolationLevel = jdbcPropertyManager.getPropertyManager()
-				.getProperty(com.arjuna.ats.jdbc.common.Environment.ISOLATION_LEVEL);
-
-		if (isolationLevel != null)
-		{
-			if (isolationLevel.equals("TRANSACTION_READ_COMMITTED"))
-				_currentIsolationLevel = Connection.TRANSACTION_READ_COMMITTED;
-			else if (isolationLevel.equals("TRANSACTION_READ_UNCOMMITTED"))
-				_currentIsolationLevel = Connection.TRANSACTION_READ_UNCOMMITTED;
-			else if (isolationLevel.equals("TRANSACTION_REPEATABLE_READ"))
-				_currentIsolationLevel = Connection.TRANSACTION_REPEATABLE_READ;
-			else if (isolationLevel.equals("TRANSACTION_SERIALIZABLE"))
-				_currentIsolationLevel = Connection.TRANSACTION_SERIALIZABLE;
-			else
-			{
-				if (jdbcLogger.loggerI18N.isWarnEnabled())
-				{
-					jdbcLogger.loggerI18N.warn(
-							"com.arjuna.ats.internal.jdbc.isolationerror",
-							new Object[]
-							{ isolationLevel });
-				}
-
-				_currentIsolationLevel = Connection.TRANSACTION_SERIALIZABLE;
-			}
-		}
+        _currentIsolationLevel = jdbcPropertyManager.getJDBCEnvironmentBean().getIsolationLevel();
 	}
 }

Added: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/JDBCEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/JDBCEnvironmentBean.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/JDBCEnvironmentBean.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2009,
+ * @author JBoss, a division of Red Hat.
+ */
+package com.arjuna.ats.jdbc.common;
+
+import com.arjuna.common.internal.util.propertyservice.PropertyPrefix;
+import com.arjuna.common.internal.util.propertyservice.FullPropertyName;
+
+import java.sql.Connection;
+
+/**
+ * A JavaBean containing configuration properties for the JDBC subsystem.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at redhat.com)
+ */
+ at PropertyPrefix(prefix = "com.arjuna.ats.jdbc.")
+public class JDBCEnvironmentBean
+{
+    @FullPropertyName(name = "com.arjuna.ats.jdbc.common.propertiesFile")
+    private String propertiesFile = "";
+
+    private int isolationLevel = Connection.TRANSACTION_SERIALIZABLE;
+
+//    public static final String PROPERTIES_FILE = "com.arjuna.ats.jdbc.common.propertiesFile";
+    public String getPropertiesFile()
+    {
+        return propertiesFile;
+    }
+
+    public void setPropertiesFile(String propertiesFile)
+    {
+        this.propertiesFile = propertiesFile;
+    }
+
+//    public static final String ISOLATION_LEVEL = "com.arjuna.ats.jdbc.isolationLevel";
+    public int getIsolationLevel()
+    {
+        return isolationLevel;
+    }
+
+    public void setIsolationLevel(int isolationLevel)
+    {
+        if(! (isolationLevel == Connection.TRANSACTION_READ_COMMITTED ||
+                isolationLevel == Connection.TRANSACTION_READ_UNCOMMITTED ||
+                isolationLevel == Connection.TRANSACTION_REPEATABLE_READ ||
+                isolationLevel == Connection.TRANSACTION_SERIALIZABLE) ) {
+            throw new IllegalArgumentException("invalid isolation level "+isolationLevel);
+        }
+
+        this.isolationLevel = isolationLevel;
+    }
+}

Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -28,20 +28,41 @@
  *
  * $Id: jdbcPropertyManager.java 2342 2006-03-30 13:06:17Z  $
  */
-
 package com.arjuna.ats.jdbc.common;
 
 import com.arjuna.common.util.propertyservice.PropertyManager;
 import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
+import com.arjuna.common.internal.util.propertyservice.BeanPopulator;
 
+import java.util.concurrent.atomic.AtomicBoolean;
+
 /**
  * Property manager wrapper for the JDBC module.
  */
-
 public class jdbcPropertyManager
 {
     public static PropertyManager getPropertyManager()
     {
         return PropertyManagerFactory.getPropertyManagerForModule("jdbc", Environment.PROPERTIES_FILE);
     }
+
+    public static JDBCEnvironmentBean getJDBCEnvironmentBean()
+    {
+        synchronized (jdbcEnvironmentBeanInit) {
+            if(!jdbcEnvironmentBeanInit.get()) {
+                try {
+                    BeanPopulator.configureFromPropertyManager(jdbcEnvironmentBean,  getPropertyManager());
+                    jdbcEnvironmentBeanInit.set(true);
+                } catch(Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+
+        return jdbcEnvironmentBean;
+    }
+
+    private static final AtomicBoolean jdbcEnvironmentBeanInit = new AtomicBoolean(false);
+    private static final JDBCEnvironmentBean jdbcEnvironmentBean = new JDBCEnvironmentBean();
+
 }

Added: labs/jbosstm/trunk/ArjunaJTA/jdbc/tests/classes/com/hp/mwtests/ts/jdbc/basic/BeanPopulatorTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/tests/classes/com/hp/mwtests/ts/jdbc/basic/BeanPopulatorTest.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/tests/classes/com/hp/mwtests/ts/jdbc/basic/BeanPopulatorTest.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2009,
+ * @author JBoss, a division of Red Hat.
+ */
+package com.hp.mwtests.ts.jdbc.basic;
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import com.arjuna.common.tests.simple.DummyPropertyManager;
+import com.arjuna.common.internal.util.propertyservice.BeanPopulator;
+import com.arjuna.ats.jdbc.common.Environment;
+import com.arjuna.ats.jdbc.common.JDBCEnvironmentBean;
+
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * Check behaviour of the BeanPopulator util which copies old PropertyManager values into new EnvironmentBeans.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at redhat.com)
+ */
+public class BeanPopulatorTest
+{
+    @Test
+    public void testJDBCPropertiesPopulation() throws Exception {
+
+        // check that all the Environment properties are looked for
+        // by the set of beans which wrap them and conversely that no undefined
+        // properties are looked for. i.e. that the Environment and Beans are in sync
+
+        DummyPropertyManager testManager = new DummyPropertyManager(null);
+
+        BeanPopulator.configureFromPropertyManager(new JDBCEnvironmentBean(), testManager);
+
+        Set<String> expectedKeys = new HashSet<String>();
+        expectedKeys.addAll( DummyPropertyManager.extractKeys(Environment.class));
+
+        assertEquals(expectedKeys, testManager.usedKeys);
+    }
+}

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/build.xml	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/build.xml	2009-07-30 10:35:51 UTC (rev 28595)
@@ -29,6 +29,7 @@
     <target name="init" depends="sharedbuild.init">
 
         <import-module.macro module="common"/>
+        <import-module.macro module="common_tests"/>
         <import-module.macro module="arjuna"/>
 
     </target>

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -1364,24 +1364,7 @@
 
 	static
 	{
-		String env = jtaPropertyManager.getPropertyManager()
-				.getProperty(com.arjuna.ats.jta.common.Environment.XA_BACKOFF_PERIOD);
-
-		XARecoveryModule._backoffPeriod = XA_BACKOFF_PERIOD;
-
-		if (env != null)
-		{
-			try
-			{
-				Integer i = new Integer(env);
-
-				XARecoveryModule._backoffPeriod = i.intValue();
-			}
-			catch (Exception e)
-			{
-				throw new ExceptionInInitializerError(e);
-			}
-		}
+        _backoffPeriod = jtaPropertyManager.getJTAEnvironmentBean().getXaBackoffPeriod();        
 	}
 
 }

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -1376,12 +1376,8 @@
 
 	static
 	{
-		String optimization = jtaPropertyManager.getPropertyManager().getProperty(
-				Environment.JTA_TM_IMPLEMENTATION, "OFF");
+        _rollbackOptimization = jtaPropertyManager.getJTAEnvironmentBean().isXaRollbackOptimization();
 
-		if (optimization.equals("ON"))
-			_rollbackOptimization = true;
-
 		/*
 		 * WARNING: USE WITH EXTEREME CARE!!
 		 *
@@ -1394,12 +1390,7 @@
 		 * (or present) we may end up removing participants that have not been dealt
 		 * with. Hence USE WITH EXTREME CARE!!
 		 */
-
-		String assumedComplete = jtaPropertyManager.getPropertyManager().getProperty(
-				Environment.XA_ASSUME_RECOVERY_COMPLETE, "FALSE");
-
-		if (assumedComplete.equalsIgnoreCase("true"))
-			_assumedComplete = true;
+        _assumedComplete = jtaPropertyManager.getJTAEnvironmentBean().isXaAssumeRecoveryComplete();
 	}
 
 }

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -325,11 +325,7 @@
 
 	static
 	{
-		String subtran = jtaPropertyManager.getPropertyManager()
-				.getProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS);
-
-		if ((subtran != null) && (subtran.equals("YES")))
-			_supportSubtransactions = true;
+        _supportSubtransactions = jtaPropertyManager.getJTAEnvironmentBean().isSupportSubtransactions();
 	}
 
 }

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -1879,20 +1879,10 @@
 
 	static
 	{
-		final String xaTransactionTimeoutEnabled = jtaPropertyManager.getPropertyManager()
-				.getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED);
-		if (xaTransactionTimeoutEnabled != null)
-		{
-			XA_TRANSACTION_TIMEOUT_ENABLED = Boolean.valueOf(
-					xaTransactionTimeoutEnabled).booleanValue();
-		}
-		else
-		{
-			XA_TRANSACTION_TIMEOUT_ENABLED = true;
-		}
-		final String lastResourceOptimisationInterfaceName = jtaPropertyManager.getPropertyManager()
-				.getProperty(Environment.LAST_RESOURCE_OPTIMISATION_INTERFACE);
-		Class lastResourceOptimisationInterface = null;
+        XA_TRANSACTION_TIMEOUT_ENABLED = jtaPropertyManager.getJTAEnvironmentBean().isXaTransactionTimeoutEnabled();
+
+		final String lastResourceOptimisationInterfaceName = jtaPropertyManager.getJTAEnvironmentBean().getLastResourceOptimisationInterface();
+  		Class lastResourceOptimisationInterface = null;
 		if (lastResourceOptimisationInterfaceName != null)
 		{
 			try

Added: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -0,0 +1,224 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2009,
+ * @author JBoss, a division of Red Hat.
+ */
+package com.arjuna.ats.jta.common;
+
+import com.arjuna.common.internal.util.propertyservice.PropertyPrefix;
+import com.arjuna.common.internal.util.propertyservice.FullPropertyName;
+
+/**
+ * A JavaBean containing configuration properties for the JTA subsystem.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at redhat.com)
+ */
+ at PropertyPrefix(prefix = "com.arjuna.ats.jta.")
+public class JTAEnvironmentBean
+{
+    @FullPropertyName(name = "com.arjuna.ats.jta.common.propertiesFile")
+    private String propertiesFile = "";
+
+    private boolean supportSubtransactions = false;
+
+    private String jtaTMImplementation = "com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple";
+    private String jtaUTImplementation = "com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple";
+    private String jtaTSRImplementation = "com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple";
+
+    private int xaBackoffPeriod = 20000;
+    private String xaRecoveryNode; // key only
+    private boolean xaRollbackOptimization = false;
+    private boolean xaAssumeRecoveryComplete = false;
+
+    // com.arjuna.ats.jta.utils.
+    @FullPropertyName(name = "com.arjuna.ats.jta.utils.UTJNDIContext")
+    private String jtaUTJNDIContext = "java:/UserTransaction";
+    @FullPropertyName(name = "com.arjuna.ats.jta.utils.TMJNDIContext")
+    private String jtaTMJNDIContext =  "java:/TransactionManager";
+    @FullPropertyName(name = "com.arjuna.ats.jta.utils.TSRJNDIContext")
+    private String jtaTSRJNDIContext = "java:/TransactionSynchronizationRegistry";
+
+    private String xaErrorHandler; // key only
+    private boolean xaTransactionTimeoutEnabled = true;
+    private String lastResourceOptimisationInterface = null;
+
+//    public static final String PROPERTIES_FILE = "com.arjuna.ats.jta.common.propertiesFile";
+    public String getPropertiesFile()
+    {
+        return propertiesFile;
+    }
+
+    public void setPropertiesFile(String propertiesFile)
+    {
+        this.propertiesFile = propertiesFile;
+    }
+
+//    public static final String SUPPORT_SUBTRANSACTIONS = "com.arjuna.ats.jta.supportSubtransactions";
+    public boolean isSupportSubtransactions()
+    {
+        return supportSubtransactions;
+    }
+
+    public void setSupportSubtransactions(boolean supportSubtransactions)
+    {
+        this.supportSubtransactions = supportSubtransactions;
+    }
+
+//    public static final String JTA_TM_IMPLEMENTATION = "com.arjuna.ats.jta.jtaTMImplementation";
+    public String getJtaTMImplementation()
+    {
+        return jtaTMImplementation;
+    }
+
+    public void setJtaTMImplementation(String jtaTMImplementation)
+    {
+        this.jtaTMImplementation = jtaTMImplementation;
+    }
+
+//    public static final String JTA_UT_IMPLEMENTATION = "com.arjuna.ats.jta.jtaUTImplementation";
+    public String getJtaUTImplementation()
+    {
+        return jtaUTImplementation;
+    }
+
+    public void setJtaUTImplementation(String jtaUTImplementation)
+    {
+        this.jtaUTImplementation = jtaUTImplementation;
+    }
+
+//    public static final String JTA_TSR_IMPLEMENTATION = "com.arjuna.ats.jta.jtaTSRImplementation";
+    public String getJtaTSRImplementation()
+    {
+        return jtaTSRImplementation;
+    }
+
+    public void setJtaTSRImplementation(String jtaTSRImplementation)
+    {
+        this.jtaTSRImplementation = jtaTSRImplementation;
+    }
+
+//    public static final String XA_BACKOFF_PERIOD = "com.arjuna.ats.jta.xaBackoffPeriod";
+    public int getXaBackoffPeriod()
+    {
+        return xaBackoffPeriod;
+    }
+
+    public void setXaBackoffPeriod(int xaBackoffPeriod)
+    {
+        this.xaBackoffPeriod = xaBackoffPeriod;
+    }
+
+//    public static final String XA_RECOVERY_NODE = "com.arjuna.ats.jta.xaRecoveryNode";
+    public String getXaRecoveryNode()
+    {
+        return xaRecoveryNode;
+    }
+
+    public void setXaRecoveryNode(String xaRecoveryNode)
+    {
+        this.xaRecoveryNode = xaRecoveryNode;
+    }
+
+//    public static final String XA_ROLLBACK_OPTIMIZATION = "com.arjuna.ats.jta.xaRollbackOptimization";
+    public boolean isXaRollbackOptimization()
+    {
+        return xaRollbackOptimization;
+    }
+
+    public void setXaRollbackOptimization(boolean xaRollbackOptimization)
+    {
+        this.xaRollbackOptimization = xaRollbackOptimization;
+    }
+
+//    public static final String XA_ASSUME_RECOVERY_COMPLETE = "com.arjuna.ats.jta.xaAssumeRecoveryComplete";
+    public boolean isXaAssumeRecoveryComplete()
+    {
+        return xaAssumeRecoveryComplete;
+    }
+
+    public void setXaAssumeRecoveryComplete(boolean xaAssumeRecoveryComplete)
+    {
+        this.xaAssumeRecoveryComplete = xaAssumeRecoveryComplete;
+    }
+
+//    public static final String UT_JNDI_CONTEXT = "com.arjuna.ats.jta.utils.UTJNDIContext";
+    public String getJtaUTJNDIContext()
+    {
+        return jtaUTJNDIContext;
+    }
+
+    public void setJtaUTJNDIContext(String jtaUTJNDIContext)
+    {
+        this.jtaUTJNDIContext = jtaUTJNDIContext;
+    }
+
+//    public static final String TM_JNDI_CONTEXT = "com.arjuna.ats.jta.utils.TMJNDIContext";
+    public String getJtaTMJNDIContext()
+    {
+        return jtaTMJNDIContext;
+    }
+
+    public void setJtaTMJNDIContext(String jtaTMJNDIContext)
+    {
+        this.jtaTMJNDIContext = jtaTMJNDIContext;
+    }
+
+//    public static final String TSR_JNDI_CONTEXT = "com.arjuna.ats.jta.utils.TSRJNDIContext";
+    public String getJtaTSRJNDIContext()
+    {
+        return jtaTSRJNDIContext;
+    }
+
+    public void setJtaTSRJNDIContext(String jtaTSRJNDIContext)
+    {
+        this.jtaTSRJNDIContext = jtaTSRJNDIContext;
+    }
+
+//    public static final String XA_ERROR_HANDLER = "com.arjuna.ats.jta.xaErrorHandler";
+    public String getXaErrorHandler()
+    {
+        return xaErrorHandler;
+    }
+
+    public void setXaErrorHandler(String xaErrorHandler)
+    {
+        this.xaErrorHandler = xaErrorHandler;
+    }
+
+//    public static final String XA_TRANSACTION_TIMEOUT_ENABLED = "com.arjuna.ats.jta.xaTransactionTimeoutEnabled";
+    public boolean isXaTransactionTimeoutEnabled()
+    {
+        return xaTransactionTimeoutEnabled;
+    }
+
+    public void setXaTransactionTimeoutEnabled(boolean xaTransactionTimeoutEnabled)
+    {
+        this.xaTransactionTimeoutEnabled = xaTransactionTimeoutEnabled;
+    }
+
+//    public static final String LAST_RESOURCE_OPTIMISATION_INTERFACE = "com.arjuna.ats.jta.lastResourceOptimisationInterface";
+    public String getLastResourceOptimisationInterface()
+    {
+        return lastResourceOptimisationInterface;
+    }
+
+    public void setLastResourceOptimisationInterface(String lastResourceOptimisationInterface)
+    {
+        this.lastResourceOptimisationInterface = lastResourceOptimisationInterface;
+    }
+}

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -28,12 +28,14 @@
  *
  * $Id: jtaPropertyManager.java 2342 2006-03-30 13:06:17Z  $
  */
-
 package com.arjuna.ats.jta.common;
 
 import com.arjuna.common.util.propertyservice.PropertyManager;
 import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
+import com.arjuna.common.internal.util.propertyservice.BeanPopulator;
 
+import java.util.concurrent.atomic.AtomicBoolean;
+
 /**
  * Property manager wrapper for the JTA module.
  */
@@ -44,4 +46,24 @@
     {
         return PropertyManagerFactory.getPropertyManagerForModule("jta", Environment.PROPERTIES_FILE);
     }
+
+    public static JTAEnvironmentBean getJTAEnvironmentBean()
+    {
+        synchronized (jtaEnvironmentBeanInit) {
+            if(!jtaEnvironmentBeanInit.get()) {
+                try {
+                    BeanPopulator.configureFromPropertyManager(jtaEnvironmentBean,  getPropertyManager());
+                    jtaEnvironmentBeanInit.set(true);
+                } catch(Exception e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+
+        return jtaEnvironmentBean;
+    }
+
+    private static final AtomicBoolean jtaEnvironmentBeanInit = new AtomicBoolean(false);
+    private static final JTAEnvironmentBean jtaEnvironmentBean = new JTAEnvironmentBean();
+
 }

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -69,17 +69,17 @@
 
 	public static String getTransactionManagerImplementationClassname()
 	{
-		return jtaPropertyManager.getPropertyManager().getProperty(Environment.JTA_TM_IMPLEMENTATION, DEFAULT_TM_IMPLEMENTATION);
+		return jtaPropertyManager.getJTAEnvironmentBean().getJtaTMImplementation();
 	}
 
 	public static String getUserTransactionImplementationClassname()
 	{
-		return jtaPropertyManager.getPropertyManager().getProperty(Environment.JTA_UT_IMPLEMENTATION, DEFAULT_UT_IMPLEMENTATION);
+        return jtaPropertyManager.getJTAEnvironmentBean().getJtaUTImplementation();
 	}
 
 	public static String getTransactionSynchronizationRegistryImplementationClassname()
 	{
-		return jtaPropertyManager.getPropertyManager().getProperty(Environment.JTA_TSR_IMPLEMENTATION, DEFAULT_TSR_IMPLEMENTATION);
+        return jtaPropertyManager.getJTAEnvironmentBean().getJtaTSRImplementation();
 	}
 
 	/**
@@ -209,24 +209,16 @@
 
 	public final static String getTransactionManagerJNDIName()
 	{
-		return jtaPropertyManager.getPropertyManager().getProperty(Environment.TM_JNDI_CONTEXT, DEFAULT_TM_JNDI_CONTEXT);
+        return jtaPropertyManager.getJTAEnvironmentBean().getJtaTMJNDIContext();
 	}
 
 	public final static String getUserTransactionJNDIName()
 	{
-		return jtaPropertyManager.getPropertyManager().getProperty(Environment.UT_JNDI_CONTEXT, DEFAULT_UT_JNDI_CONTEXT);
+        return jtaPropertyManager.getJTAEnvironmentBean().getJtaUTJNDIContext();
 	}
 
 	private final static String getTransactionSynchronizationRegistryJNDIName()
 	{
-		return jtaPropertyManager.getPropertyManager().getProperty(Environment.TSR_JNDI_CONTEXT, DEFAULT_TSR_JNDI_CONTEXT);
+        return jtaPropertyManager.getJTAEnvironmentBean().getJtaTSRJNDIContext();
 	}
-
-	private static final String DEFAULT_TM_JNDI_CONTEXT = "java:/TransactionManager";
-	private static final String DEFAULT_UT_JNDI_CONTEXT = "java:/UserTransaction";
-	private static final String DEFAULT_TSR_JNDI_CONTEXT = "java:/TransactionSynchronizationRegistry";
-
-	private static final String DEFAULT_UT_IMPLEMENTATION = "com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple";
-	private static final String DEFAULT_TM_IMPLEMENTATION = "com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple";
-	private static final String DEFAULT_TSR_IMPLEMENTATION = "com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple";
 }

Added: labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/BeanPopulatorTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/BeanPopulatorTest.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/BeanPopulatorTest.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2009,
+ * @author JBoss, a division of Red Hat.
+ */
+package com.hp.mwtests.ts.jta.basic;
+
+import com.arjuna.common.internal.util.propertyservice.BeanPopulator;
+import com.arjuna.common.tests.simple.DummyPropertyManager;
+import com.arjuna.ats.jta.common.JTAEnvironmentBean;
+import com.arjuna.ats.jta.common.Environment;
+
+import java.util.Set;
+import java.util.HashSet;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+/**
+ * Check behaviour of the BeanPopulator util which copies old PropertyManager values into new EnvironmentBeans.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at redhat.com)
+ */
+public class BeanPopulatorTest
+{
+    @Test
+    public void testJTAPropertiesPopulation() throws Exception {
+
+        // check that all the Environment properties are looked for
+        // by the set of beans which wrap them and conversely that no undefined
+        // properties are looked for. i.e. that the Environment and Beans are in sync
+
+        DummyPropertyManager testManager = new DummyPropertyManager(null);
+
+        BeanPopulator.configureFromPropertyManager(new JTAEnvironmentBean(), testManager);
+
+        Set<String> expectedKeys = new HashSet<String>();
+        expectedKeys.addAll( DummyPropertyManager.extractKeys(Environment.class));
+
+        assertEquals(expectedKeys, testManager.usedKeys);
+    }
+}

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/LastResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/LastResourceRecord.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/LastResourceRecord.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -44,9 +44,7 @@
 import com.arjuna.ArjunaOTS.OTSAbstractRecord;
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.common.arjPropertyManager;
-import com.arjuna.ats.arjuna.common.Environment;
 import com.arjuna.ats.arjuna.coordinator.RecordType;
-import com.arjuna.ats.arjuna.logging.tsLogger;
 import com.arjuna.ats.internal.jta.transaction.jts.TransactionImple;
 import com.arjuna.ats.jta.logging.jtaLogger;
 
@@ -194,10 +192,7 @@
 
     static
     {
-        final String allowMultipleLastResources = arjPropertyManager
-                .getPropertyManager().getProperty(Environment.ALLOW_MULTIPLE_LAST_RESOURCES);
-        ALLOW_MULTIPLE_LAST_RESOURCES = (allowMultipleLastResources == null ? false
-                : Boolean.valueOf(allowMultipleLastResources).booleanValue());
+        ALLOW_MULTIPLE_LAST_RESOURCES = arjPropertyManager.getCoreEnvironmentBean().isAllowMultipleLastResources();
 
         if (ALLOW_MULTIPLE_LAST_RESOURCES
                 && jtaLogger.loggerI18N.isWarnEnabled())
@@ -205,9 +200,7 @@
             jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.resources.jts.orbspecific.lastResource.startupWarning");
         }
 
-        String disableMLRW = arjPropertyManager.getPropertyManager().getProperty(Environment.DISABLE_MULTIPLE_LAST_RESOURCES_WARNING, "false");
-
-        if ("true".equalsIgnoreCase(disableMLRW))
+        if (arjPropertyManager.getCoreEnvironmentBean().isDisableMultipleLastResourcesWarning())
         {
             jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.resources.jts.orbspecific.lastResource.disableWarning");
 

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -1648,11 +1648,6 @@
 
 	static
 	{
-		String optimization = jtaPropertyManager.getPropertyManager().getProperty(
-				Environment.JTA_TM_IMPLEMENTATION, "OFF");
-
-		if (optimization.equals("ON"))
-			_rollbackOptimization = true;
+        _rollbackOptimization = jtaPropertyManager.getJTAEnvironmentBean().isXaRollbackOptimization();
 	}
-
 }

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -1885,16 +1885,9 @@
 
 	static
 	{
-		final String xaTransactionTimeoutEnabled = jtsPropertyManager.getPropertyManager().getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED) ;
-		if (xaTransactionTimeoutEnabled != null)
-		{
-			XA_TRANSACTION_TIMEOUT_ENABLED = Boolean.valueOf(xaTransactionTimeoutEnabled).booleanValue() ;
-		}
-		else
-		{
-			XA_TRANSACTION_TIMEOUT_ENABLED = true ;
-		}
-		final String lastResourceOptimisationInterfaceName = jtsPropertyManager.getPropertyManager().getProperty(Environment.LAST_RESOURCE_OPTIMISATION_INTERFACE) ;
+        XA_TRANSACTION_TIMEOUT_ENABLED = jtaPropertyManager.getJTAEnvironmentBean().isXaTransactionTimeoutEnabled();
+
+        final String lastResourceOptimisationInterfaceName = jtaPropertyManager.getJTAEnvironmentBean().getLastResourceOptimisationInterface();
 		Class lastResourceOptimisationInterface = null ;
 		if (lastResourceOptimisationInterfaceName != null)
 		{

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/client/ImplicitClient.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/client/ImplicitClient.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/client/ImplicitClient.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -44,8 +44,8 @@
     @Test
     public void test() throws Exception
     {
-        jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TM_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
-        jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_UT_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
         ORB orb = ORB.getInstance("implicitserver-orb");
         OA oa = OA.getRootOA(orb);

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -45,8 +45,8 @@
     @Test
     public void test() throws Exception
     {
-        jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TM_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
-        jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_UT_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
         ORB orb = ORB.getInstance("implicitserver-orb");
         OA oa = OA.getRootOA(orb);

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAAbort.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAAbort.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAAbort.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -60,8 +60,8 @@
         ORBManager.setORB(myORB);
         ORBManager.setPOA(myOA);
 
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
         javax.transaction.TransactionManager tm = com.arjuna.ats.jta.TransactionManager.transactionManager();
 

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAOrder.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAOrder.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAOrder.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -63,8 +63,8 @@
 
         boolean passed = false;
 
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
         try
         {

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATest.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATest.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -65,8 +65,8 @@
 	String connectionString = null;
 	boolean tmCommit = true;
 
-	jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-	jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
 	/*
 	 * We should have a reference to a factory object (see JTA

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -50,7 +50,8 @@
     public void test() throws Exception
     {
         /** Ensure underlying JTA implementation is JTS **/
-        jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TM_IMPLEMENTATION, TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
         try
         {

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/NullResource.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/NullResource.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/NullResource.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -57,8 +57,8 @@
         ORBManager.setORB(myORB);
         ORBManager.setPOA(myOA);
 
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
         boolean passed = false;
 

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/Performance.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/Performance.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/Performance.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -57,8 +57,8 @@
         ORBManager.setORB(myORB);
         ORBManager.setPOA(myOA);
 
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
         /*
        * We should have a reference to a factory object (see JTA

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -57,13 +57,9 @@
         ORBManager.setORB(myORB);
         ORBManager.setPOA(myOA);
 
-        jtaPropertyManager.getPropertyManager().setProperty(
-                com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION,
-                "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-        jtaPropertyManager.getPropertyManager().setProperty(
-                com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION,
-                "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
-
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
+        
         try
         {
             javax.transaction.TransactionManager tm = com.arjuna.ats.jta.TransactionManager

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -109,14 +109,8 @@
         ORBManager.setORB(myORB);
         ORBManager.setPOA(myOA);
 
-        jtaPropertyManager.getPropertyManager()
-                .setProperty(
-                        com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION,
-                        "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-        jtaPropertyManager.getPropertyManager()
-                .setProperty(
-                        com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION,
-                        "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
         javax.transaction.TransactionManager tm = com.arjuna.ats.jta.TransactionManager
                 .transactionManager();

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/hammer/JTAHammer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/hammer/JTAHammer.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/hammer/JTAHammer.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -147,8 +147,8 @@
 	int threads = 10;
 	int work = 100;
 
-	jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-	jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
 	/*
 	 * We should have a reference to a factory object (see JTA

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/lastresource/LastResourceAllowedTestCase.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/lastresource/LastResourceAllowedTestCase.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/lastresource/LastResourceAllowedTestCase.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -27,7 +27,7 @@
 import javax.transaction.TransactionManager;
 
 import com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple;
-import com.arjuna.ats.arjuna.common.Environment;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
 import com.hp.mwtests.ts.jta.jts.JTSTestCase;
 
 import org.junit.Test;
@@ -39,7 +39,7 @@
     @Before
     public void setUp() throws Exception
     {
-        System.setProperty(Environment.ALLOW_MULTIPLE_LAST_RESOURCES, "true") ;
+        arjPropertyManager.getCoreEnvironmentBean().setAllowMultipleLastResources(true);
         super.setUp() ;
     }
     

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -62,10 +62,9 @@
         ORBManager.setORB(myORB);
         ORBManager.setPOA(myOA);
 
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
-
         jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS,"YES");
 
         javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();

Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/twophase/SimpleTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/twophase/SimpleTest.java	2009-07-30 09:57:27 UTC (rev 28594)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/twophase/SimpleTest.java	2009-07-30 10:35:51 UTC (rev 28595)
@@ -62,10 +62,9 @@
         ORBManager.setORB(myORB);
         ORBManager.setPOA(myOA);
 
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
-        jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaTMImplementation(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+        jtaPropertyManager.getJTAEnvironmentBean().setJtaUTImplementation(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
 
-
         javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
 
         transactionManager.begin();



More information about the jboss-svn-commits mailing list