You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2002/08/02 14:31:01 UTC
cvs commit: jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container Container.java DefaultContainer.java
mcconnell 2002/08/02 05:31:01
Modified: assembly/demo/src/java/org/apache/excalibur/playground
EmbeddedDemo.java
assembly/src/etc kernel.xml
assembly/src/java/org/apache/excalibur/merlin/container
Container.java DefaultContainer.java
Log:
progress on embedded demonstration
Revision Changes Path
1.2 +38 -1 jakarta-avalon-excalibur/assembly/demo/src/java/org/apache/excalibur/playground/EmbeddedDemo.java
Index: EmbeddedDemo.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/demo/src/java/org/apache/excalibur/playground/EmbeddedDemo.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- EmbeddedDemo.java 2 Aug 2002 06:29:20 -0000 1.1
+++ EmbeddedDemo.java 2 Aug 2002 12:31:01 -0000 1.2
@@ -17,9 +17,11 @@
import org.apache.excalibur.merlin.kernel.Kernel;
import org.apache.excalibur.merlin.kernel.DefaultKernel;
+import org.apache.excalibur.merlin.container.Container;
import org.apache.excalibur.merlin.model.ContainerDescriptor;
import org.apache.excalibur.merlin.model.ClasspathDescriptor;
import org.apache.excalibur.merlin.assembly.ContainerManager;
+import org.apache.excalibur.meta.info.Type;
/**
* This is a minimal demonstration component that implements the
@@ -34,6 +36,7 @@
private File m_home;
private Context m_context;
+ private Container m_container;
public void contextualize( Context context ) throws ContextException
{
@@ -48,11 +51,45 @@
public void initialize() throws Exception
{
getLogger().info("initialize");
- m_kernel = new DefaultKernel();
+
+ ClassLoader classloader;
+ try
+ {
+ classloader = (ClassLoader) m_context.get("classloader");
+ getLogger().info("classloader " + classloader );
+ }
+ catch( Throwable e )
+ {
+ getLogger().error("classloader access didn't work.", e );
+ }
+
+ // ###################################################################
+ // Need to create a formal interface (or at least review the API) for
+ // ContainerManager and document this as a publically accessible class
+ // via a standard context key. The classloader should be usable as a
+ // context argument to the creation of a new kernel so we get access
+ // to all of the classes in our current classloder.
+ // ###################################################################
+
+ //
+ // create the kernel and get the root container
+ //
+
+ m_kernel = new DefaultKernel( );
m_kernel.enableLogging( getLogger().getChildLogger( "my-kernel" ) );
m_kernel.contextualize( m_context );
m_kernel.configure( new DefaultConfiguration( "kernel", null ) );
m_kernel.initialize();
+ m_container = m_kernel.getRootContainer();
+
+ //
+ // create and add a profile to the container
+ //
+
+ Type type = m_container.getType( "org.apache.excalibur.playground.SimpleComponent" );
+ getLogger().info("TYPE: " + type );
+ //Profile profile = new Profile();
+
}
//=======================================================================
1.21 +3 -8 jakarta-avalon-excalibur/assembly/src/etc/kernel.xml
Index: kernel.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/etc/kernel.xml,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- kernel.xml 2 Aug 2002 06:36:09 -0000 1.20
+++ kernel.xml 2 Aug 2002 12:31:01 -0000 1.21
@@ -27,13 +27,11 @@
</target>
</logging>
- <!--
<categories priority="INFO">
<category priority="WARN" name="logging" />
<category priority="WARN" name="loader" />
<category priority="INFO" name="export" />
</categories>
- -->
<!--
Declaration of installed extension directories.
@@ -58,14 +56,10 @@
for completness.
-->
- <!--
- <categories>
+ <categories priority="INFO">
<category priority="WARN" name="loader" />
- <category priority="DEBUG" name="loader.assembly" />
- <category priority="WARN" name="demo-ext" />
- <category priority="WARN" name="exploit-ext" />
+ <category priority="WARN" name="loader.assembly" />
</categories>
- -->
<!--
Declaration of the classpath for this container.
@@ -80,6 +74,7 @@
<component name="embedded-kernel" class="org.apache.excalibur.playground.EmbeddedDemo" activation="true">
<context>
<import key="avalon:home" name="avalon:home"/>
+ <import key="classloader" name="classloader"/>
</context>
</component>
1.8 +7 -1 jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/Container.java
Index: Container.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/Container.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Container.java 30 Jul 2002 13:49:07 -0000 1.7
+++ Container.java 2 Aug 2002 12:31:01 -0000 1.8
@@ -11,6 +11,7 @@
import org.apache.excalibur.merlin.model.Profile;
import org.apache.excalibur.merlin.model.Resource;
import org.apache.excalibur.meta.info.ReferenceDescriptor;
+import org.apache.excalibur.meta.info.Type;
import org.apache.excalibur.merlin.Verifiable;
import org.apache.excalibur.merlin.Controller;
@@ -39,5 +40,10 @@
* @return the set of available resources
*/
Resource[] getResources();
+
+ Type getType( String classname );
+
+ public void include( Profile profile ) throws Exception;
+
}
1.20 +13 -1 jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/DefaultContainer.java
Index: DefaultContainer.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/DefaultContainer.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- DefaultContainer.java 2 Aug 2002 06:36:10 -0000 1.19
+++ DefaultContainer.java 2 Aug 2002 12:31:01 -0000 1.20
@@ -67,6 +67,7 @@
import org.apache.excalibur.merlin.assembly.TypeManager;
import org.apache.excalibur.merlin.assembly.ContainerManager;
import org.apache.excalibur.merlin.assembly.DefaultLoggerManager;
+import org.apache.excalibur.merlin.container.Container;
import org.apache.excalibur.merlin.model.ContainerDescriptor;
import org.apache.excalibur.merlin.model.ClasspathDescriptor;
import org.apache.excalibur.merlin.model.Profile;
@@ -394,6 +395,17 @@
}
}
return (Resource[]) list.toArray( new Resource[0] );
+ }
+
+ public Type getType( String classname )
+ {
+ return m_manager.getType( classname );
+ }
+
+ public void include( Profile profile ) throws Exception
+ {
+ m_manager.addProfile( profile );
+ m_manager.assemble( new Profile[]{ profile } );
}
//=======================================================================
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>