[jboss-svn-commits] JBL Code SVN: r29102 - in labs/jbosstm/trunk: ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 28 04:19:04 EDT 2009
Author: jhalliday
Date: 2009-08-28 04:19:03 -0400 (Fri, 28 Aug 2009)
New Revision: 29102
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/recoveryPropertyManager.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/opPropertyManager.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/commonPropertyManager.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/BeanPopulator.java
Log:
Convert module PropertyManagers to hold bean instances centrally rather than cache them locally. JBTM-596
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-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -56,59 +56,16 @@
public static CoreEnvironmentBean getCoreEnvironmentBean()
{
- synchronized (coreEnvironmentBeanInit) {
- if(!coreEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(coreEnvironmentBean, getPropertyManager());
- coreEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return coreEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(CoreEnvironmentBean.class, getPropertyManager());
}
- private static final AtomicBoolean coreEnvironmentBeanInit = new AtomicBoolean(false);
- private static final CoreEnvironmentBean coreEnvironmentBean = new CoreEnvironmentBean();
-
public static CoordinatorEnvironmentBean getCoordinatorEnvironmentBean()
{
- synchronized (coordinatorEnvironmentBeanInit) {
- if(!coordinatorEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(coordinatorEnvironmentBean, getPropertyManager());
- coordinatorEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return coordinatorEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(CoordinatorEnvironmentBean.class, getPropertyManager());
}
- private static final AtomicBoolean coordinatorEnvironmentBeanInit = new AtomicBoolean(false);
- private static final CoordinatorEnvironmentBean coordinatorEnvironmentBean = new CoordinatorEnvironmentBean();
-
public static ObjectStoreEnvironmentBean getObjectStoreEnvironmentBean()
{
- synchronized (objectStoreEnvironmentBeanInit) {
- if(!objectStoreEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(objectStoreEnvironmentBean, getPropertyManager());
- objectStoreEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return objectStoreEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(ObjectStoreEnvironmentBean.class, getPropertyManager());
}
-
- private static final AtomicBoolean objectStoreEnvironmentBeanInit = new AtomicBoolean(false);
- private static final ObjectStoreEnvironmentBean objectStoreEnvironmentBean = new ObjectStoreEnvironmentBean();
-
}
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-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -32,9 +32,6 @@
*/
public class recoveryPropertyManager
{
- private static final AtomicBoolean recoveryEnvironmentBeanInit = new AtomicBoolean(false);
- private static final RecoveryEnvironmentBean recoveryEnvironmentBean = new RecoveryEnvironmentBean();
-
/**
* @deprecated use RecoveryEnvironmentBean instead
* @return
@@ -47,17 +44,6 @@
public static RecoveryEnvironmentBean getRecoveryEnvironmentBean()
{
- synchronized (recoveryEnvironmentBeanInit) {
- if(!recoveryEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(recoveryEnvironmentBean, arjPropertyManager.getPropertyManager());
- recoveryEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return recoveryEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(RecoveryEnvironmentBean.class, getPropertyManager());
}
}
\ No newline at end of file
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-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -54,21 +54,8 @@
return PropertyManagerFactory.getPropertyManagerForModule("txoj", Environment.PROPERTIES_FILE);
}
- private static final AtomicBoolean txojEnvironmentBeanInit = new AtomicBoolean(false);
- private static final TxojEnvironmentBean txojEnvironmentBean = new TxojEnvironmentBean();
-
public static TxojEnvironmentBean getTxojEnvironmentBean()
{
- synchronized (txojEnvironmentBeanInit) {
- if(!txojEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(txojEnvironmentBean, getPropertyManager());
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return txojEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(TxojEnvironmentBean.class, getPropertyManager());
}
}
\ No newline at end of file
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-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -53,21 +53,6 @@
public static JDBCEnvironmentBean getJDBCEnvironmentBean()
{
- synchronized (jdbcEnvironmentBeanInit) {
- if(!jdbcEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(jdbcEnvironmentBean, getPropertyManager());
- jdbcEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return jdbcEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(JDBCEnvironmentBean.class, getPropertyManager());
}
-
- private static final AtomicBoolean jdbcEnvironmentBeanInit = new AtomicBoolean(false);
- private static final JDBCEnvironmentBean jdbcEnvironmentBean = new JDBCEnvironmentBean();
-
}
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-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -54,21 +54,6 @@
public static JTAEnvironmentBean getJTAEnvironmentBean()
{
- synchronized (jtaEnvironmentBeanInit) {
- if(!jtaEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(jtaEnvironmentBean, getPropertyManager());
- jtaEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return jtaEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(JTAEnvironmentBean.class, getPropertyManager());
}
-
- private static final AtomicBoolean jtaEnvironmentBeanInit = new AtomicBoolean(false);
- private static final JTAEnvironmentBean jtaEnvironmentBean = new JTAEnvironmentBean();
-
}
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-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -53,23 +53,8 @@
return PropertyManagerFactory.getPropertyManagerForModule("jts", Environment.PROPERTIES_FILE);
}
-
public static JTSEnvironmentBean getJTSEnvironmentBean()
{
- synchronized (jtsEnvironmentBeanInit) {
- if(!jtsEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(jtsEnvironmentBean, getPropertyManager());
- jtsEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return jtsEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(JTSEnvironmentBean.class, getPropertyManager());
}
-
- private static final AtomicBoolean jtsEnvironmentBeanInit = new AtomicBoolean(false);
- private static final JTSEnvironmentBean jtsEnvironmentBean = new JTSEnvironmentBean();
}
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/opPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/opPropertyManager.java 2009-08-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/opPropertyManager.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -51,21 +51,6 @@
public static OrbPortabilityEnvironmentBean getOrbPortabilityEnvironmentBean()
{
- synchronized (opEnvironmentBeanInit) {
- if(!opEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(opEnvironmentBean, getPropertyManager());
- opEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return opEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(OrbPortabilityEnvironmentBean.class, getPropertyManager());
}
-
- private static final AtomicBoolean opEnvironmentBeanInit = new AtomicBoolean(false);
- private static final OrbPortabilityEnvironmentBean opEnvironmentBean = new OrbPortabilityEnvironmentBean();
-
}
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/commonPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/commonPropertyManager.java 2009-08-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/commonPropertyManager.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -53,40 +53,11 @@
public static LoggingEnvironmentBean getLoggingEnvironmentBean()
{
- synchronized (loggingEnvironmentBeanInit) {
- if(!loggingEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(loggingEnvironmentBean, getPropertyManager());
- loggingEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return loggingEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(LoggingEnvironmentBean.class, getPropertyManager());
}
- private static final AtomicBoolean loggingEnvironmentBeanInit = new AtomicBoolean(false);
- private static final LoggingEnvironmentBean loggingEnvironmentBean = new LoggingEnvironmentBean();
-
-
public static DefaultLogEnvironmentBean getDefaultLogEnvironmentBean()
{
- synchronized (defaultLogEnvironmentBeanInit) {
- if(!defaultLogEnvironmentBeanInit.get()) {
- try {
- BeanPopulator.configureFromPropertyManager(defaultLogEnvironmentBean, getPropertyManager());
- defaultLogEnvironmentBeanInit.set(true);
- } catch(Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- return defaultLogEnvironmentBean;
+ return BeanPopulator.getSingletonInstance(DefaultLogEnvironmentBean.class, getPropertyManager());
}
-
- private static final AtomicBoolean defaultLogEnvironmentBeanInit = new AtomicBoolean(false);
- private static final DefaultLogEnvironmentBean defaultLogEnvironmentBean = new DefaultLogEnvironmentBean();
}
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/BeanPopulator.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/BeanPopulator.java 2009-08-28 06:28:17 UTC (rev 29101)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/BeanPopulator.java 2009-08-28 08:19:03 UTC (rev 29102)
@@ -22,10 +22,9 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Enumeration;
-import java.util.Collections;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import com.arjuna.common.util.propertyservice.PropertyManager;
@@ -37,6 +36,26 @@
*/
public class BeanPopulator
{
+ private static final ConcurrentMap<Class, Object> singletonBeanInstances = new ConcurrentHashMap<Class, Object>();
+
+ public static <T> T getSingletonInstance(Class<T> beanClass, PropertyManager propertyManager) throws RuntimeException {
+
+ // we don't mind sometimes instantiating the bean multiple times,
+ // as long as the duplicates never escape into the outside world.
+ if(!singletonBeanInstances.containsKey(beanClass)) {
+ T bean = null;
+ try {
+ bean = beanClass.newInstance();
+ configureFromPropertyManager(bean, propertyManager);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ singletonBeanInstances.put(beanClass, bean);
+ }
+
+ return (T)singletonBeanInstances.get(beanClass);
+ }
+
/**
* Examine the properties of the provided bean and update them to match the values of the corresponding
* properties in the PropertyManager.
More information about the jboss-svn-commits
mailing list