Author: doogie
Date: Wed Mar 3 22:15:01 2010 New Revision: 918734 URL: http://svn.apache.org/viewvc?rev=918734&view=rev Log: Remove a bunch of static variables, instead using an AtomicReference and an instance of EntityConfigUtil to manage everything. Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityConfigUtil.java Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityConfigUtil.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityConfigUtil.java?rev=918734&r1=918733&r2=918734&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityConfigUtil.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityConfigUtil.java Wed Mar 3 22:15:01 2010 @@ -18,9 +18,9 @@ *******************************************************************************/ package org.ofbiz.entity.config; +import java.util.HashMap; import java.util.Map; - -import javolution.util.FastMap; +import java.util.concurrent.atomic.AtomicReference; import org.ofbiz.base.config.GenericConfigException; import org.ofbiz.base.config.ResourceLoader; @@ -40,24 +40,26 @@ public static final String module = EntityConfigUtil.class.getName(); public static final String ENTITY_ENGINE_XML_FILENAME = "entityengine.xml"; + private static volatile AtomicReference<EntityConfigUtil> configRef = new AtomicReference<EntityConfigUtil>(); + // ========== engine info fields ========== - protected static String txFactoryClass; - protected static String txFactoryUserTxJndiName; - protected static String txFactoryUserTxJndiServerName; - protected static String txFactoryTxMgrJndiName; - protected static String txFactoryTxMgrJndiServerName; - protected static String connFactoryClass; - - protected static Map<String, ResourceLoaderInfo> resourceLoaderInfos = FastMap.newInstance(); - protected static Map<String, DelegatorInfo> delegatorInfos = FastMap.newInstance(); - protected static Map<String, EntityModelReaderInfo> entityModelReaderInfos = FastMap.newInstance(); - protected static Map<String, EntityGroupReaderInfo> entityGroupReaderInfos = FastMap.newInstance(); - protected static Map<String, EntityEcaReaderInfo> entityEcaReaderInfos = FastMap.newInstance(); - protected static Map<String, EntityDataReaderInfo> entityDataReaderInfos = FastMap.newInstance(); - protected static Map<String, FieldTypeInfo> fieldTypeInfos = FastMap.newInstance(); - protected static Map<String, DatasourceInfo> datasourceInfos = FastMap.newInstance(); + private final String txFactoryClass; + private final String txFactoryUserTxJndiName; + private final String txFactoryUserTxJndiServerName; + private final String txFactoryTxMgrJndiName; + private final String txFactoryTxMgrJndiServerName; + private final String connFactoryClass; + + private final Map<String, ResourceLoaderInfo> resourceLoaderInfos = new HashMap<String, ResourceLoaderInfo>(); + private final Map<String, DelegatorInfo> delegatorInfos = new HashMap<String, DelegatorInfo>(); + private final Map<String, EntityModelReaderInfo> entityModelReaderInfos = new HashMap<String, EntityModelReaderInfo>(); + private final Map<String, EntityGroupReaderInfo> entityGroupReaderInfos = new HashMap<String, EntityGroupReaderInfo>(); + private final Map<String, EntityEcaReaderInfo> entityEcaReaderInfos = new HashMap<String, EntityEcaReaderInfo>(); + private final Map<String, EntityDataReaderInfo> entityDataReaderInfos = new HashMap<String, EntityDataReaderInfo>(); + private final Map<String, FieldTypeInfo> fieldTypeInfos = new HashMap<String, FieldTypeInfo>(); + private final Map<String, DatasourceInfo> datasourceInfos = new HashMap<String, DatasourceInfo>(); - protected static Element getXmlRootElement() throws GenericEntityConfException { + private static Element getXmlRootElement() throws GenericEntityConfException { try { return ResourceLoader.getXmlRootElement(ENTITY_ENGINE_XML_FILENAME); } catch (GenericConfigException e) { @@ -65,7 +67,7 @@ } } - protected static Document getXmlDocument() throws GenericEntityConfException { + private static Document getXmlDocument() throws GenericEntityConfException { try { return ResourceLoader.getXmlDocument(ENTITY_ENGINE_XML_FILENAME); } catch (GenericConfigException e) { @@ -81,7 +83,7 @@ } } - public static synchronized void reinitialize() throws GenericEntityException { + public static void reinitialize() throws GenericEntityException { try { ResourceLoader.invalidateDocument(ENTITY_ENGINE_XML_FILENAME); initialize(getXmlRootElement()); @@ -91,6 +93,10 @@ } public static void initialize(Element rootElement) throws GenericEntityException { + configRef.set(new EntityConfigUtil(rootElement)); + } + + private EntityConfigUtil(Element rootElement) throws GenericEntityException { // load the transaction factory Element transactionFactoryElement = UtilXml.firstChildElement(rootElement, "transaction-factory"); if (transactionFactoryElement == null) { @@ -177,62 +183,62 @@ } public static String getTxFactoryClass() { - return txFactoryClass; + return configRef.get().txFactoryClass; } public static String getTxFactoryUserTxJndiName() { - return txFactoryUserTxJndiName; + return configRef.get().txFactoryUserTxJndiName; } public static String getTxFactoryUserTxJndiServerName() { - return txFactoryUserTxJndiServerName; + return configRef.get().txFactoryUserTxJndiServerName; } public static String getTxFactoryTxMgrJndiName() { - return txFactoryTxMgrJndiName; + return configRef.get().txFactoryTxMgrJndiName; } public static String getTxFactoryTxMgrJndiServerName() { - return txFactoryTxMgrJndiServerName; + return configRef.get().txFactoryTxMgrJndiServerName; } public static String getConnectionFactoryClass() { - return connFactoryClass; + return configRef.get().connFactoryClass; } public static ResourceLoaderInfo getResourceLoaderInfo(String name) { - return resourceLoaderInfos.get(name); + return configRef.get().resourceLoaderInfos.get(name); } public static DelegatorInfo getDelegatorInfo(String name) { - return delegatorInfos.get(name); + return configRef.get().delegatorInfos.get(name); } public static EntityModelReaderInfo getEntityModelReaderInfo(String name) { - return entityModelReaderInfos.get(name); + return configRef.get().entityModelReaderInfos.get(name); } public static EntityGroupReaderInfo getEntityGroupReaderInfo(String name) { - return entityGroupReaderInfos.get(name); + return configRef.get().entityGroupReaderInfos.get(name); } public static EntityEcaReaderInfo getEntityEcaReaderInfo(String name) { - return entityEcaReaderInfos.get(name); + return configRef.get().entityEcaReaderInfos.get(name); } public static EntityDataReaderInfo getEntityDataReaderInfo(String name) { - return entityDataReaderInfos.get(name); + return configRef.get().entityDataReaderInfos.get(name); } public static FieldTypeInfo getFieldTypeInfo(String name) { - return fieldTypeInfos.get(name); + return configRef.get().fieldTypeInfos.get(name); } public static DatasourceInfo getDatasourceInfo(String name) { - return datasourceInfos.get(name); + return configRef.get().datasourceInfos.get(name); } public static Map<String, DatasourceInfo> getDatasourceInfos() { - return datasourceInfos; + return configRef.get().datasourceInfos; } } |
Free forum by Nabble | Edit this page |