You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2013/06/07 17:18:27 UTC
svn commit: r1490678 - in /ofbiz/trunk/framework:
entity/src/org/ofbiz/entity/config/ entity/src/org/ofbiz/entity/config/model/
entity/src/org/ofbiz/entity/model/ entity/src/org/ofbiz/entity/util/
entityext/src/org/ofbiz/entityext/eca/
Author: adrianc
Date: Fri Jun 7 15:18:27 2013
New Revision: 1490678
URL: http://svn.apache.org/r1490678
Log:
Second pass at removing cached DOM tree code from EntityConfigUtil.java. I converted some of the code to use the new thread-safe models.
Removed:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityDataReaderInfo.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityEcaReaderInfo.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityGroupReaderInfo.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityModelReaderInfo.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/FieldTypeInfo.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/ResourceLoaderInfo.java
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/EntityConfigUtil.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/model/EntityConfig.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelGroupReader.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelReader.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataLoader.java
ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.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=1490678&r1=1490677&r2=1490678&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 Fri Jun 7 15:18:27 2013
@@ -26,7 +26,6 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import org.ofbiz.base.config.GenericConfigException;
-import org.ofbiz.base.config.ResourceLoader;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilProperties;
import org.ofbiz.base.util.UtilURL;
@@ -37,7 +36,13 @@ import org.ofbiz.entity.GenericEntityCon
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.config.model.Datasource;
import org.ofbiz.entity.config.model.EntityConfig;
+import org.ofbiz.entity.config.model.EntityDataReader;
+import org.ofbiz.entity.config.model.EntityEcaReader;
+import org.ofbiz.entity.config.model.EntityGroupReader;
+import org.ofbiz.entity.config.model.EntityModelReader;
+import org.ofbiz.entity.config.model.FieldType;
import org.ofbiz.entity.config.model.InlineJdbc;
+import org.ofbiz.entity.config.model.ResourceLoader;
import org.ofbiz.entity.jdbc.ConnectionFactory;
import org.ofbiz.entity.transaction.TransactionFactory;
import org.w3c.dom.Document;
@@ -112,17 +117,11 @@ public class EntityConfigUtil {
private static volatile AtomicReference<EntityConfigUtil> configRef = new AtomicReference<EntityConfigUtil>();
// ========== engine info fields ==========
- 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 static Element getXmlRootElement() throws GenericEntityConfException {
try {
- return ResourceLoader.getXmlRootElement(ENTITY_ENGINE_XML_FILENAME);
+ return org.ofbiz.base.config.ResourceLoader.getXmlRootElement(ENTITY_ENGINE_XML_FILENAME);
} catch (GenericConfigException e) {
throw new GenericEntityConfException("Could not get entity engine XML root element", e);
}
@@ -138,7 +137,7 @@ public class EntityConfigUtil {
public static void reinitialize() throws GenericEntityException {
try {
- ResourceLoader.invalidateDocument(ENTITY_ENGINE_XML_FILENAME);
+ org.ofbiz.base.config.ResourceLoader.invalidateDocument(ENTITY_ENGINE_XML_FILENAME);
initialize(getXmlRootElement());
} catch (Exception e) {
throw new GenericEntityException("Error reloading entity config XML file " + ENTITY_ENGINE_XML_FILENAME, e);
@@ -150,49 +149,11 @@ public class EntityConfigUtil {
}
private EntityConfigUtil(Element rootElement) throws GenericEntityException {
- // not load all of the maps...
-
- // resource-loader - resourceLoaderInfos
- for (Element curElement: UtilXml.childElementList(rootElement, "resource-loader")) {
- ResourceLoaderInfo resourceLoaderInfo = new ResourceLoaderInfo(curElement);
- resourceLoaderInfos.put(resourceLoaderInfo.name, resourceLoaderInfo);
- }
-
// delegator - delegatorInfos
for (Element curElement: UtilXml.childElementList(rootElement, "delegator")) {
DelegatorInfo delegatorInfo = new DelegatorInfo(curElement);
delegatorInfos.put(delegatorInfo.name, delegatorInfo);
}
-
- // entity-model-reader - entityModelReaderInfos
- for (Element curElement: UtilXml.childElementList(rootElement, "entity-model-reader")) {
- EntityModelReaderInfo entityModelReaderInfo = new EntityModelReaderInfo(curElement);
- entityModelReaderInfos.put(entityModelReaderInfo.name, entityModelReaderInfo);
- }
-
- // entity-group-reader - entityGroupReaderInfos
- for (Element curElement: UtilXml.childElementList(rootElement, "entity-group-reader")) {
- EntityGroupReaderInfo entityGroupReaderInfo = new EntityGroupReaderInfo(curElement);
- entityGroupReaderInfos.put(entityGroupReaderInfo.name, entityGroupReaderInfo);
- }
-
- // entity-eca-reader - entityEcaReaderInfos
- for (Element curElement: UtilXml.childElementList(rootElement, "entity-eca-reader")) {
- EntityEcaReaderInfo entityEcaReaderInfo = new EntityEcaReaderInfo(curElement);
- entityEcaReaderInfos.put(entityEcaReaderInfo.name, entityEcaReaderInfo);
- }
-
- // entity-data-reader - entityDataReaderInfos
- for (Element curElement: UtilXml.childElementList(rootElement, "entity-data-reader")) {
- EntityDataReaderInfo entityDataReaderInfo = new EntityDataReaderInfo(curElement);
- entityDataReaderInfos.put(entityDataReaderInfo.name, entityDataReaderInfo);
- }
-
- // field-type - fieldTypeInfos
- for (Element curElement: UtilXml.childElementList(rootElement, "field-type")) {
- FieldTypeInfo fieldTypeInfo = new FieldTypeInfo(curElement);
- fieldTypeInfos.put(fieldTypeInfo.name, fieldTypeInfo);
- }
}
public static String getTxFactoryClass() throws GenericEntityConfException {
@@ -227,32 +188,32 @@ public class EntityConfigUtil {
return getEntityConfig().getConnectionFactory().getClassName();
}
- public static ResourceLoaderInfo getResourceLoaderInfo(String name) {
- return configRef.get().resourceLoaderInfos.get(name);
+ public static ResourceLoader getResourceLoader(String name) throws GenericEntityConfException {
+ return getEntityConfig().getResourceLoader(name);
}
public static DelegatorInfo getDelegatorInfo(String name) {
return configRef.get().delegatorInfos.get(name);
}
- public static EntityModelReaderInfo getEntityModelReaderInfo(String name) {
- return configRef.get().entityModelReaderInfos.get(name);
+ public static EntityModelReader getEntityModelReader(String name) throws GenericEntityConfException {
+ return getEntityConfig().getEntityModelReader(name);
}
- public static EntityGroupReaderInfo getEntityGroupReaderInfo(String name) {
- return configRef.get().entityGroupReaderInfos.get(name);
+ public static EntityGroupReader getEntityGroupReader(String name) throws GenericEntityConfException {
+ return getEntityConfig().getEntityGroupReader(name);
}
- public static EntityEcaReaderInfo getEntityEcaReaderInfo(String name) {
- return configRef.get().entityEcaReaderInfos.get(name);
+ public static EntityEcaReader getEntityEcaReader(String name) throws GenericEntityConfException {
+ return getEntityConfig().getEntityEcaReader(name);
}
- public static EntityDataReaderInfo getEntityDataReaderInfo(String name) {
- return configRef.get().entityDataReaderInfos.get(name);
+ public static EntityDataReader getEntityDataReader(String name) throws GenericEntityConfException {
+ return getEntityConfig().getEntityDataReader(name);
}
- public static FieldTypeInfo getFieldTypeInfo(String name) {
- return configRef.get().fieldTypeInfos.get(name);
+ public static FieldType getFieldType(String name) throws GenericEntityConfException {
+ return getEntityConfig().getFieldType(name);
}
public static Datasource getDatasource(String name) {
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/model/EntityConfig.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/model/EntityConfig.java?rev=1490678&r1=1490677&r2=1490678&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/model/EntityConfig.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/config/model/EntityConfig.java Fri Jun 7 15:18:27 2013
@@ -38,15 +38,21 @@ import org.w3c.dom.Element;
public final class EntityConfig {
private final List<ResourceLoader> resourceLoaderList; // <resource-loader>
+ private final Map<String, ResourceLoader> resourceLoaderMap; // <resource-loader>
private final TransactionFactory transactionFactory; // <transaction-factory>
private final ConnectionFactory connectionFactory; // <connection-factory>
private final DebugXaResources debugXaResources; // <debug-xa-resources>
private final List<Delegator> delegatorList; // <delegator>
private final List<EntityModelReader> entityModelReaderList; // <entity-model-reader>
+ private final Map<String, EntityModelReader> entityModelReaderMap; // <entity-model-reader>
private final List<EntityGroupReader> entityGroupReaderList; // <entity-group-reader>
+ private final Map<String, EntityGroupReader> entityGroupReaderMap; // <entity-group-reader>
private final List<EntityEcaReader> entityEcaReaderList; // <entity-eca-reader>
+ private final Map<String, EntityEcaReader> entityEcaReaderMap; // <entity-eca-reader>
private final List<EntityDataReader> entityDataReaderList; // <entity-data-reader>
+ private final Map<String, EntityDataReader> entityDataReaderMap; // <entity-data-reader>
private final List<FieldType> fieldTypeList; // <field-type>
+ private final Map<String, FieldType> fieldTypeMap; // <field-type>
private final List<Datasource> datasourceList; // <datasource>
private final Map<String, Datasource> datasourceMap;
@@ -56,10 +62,14 @@ public final class EntityConfig {
throw new GenericEntityConfException("<" + element.getNodeName() + "> element child elements <resource-loader> are missing");
} else {
List<ResourceLoader> resourceLoaderList = new ArrayList<ResourceLoader>(resourceLoaderElementList.size());
+ Map<String, ResourceLoader> resourceLoaderMap = new HashMap<String, ResourceLoader>();
for (Element resourceLoaderElement : resourceLoaderElementList) {
- resourceLoaderList.add(new ResourceLoader(resourceLoaderElement));
+ ResourceLoader resourceLoader = new ResourceLoader(resourceLoaderElement);
+ resourceLoaderList.add(resourceLoader);
+ resourceLoaderMap.put(resourceLoader.getName(), resourceLoader);
}
this.resourceLoaderList = Collections.unmodifiableList(resourceLoaderList);
+ this.resourceLoaderMap = Collections.unmodifiableMap(resourceLoaderMap);
}
Element transactionFactoryElement = UtilXml.firstChildElement(element, "transaction-factory");
if (transactionFactoryElement == null) {
@@ -94,50 +104,72 @@ public final class EntityConfig {
throw new GenericEntityConfException("<" + element.getNodeName() + "> element child elements <entity-model-reader> are missing");
} else {
List<EntityModelReader> entityModelReaderList = new ArrayList<EntityModelReader>(entityModelReaderElementList.size());
+ Map<String, EntityModelReader> entityModelReaderMap = new HashMap<String, EntityModelReader>();
for (Element entityModelReaderElement : entityModelReaderElementList) {
- entityModelReaderList.add(new EntityModelReader(entityModelReaderElement));
+ EntityModelReader entityModelReader = new EntityModelReader(entityModelReaderElement);
+ entityModelReaderList.add(entityModelReader);
+ entityModelReaderMap.put(entityModelReader.getName(), entityModelReader);
}
this.entityModelReaderList = Collections.unmodifiableList(entityModelReaderList);
+ this.entityModelReaderMap = Collections.unmodifiableMap(entityModelReaderMap);
}
List<? extends Element> entityGroupReaderElementList = UtilXml.childElementList(element, "entity-group-reader");
if (entityGroupReaderElementList.isEmpty()) {
throw new GenericEntityConfException("<" + element.getNodeName() + "> element child elements <entity-group-reader> are missing");
} else {
List<EntityGroupReader> entityGroupReaderList = new ArrayList<EntityGroupReader>(entityGroupReaderElementList.size());
+ Map<String, EntityGroupReader> entityGroupReaderMap = new HashMap<String, EntityGroupReader>();
for (Element entityGroupReaderElement : entityGroupReaderElementList) {
- entityGroupReaderList.add(new EntityGroupReader(entityGroupReaderElement));
+ EntityGroupReader entityGroupReader = new EntityGroupReader(entityGroupReaderElement);
+ entityGroupReaderList.add(entityGroupReader);
+ entityGroupReaderMap.put(entityGroupReader.getName(), entityGroupReader);
}
this.entityGroupReaderList = Collections.unmodifiableList(entityGroupReaderList);
+ this.entityGroupReaderMap = Collections.unmodifiableMap(entityGroupReaderMap);
}
List<? extends Element> entityEcaReaderElementList = UtilXml.childElementList(element, "entity-eca-reader");
if (entityEcaReaderElementList.isEmpty()) {
this.entityEcaReaderList = Collections.emptyList();
+ this.entityEcaReaderMap = Collections.emptyMap();
} else {
List<EntityEcaReader> entityEcaReaderList = new ArrayList<EntityEcaReader>(entityEcaReaderElementList.size());
+ Map<String, EntityEcaReader> entityEcaReaderMap = new HashMap<String, EntityEcaReader>();
for (Element entityEcaReaderElement : entityEcaReaderElementList) {
+ EntityEcaReader entityEcaReader = new EntityEcaReader(entityEcaReaderElement);
entityEcaReaderList.add(new EntityEcaReader(entityEcaReaderElement));
+ entityEcaReaderMap.put(entityEcaReader.getName(), entityEcaReader);
}
this.entityEcaReaderList = Collections.unmodifiableList(entityEcaReaderList);
+ this.entityEcaReaderMap = Collections.unmodifiableMap(entityEcaReaderMap);
}
List<? extends Element> entityDataReaderElementList = UtilXml.childElementList(element, "entity-data-reader");
if (entityDataReaderElementList.isEmpty()) {
this.entityDataReaderList = Collections.emptyList();
+ this.entityDataReaderMap = Collections.emptyMap();
} else {
List<EntityDataReader> entityDataReaderList = new ArrayList<EntityDataReader>(entityDataReaderElementList.size());
+ Map<String, EntityDataReader> entityDataReaderMap = new HashMap<String, EntityDataReader>();
for (Element entityDataReaderElement : entityDataReaderElementList) {
- entityDataReaderList.add(new EntityDataReader(entityDataReaderElement));
+ EntityDataReader entityDataReader = new EntityDataReader(entityDataReaderElement);
+ entityDataReaderList.add(entityDataReader);
+ entityDataReaderMap.put(entityDataReader.getName(), entityDataReader);
}
this.entityDataReaderList = Collections.unmodifiableList(entityDataReaderList);
+ this.entityDataReaderMap = Collections.unmodifiableMap(entityDataReaderMap);
}
List<? extends Element> fieldTypeElementList = UtilXml.childElementList(element, "field-type");
if (fieldTypeElementList.isEmpty()) {
throw new GenericEntityConfException("<" + element.getNodeName() + "> element child elements <field-type> are missing");
} else {
List<FieldType> fieldTypeList = new ArrayList<FieldType>(fieldTypeElementList.size());
+ Map<String, FieldType> fieldTypeMap = new HashMap<String, FieldType>();
for (Element fieldTypeElement : fieldTypeElementList) {
- fieldTypeList.add(new FieldType(fieldTypeElement));
+ FieldType fieldType = new FieldType(fieldTypeElement);
+ fieldTypeList.add(fieldType);
+ fieldTypeMap.put(fieldType.getName(), fieldType);
}
this.fieldTypeList = Collections.unmodifiableList(fieldTypeList);
+ this.fieldTypeMap = Collections.unmodifiableMap(fieldTypeMap);
}
List<? extends Element> datasourceElementList = UtilXml.childElementList(element, "datasource");
if (datasourceElementList.isEmpty()) {
@@ -155,6 +187,11 @@ public final class EntityConfig {
}
}
+ /** Returns the specified <code><resource-loader></code> child element, or <code>null</code> if no child element was found. */
+ public ResourceLoader getResourceLoader(String name) {
+ return this.resourceLoaderMap.get(name);
+ }
+
/** Returns the <code><resource-loader></code> child elements. */
public List<ResourceLoader> getResourceLoaderList() {
return this.resourceLoaderList;
@@ -180,26 +217,51 @@ public final class EntityConfig {
return this.delegatorList;
}
+ /** Returns the specified <code><entity-model-reader></code> child element, or <code>null</code> if no child element was found. */
+ public EntityModelReader getEntityModelReader(String name) {
+ return this.entityModelReaderMap.get(name);
+ }
+
/** Returns the <code><entity-model-reader></code> child elements. */
public List<EntityModelReader> getEntityModelReaderList() {
return this.entityModelReaderList;
}
+ /** Returns the specified <code><entity-group-reader></code> child element, or <code>null</code> if no child element was found. */
+ public EntityGroupReader getEntityGroupReader(String name) {
+ return this.entityGroupReaderMap.get(name);
+ }
+
/** Returns the <code><entity-group-reader></code> child elements. */
public List<EntityGroupReader> getEntityGroupReaderList() {
return this.entityGroupReaderList;
}
+ /** Returns the specified <code><entity-eca-reader></code> child element, or <code>null</code> if no child element was found. */
+ public EntityEcaReader getEntityEcaReader(String name) {
+ return this.entityEcaReaderMap.get(name);
+ }
+
/** Returns the <code><entity-eca-reader></code> child elements. */
public List<EntityEcaReader> getEntityEcaReaderList() {
return this.entityEcaReaderList;
}
+ /** Returns the specified <code><entity-data-reader></code> child element, or <code>null</code> if no child element was found. */
+ public EntityDataReader getEntityDataReader(String name) {
+ return this.entityDataReaderMap.get(name);
+ }
+
/** Returns the <code><entity-data-reader></code> child elements. */
public List<EntityDataReader> getEntityDataReaderList() {
return this.entityDataReaderList;
}
+ /** Returns the specified <code><field-type></code> child element, or <code>null</code> if no child element was found. */
+ public FieldType getFieldType(String name) {
+ return this.fieldTypeMap.get(name);
+ }
+
/** Returns the <code><field-type></code> child elements. */
public List<FieldType> getFieldTypeList() {
return this.fieldTypeList;
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java?rev=1490678&r1=1490677&r2=1490678&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelFieldTypeReader.java Fri Jun 7 15:18:27 2013
@@ -32,9 +32,10 @@ import org.ofbiz.base.util.UtilTimer;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.base.util.UtilXml;
import org.ofbiz.base.util.cache.UtilCache;
-import org.ofbiz.entity.config.model.Datasource;
+import org.ofbiz.entity.GenericEntityConfException;
import org.ofbiz.entity.config.EntityConfigUtil;
-import org.ofbiz.entity.config.FieldTypeInfo;
+import org.ofbiz.entity.config.model.Datasource;
+import org.ofbiz.entity.config.model.FieldType;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -72,11 +73,16 @@ public class ModelFieldTypeReader implem
String tempModelName = datasourceInfo.getFieldTypeName();
ModelFieldTypeReader reader = readers.get(tempModelName);
while (reader == null) {
- FieldTypeInfo fieldTypeInfo = EntityConfigUtil.getFieldTypeInfo(tempModelName);
+ FieldType fieldTypeInfo = null;
+ try {
+ fieldTypeInfo = EntityConfigUtil.getFieldType(tempModelName);
+ } catch (GenericEntityConfException e) {
+ Debug.logWarning(e, "Exception thrown while getting field type config: ", module);
+ }
if (fieldTypeInfo == null) {
throw new IllegalArgumentException("Could not find a field-type definition with name \"" + tempModelName + "\"");
}
- ResourceHandler fieldTypeResourceHandler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, fieldTypeInfo.resourceElement);
+ ResourceHandler fieldTypeResourceHandler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, fieldTypeInfo.getLoader(), fieldTypeInfo.getLocation());
UtilTimer utilTimer = new UtilTimer();
utilTimer.timerString("[ModelFieldTypeReader.getModelFieldTypeReader] Reading field types from " + fieldTypeResourceHandler.getLocation());
Document document = null;
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelGroupReader.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelGroupReader.java?rev=1490678&r1=1490677&r2=1490678&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelGroupReader.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelGroupReader.java Fri Jun 7 15:18:27 2013
@@ -39,7 +39,8 @@ import org.ofbiz.base.util.cache.UtilCac
import org.ofbiz.entity.GenericEntityConfException;
import org.ofbiz.entity.config.DelegatorInfo;
import org.ofbiz.entity.config.EntityConfigUtil;
-import org.ofbiz.entity.config.EntityGroupReaderInfo;
+import org.ofbiz.entity.config.model.EntityGroupReader;
+import org.ofbiz.entity.config.model.Resource;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -78,13 +79,13 @@ public class ModelGroupReader implements
public ModelGroupReader(String modelName) throws GenericEntityConfException {
this.modelName = modelName;
- EntityGroupReaderInfo entityGroupReaderInfo = EntityConfigUtil.getEntityGroupReaderInfo(modelName);
+ EntityGroupReader entityGroupReaderInfo = EntityConfigUtil.getEntityGroupReader(modelName);
if (entityGroupReaderInfo == null) {
throw new GenericEntityConfException("Cound not find an entity-group-reader with the name " + modelName);
}
- for (Element resourceElement: entityGroupReaderInfo.resourceElements) {
- this.entityGroupResourceHandlers.add(new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, resourceElement));
+ for (Resource resourceElement: entityGroupReaderInfo.getResourceList()) {
+ this.entityGroupResourceHandlers.add(new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, resourceElement.getLoader(), resourceElement.getLocation()));
}
// get all of the component resource group stuff, ie specified in each ofbiz-component.xml file
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelReader.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelReader.java?rev=1490678&r1=1490677&r2=1490678&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelReader.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelReader.java Fri Jun 7 15:18:27 2013
@@ -19,13 +19,13 @@
package org.ofbiz.entity.model;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
@@ -44,7 +44,8 @@ import org.ofbiz.entity.GenericEntityExc
import org.ofbiz.entity.GenericModelException;
import org.ofbiz.entity.config.DelegatorInfo;
import org.ofbiz.entity.config.EntityConfigUtil;
-import org.ofbiz.entity.config.EntityModelReaderInfo;
+import org.ofbiz.entity.config.model.EntityModelReader;
+import org.ofbiz.entity.config.model.Resource;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -103,15 +104,15 @@ public class ModelReader implements Seri
resourceHandlerEntities = new HashMap<ResourceHandler, Collection<String>>();
entityResourceHandlerMap = new HashMap<String, ResourceHandler>();
- EntityModelReaderInfo entityModelReaderInfo = EntityConfigUtil.getEntityModelReaderInfo(modelName);
+ EntityModelReader entityModelReaderInfo = EntityConfigUtil.getEntityModelReader(modelName);
if (entityModelReaderInfo == null) {
throw new GenericEntityConfException("Cound not find an entity-model-reader with the name " + modelName);
}
// get all of the main resource model stuff, ie specified in the entityengine.xml file
- for (Element resourceElement: entityModelReaderInfo.resourceElements) {
- ResourceHandler handler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, resourceElement);
+ for (Resource resourceElement : entityModelReaderInfo.getResourceList()) {
+ ResourceHandler handler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, resourceElement.getLoader(), resourceElement.getLocation());
entityResourceHandlers.add(handler);
}
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataLoader.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataLoader.java?rev=1490678&r1=1490677&r2=1490678&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataLoader.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityDataLoader.java Fri Jun 7 15:18:27 2013
@@ -33,11 +33,15 @@ import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilProperties;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.GenericEntityConfException;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.config.EntityConfigUtil;
-import org.ofbiz.entity.config.EntityDataReaderInfo;
-import org.ofbiz.entity.config.model.*;
+import org.ofbiz.entity.config.model.Datasource;
+import org.ofbiz.entity.config.model.EntityDataReader;
+import org.ofbiz.entity.config.model.ReadData;
+import org.ofbiz.entity.config.model.Resource;
+import org.ofbiz.entity.config.model.SqlLoadPath;
import org.ofbiz.entity.model.ModelEntity;
import org.ofbiz.entity.model.ModelReader;
import org.ofbiz.entity.model.ModelUtil;
@@ -107,16 +111,15 @@ public class EntityDataLoader {
}
// get all of the main resource model stuff, ie specified in the entityengine.xml file
- EntityDataReaderInfo entityDataReaderInfo = EntityConfigUtil.getEntityDataReaderInfo(readerName);
-
- if (entityDataReaderInfo == null) {
- Debug.logInfo("Could not find entity-data-reader named: " + readerName + ". Creating a new reader with this name. ", module);
- entityDataReaderInfo = new EntityDataReaderInfo(readerName);
+ EntityDataReader entityDataReaderInfo = null;
+ try {
+ entityDataReaderInfo = EntityConfigUtil.getEntityDataReader(readerName);
+ } catch (GenericEntityConfException e) {
+ Debug.logWarning(e, "Exception thrown while getting entity data reader config: ", module);
}
-
if (entityDataReaderInfo != null) {
- for (Element resourceElement: entityDataReaderInfo.resourceElements) {
- ResourceHandler handler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, resourceElement);
+ for (Resource resourceElement: entityDataReaderInfo.getResourceList()) {
+ ResourceHandler handler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, resourceElement.getLoader(), resourceElement.getLocation());
try {
urlList.add(handler.getURL());
} catch (GenericConfigException e) {
Modified: ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.java?rev=1490678&r1=1490677&r2=1490678&view=diff
==============================================================================
--- ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.java (original)
+++ ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaUtil.java Fri Jun 7 15:18:27 2013
@@ -37,9 +37,10 @@ import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilXml;
import org.ofbiz.base.util.cache.UtilCache;
import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.GenericEntityConfException;
import org.ofbiz.entity.config.DelegatorInfo;
import org.ofbiz.entity.config.EntityConfigUtil;
-import org.ofbiz.entity.config.EntityEcaReaderInfo;
+import org.ofbiz.entity.config.model.*;
import org.w3c.dom.Element;
/**
@@ -71,15 +72,20 @@ public class EntityEcaUtil {
}
protected static void readConfig(String entityEcaReaderName, Map<String, Map<String, List<EntityEcaRule>>> ecaCache) {
- EntityEcaReaderInfo entityEcaReaderInfo = EntityConfigUtil.getEntityEcaReaderInfo(entityEcaReaderName);
+ EntityEcaReader entityEcaReaderInfo = null;
+ try {
+ entityEcaReaderInfo = EntityConfigUtil.getEntityEcaReader(entityEcaReaderName);
+ } catch (GenericEntityConfException e) {
+ Debug.logError(e, "Exception thrown while getting entity-eca-reader config with name: " + entityEcaReaderName, module);
+ }
if (entityEcaReaderInfo == null) {
Debug.logError("BAD ERROR: Could not find entity-eca-reader config with name: " + entityEcaReaderName, module);
return;
}
List<Future<List<EntityEcaRule>>> futures = FastList.newInstance();
- for (Element eecaResourceElement: entityEcaReaderInfo.resourceElements) {
- ResourceHandler handler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, eecaResourceElement);
+ for (Resource eecaResourceElement : entityEcaReaderInfo.getResourceList()) {
+ ResourceHandler handler = new MainResourceHandler(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME, eecaResourceElement.getLoader(), eecaResourceElement.getLocation());
futures.add(ExecutionPool.GLOBAL_EXECUTOR.submit(createEcaLoaderCallable(handler)));
}