You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by aj...@apache.org on 2005/04/19 07:31:59 UTC
svn commit: r161844 - in
webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om:
FactoryFinder.java OMFactory.java
Author: ajith
Date: Mon Apr 18 22:31:59 2005
New Revision: 161844
URL: http://svn.apache.org/viewcvs?view=rev&rev=161844
Log:
Updated the factory finder. Now the actual factory implementation is picked up by a system property as well.
Modified:
webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/FactoryFinder.java
webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMFactory.java
Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/FactoryFinder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/FactoryFinder.java?view=diff&r1=161843&r2=161844
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/FactoryFinder.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/FactoryFinder.java Mon Apr 18 22:31:59 2005
@@ -19,29 +19,48 @@
* Class FactoryFinder
*/
class FactoryFinder {
- /**
- * Field DEFAULT_CLASS_NAME
- */
private static final String DEFAULT_CLASS_NAME =
"org.apache.axis.om.impl.llom.factory.OMLinkedListImplFactory";
+ private static final String OM_FACTORY_NAME_PROPERTY = "om.factory";
/**
- * This needs to be improved. Currently the factory is loaded only from the default implementation
- * However provisions should be made to load a custom factory depending on the users setting
- * Say an environment variable
+ * Returns a factory using the default class loader
+ * @see #findFactory(ClassLoader)
+ * @return
+ * @throws OMFactoryException
+ */
+ public static OMFactory findFactory()
+ throws OMFactoryException {
+ return findFactory(null);
+ }
+ /**
+ * The searching for the factory class happens in the following order
+ * 1. look for a system property called <b>om.factory</b>. this can be set by passing the
+ * -Dom.factory="classname"
+ * 2. Pick the default factory class. it is the class hardcoded at the constant
+ * DEFAULT_CLASS_NAME
*
* @param loader
* @return
* @throws OMFactoryException
*/
+
+
public static OMFactory findFactory(ClassLoader loader)
throws OMFactoryException {
+
+ String factoryClassName = DEFAULT_CLASS_NAME;
+ //first look for a java system property
+ if (System.getProperty(OM_FACTORY_NAME_PROPERTY)!=null){
+ factoryClassName = OM_FACTORY_NAME_PROPERTY;
+ };
+
Object factory = null;
try {
if (loader == null) {
- factory = Class.forName(DEFAULT_CLASS_NAME).newInstance();
+ factory = Class.forName(factoryClassName).newInstance();
} else {
- factory = loader.loadClass(DEFAULT_CLASS_NAME).newInstance();
+ factory = loader.loadClass(factoryClassName).newInstance();
}
} catch (Exception e) {
throw new OMFactoryException(e);
Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMFactory.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMFactory.java?view=diff&r1=161843&r2=161844
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMFactory.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMFactory.java Mon Apr 18 22:31:59 2005
@@ -177,7 +177,7 @@
* @return
*/
public static OMFactory newInstance() {
- return FactoryFinder.findFactory(null);
+ return FactoryFinder.findFactory();
}
/**