donaldp 2002/08/31 02:18:16
Modified: containerkit/src/java/org/apache/excalibur/containerkit/factory
ComponentFactory.java DefaultComponentFactory.java
containerkit/src/java/org/apache/excalibur/containerkit/lifecycle/impl
AbstractResourceProvider.java
Added: containerkit/src/java/org/apache/excalibur/containerkit/factory
DefaultComponentBundle.java
Log:
Update ComponentFactory to work with bundles.
Revision Changes Path
1.8 +7 -7
jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/factory/ComponentFactory.java
Index: ComponentFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/factory/ComponentFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ComponentFactory.java 19 Aug 2002 13:23:37 -0000 1.7
+++ ComponentFactory.java 31 Aug 2002 09:18:16 -0000 1.8
@@ -7,14 +7,14 @@
*/
package org.apache.excalibur.containerkit.factory;
-import org.apache.avalon.framework.info.ComponentInfo;
+import org.apache.avalon.framework.info.ComponentBundle;
/**
* This interface defines the mechanism via which a
- * component or its associated {@link ComponentInfo} can
+ * component or its associated {@link ComponentBundle} can
* be created.
*
- * <p>Usually the component or componentInfo will just be loaded
+ * <p>Usually the component or ComponentBundle will just be loaded
* from a particular ClassLoader. However if a developer wanted
* to dynamically assemble applications they could implement
* a custom factory that created components via non-standard
@@ -34,14 +34,14 @@
String ROLE = ComponentFactory.class.getName();
/**
- * Create a {@link ComponentInfo} for component
+ * Create a {@link ComponentBundle} for component
* specified by implementationKey.
*
* @param implementationKey the key indicating type of component (usually
classname)
- * @return the ComponentInfo for component
+ * @return the ComponentBundle for component
* @throws Exception if unable to create Info object
*/
- ComponentInfo createInfo( String implementationKey )
+ ComponentBundle createBundle( String implementationKey )
throws Exception;
/**
1.10 +11 -8
jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/factory/DefaultComponentFactory.java
Index: DefaultComponentFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/factory/DefaultComponentFactory.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- DefaultComponentFactory.java 31 Aug 2002 09:03:19 -0000 1.9
+++ DefaultComponentFactory.java 31 Aug 2002 09:18:16 -0000 1.10
@@ -12,6 +12,7 @@
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.info.ComponentInfo;
+import org.apache.avalon.framework.info.ComponentBundle;
import org.apache.avalon.framework.tools.infobuilder.ComponentInfoBuilder;
/**
@@ -65,19 +66,21 @@
* Create a component by creating info for class
* with specified name and loaded from factorys ClassLoader.
*
- * @see ComponentFactory#createInfo
+ * @see ComponentFactory#createBundle
*/
- public ComponentInfo createInfo( final String implementationKey )
+ public ComponentBundle createBundle( final String implementationKey )
throws Exception
{
- ComponentInfo info = (ComponentInfo)m_infos.get( implementationKey );
- if( null == info )
+ ComponentBundle bundle = (ComponentBundle)m_infos.get( implementationKey );
+ if( null == bundle )
{
- info = m_infoBuilder.build( implementationKey, m_classLoader );
- m_infos.put( implementationKey, info );
+ final ComponentInfo info =
+ m_infoBuilder.build( implementationKey, m_classLoader );
+ bundle = new DefaultComponentBundle( info, m_classLoader );
+ m_infos.put( implementationKey, bundle );
}
- return info;
+ return bundle;
}
/**
1.1
jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/factory/DefaultComponentBundle.java
Index: DefaultComponentBundle.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.excalibur.containerkit.factory;
import org.apache.avalon.framework.info.ComponentBundle;
import org.apache.avalon.framework.info.ComponentInfo;
import java.io.InputStream;
/**
*
*
* @author <a href="mailto:peter at apache.org">Peter Donald</a>
* @version $Revision: 1.1 $ $Date: 2002/08/31 09:18:16 $
*/
public class DefaultComponentBundle
implements ComponentBundle
{
private final ComponentInfo m_componentInfo;
private final ClassLoader m_classLoader;
public DefaultComponentBundle( final ComponentInfo componentInfo,
final ClassLoader classLoader )
{
if( null == componentInfo )
{
throw new NullPointerException( "componentInfo" );
}
if( null == classLoader )
{
throw new NullPointerException( "classLoader" );
}
m_componentInfo = componentInfo;
m_classLoader = classLoader;
}
public ComponentInfo getComponentInfo()
{
return m_componentInfo;
}
public InputStream getResourceAsStream( String resource )
{
return m_classLoader.getResourceAsStream( resource );
}
}
1.16 +6 -3
jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/lifecycle/impl/AbstractResourceProvider.java
Index: AbstractResourceProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/lifecycle/impl/AbstractResourceProvider.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- AbstractResourceProvider.java 18 Aug 2002 03:46:08 -0000 1.15
+++ AbstractResourceProvider.java 31 Aug 2002 09:18:16 -0000 1.16
@@ -28,6 +28,7 @@
import org.apache.avalon.framework.info.ComponentInfo;
import org.apache.avalon.framework.info.ContextDescriptor;
import org.apache.avalon.framework.info.EntryDescriptor;
+import org.apache.avalon.framework.info.ComponentBundle;
import org.apache.excalibur.containerkit.factory.ComponentFactory;
/**
@@ -191,7 +192,8 @@
final ComponentMetaData component = getMetaData( componentEntry );
final String componentName = component.getName();
final String impl = component.getImplementationKey();
- final ComponentInfo info = m_factory.createInfo( impl );
+ final ComponentBundle bundle = m_factory.createBundle( impl );
+ final ComponentInfo info = bundle.getComponentInfo();
final ContextDescriptor descriptor = info.getContextDescriptor();
final Map contextData = new HashMap();
@@ -348,7 +350,8 @@
{
final ComponentMetaData component = getMetaData( componentEntry );
final String impl = component.getImplementationKey();
- final ComponentInfo info = m_factory.createInfo( impl );
+ final ComponentBundle bundle = m_factory.createBundle( impl );
+ final ComponentInfo info = bundle.getComponentInfo();
final DependencyMetaData[] dependencies = component.getDependencies();
final HashMap services = new HashMap();
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>