📄 entityconfigutil.java
字号:
/*
* $Id: EntityConfigUtil.java,v 1.5 2003/08/20 23:00:53 jonesde Exp $
*
* Copyright (c) 2001, 2002 The Open For Business Project - www.ofbiz.org
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
* OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
package org.ofbiz.entity.config;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.ofbiz.base.config.GenericConfigException;
import org.ofbiz.base.config.ResourceLoader;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.base.util.UtilXml;
import org.ofbiz.entity.GenericEntityConfException;
import org.ofbiz.entity.GenericEntityException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* Misc. utility method for dealing with the entityengine.xml file
*
* @author <a href="mailto:jonesde@ofbiz.org">David E. Jones</a>
* @author <a href="mailto:jaz@ofbiz.org">Andy Zeneski</a>
* @version $Revision: 1.5 $
* @since 2.0
*/
public class EntityConfigUtil {
public static final String module = EntityConfigUtil.class.getName();
public static final String ENTITY_ENGINE_XML_FILENAME = "entityengine.xml";
// ========== 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 Map resourceLoaderInfos = new HashMap();
protected static Map delegatorInfos = new HashMap();
protected static Map entityModelReaderInfos = new HashMap();
protected static Map entityGroupReaderInfos = new HashMap();
protected static Map entityEcaReaderInfos = new HashMap();
protected static Map entityDataReaderInfos = new HashMap();
protected static Map fieldTypeInfos = new HashMap();
protected static Map datasourceInfos = new HashMap();
protected static Element getXmlRootElement() throws GenericEntityConfException {
try {
return ResourceLoader.getXmlRootElement(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME);
} catch (GenericConfigException e) {
throw new GenericEntityConfException("Could not get entity engine XML root element", e);
}
}
protected static Document getXmlDocument() throws GenericEntityConfException {
try {
return ResourceLoader.getXmlDocument(EntityConfigUtil.ENTITY_ENGINE_XML_FILENAME);
} catch (GenericConfigException e) {
throw new GenericEntityConfException("Could not get entity engine XML document", e);
}
}
static {
try {
initialize(getXmlRootElement());
} catch (Exception e) {
Debug.logError(e, "Error loading entity config XML file " + ENTITY_ENGINE_XML_FILENAME, module);
}
}
public static synchronized void reinitialize() throws GenericEntityException {
try {
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);
}
}
public static void initialize(Element rootElement) throws GenericEntityException {
Element transactionFactoryElement = UtilXml.firstChildElement(rootElement, "transaction-factory");
if (transactionFactoryElement == null) {
throw new GenericEntityConfException("ERROR: no transaction-factory definition was found in " + ENTITY_ENGINE_XML_FILENAME);
}
EntityConfigUtil.txFactoryClass = transactionFactoryElement.getAttribute("class");
Element userTxJndiElement = UtilXml.firstChildElement(transactionFactoryElement, "user-transaction-jndi");
if (userTxJndiElement != null) {
EntityConfigUtil.txFactoryUserTxJndiName = userTxJndiElement.getAttribute("jndi-name");
EntityConfigUtil.txFactoryUserTxJndiServerName = userTxJndiElement.getAttribute("jndi-server-name");
} else {
EntityConfigUtil.txFactoryUserTxJndiName = null;
EntityConfigUtil.txFactoryUserTxJndiServerName = null;
}
Element txMgrJndiElement = UtilXml.firstChildElement(transactionFactoryElement, "transaction-manager-jndi");
if (txMgrJndiElement != null) {
EntityConfigUtil.txFactoryTxMgrJndiName = txMgrJndiElement.getAttribute("jndi-name");
EntityConfigUtil.txFactoryTxMgrJndiServerName = txMgrJndiElement.getAttribute("jndi-server-name");
} else {
EntityConfigUtil.txFactoryTxMgrJndiName = null;
EntityConfigUtil.txFactoryTxMgrJndiServerName = null;
}
// not load all of the maps...
List childElements = null;
Iterator elementIter = null;
// resource-loader - resourceLoaderInfos
childElements = UtilXml.childElementList(rootElement, "resource-loader");
elementIter = childElements.iterator();
while (elementIter.hasNext()) {
Element curElement = (Element) elementIter.next();
EntityConfigUtil.ResourceLoaderInfo resourceLoaderInfo = new EntityConfigUtil.ResourceLoaderInfo(curElement);
EntityConfigUtil.resourceLoaderInfos.put(resourceLoaderInfo.name, resourceLoaderInfo);
}
// delegator - delegatorInfos
childElements = UtilXml.childElementList(rootElement, "delegator");
elementIter = childElements.iterator();
while (elementIter.hasNext()) {
Element curElement = (Element) elementIter.next();
EntityConfigUtil.DelegatorInfo delegatorInfo = new EntityConfigUtil.DelegatorInfo(curElement);
EntityConfigUtil.delegatorInfos.put(delegatorInfo.name, delegatorInfo);
}
// entity-model-reader - entityModelReaderInfos
childElements = UtilXml.childElementList(rootElement, "entity-model-reader");
elementIter = childElements.iterator();
while (elementIter.hasNext()) {
Element curElement = (Element) elementIter.next();
EntityConfigUtil.EntityModelReaderInfo entityModelReaderInfo = new EntityConfigUtil.EntityModelReaderInfo(curElement);
EntityConfigUtil.entityModelReaderInfos.put(entityModelReaderInfo.name, entityModelReaderInfo);
}
// entity-group-reader - entityGroupReaderInfos
childElements = UtilXml.childElementList(rootElement, "entity-group-reader");
elementIter = childElements.iterator();
while (elementIter.hasNext()) {
Element curElement = (Element) elementIter.next();
EntityConfigUtil.EntityGroupReaderInfo entityGroupReaderInfo = new EntityConfigUtil.EntityGroupReaderInfo(curElement);
EntityConfigUtil.entityGroupReaderInfos.put(entityGroupReaderInfo.name, entityGroupReaderInfo);
}
// entity-eca-reader - entityEcaReaderInfos
childElements = UtilXml.childElementList(rootElement, "entity-eca-reader");
elementIter = childElements.iterator();
while (elementIter.hasNext()) {
Element curElement = (Element) elementIter.next();
EntityConfigUtil.EntityEcaReaderInfo entityEcaReaderInfo = new EntityConfigUtil.EntityEcaReaderInfo(curElement);
EntityConfigUtil.entityEcaReaderInfos.put(entityEcaReaderInfo.name, entityEcaReaderInfo);
}
// entity-data-reader - entityDataReaderInfos
childElements = UtilXml.childElementList(rootElement, "entity-data-reader");
elementIter = childElements.iterator();
while (elementIter.hasNext()) {
Element curElement = (Element) elementIter.next();
EntityConfigUtil.EntityDataReaderInfo entityDataReaderInfo = new EntityConfigUtil.EntityDataReaderInfo(curElement);
EntityConfigUtil.entityDataReaderInfos.put(entityDataReaderInfo.name, entityDataReaderInfo);
}
// field-type - fieldTypeInfos
childElements = UtilXml.childElementList(rootElement, "field-type");
elementIter = childElements.iterator();
while (elementIter.hasNext()) {
Element curElement = (Element) elementIter.next();
EntityConfigUtil.FieldTypeInfo fieldTypeInfo = new EntityConfigUtil.FieldTypeInfo(curElement);
EntityConfigUtil.fieldTypeInfos.put(fieldTypeInfo.name, fieldTypeInfo);
}
// datasource - datasourceInfos
childElements = UtilXml.childElementList(rootElement, "datasource");
elementIter = childElements.iterator();
while (elementIter.hasNext()) {
Element curElement = (Element) elementIter.next();
EntityConfigUtil.DatasourceInfo datasourceInfo = new EntityConfigUtil.DatasourceInfo(curElement);
EntityConfigUtil.datasourceInfos.put(datasourceInfo.name, datasourceInfo);
}
}
public static String getTxFactoryClass() {
return txFactoryClass;
}
public static String getTxFactoryUserTxJndiName() {
return txFactoryUserTxJndiName;
}
public static String getTxFactoryUserTxJndiServerName() {
return txFactoryUserTxJndiServerName;
}
public static String getTxFactoryTxMgrJndiName() {
return txFactoryTxMgrJndiName;
}
public static String getTxFactoryTxMgrJndiServerName() {
return txFactoryTxMgrJndiServerName;
}
public static EntityConfigUtil.ResourceLoaderInfo getResourceLoaderInfo(String name) {
return (EntityConfigUtil.ResourceLoaderInfo) resourceLoaderInfos.get(name);
}
public static EntityConfigUtil.DelegatorInfo getDelegatorInfo(String name) {
return (EntityConfigUtil.DelegatorInfo) delegatorInfos.get(name);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -