giacomo 00/10/09 02:30:12
Modified: src/org/apache/cocoon/sitemap Tag: xml-cocoon2
ComponentHolderFactory.java
Added: src/org/apache/cocoon/sitemap Tag: xml-cocoon2
ThreadSafeComponentHolder.java
Log:
Additional Holder class
Revision Changes Path
No revision
No revision
1.1.2.2 +15 -10
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ComponentHolderFactory.java
Index: ComponentHolderFactory.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ComponentHolderFactory.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- ComponentHolderFactory.java 2000/10/08 20:58:58 1.1.2.1
+++ ComponentHolderFactory.java 2000/10/09 09:30:12 1.1.2.2
@@ -11,25 +11,30 @@
import org.apache.avalon.ComponentManager;
import org.apache.avalon.Configuration;
-//import org.apache.avalon.Poolable;
-//import org.apache.avalon.Sharable;
+import org.apache.avalon.Poolable;
+import org.apache.avalon.ThreadSafe;
+import org.apache.avalon.SingleThreaded;
+import org.apache.cocoon.util.ClassUtils;
/**
* This factory instantiate the corresponding ComponentHolder according to
the
* interfaces the passed component implements.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
- * @version CVS $Revision: 1.1.2.1 $ $Date: 2000/10/08 20:58:58 $
+ * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/10/09 09:30:12 $
*/
public class ComponentHolderFactory {
- public static ComponentHolder getComponentHolder (String componentName,
Configuration configuration, ComponentManager manager) {
-// if (ClassUtil.implementsInterface (componentClass, Poolable)) {
-// return new PoolableComponentHolder (componentClass,
configuration, manager);
-// } else if (ClassUtil.implementsInterface (componentClass,
Sharable)) {
-// return new SharableComponentHolder (componentClass,
configuration, manager);
-// } else {
+ public static ComponentHolder getComponentHolder (String componentName,
Configuration configuration, ComponentManager manager)
+ throws Exception {
+ if (ClassUtils.implementsInterface (componentName,
Poolable.class.getName())) {
+ return new PoolableComponentHolder (componentName,
configuration, manager);
+ } else if (ClassUtils.implementsInterface (componentName,
SingleThreaded.class.getName())) {
return new DefaultComponentHolder (componentName, configuration,
manager);
-// }
+ } else if (ClassUtils.implementsInterface (componentName,
ThreadSafe.class.getName())) {
+ return new ThreadSafeComponentHolder (componentName,
configuration, manager);
+ } else {
+ return new DefaultComponentHolder (componentName, configuration,
manager);
+ }
}
}
No revision
No revision
1.1.2.1 +73 -0
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ThreadSafeComponentHolder.java