[jboss-svn-commits] JBL Code SVN: r28936 - in labs/jbosstm/trunk: ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common and 44 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 14 10:46:28 EDT 2009
Author: jhalliday
Date: 2009-08-14 10:46:26 -0400 (Fri, 14 Aug 2009)
New Revision: 28936
Added:
labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/ConcatenationPrefix.java
Modified:
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBean.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBeanMBean.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Environment.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/RecoveryEnvironmentBean.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/RecoveryEnvironmentBeanMBean.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryEnvironment.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/inventory/StaticInventory.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredEntryMonitor.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecActivatorLoader.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/SocketProcessId.java
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/objectstore/JDBCInventory.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java
labs/jbosstm/trunk/ArjunaCore/jbossts-properties-arjunacore.xml
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/providers/DefaultRootProvider.java
labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/tsmx/common/Environment.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/Environment.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java
labs/jbosstm/trunk/ArjunaJTA/jbossts-properties-arjunajta.xml
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/Environment.java
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/logging/jdbcLogger.java
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/XAResourceErrorHandler.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/TransactionImple.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBeanMBean.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/logging/jtaLogger.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java
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/nested/SimpleNestedTest.java
labs/jbosstm/trunk/ArjunaJTS/jbossts-properties-arjunajts.xml
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/BaseTransaction.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/server/ImplicitServer.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/nested/SimpleNestedTest.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/OTSImpleManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/lifecycle/ShutdownOTS.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/lifecycle/StartupOTS.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/ORBRunner.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/RecoveryEnablement.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/recoverycoordinators/GenericRecoveryCoordinator.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/RecoveredServerTransaction.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionCache.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/OTSManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/Environment.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/JTSEnvironmentBean.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/JTSEnvironmentBeanMBean.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/logging/jtsLogger.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/recovery/RecoveryEnvironment.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/timeout/DefaultTimeout.java
labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/logging/XTSLogger.java
labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/logging/jbossatxLogger.java
labs/jbosstm/trunk/qa/tests/product/src/com/arjuna/ats/tools/perftest/product/JBossTSProduct.java
Log:
Added further bean based configuration, particularly for properties that use a name prefix to make a list e.g. recovery activators and other plugins. JBTM-596
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBean.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBean.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -22,8 +22,13 @@
import com.arjuna.common.internal.util.propertyservice.PropertyPrefix;
import com.arjuna.common.internal.util.propertyservice.FullPropertyName;
+import com.arjuna.common.internal.util.propertyservice.ConcatenationPrefix;
import com.arjuna.ats.arjuna.utils.Utility;
+import java.util.List;
+import java.util.Collections;
+import java.util.ArrayList;
+
/**
* A JavaBean containing assorted configuration properties for the core transaction system.
*
@@ -35,8 +40,8 @@
@FullPropertyName(name = "com.arjuna.ats.arjuna.common.propertiesFile")
private String propertiesFile = "";
-// @FullPropertyName(name = "com.arjuna.ats.internal.arjuna.inventory.staticInventoryImple")
-// private String staticInventoryImple;
+ @ConcatenationPrefix(prefix = "com.arjuna.ats.internal.arjuna.inventory.staticInventoryImple")
+ private List<String> staticInventoryElements = Collections.emptyList();
@FullPropertyName(name = "com.arjuna.ats.arjuna.common.varDir")
private String varDir = null;
@@ -70,6 +75,20 @@
this.propertiesFile = propertiesFile;
}
+ public List<String> getStaticInventoryElements()
+ {
+ if(staticInventoryElements == null) {
+ return Collections.emptyList();
+ } else {
+ return new ArrayList<String>(staticInventoryElements);
+ }
+ }
+
+ public void setStaticInventoryElements(List<String> staticInventoryElements)
+ {
+ this.staticInventoryElements = new ArrayList<String>(staticInventoryElements);
+ }
+
public String getVarDir()
{
return varDir;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBeanMBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBeanMBean.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/CoreEnvironmentBeanMBean.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -20,6 +20,8 @@
*/
package com.arjuna.ats.arjuna.common;
+import java.util.List;
+
/**
* A JMX MBean interface containing assorted configuration for the core transaction system.
*
@@ -31,6 +33,10 @@
void setPropertiesFile(String propertiesFile);
+ List<String> getStaticInventoryElements();
+
+ void setStaticInventoryElements(List<String> staticInventoryElements);
+
String getVarDir();
void setVarDir(String varDir);
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Environment.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Environment.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/Environment.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -89,8 +89,9 @@
* @author Mark Little (mark at arjuna.com)
* @version $Id: Environment.java 2342 2006-03-30 13:06:17Z $
* @since 1.0.
+ * @deprecated use CoordinatorEnvironentBean, CoreEnvironmentBean, ObjectStoreEnvironmentBean, RecoveryEnvironmentBean instead.
*/
-
+ at Deprecated
public class Environment
{
public static final String PROPERTIES_FILE = "com.arjuna.ats.arjuna.common.propertiesFile";
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/RecoveryEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/RecoveryEnvironmentBean.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/RecoveryEnvironmentBean.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -22,10 +22,14 @@
import com.arjuna.common.internal.util.propertyservice.PropertyPrefix;
import com.arjuna.common.internal.util.propertyservice.FullPropertyName;
+import com.arjuna.common.internal.util.propertyservice.ConcatenationPrefix;
import com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery;
import com.arjuna.ats.arjuna.utils.Utility;
import java.net.InetAddress;
+import java.util.List;
+import java.util.Collections;
+import java.util.ArrayList;
/**
* A JavaBean containing configuration properties for the recovery system.
@@ -46,10 +50,19 @@
private int expiryScanInterval = 12; // hours
private int transactionStatusManagerExpiryTime = 12; // hours
+ @ConcatenationPrefix(prefix = "com.arjuna.ats.arjuna.recovery.expiryScanner")
+ private List<String> expiryScanners = Collections.emptyList();
+
+ @ConcatenationPrefix(prefix = "com.arjuna.ats.arjuna.recovery.recoveryExtension")
+ private List<String> recoveryExtensions = Collections.emptyList();
+
+ @ConcatenationPrefix(prefix = "com.arjuna.ats.arjuna.recovery.recoveryActivator")
+ private List<String> recoveryActivators = Collections.emptyList();
+
@FullPropertyName(name = "com.arjuna.ats.internal.arjuna.recovery.listener.timeoutsocket")
private boolean timeoutSocket = false;
-// public static final String PERIODIC_RECOVERY_PERIOD = "com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod" ;
+ // public static final String PERIODIC_RECOVERY_PERIOD = "com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod" ;
public int getPeriodicRecoveryPeriod()
{
return periodicRecoveryPeriod;
@@ -158,6 +171,48 @@
this.transactionStatusManagerExpiryTime = transactionStatusManagerExpiryTime;
}
+ public List<String> getExpiryScanners()
+ {
+ if(expiryScanners == null) {
+ return Collections.emptyList();
+ } else {
+ return new ArrayList<String>(expiryScanners);
+ }
+ }
+
+ public void setExpiryScanners(List<String> expiryScanners)
+ {
+ this.expiryScanners = new ArrayList<String>(expiryScanners);
+ }
+
+ public List<String> getRecoveryExtensions()
+ {
+ if(recoveryExtensions == null) {
+ return Collections.emptyList();
+ } else {
+ return new ArrayList<String>(recoveryExtensions);
+ }
+ }
+
+ public void setRecoveryExtensions(List<String> recoveryExtensions)
+ {
+ this.recoveryExtensions = new ArrayList<String>(recoveryExtensions);
+ }
+
+ public List<String> getRecoveryActivators()
+ {
+ if(recoveryActivators == null) {
+ return Collections.emptyList();
+ } else {
+ return new ArrayList<String>(recoveryActivators);
+ }
+ }
+
+ public void setRecoveryActivators(List<String> recoveryActivators)
+ {
+ this.recoveryActivators = new ArrayList<String>(recoveryActivators);
+ }
+
public boolean isTimeoutSocket()
{
return timeoutSocket;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/RecoveryEnvironmentBeanMBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/RecoveryEnvironmentBeanMBean.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/RecoveryEnvironmentBeanMBean.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -21,6 +21,7 @@
package com.arjuna.ats.arjuna.common;
import java.net.InetAddress;
+import java.util.List;
/**
* A JMX MBean interface containing configuration for the recovery system.
@@ -69,6 +70,18 @@
void setTransactionStatusManagerExpiryTime(int transactionStatusManagerExpiryTime);
+ List<String> getExpiryScanners();
+
+ void setExpiryScanners(List<String> expiryScanners);
+
+ List<String> getRecoveryExtensions();
+
+ void setRecoveryExtensions(List<String> recoveryExtensions);
+
+ List<String> getRecoveryActivators();
+
+ void setRecoveryActivators(List<String> recoveryActivators);
+
boolean isTimeoutSocket();
void setTimeoutSocket(boolean timeoutSocket);
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -49,6 +49,11 @@
getPropertyManager();
}
+ /**
+ * @deprecated use environment beans instead.
+ * @return
+ */
+ @Deprecated
public static PropertyManager getPropertyManager()
{
return PropertyManagerFactory.getPropertyManagerForModule("arjuna", Environment.PROPERTIES_FILE);
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -35,6 +35,11 @@
private static final AtomicBoolean recoveryEnvironmentBeanInit = new AtomicBoolean(false);
private static final RecoveryEnvironmentBean recoveryEnvironmentBean = new RecoveryEnvironmentBean();
+ /**
+ * @deprecated use RecoveryEnvironmentBean instead
+ * @return
+ */
+ @Deprecated
public static PropertyManager getPropertyManager()
{
return PropertyManagerFactory.getPropertyManagerForModule("arjuna", Environment.PROPERTIES_FILE);
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -418,8 +418,7 @@
if (writeNodeName)
{
- arjPropertyManager.getPropertyManager().setProperty(
- Environment.XA_NODE_IDENTIFIER, new String(xaNodeName));
+ arjPropertyManager.getCoreEnvironmentBean().setNodeIdentifier( new String(xaNodeName) );
}
_enableTSM = arjPropertyManager.getCoordinatorEnvironmentBean().isTransactionStatusManagerEnable();
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryEnvironment.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryEnvironment.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryEnvironment.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -33,7 +33,9 @@
/**
* Container for property names used by recovery
+ * @deprecated use RecoveryEnvironmentBean instead.
*/
+ at Deprecated
public class RecoveryEnvironment
{
public static final String MODULE_PROPERTY_PREFIX = "com.arjuna.ats.arjuna.recovery.recoveryExtension" ;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/inventory/StaticInventory.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/inventory/StaticInventory.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/inventory/StaticInventory.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -264,39 +264,25 @@
* added dynamically. If we find them, instantiate them and
* hope that works!
*/
-
-private synchronized final void initialise ()
+ private synchronized final void initialise ()
{
- Implementations.initialise();
+ Implementations.initialise();
- Enumeration e = arjPropertyManager.getPropertyManager().propertyNames();
-
- if (e != null)
- {
- while (e.hasMoreElements())
- {
- String name = (String) e.nextElement();
-
- if (name.startsWith(com.arjuna.ats.arjuna.common.Environment.STATIC_INVENTORY_IMPLE))
- {
- String className = arjPropertyManager.getPropertyManager().getProperty(name);
-
- try
- {
- Class c = Thread.currentThread().getContextClassLoader().loadClass(className);
- Object o = c.newInstance();
+ for(String className : arjPropertyManager.getCoreEnvironmentBean().getStaticInventoryElements()) {
+ try
+ {
+ Class c = Thread.currentThread().getContextClassLoader().loadClass(className);
+ Object o = c.newInstance();
if (o instanceof InventoryElement)
Inventory.inventory().addToList((InventoryElement) o);
}
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
- }
- }
- }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
- initialised = true;
+ initialised = true;
}
private static InventoryList headOfList = null;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredEntryMonitor.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredEntryMonitor.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredEntryMonitor.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,12 +34,9 @@
import java.text.*;
import java.util.Date;
import java.util.Enumeration;
-import java.util.Properties;
import java.util.Vector;
import com.arjuna.ats.arjuna.recovery.ExpiryScanner;
-import com.arjuna.ats.arjuna.recovery.RecoveryEnvironment;
-import com.arjuna.ats.arjuna.common.arjPropertyManager;
import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
import com.arjuna.ats.arjuna.logging.tsLogger;
@@ -279,23 +276,9 @@
{
_expiryScanners = new Vector();
- // search our properties
- Properties properties = arjPropertyManager.getPropertyManager().getProperties();
-
- if (properties != null)
- {
- Enumeration names = properties.propertyNames();
-
- while (names.hasMoreElements())
- {
- String propertyName = (String) names.nextElement();
-
- if ( propertyName.startsWith(RecoveryEnvironment.SCANNER_PROPERTY_PREFIX) )
- {
- loadScanner( properties.getProperty(propertyName));
- }
- }
- }
+ for(String scannerName : recoveryPropertyManager.getRecoveryEnvironmentBean().getExpiryScanners()) {
+ loadScanner(scannerName);
+ }
}
private static void loadScanner( String className )
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -35,11 +35,9 @@
import java.text.* ;
import com.arjuna.ats.arjuna.common.Uid ;
-import com.arjuna.ats.arjuna.common.arjPropertyManager;
import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
import com.arjuna.ats.arjuna.objectstore.ObjectStore ;
import com.arjuna.ats.arjuna.recovery.ExpiryScanner ;
-import com.arjuna.ats.arjuna.recovery.RecoveryEnvironment ;
import com.arjuna.ats.arjuna.state.InputObjectState ;
import com.arjuna.ats.arjuna.logging.tsLogger;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -33,17 +33,12 @@
import java.lang.InterruptedException;
import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.Properties;
-import java.util.Vector;
+import java.util.*;
import java.net.*;
import java.io.*;
import com.arjuna.ats.arjuna.recovery.RecoveryModule;
-import com.arjuna.ats.arjuna.recovery.RecoveryEnvironment;
import com.arjuna.ats.arjuna.recovery.RecoveryManager;
-import com.arjuna.ats.arjuna.common.arjPropertyManager;
import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
import com.arjuna.ats.arjuna.logging.FacilityCode;
@@ -912,49 +907,17 @@
}
/**
- * Load recovery modules prior to starting to recovery. The property
- * name of each module is used to indicate relative ordering.
+ * Load recovery modules prior to starting to recovery. These are loaded in list iteration order.
*/
+ private void loadModules ()
+ {
+ Vector<String> moduleNames = new Vector<String>(recoveryPropertyManager.getRecoveryEnvironmentBean().getRecoveryExtensions());
- private void loadModules ()
- {
- // scan the relevant properties so as to get them into sort order
- Properties properties = arjPropertyManager.getPropertyManager().getProperties();
+ for(String moduleName : moduleNames) {
+ loadModule(moduleName);
+ }
+ }
- if (properties != null)
- {
- Vector moduleNames = new Vector();
- Enumeration names = properties.propertyNames();
-
- while (names.hasMoreElements())
- {
- String attrName = (String) names.nextElement();
-
- if (attrName.startsWith(RecoveryEnvironment.MODULE_PROPERTY_PREFIX))
- {
- // this is one of ours - put it in the right place
- int position = 0;
-
- while ( position < moduleNames.size() &&
- attrName.compareTo( (String)moduleNames.elementAt(position)) > 0 )
- {
- position++;
- }
- moduleNames.add(position,attrName);
- }
- }
- // now go through again and load them
- names = moduleNames.elements();
-
- while (names.hasMoreElements())
- {
- String attrName = (String) names.nextElement();
-
- loadModule(properties.getProperty(attrName));
- }
- }
- }
-
/**
* load a specific recovery module and add it to the recovery modules list
*
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecActivatorLoader.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecActivatorLoader.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecActivatorLoader.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -21,17 +21,10 @@
package com.arjuna.ats.internal.arjuna.recovery ;
-import java.lang.InterruptedException ;
-import java.text.SimpleDateFormat ;
-import java.util.Date ;
-import java.util.Enumeration ;
-import java.util.Properties ;
-import java.util.Vector ;
+import java.util.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.ats.arjuna.recovery.RecoveryActivator ;
-import com.arjuna.ats.arjuna.recovery.RecoveryEnvironment ;
-import com.arjuna.ats.arjuna.common.arjPropertyManager;
+import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
import com.arjuna.ats.arjuna.logging.FacilityCode ;
import com.arjuna.ats.arjuna.logging.tsLogger;
@@ -90,44 +83,16 @@
}
- private static void loadRecoveryActivators ()
- {
- // scan the relevant properties so as to get them into sort order
- Properties properties = arjPropertyManager.getPropertyManager().getProperties();
+ // These are loaded in list iteration order.
+ private static void loadRecoveryActivators ()
+ {
+ Vector<String> activatorNames = new Vector<String>(recoveryPropertyManager.getRecoveryEnvironmentBean().getRecoveryActivators());
- if (properties != null)
- {
- Vector activatorNames = new Vector();
- Enumeration names = properties.propertyNames();
+ for(String activatorName : activatorNames) {
+ loadActivator(activatorName);
+ }
+ }
- while (names.hasMoreElements())
- {
- String attrName = (String) names.nextElement();
-
- if (attrName.startsWith(RecoveryEnvironment.ACTIVATOR_PROPERTY_PREFIX) )
- {
- // this is one of ours - put it in the right place
- int position = 0;
- while ( position < activatorNames.size() &&
- attrName.compareTo( (String)activatorNames.elementAt(position)) > 0 )
- {
- position++;
- }
- activatorNames.add(position,attrName);
- }
- }
- // now go through again and load them
- names = activatorNames.elements();
-
- while (names.hasMoreElements())
- {
- String attrName = (String) names.nextElement();
- loadActivator(properties.getProperty(attrName));
- }
-
- }
- }
-
private static void loadActivator (String className)
{
if (tsLogger.arjLogger.isDebugEnabled())
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/SocketProcessId.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/SocketProcessId.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/SocketProcessId.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -32,7 +32,6 @@
package com.arjuna.ats.internal.arjuna.utils;
import com.arjuna.ats.arjuna.logging.tsLogger;
-import com.arjuna.ats.arjuna.common.Environment;
import com.arjuna.ats.arjuna.common.arjPropertyManager;
import com.arjuna.ats.arjuna.utils.Utility;
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/common/BeanPopulatorTest.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -46,14 +46,14 @@
DummyPropertyManager testManager = new DummyPropertyManager(null);
+ testManager.addConcatenationKeys(RecoveryEnvironmentBean.class);
+ testManager.addConcatenationKeys(CoreEnvironmentBean.class);
+
BeanPopulator.configureFromPropertyManager(new CoordinatorEnvironmentBean(), testManager);
BeanPopulator.configureFromPropertyManager(new RecoveryEnvironmentBean(), testManager);
BeanPopulator.configureFromPropertyManager(new CoreEnvironmentBean(), testManager);
BeanPopulator.configureFromPropertyManager(new ObjectStoreEnvironmentBean(), testManager);
- // we expect this one to be missing - that's ok.
- testManager.usedKeys.add("com.arjuna.ats.internal.arjuna.inventory.staticInventoryImple");
-
Set<String> expectedKeys = new HashSet<String>();
expectedKeys.addAll( DummyPropertyManager.extractKeys(Environment.class));
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/JDBCInventory.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/JDBCInventory.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/JDBCInventory.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -32,7 +32,6 @@
*/
import com.arjuna.ats.arjuna.ArjunaNames;
-import com.arjuna.ats.arjuna.common.Environment;
import com.arjuna.ats.arjuna.common.arjPropertyManager;
import com.arjuna.ats.arjuna.exceptions.ObjectStoreError;
import com.arjuna.ats.arjuna.objectstore.ObjectStoreImple;
@@ -41,12 +40,18 @@
import org.junit.Test;
import static org.junit.Assert.*;
+import java.util.ArrayList;
+import java.util.List;
+
public class JDBCInventory
{
@Test
public void test()
{
- arjPropertyManager.getPropertyManager().setProperty(Environment.STATIC_INVENTORY_IMPLE + "1", "com.arjuna.ats.internal.arjuna.objectstore.JDBCStoreSetup");
+ List<String> staticImpleList = new ArrayList<String>();
+ staticImpleList.add("com.arjuna.ats.internal.arjuna.objectstore.JDBCStoreSetup");
+ arjPropertyManager.getCoreEnvironmentBean().setStaticInventoryElements(staticImpleList);
+
arjPropertyManager.getObjectStoreEnvironmentBean().setJdbcUserDbAccess("com.hp.mwtests.ts.arjuna.objectstore.MyAccess");
boolean passed = false;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreRecoveryTest.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,7 +34,6 @@
import com.arjuna.ats.arjuna.ArjunaNames;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import com.arjuna.ats.arjuna.state.*;
-import com.arjuna.ats.arjuna.common.Environment;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.arjuna.common.arjPropertyManager;
import com.arjuna.ats.arjuna.coordinator.TxControl;
@@ -49,9 +48,9 @@
@Before
public void setUp()
{
- System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
- System.setProperty(Environment.TRANSACTION_LOG, "ON");
-
+ arjPropertyManager.getObjectStoreEnvironmentBean().setObjectStoreType(ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
+ arjPropertyManager.getCoordinatorEnvironmentBean().setTransactionLog(true);
+
super.setUp();
}
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/LogStoreTest2.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,8 +34,8 @@
import com.arjuna.ats.arjuna.ArjunaNames;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import com.arjuna.ats.arjuna.state.*;
-import com.arjuna.ats.arjuna.common.Environment;
import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
import com.arjuna.ats.arjuna.coordinator.TxControl;
import org.junit.Test;
@@ -46,8 +46,9 @@
@Test
public void test()
{
- System.setProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
- System.setProperty(Environment.TRANSACTION_LOG, "ON");
+ arjPropertyManager.getObjectStoreEnvironmentBean().setObjectStoreType(ArjunaNames.Implementation_ObjectStore_ActionLogStore().stringForm());
+ arjPropertyManager.getCoordinatorEnvironmentBean().setTransactionLog(true);
+
// the byteman script will manage this
//System.setProperty(Environment.TRANSACTION_LOG_PURGE_TIME, "10000");
Modified: labs/jbosstm/trunk/ArjunaCore/jbossts-properties-arjunacore.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/jbossts-properties-arjunacore.xml 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/jbossts-properties-arjunacore.xml 2009-08-14 14:46:26 UTC (rev 28936)
@@ -69,7 +69,7 @@
Use the value 0 to allow the system to select the first available port number.
If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
to the loopback address is created or until the the maximum number of ports (specified by the
- com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
+ CoreEnvironmentBean.socketProcessIdMaxPorts property) have been tried or until the port number
reaches the maximum possible port number.
-->
<entry key="CoreEnvironmentBean.socketProcessIdPort">0</entry>
@@ -77,25 +77,27 @@
<!--
- Periodic recovery modules to use. Invoked in sort-order of names.
+ Periodic recovery modules to use. Invoked in the order they appear in the list.
Check http://www.jboss.org/community/docs/DOC-10788 for more information
on recovery modules and their configuration when running in various
deployments.
-->
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension1">com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</entry>
+ <entry key="RecoveryEnvironmentBean.recoveryExtensions">
+ com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule
+ com.arjuna.ats.internal.txoj.recovery.TORecoveryModule
+ </entry>
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension2">com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</entry>
+ <!-- Expiry scanners to use (order of invocation is random). -->
+ <entry key="RecoveryEnvironmentBean.expiryScanners">
+ com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner
+ </entry>
<!--
- Expiry scanners to use (order of invocation is random).
- Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
+ Add the following to the set of expiryScanners above to move logs that cannot be completed by failure recovery.
+ But be sure you know what you are doing and why!
+ com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner
-->
- <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager">com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</entry>
- <!-- Enable the following to move logs that cannot be completed by failure recovery. But
-be sure you know what you are doing and why! -->
- <!-- entry key="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog">com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner</entry> -->
-
<!--
The address and port number on which the recovery manager listens
If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
@@ -125,5 +127,4 @@
-->
<entry key="RecoveryEnvironmentBean.recoveryListener">YES</entry>
-
</properties>
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/providers/DefaultRootProvider.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/providers/DefaultRootProvider.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/objectstorebrowser/rootprovider/providers/DefaultRootProvider.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -43,7 +43,7 @@
public DefaultRootProvider()
{
- File objectStoreRoot = new File(arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_DIR,"."));
+ File objectStoreRoot = new File(arjPropertyManager.getObjectStoreEnvironmentBean().getObjectStoreDir());
File[] files = objectStoreRoot.listFiles();
if ( files != null )
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/tsmx/common/Environment.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/tsmx/common/Environment.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/tsmx/common/Environment.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -30,6 +30,10 @@
*/
package com.arjuna.ats.tsmx.common;
+/**
+ * @deprecated
+ */
+ at Deprecated
public class Environment
{
public static final String PROPERTIES_FILE = "com.arjuna.ats.tsmx.common.propertiesFile";
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,12 +34,9 @@
import com.arjuna.ats.txoj.TxOJNames;
import com.arjuna.ats.txoj.lockstore.LockStoreImple;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
-import com.arjuna.ats.txoj.common.Environment;
-import com.arjuna.ats.txoj.common.Configuration;
import com.arjuna.ats.txoj.common.txojPropertyManager;
import com.arjuna.ats.arjuna.ArjunaNames;
import com.arjuna.ats.arjuna.common.Uid;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.ats.arjuna.state.*;
import com.arjuna.ats.arjuna.gandiva.ClassName;
Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/Environment.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/Environment.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/Environment.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -37,8 +37,9 @@
* @author Mark Little (mark at arjuna.com)
* @version $Id: Environment.java 2342 2006-03-30 13:06:17Z $
* @since JTS 1.0.
+ * @deprecated use TxojEnvironmentBean instead
*/
-
+ at Deprecated
public class Environment
{
public static final String PROPERTIES_FILE = "com.arjuna.ats.txoj.common.propertiesFile";
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -44,6 +44,11 @@
*/
public class txojPropertyManager
{
+ /**
+ * @deprecated use TxojEnvironmentBean instead
+ * @return
+ */
+ @Deprecated
public static PropertyManager getPropertyManager()
{
return PropertyManagerFactory.getPropertyManagerForModule("txoj", Environment.PROPERTIES_FILE);
Modified: labs/jbosstm/trunk/ArjunaJTA/jbossts-properties-arjunajta.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jbossts-properties-arjunajta.xml 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jbossts-properties-arjunajta.xml 2009-08-14 14:46:26 UTC (rev 28936)
@@ -64,7 +64,7 @@
<entry key="CoreEnvironmentBean.nodeIdentifier">1</entry>
<!-- Which Xid types to recover -->
- <entry key="com.arjuna.ats.jta.xaRecoveryNode">1</entry>
+ <entry key="JTAEnvironmentBean.xaRecoveryNodes">1</entry>
<!--
Base port number for determining a unique number to associate with an instance of the transaction service
@@ -72,37 +72,36 @@
Use the value 0 to allow the system to select the first available port number.
If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
to the loopback address is created or until the the maximum number of ports (specified by the
- com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
+ CoreEnvironmentBean.socketProcessIdMaxPorts property) have been tried or until the port number
reaches the maximum possible port number.
-->
<entry key="CoreEnvironmentBean.socketProcessIdPort">0</entry>
-
-
<!--
- Periodic recovery modules to use. Invoked in sort-order of names.
+ Periodic recovery modules to use. Invoked in the order they appear in the list.
Check http://www.jboss.org/community/docs/DOC-10788 for more information
on recovery modules and their configuration when running in various
deployments.
-->
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension1">com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</entry>
+ <entry key="RecoveryEnvironmentBean.recoveryExtensions">
+ com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule
+ com.arjuna.ats.internal.txoj.recovery.TORecoveryModule
+ com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule
+ </entry>
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension2">com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</entry>
+ <!-- Expiry scanners to use (order of invocation is random). -->
+ <entry key="RecoveryEnvironmentBean.expiryScanners">
+ com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner
+ </entry>
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension3">com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule</entry>
-
<!--
- Expiry scanners to use (order of invocation is random).
- Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
+ Add the following to the set of expiryScanners above to move logs that cannot be completed by failure recovery.
+ But be sure you know what you are doing and why!
+ com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner
-->
- <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager">com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</entry>
- <!-- Enable the following to move logs that cannot be completed by failure recovery. But
-be sure you know what you are doing and why! -->
- <!-- entry key="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog">com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner</entry> -->
-
<!--
The address and port number on which the recovery manager listens
If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/Environment.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/Environment.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/Environment.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -38,8 +38,9 @@
* @author Mark Little (mark_little at hp.com)
* @version $Id: Environment.java 2342 2006-03-30 13:06:17Z $
* @since JTS 2.0.
+ * @deprecated user JDBCEnvironmentBean instead
*/
-
+ at Deprecated
public class Environment
{
public static final String PROPERTIES_FILE = "com.arjuna.ats.jdbc.common.propertiesFile";
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -41,6 +41,16 @@
*/
public class jdbcPropertyManager
{
+ // ensure properties are loaded
+ public static void init() {
+ getPropertyManager();
+ }
+
+ /**
+ * @deprecated use JDBCEnvironmentBean instead
+ * @return
+ */
+ @Deprecated
public static PropertyManager getPropertyManager()
{
return PropertyManagerFactory.getPropertyManagerForModule("jdbc", Environment.PROPERTIES_FILE);
Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/logging/jdbcLogger.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/logging/jdbcLogger.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/logging/jdbcLogger.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -51,7 +51,7 @@
static
{
/** Ensure the properties are loaded before initialising the logger **/
- jdbcPropertyManager.getPropertyManager();
+ jdbcPropertyManager.init();
logger = LogFactory.getLogNoi18n("com.arjuna.ats.jdbc.logging.logger");
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -43,7 +43,6 @@
import com.arjuna.ats.jta.logging.jtaLogger;
import com.arjuna.ats.jta.common.jtaPropertyManager;
-import com.arjuna.ats.jta.common.Environment;
import com.arjuna.ats.jta.recovery.*;
import com.arjuna.ats.jta.utils.XAHelper;
import com.arjuna.ats.jta.xa.XidImple;
@@ -295,122 +294,84 @@
_recoveryManagerClass = null;
}
- Properties props = jtaPropertyManager.getPropertyManager().getProperties();
- if (props != null)
- {
- Enumeration names = props.propertyNames();
+ List<String> instances = jtaPropertyManager.getJTAEnvironmentBean().getXaResourceRecoveryInstances();
- while (names.hasMoreElements())
- {
- String propName = (String) names.nextElement();
+ for(String theClassAndParameter : instances)
+ {
+ /*
+ * Given the recovery string, create the class it refers to
+ * and store it.
+ */
- if (propName
- .startsWith(XARecoveryModule.XARecoveryPropertyNamePrefix))
- {
- /*
- * Given the recovery string, create the class it refers to
- * and store it.
- */
+ // see if there is a string parameter
- String theClassAndParameter = jtaPropertyManager.getPropertyManager()
- .getProperty(propName);
+ int breakPosition = theClassAndParameter.indexOf(BREAKCHARACTER);
- // see if there is a string parameter
+ String theClass = null;
+ String theParameter = null;
- int breakPosition = theClassAndParameter
- .indexOf(BREAKCHARACTER);
+ if (breakPosition != -1)
+ {
+ theClass = theClassAndParameter.substring(0, breakPosition);
+ theParameter = theClassAndParameter.substring(breakPosition + 1);
+ }
+ else
+ {
+ theClass = theClassAndParameter;
+ }
- String theClass = null;
- String theParameter = null;
+ if (jtaLogger.loggerI18N.isInfoEnabled())
+ {
+ if (jtaLogger.loggerI18N.isInfoEnabled())
+ {
+ jtaLogger.loggerI18N
+ .info("com.arjuna.ats.internal.jta.recovery.info.loading",
+ new Object[] {
+ _logName,(theClass + ((theParameter != null) ? theParameter : "")) });
+ }
+ }
- if (breakPosition != -1)
- {
- theClass = theClassAndParameter.substring(0,
- breakPosition);
- theParameter = theClassAndParameter
- .substring(breakPosition + 1);
- }
- else
- {
- theClass = theClassAndParameter;
- }
+ if (theClass == null)
+ {
+ if (jtaLogger.loggerI18N.isWarnEnabled())
+ {
+ jtaLogger.loggerI18N
+ .warn("com.arjuna.ats.internal.jta.recovery.classloadfail",
+ new Object[] { _logName, theClassAndParameter });
+ }
+ }
+ else
+ {
+ try
+ {
+ Class c = Thread.currentThread()
+ .getContextClassLoader()
+ .loadClass(theClass);
- if (jtaLogger.loggerI18N.isInfoEnabled())
- {
- if (jtaLogger.loggerI18N.isInfoEnabled())
- {
- jtaLogger.loggerI18N
- .info(
- "com.arjuna.ats.internal.jta.recovery.info.loading",
- new Object[]
- {
- _logName,
- (theClass + ((theParameter != null) ? theParameter
- : "")) });
- }
- }
+ XAResourceRecovery ri = (XAResourceRecovery) c
+ .newInstance();
- if (theClass == null)
- {
- if (jtaLogger.loggerI18N.isWarnEnabled())
- {
- jtaLogger.loggerI18N
- .warn(
- "com.arjuna.ats.internal.jta.recovery.classloadfail",
- new Object[]
- { _logName, propName });
- }
- }
- else
- {
- try
- {
- Class c = Thread.currentThread()
- .getContextClassLoader()
- .loadClass(theClass);
+ if (theParameter != null)
+ ri.initialise(theParameter);
- XAResourceRecovery ri = (XAResourceRecovery) c
- .newInstance();
+ _xaRecoverers.addElement(ri);
+ }
+ catch (Exception e)
+ {
+ if (jtaLogger.loggerI18N.isWarnEnabled())
+ {
+ jtaLogger.loggerI18N
+ .warn("com.arjuna.ats.internal.jta.recovery.general",
+ new Object[] { e, theClass }, e);
+ }
+ }
+ }
+ }
- if (theParameter != null)
- ri.initialise(theParameter);
+ // Find the node(s) we can recover on behalf of.
+ _xaRecoveryNodes = new Vector<String>(jtaPropertyManager.getJTAEnvironmentBean().getXaRecoveryNodes());
- _xaRecoverers.addElement(ri);
- }
- catch (Exception e)
- {
- if (jtaLogger.loggerI18N.isWarnEnabled())
- {
- jtaLogger.loggerI18N
- .warn(
- "com.arjuna.ats.internal.jta.recovery.general",
- new Object[]
- { e, theClass });
- }
- }
- }
- }
- else
- {
- if (propName.startsWith(Environment.XA_RECOVERY_NODE))
- {
- /*
- * Find the node(s) we can recover on behalf of.
- */
-
- String name = jtaPropertyManager.getPropertyManager()
- .getProperty(propName);
-
- if (_xaRecoveryNodes == null)
- _xaRecoveryNodes = new Vector();
-
- _xaRecoveryNodes.addElement(name);
- }
- }
- }
- }
-
if ((_xaRecoveryNodes == null) || (_xaRecoveryNodes.size() == 0))
{
if (jtaLogger.loggerI18N.isInfoEnabled())
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/XAResourceErrorHandler.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/XAResourceErrorHandler.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/XAResourceErrorHandler.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,11 +34,8 @@
import com.arjuna.ats.jta.resources.XAResourceMap;
import com.arjuna.ats.jta.common.jtaPropertyManager;
-import com.arjuna.ats.jta.common.Environment;
import java.util.HashMap;
-import java.util.Enumeration;
-import java.util.Properties;
public class XAResourceErrorHandler
{
@@ -61,43 +58,24 @@
private static HashMap _maps = new HashMap();
- static
- {
- // explicitly add tibco
+ static
+ {
+ for(String theClass : jtaPropertyManager.getJTAEnvironmentBean().getXaErrorHandlers())
+ {
+ // Given the recovery string, create the class it refers to and store it.
- Properties props = jtaPropertyManager.getPropertyManager().getProperties();
+ try
+ {
+ Class c = Thread.currentThread().getContextClassLoader().loadClass(theClass);
- if (props != null)
- {
- Enumeration names = props.propertyNames();
+ XAResourceMap map = (XAResourceMap) c.newInstance();
- while (names.hasMoreElements())
- {
- String propName = (String) names.nextElement();
-
- if (propName.startsWith(Environment.XA_ERROR_HANDLER))
- {
- /*
- * Given the recovery string, create the class it refers to
- * and store it.
- */
-
- String theClass = jtaPropertyManager.getPropertyManager().getProperty(propName);
-
- try
- {
- Class c = Thread.currentThread().getContextClassLoader().loadClass(theClass);
-
- XAResourceMap map = (XAResourceMap) c.newInstance();
-
- XAResourceErrorHandler.addXAResourceMap(map.getXAResourceName(), map);
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
- }
- }
- }
- }
+ XAResourceErrorHandler.addXAResourceMap(map.getXAResourceName(), map);
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
}
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,7 +34,6 @@
import com.arjuna.ats.jta.recovery.*;
import com.arjuna.ats.jta.common.jtaPropertyManager;
-import com.arjuna.ats.jta.common.Environment;
import com.arjuna.ats.jta.xa.RecoverableXAConnection;
import com.arjuna.ats.jta.xa.XidImple;
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -39,7 +39,6 @@
import com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord;
import com.arjuna.ats.jta.common.Configuration;
-import com.arjuna.ats.jta.common.Environment;
import com.arjuna.ats.jta.common.jtaPropertyManager;
import com.arjuna.ats.jta.exceptions.InactiveTransactionException;
import com.arjuna.ats.jta.exceptions.InvalidTerminationStateException;
Modified: 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 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -22,7 +22,12 @@
import com.arjuna.common.internal.util.propertyservice.PropertyPrefix;
import com.arjuna.common.internal.util.propertyservice.FullPropertyName;
+import com.arjuna.common.internal.util.propertyservice.ConcatenationPrefix;
+import java.util.List;
+import java.util.Collections;
+import java.util.ArrayList;
+
/**
* A JavaBean containing configuration properties for the JTA subsystem.
*
@@ -41,7 +46,13 @@
private String jtaTSRImplementation = "com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple";
private int xaBackoffPeriod = 20000;
- private String xaRecoveryNode; // key only
+
+ @ConcatenationPrefix(prefix = "com.arjuna.ats.jta.xaRecoveryNode")
+ private List<String> xaRecoveryNodes = Collections.emptyList();
+
+ @ConcatenationPrefix(prefix = "com.arjuna.ats.jta.recovery.XAResourceRecovery")
+ private List<String> xaResourceRecoveryInstances = Collections.emptyList();
+
private boolean xaRollbackOptimization = false;
private boolean xaAssumeRecoveryComplete = false;
@@ -53,7 +64,9 @@
@FullPropertyName(name = "com.arjuna.ats.jta.utils.TSRJNDIContext")
private String jtaTSRJNDIContext = "java:/TransactionSynchronizationRegistry";
- private String xaErrorHandler; // key only
+ @ConcatenationPrefix(prefix = "com.arjuna.ats.jta.xaErrorHandler")
+ private List<String> xaErrorHandlers = Collections.emptyList();
+
private boolean xaTransactionTimeoutEnabled = true;
private String lastResourceOptimisationInterface = null;
@@ -123,18 +136,35 @@
this.xaBackoffPeriod = xaBackoffPeriod;
}
-// public static final String XA_RECOVERY_NODE = "com.arjuna.ats.jta.xaRecoveryNode";
- public String getXaRecoveryNode()
+ public List<String> getXaRecoveryNodes()
{
- return xaRecoveryNode;
+ if(xaRecoveryNodes == null) {
+ return Collections.emptyList();
+ } else {
+ return new ArrayList<String>(xaRecoveryNodes);
+ }
}
- public void setXaRecoveryNode(String xaRecoveryNode)
+ public void setXaRecoveryNodes(List<String> xaRecoveryNodes)
{
- this.xaRecoveryNode = xaRecoveryNode;
+ this.xaRecoveryNodes = new ArrayList<String>(xaRecoveryNodes);
}
-// public static final String XA_ROLLBACK_OPTIMIZATION = "com.arjuna.ats.jta.xaRollbackOptimization";
+ public List<String> getXaResourceRecoveryInstances()
+ {
+ if(xaResourceRecoveryInstances == null) {
+ return Collections.emptyList();
+ } else {
+ return new ArrayList<String>(xaResourceRecoveryInstances);
+ }
+ }
+
+ public void setXaResourceRecoveryInstances(List<String> xaResourceRecoveryInstances)
+ {
+ this.xaResourceRecoveryInstances = new ArrayList<String>(xaResourceRecoveryInstances);
+ }
+
+ // public static final String XA_ROLLBACK_OPTIMIZATION = "com.arjuna.ats.jta.xaRollbackOptimization";
public boolean isXaRollbackOptimization()
{
return xaRollbackOptimization;
@@ -189,18 +219,21 @@
this.jtaTSRJNDIContext = jtaTSRJNDIContext;
}
-// public static final String XA_ERROR_HANDLER = "com.arjuna.ats.jta.xaErrorHandler";
- public String getXaErrorHandler()
+ public List<String> getXaErrorHandlers()
{
- return xaErrorHandler;
+ if(xaErrorHandlers == null) {
+ return Collections.emptyList();
+ } else {
+ return new ArrayList<String>(xaErrorHandlers);
+ }
}
- public void setXaErrorHandler(String xaErrorHandler)
+ public void setXaErrorHandlers(List<String> xaErrorHandlers)
{
- this.xaErrorHandler = xaErrorHandler;
+ this.xaErrorHandlers = new ArrayList(xaErrorHandlers);
}
-// public static final String XA_TRANSACTION_TIMEOUT_ENABLED = "com.arjuna.ats.jta.xaTransactionTimeoutEnabled";
+ // public static final String XA_TRANSACTION_TIMEOUT_ENABLED = "com.arjuna.ats.jta.xaTransactionTimeoutEnabled";
public boolean isXaTransactionTimeoutEnabled()
{
return xaTransactionTimeoutEnabled;
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBeanMBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBeanMBean.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBeanMBean.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -20,6 +20,8 @@
*/
package com.arjuna.ats.jta.common;
+import java.util.List;
+
/**
* A JMX MBean interface containing configuration for the JTA system.
*
@@ -51,10 +53,14 @@
void setXaBackoffPeriod(int xaBackoffPeriod);
- String getXaRecoveryNode();
+ List<String> getXaRecoveryNodes();
- void setXaRecoveryNode(String xaRecoveryNode);
+ void setXaRecoveryNodes(List<String> xaRecoveryNodes);
+ List<String> getXaResourceRecoveryInstances();
+
+ void setXaResourceRecoveryInstances(List<String> xaResourceRecoveryInstances);
+
boolean isXaRollbackOptimization();
void setXaRollbackOptimization(boolean xaRollbackOptimization);
@@ -75,10 +81,10 @@
void setJtaTSRJNDIContext(String jtaTSRJNDIContext);
- String getXaErrorHandler();
+ List<String> getXaErrorHandlers();
- void setXaErrorHandler(String xaErrorHandler);
-
+ void setXaErrorHandlers(List<String> xaErrorHandlers);
+
boolean isXaTransactionTimeoutEnabled();
void setXaTransactionTimeoutEnabled(boolean xaTransactionTimeoutEnabled);
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -42,6 +42,16 @@
public class jtaPropertyManager
{
+ // ensure properties are loaded
+ public static void init() {
+ getPropertyManager();
+ }
+
+ /**
+ * @deprecated use JTAEnvironmentBean instead
+ * @return
+ */
+ @Deprecated
public static PropertyManager getPropertyManager()
{
return PropertyManagerFactory.getPropertyManagerForModule("jta", Environment.PROPERTIES_FILE);
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/logging/jtaLogger.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/logging/jtaLogger.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/logging/jtaLogger.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -52,7 +52,7 @@
static
{
/** Ensure we load the properties before initialising the logger **/
- jtaPropertyManager.getPropertyManager();
+ jtaPropertyManager.init();
logger = LogFactory.getLogNoi18n("com.arjuna.ats.jta.logging.logger");
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -32,7 +32,6 @@
import com.arjuna.ats.jta.common.jtaPropertyManager;
-import com.arjuna.ats.jta.common.Environment;
import com.arjuna.ats.jta.logging.jtaLogger;
import javax.naming.InitialContext;
Modified: 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 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/basic/BeanPopulatorTest.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -46,12 +46,16 @@
// properties are looked for. i.e. that the Environment and Beans are in sync
DummyPropertyManager testManager = new DummyPropertyManager(null);
+ testManager.addConcatenationKeys(JTAEnvironmentBean.class);
BeanPopulator.configureFromPropertyManager(new JTAEnvironmentBean(), testManager);
Set<String> expectedKeys = new HashSet<String>();
expectedKeys.addAll( DummyPropertyManager.extractKeys(Environment.class));
+ System.out.println("expectedKeys: "+expectedKeys);
+ System.out.println("usedKeys: "+testManager.usedKeys);
+
assertTrue( testManager.usedKeys.containsAll(expectedKeys) );
}
}
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -32,6 +32,7 @@
package com.hp.mwtests.ts.jta.nested;
import com.hp.mwtests.ts.jta.common.TestResource;
+import com.arjuna.ats.jta.common.jtaPropertyManager;
import javax.transaction.Transaction;
import javax.transaction.xa.XAResource;
@@ -44,7 +45,7 @@
@Test
public void test() throws Exception
{
- com.arjuna.ats.jta.common.jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS, "YES");
+ jtaPropertyManager.getJTAEnvironmentBean().setSupportSubtransactions(true);
javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
Modified: labs/jbosstm/trunk/ArjunaJTS/jbossts-properties-arjunajts.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jbossts-properties-arjunajts.xml 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jbossts-properties-arjunajts.xml 2009-08-14 14:46:26 UTC (rev 28936)
@@ -64,7 +64,7 @@
<entry key="CoreEnvironmentBean.nodeIdentifier">1</entry>
<!-- Which Xid types to recover -->
- <entry key="com.arjuna.ats.jta.xaRecoveryNode">1</entry>
+ <entry key="JTAEnvironmentBean.xaRecoveryNodes">1</entry>
<!--
Base port number for determining a unique number to associate with an instance of the transaction service
@@ -72,47 +72,41 @@
Use the value 0 to allow the system to select the first available port number.
If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
to the loopback address is created or until the the maximum number of ports (specified by the
- com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
+ CoreEnvironmentBean.socketProcessIdMaxPorts property) have been tried or until the port number
reaches the maximum possible port number.
-->
<entry key="CoreEnvironmentBean.socketProcessIdPort">0</entry>
-
<!--
- Periodic recovery modules to use. Invoked in sort-order of names.
+ Periodic recovery modules to use. Invoked in the order they appear in the list.
Check http://www.jboss.org/community/docs/DOC-10788 for more information
on recovery modules and their configuration when running in various
deployments.
-->
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension1">com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</entry>
+ <entry key="RecoveryEnvironmentBean.recoveryExtensions">
+ com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule
+ com.arjuna.ats.internal.txoj.recovery.TORecoveryModule
+ com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule
+ com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule
+ com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule
+ </entry>
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension2">com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</entry>
+ <!-- Expiry scanners to use (order of invocation is random). -->
+ <entry key="RecoveryEnvironmentBean.expiryScanners">
+ com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner
+ com.arjuna.ats.internal.jts.recovery.contact.ExpiredContactScanner
+ com.arjuna.ats.internal.jts.recovery.transactions.ExpiredToplevelScanner
+ com.arjuna.ats.internal.jts.recovery.transactions.ExpiredServerScanner
+ </entry>
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension3">com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule</entry>
-
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension4">com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule</entry>
-
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension5">com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule</entry>
-
-
<!--
- Expiry scanners to use (order of invocation is random).
- Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
+ Add the following to the set of expiryScanners above to move logs that cannot be completed by failure recovery.
+ But be sure you know what you are doing and why!
+ com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner
-->
- <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager">com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</entry>
- <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerContact">com.arjuna.ats.internal.jts.recovery.contact.ExpiredContactScanner</entry>
-
- <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTopLevelTran">com.arjuna.ats.internal.jts.recovery.transactions.ExpiredToplevelScanner</entry>
-
- <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerServerTran">com.arjuna.ats.internal.jts.recovery.transactions.ExpiredServerScanner</entry>
-
- <!-- Enable the following to move logs that cannot be completed by failure recovery. But
-be sure you know what you are doing and why! -->
- <!-- entry key="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog">com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner</entry> -->
-
<!--
The address and port number on which the recovery manager listens
If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
@@ -143,8 +137,8 @@
<entry key="RecoveryEnvironmentBean.recoveryListener">YES</entry>
- <!-- Recovery Activator to use. -->
- <entry key="com.arjuna.ats.arjuna.recovery.recoveryActivator_1">com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement</entry>
+ <!-- Recovery Activators to use. -->
+ <entry key="RecoveryEnvironmentBean.recoveryActivators">com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement</entry>
<entry key="JTAEnvironmentBean.jtaTMImplementation">com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple</entry>
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,7 +34,6 @@
import com.arjuna.ats.jta.recovery.*;
import com.arjuna.ats.jta.common.jtaPropertyManager;
-import com.arjuna.ats.jta.common.Environment;
import com.arjuna.ats.jta.xa.*;
import com.arjuna.ats.jta.utils.XAHelper;
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -326,10 +326,6 @@
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/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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -51,7 +51,6 @@
import com.arjuna.ats.jta.xa.*;
import com.arjuna.ats.jta.common.Configuration;
-import com.arjuna.ats.jta.common.Environment;
import com.arjuna.ats.jta.common.jtaPropertyManager;
import com.arjuna.ats.jta.exceptions.InactiveTransactionException;
import com.arjuna.ats.jta.exceptions.InvalidTerminationStateException;
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -35,7 +35,6 @@
import com.arjuna.ats.jtax.tests.implicit.impl.*;
import com.arjuna.ats.jta.common.jtaPropertyManager;
-import com.arjuna.ats.jta.common.Environment;
import org.junit.Test;
import static org.junit.Assert.*;
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -20,11 +20,7 @@
*/
package com.hp.mwtests.ts.jta.jts.basic;
-import com.arjuna.orbportability.ORB;
-import com.arjuna.orbportability.OA;
import com.arjuna.ats.jta.common.jtaPropertyManager;
-import com.arjuna.ats.jta.common.Environment;
-import com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple;
import com.hp.mwtests.ts.jta.jts.JTSTestCase;
import javax.transaction.TransactionManager;
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-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -64,9 +64,8 @@
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.getJTAEnvironmentBean().setSupportSubtransactions(true);
- jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS,"YES");
-
javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
transactionManager.begin();
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/OTSImpleManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/OTSImpleManager.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/OTSImpleManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -31,7 +31,6 @@
package com.arjuna.ats.internal.jts;
-import com.arjuna.ats.jts.common.Environment;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.logging.*;
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/lifecycle/ShutdownOTS.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/lifecycle/ShutdownOTS.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/lifecycle/ShutdownOTS.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -31,35 +31,6 @@
package com.arjuna.ats.internal.jts.lifecycle;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-
-import com.arjuna.orbportability.*;
-
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.coordinator.TransactionReaper;
-
-import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
-import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
-import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
-import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.internal.jts.utils.Helper;
-
-import org.omg.CosTransactions.*;
-
-import com.arjuna.ArjunaOTS.*;
-
-import java.io.PrintStream;
-
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
-import org.omg.CORBA.UserException;
-import org.omg.CORBA.ORBPackage.InvalidName;
-import java.io.IOException;
-
public class ShutdownOTS extends com.arjuna.orbportability.oa.PreShutdown
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/lifecycle/StartupOTS.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/lifecycle/StartupOTS.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/lifecycle/StartupOTS.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -31,35 +31,6 @@
package com.arjuna.ats.internal.jts.lifecycle;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-
-import com.arjuna.orbportability.*;
-
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.coordinator.TransactionReaper;
-
-import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
-import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
-import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
-import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.internal.jts.utils.Helper;
-
-import org.omg.CosTransactions.*;
-
-import com.arjuna.ArjunaOTS.*;
-
-import java.io.PrintStream;
-
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
-import org.omg.CORBA.UserException;
-import org.omg.CORBA.ORBPackage.InvalidName;
-import java.io.IOException;
-
public class StartupOTS
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/ORBRunner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/ORBRunner.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/ORBRunner.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -32,26 +32,6 @@
package com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators;
-import com.arjuna.ats.arjuna.recovery.RecoveryActivator;
-import com.arjuna.ats.jts.logging.*;
-import com.arjuna.common.util.logging.*;
-import com.arjuna.orbportability.common.Environment;
-
-
-import org.omg.CORBA.NO_IMPLEMENT;
-import org.omg.CORBA.SystemException;
-
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.logging.FacilityCode;
-
-import com.arjuna.orbportability.debug.OAAttribute;
-
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.orbportability.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
public class ORBRunner extends Thread
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/RecoveryEnablement.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/RecoveryEnablement.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/RecoveryEnablement.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,26 +34,11 @@
import com.arjuna.ats.arjuna.recovery.RecoveryActivator;
import com.arjuna.ats.jts.logging.*;
-import com.arjuna.common.util.logging.*;
-import com.arjuna.orbportability.common.Environment;
-import org.omg.CORBA.NO_IMPLEMENT;
-import org.omg.CORBA.SystemException;
-
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.logging.FacilityCode;
-
-import com.arjuna.orbportability.orb.Attribute;
-
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.arjuna.common.*;
import com.arjuna.orbportability.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.ats.internal.jts.Implementations;
-import com.arjuna.ats.internal.jts.recovery.recoverycoordinators.GenericRecoveryCreator;
import com.arjuna.ats.internal.jts.recovery.*;
import com.arjuna.ats.internal.jts.recovery.recoverycoordinators.RecoveryServiceInit;
@@ -89,9 +74,6 @@
private static boolean _isNormalProcess = true;
private static String _RecoveryManagerTag = null;
- // no accessible variable for this first property name prefix
- private static final String eventHandlerPropertyPrefix = Environment.EVENT_HANDLER;
-
/**
* Constructor does the work as a result of being registered as an ORBPreInit
* class
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/recoverycoordinators/GenericRecoveryCoordinator.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/recoverycoordinators/GenericRecoveryCoordinator.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/recoverycoordinators/GenericRecoveryCoordinator.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -414,15 +414,7 @@
static
{
- _issueRecoveryRollback = true;
-
- String issueRecoveryRollback = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.OTS_ISSUE_RECOVERY_ROLLBACK);
-
- if (issueRecoveryRollback != null)
- {
- if (issueRecoveryRollback.compareTo("NO") == 0)
- _issueRecoveryRollback = false;
- }
+ _issueRecoveryRollback = jtsPropertyManager.getJTSEnvironmentBean().isIssueRecoveryRollback();
}
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -38,10 +38,8 @@
import com.arjuna.ats.arjuna.common.Uid ;
import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.arjuna.objectstore.ObjectStore ;
import com.arjuna.ats.arjuna.recovery.ExpiryScanner ;
-import com.arjuna.ats.arjuna.recovery.RecoveryEnvironment ;
import com.arjuna.ats.arjuna.state.InputObjectState ;
import com.arjuna.ats.jts.logging.jtsLogger;
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/RecoveredServerTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/RecoveredServerTransaction.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/RecoveredServerTransaction.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -98,12 +98,8 @@
public RecoveredServerTransaction ( Uid actionUid )
{
- this(actionUid, "");
- String assumedExistString = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.ASSUMED_OBJECT_NOT_EXIST);
- if (assumedExistString != null) {
- Integer assumedExistInteger = new Integer(assumedExistString);
- _assumed_not_exist = assumedExistInteger.intValue();
- }
+ this(actionUid, "");
+ _assumed_not_exist = jtsPropertyManager.getJTSEnvironmentBean().getAssumedObjectNotExist();
}
/**
@@ -117,12 +113,7 @@
{
super(actionUid);
- String assumedExistString = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.ASSUMED_OBJECT_NOT_EXIST);
-
- if (assumedExistString != null) {
- Integer assumedExistInteger = new Integer(assumedExistString);
- _assumed_not_exist = assumedExistInteger.intValue();
- }
+ _assumed_not_exist = jtsPropertyManager.getJTSEnvironmentBean().getAssumedObjectNotExist();
if (jtsLogger.loggerI18N.isDebugEnabled())
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionCache.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionCache.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionCache.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -37,7 +37,6 @@
import com.arjuna.ats.jts.common.jtsPropertyManager;
import org.omg.CosTransactions.*;
-import com.arjuna.ats.jts.recovery.RecoveryEnvironment;
import com.arjuna.ats.jts.logging.jtsLogger;
import com.arjuna.ats.arjuna.logging.FacilityCode;
@@ -353,24 +352,8 @@
private static Hashtable _theCache = new Hashtable();
private static int attemptsBeforeConversion = 3;
- static
- {
- String retryLimitString = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.COMMITTED_TRANSACTION_RETRY_LIMIT);
-
- if (retryLimitString != null)
- {
- try
- {
- Integer i = new Integer(retryLimitString);
-
- attemptsBeforeConversion = i.intValue();
- }
- catch (Exception e)
- {
- jtsLogger.loggerI18N.warn("com.arjuna.ats.internal.jts.recovery.transactions.TransactionCache_8", new Object[]{RecoveryEnvironment.COMMITTED_TRANSACTION_RETRY_LIMIT});
- }
- }
- }
-
-
+ static
+ {
+ attemptsBeforeConversion = jtsPropertyManager.getJTSEnvironmentBean().getCommitedTransactionRetryLimit();
+ }
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/OTSManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/OTSManager.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/OTSManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -31,23 +31,14 @@
package com.arjuna.ats.jts;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.logging.*;
-import com.arjuna.orbportability.*;
-
import com.arjuna.common.util.logging.*;
-import com.arjuna.ats.arjuna.common.*;
import com.arjuna.ats.arjuna.coordinator.TransactionReaper;
-import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
-import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.PseudoControlWrapper;
import com.arjuna.ats.internal.jts.utils.Helper;
@@ -55,14 +46,8 @@
import com.arjuna.ArjunaOTS.*;
-import java.io.PrintStream;
-
import org.omg.CORBA.SystemException;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
-import org.omg.CORBA.UserException;
-import org.omg.CORBA.ORBPackage.InvalidName;
-import java.io.IOException;
/**
* This class is essentially here for convenience purposes, and until
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/Environment.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/Environment.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/Environment.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -38,8 +38,9 @@
* @author Mark Little (mark at arjuna.com)
* @version $Id: Environment.java 2342 2006-03-30 13:06:17Z $
* @since JTS 1.0.
+ * @deprecated use JTSEnvironmentBean instead
*/
-
+ at Deprecated
public class Environment
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/JTSEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/JTSEnvironmentBean.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/JTSEnvironmentBean.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -53,7 +53,16 @@
@FullPropertyName(name = "com.arjuna.ats.jts.ots_1_0.timeoutPropagation")
private boolean timeoutPropagation;
+ @FullPropertyName(name = "com.arjuna.ats.jts.recovery.issueRecoveryRollback")
+ private boolean issueRecoveryRollback = true;
+ @FullPropertyName(name = "com.arjuna.ats.jts.recovery.commitTransactionRetryLimit")
+ private int commitedTransactionRetryLimit = 3;
+
+ @FullPropertyName(name = "com.arjuna.ats.jts.recovery.assumedObjectNotExist")
+ private int assumedObjectNotExist = 10;
+
+
// public static final String PROPERTIES_FILE = "com.arjuna.ats.jts.common.propertiesFile";
public String getPropertiesFile()
{
@@ -222,4 +231,34 @@
{
this.timeoutPropagation = timeoutPropagation;
}
+
+ public boolean isIssueRecoveryRollback()
+ {
+ return issueRecoveryRollback;
+ }
+
+ public void setIssueRecoveryRollback(boolean issueRecoveryRollback)
+ {
+ this.issueRecoveryRollback = issueRecoveryRollback;
+ }
+
+ public int getCommitedTransactionRetryLimit()
+ {
+ return commitedTransactionRetryLimit;
+ }
+
+ public void setCommitedTransactionRetryLimit(int commitedTransactionRetryLimit)
+ {
+ this.commitedTransactionRetryLimit = commitedTransactionRetryLimit;
+ }
+
+ public int getAssumedObjectNotExist()
+ {
+ return assumedObjectNotExist;
+ }
+
+ public void setAssumedObjectNotExist(int assumedObjectNotExist)
+ {
+ this.assumedObjectNotExist = assumedObjectNotExist;
+ }
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/JTSEnvironmentBeanMBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/JTSEnvironmentBeanMBean.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/JTSEnvironmentBeanMBean.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -90,4 +90,16 @@
boolean isTimeoutPropagation();
void setTimeoutPropagation(boolean timeoutPropagation);
+
+ boolean isIssueRecoveryRollback();
+
+ void setIssueRecoveryRollback(boolean issueRecoveryRollback);
+
+ int getCommitedTransactionRetryLimit();
+
+ void setCommitedTransactionRetryLimit(int commitedTransactionRetryLimit);
+
+ int getAssumedObjectNotExist();
+
+ void setAssumedObjectNotExist(int assumedObjectNotExist);
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -43,6 +43,16 @@
public class jtsPropertyManager
{
+ // ensure properties are loaded
+ public static void init() {
+ getPropertyManager();
+ }
+
+ /**
+ * @deprecated use JTSEnvironmentBean instead
+ * @return
+ */
+ @Deprecated
public static PropertyManager getPropertyManager()
{
return PropertyManagerFactory.getPropertyManagerForModule("jts", Environment.PROPERTIES_FILE);
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/logging/jtsLogger.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/logging/jtsLogger.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/logging/jtsLogger.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -52,7 +52,7 @@
static
{
/** Ensure the properties are loaded before initialising the logger **/
- jtsPropertyManager.getPropertyManager();
+ jtsPropertyManager.init();
logger = LogFactory.getLogNoi18n("com.arjuna.ats.jts.logging.logger");
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/recovery/RecoveryEnvironment.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/recovery/RecoveryEnvironment.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/recovery/RecoveryEnvironment.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -33,7 +33,9 @@
/**
* Container for property names used by recovery
+ * @deprecated use JTSEnvironmentBean instead
*/
+ at Deprecated
public class RecoveryEnvironment
{
public static final String OTS_ISSUE_RECOVERY_ROLLBACK = "com.arjuna.ats.jts.recovery.issueRecoveryRollback" ;
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/timeout/DefaultTimeout.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/timeout/DefaultTimeout.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/timeout/DefaultTimeout.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -34,7 +34,6 @@
import com.arjuna.orbportability.*;
import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Environment;
import com.arjuna.ats.jts.OTSManager;
Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/logging/XTSLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/logging/XTSLogger.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/logging/XTSLogger.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -18,7 +18,7 @@
static
{
/** Ensure the properties are loaded before initialising the logger **/
- arjPropertyManager.getPropertyManager();
+ arjPropertyManager.init();
arjLogger = LogFactory.getLogNoi18n("com.arjuna.webservices.logging.XTSLogger");
Modified: labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/logging/jbossatxLogger.java
===================================================================
--- labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/logging/jbossatxLogger.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/logging/jbossatxLogger.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -51,7 +51,7 @@
static
{
/** Ensure the properties are loaded before initialising the logger **/
- jtaPropertyManager.getPropertyManager();
+ jtaPropertyManager.init();
logger = LogFactory.getLogNoi18n("com.arjuna.ats.jbossatx.logging.logger");
Added: labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/ConcatenationPrefix.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/ConcatenationPrefix.java (rev 0)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/ConcatenationPrefix.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -0,0 +1,38 @@
+/*
+ * 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.common.internal.util.propertyservice;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+
+/**
+ * Annotation used to set the common name prefix of a list type property.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at redhat.com)
+ */
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.FIELD)
+public @interface ConcatenationPrefix
+{
+ String prefix();
+}
Modified: labs/jbosstm/trunk/qa/tests/product/src/com/arjuna/ats/tools/perftest/product/JBossTSProduct.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/product/src/com/arjuna/ats/tools/perftest/product/JBossTSProduct.java 2009-08-14 14:03:12 UTC (rev 28935)
+++ labs/jbosstm/trunk/qa/tests/product/src/com/arjuna/ats/tools/perftest/product/JBossTSProduct.java 2009-08-14 14:46:26 UTC (rev 28936)
@@ -2,7 +2,6 @@
import com.arjuna.ats.jdbc.TransactionalDriver;
import com.arjuna.ats.arjuna.common.arjPropertyManager;
-import com.arjuna.ats.arjuna.common.Environment;
import com.arjuna.ats.tools.perftest.DbWrapper;
import javax.sql.DataSource;
@@ -39,10 +38,11 @@
protected String getStoreType()
{
- if ("ON".equals(arjPropertyManager.propertyManager.getProperty(Environment.TRANSACTION_LOG)))
+ if (arjPropertyManager.getCoordinatorEnvironmentBean().isTransactionLog()) {
return "LogStore";
+ }
- String st = arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_TYPE, "DefaultStore");
+ String st = arjPropertyManager.getObjectStoreEnvironmentBean().getObjectStoreType();
int ind = st.lastIndexOf('.') + 1;
More information about the jboss-svn-commits
mailing list