mcconnell 2003/01/19 07:49:04 Modified: merlin blocks.xml build.xml kernel.xml merlin/src/java/org/apache/avalon/merlin/block/impl DefaultBlock.java DefaultBlockLoader.java merlin/src/java/org/apache/avalon/merlin/bootstrap Merlin.java merlin/src/java/org/apache/avalon/merlin/container package.html merlin/src/java/org/apache/avalon/merlin/kernel package.html merlin/src/test/config james.xml Log: Lots of little updates. Revision Changes Path 1.8 +4 -3 avalon-sandbox/merlin/blocks.xml Index: blocks.xml =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/blocks.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- blocks.xml 18 Jan 2003 16:23:54 -0000 1.7 +++ blocks.xml 19 Jan 2003 15:49:03 -0000 1.8 @@ -8,18 +8,20 @@ <blocks> - <block name="james" src="src/test/config/james.xml" enabled="false" > +<!-- + <block name="james" src="src/test/config/james.xml" enabled="true" > <configuration target="dns"> <servers> + <server>192.112.36.4</server> <server>212.198.0.66</server> <server>212.198.0.67</server> - <server>194.51.32.65</server> </servers> <authoritative>false</authoritative> </configuration> </block> <block name="playground" path="../assembly/build/lib/avalon-assembly-demo-1.0.jar" enabled="true" /> +--> <block name="demo" src="src/test/config/demo.xml" enabled="true"> <configuration target="test"> @@ -28,5 +30,4 @@ </configuration> </configuration> </block> - </blocks> 1.11 +7 -0 avalon-sandbox/merlin/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/build.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- build.xml 15 Jan 2003 09:14:50 -0000 1.10 +++ build.xml 19 Jan 2003 15:49:03 -0000 1.11 @@ -31,6 +31,7 @@ <pathelement location="${excalibur-pool.jar}"/> <pathelement location="${excalibur-thread.jar}"/> <pathelement location="${excalibur-event.jar}"/> + <pathelement location="${excalibur-sourceresolve.jar}"/> <pathelement location="${util.concurrent.jar}"/> <pathelement location="${commons-collections.jar}"/> <pathelement location="${build.classes}"/> @@ -218,6 +219,7 @@ <copy todir="${lib.dir}" file="${commons-collections.jar}"/> <copy todir="${lib.dir}" file="${util.concurrent.jar}"/> <copy todir="${lib.dir}" file="${excalibur-threadcontext.jar}"/> + <copy todir="${lib.dir}" file="${excalibur-sourceresolve.jar}"/> <copy todir="${lib.dir}" file="${excalibur-pool.jar}"/> <copy todir="${lib.dir}" file="${excalibur-thread.jar}"/> <copy todir="${lib.dir}" file="${avalon-lifecycle.jar}"/> @@ -244,12 +246,17 @@ <group title="Kernel"> <package name="org.apache.avalon.merlin"/> <package name="org.apache.avalon.merlin.kernel"/> + <package name="org.apache.avalon.merlin.kernel.*"/> <package name="org.apache.avalon.merlin.service"/> + <package name="org.apache.avalon.merlin.service.*"/> + <package name="org.apache.avalon.merlin.bootstrap"/> </group> <group title="Containment"> <package name="org.apache.avalon.merlin.container"/> <package name="org.apache.avalon.merlin.container.builder"/> + <package name="org.apache.avalon.merlin.container.impl"/> <package name="org.apache.avalon.merlin.block"/> + <package name="org.apache.avalon.merlin.block.*"/> </group> <doclet name="com.sun.tools.doclets.standard.Standard"> <param name="-author"/> 1.14 +5 -2 avalon-sandbox/merlin/kernel.xml Index: kernel.xml =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/kernel.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- kernel.xml 15 Jan 2003 09:14:50 -0000 1.13 +++ kernel.xml 19 Jan 2003 15:49:03 -0000 1.14 @@ -12,12 +12,15 @@ <system host="localhost"/> - <logging target="default" priority="DEBUG"> + <logging target="default" priority="WARN"> <category name="/sys/logger" priority="WARN"/> + <target name="kernel"> + <file location="kernel.log" /> + </target> </logging> <categories> - <category name="/sys" priority="INFO"/> + <category name="/sys" priority="DEBUG"/> </categories> <engine/> 1.2 +4 -4 avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/impl/DefaultBlock.java Index: DefaultBlock.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/impl/DefaultBlock.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DefaultBlock.java 18 Jan 2003 16:23:54 -0000 1.1 +++ DefaultBlock.java 19 Jan 2003 15:49:03 -0000 1.2 @@ -38,7 +38,7 @@ import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.merlin.block.Block; import org.apache.avalon.merlin.block.BlockException; -import org.apache.avalon.merlin.container.DefaultContainer; +import org.apache.avalon.merlin.container.impl.DefaultContainer; import org.apache.avalon.merlin.container.ContainerDescriptor; import org.apache.avalon.merlin.container.Container; import org.apache.avalon.merlin.container.StateListener; @@ -50,7 +50,7 @@ import org.apache.avalon.meta.model.builder.XMLProfileCreator; import org.apache.avalon.meta.model.Profile; import org.apache.avalon.merlin.service.Registry; -import org.apache.avalon.merlin.kernel.DefaultKernel; +import org.apache.avalon.merlin.kernel.impl.DefaultKernel; import org.apache.avalon.assembly.appliance.DefaultApplianceContext; import org.apache.excalibur.configuration.ConfigurationUtil; @@ -267,7 +267,7 @@ Profile profile = profiles[i]; if( getLogger().isDebugEnabled() ) { - final String message = "profile: " + profile; + final String message = "adding child profile: " + profile + " in " + this; getLogger().debug( message ); } @@ -309,7 +309,7 @@ if( getLogger().isDebugEnabled() ) { - getLogger().debug("block assembly: " + System.identityHashCode( graph ) ); + getLogger().debug("block assembly: " + this ); } // 1.2 +53 -7 avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/impl/DefaultBlockLoader.java Index: DefaultBlockLoader.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/block/impl/DefaultBlockLoader.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DefaultBlockLoader.java 18 Jan 2003 16:23:54 -0000 1.1 +++ DefaultBlockLoader.java 19 Jan 2003 15:49:03 -0000 1.2 @@ -92,6 +92,7 @@ import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.activity.Startable; import org.apache.avalon.framework.activity.Disposable; +import org.apache.avalon.framework.context.DefaultContext; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.ConfigurationException; @@ -100,6 +101,8 @@ import org.apache.avalon.framework.context.Context; import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.service.DefaultServiceManager; +import org.apache.avalon.framework.service.DefaultServiceSelector; +import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.merlin.block.Block; import org.apache.avalon.merlin.block.BlockException; import org.apache.avalon.merlin.block.BlockLoader; @@ -107,7 +110,7 @@ import org.apache.avalon.merlin.container.ContainerDescriptor; import org.apache.avalon.merlin.container.Container; import org.apache.avalon.merlin.container.ContainerException; -import org.apache.avalon.merlin.container.DefaultContainer; +import org.apache.avalon.merlin.container.impl.DefaultContainer; import org.apache.avalon.merlin.service.DefaultRegistry; import org.apache.avalon.merlin.service.Registry; import org.apache.avalon.meta.model.builder.XMLProfileCreator; @@ -116,6 +119,13 @@ import org.apache.avalon.meta.info.Type; import org.apache.excalibur.configuration.ConfigurationUtil; +import org.apache.excalibur.source.Source; +import org.apache.excalibur.source.SourceResolver; +import org.apache.excalibur.source.SourceFactory; +import org.apache.excalibur.source.impl.ResourceSourceFactory; +import org.apache.excalibur.source.impl.SourceResolverImpl; + + /** * Implementation of the block loader. * @@ -199,6 +209,8 @@ */ private Locator m_system; + private SourceResolverImpl m_resolver; + //============================================================== // Contextualizable //============================================================== @@ -225,6 +237,36 @@ { throw new IllegalStateException( "contextualization" ); } + + final SourceResolverImpl resolver = new SourceResolverImpl(); + resolver.enableLogging( getLogger() ); + + final DefaultContext context = new DefaultContext(); + context.put( "context-root", m_home ); + resolver.contextualize( context ); + + final ResourceSourceFactory factory = new ResourceSourceFactory(); + factory.enableLogging( getLogger() ); + + final DefaultServiceSelector selector = new DefaultServiceSelector(); + selector.put( "resource", factory ); + + final DefaultServiceManager manager = new DefaultServiceManager(); + manager.put( SourceFactory.ROLE + "Selector", selector ); + + try + { + manager.lookup( SourceFactory.ROLE + "Selector" ); + } + catch( Throwable e ) + { + getLogger().error( "Rubbush", e ); + } + + resolver.service( manager ); + resolver.parameterize( new Parameters() ); + + m_resolver = resolver; } //============================================================== @@ -240,6 +282,8 @@ m_registry = null; m_system = null; m_home = null; + m_resolver.dispose(); + m_resolver = null; } //============================================================== @@ -385,7 +429,7 @@ String path = config.getAttribute("path", null ); if( getLogger().isDebugEnabled() ) { - logger.debug( "[" + path + "] as [" + name + "]"); + getLogger().debug( "assigning path to " + this + " path [" + path + "] as [" + name + "]"); } // @@ -464,7 +508,8 @@ try { - engine = createChildEngine( m_engine, m_home, engineConfig, url, logger ); + //engine = createChildEngine( m_engine, m_home, engineConfig, url, logger ); + engine = createChildEngine( m_engine, m_home, engineConfig, url, getLogger() ); } catch( Throwable ee ) { @@ -493,7 +538,8 @@ throw new BlockException( error, ee ); } - List list = createChildBlocks( engine, registry, partition, implementation, config, logger ); + //List list = createChildBlocks( engine, registry, partition, implementation, config, logger ); + List list = createChildBlocks( engine, registry, partition, implementation, config, getLogger() ); return createBlock( engine, list, descriptor, name, registry, Container.PATH_SEPERATOR, config ); } @@ -600,7 +646,8 @@ try { loader = createChildEngine( - engine, m_home, child.getChild("engine"), log ); + //engine, m_home, child.getChild("engine"), log ); + engine, m_home, child.getChild("engine"), getLogger() ); } catch( ConfigurationException ce ) { @@ -724,7 +771,6 @@ try { - getLogger().debug( "creating block with context: " + context ); return (Block) engine.createAppliance( context, false, false ); } catch( Throwable e ) 1.2 +2 -1 avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/bootstrap/Merlin.java Index: Merlin.java =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/bootstrap/Merlin.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Merlin.java 6 Jan 2003 01:05:53 -0000 1.1 +++ Merlin.java 19 Jan 2003 15:49:03 -0000 1.2 @@ -27,7 +27,7 @@ public static final String MERLIN_LIB_PATH = "lib"; public static final String MERLIN_COMMON_PATH = "common"; public static final String MERLIN_BLOCKS_FILENAME = "blocks.xml"; - public static final String MERLIN_KERNEL_LOADER_CLASSNAME = "org.apache.avalon.merlin.kernel.KernelLoader"; + public static final String MERLIN_KERNEL_LOADER_CLASSNAME = "org.apache.avalon.merlin.kernel.impl.KernelLoader"; public static final String MERLIN_PROPS_PATH = MERLIN_PROPS_BASEDIR + File.separator @@ -169,6 +169,7 @@ // create a kernel loader // + Thread.currentThread().setContextClassLoader( internal ); Object kernelLoader = null; Class clazz; try 1.2 +2 -2 avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/container/package.html Index: package.html =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/container/package.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- package.html 27 Dec 2002 16:39:40 -0000 1.1 +++ package.html 19 Jan 2003 15:49:04 -0000 1.2 @@ -1,12 +1,12 @@ <body> -<p>The container package provides support for a heirachical containment strategy.</p> +<p>The container package provides support for a heirachical containment runtime environment.</p> <p> <table border="1" cellpadding="3" cellspacing="0" width="100%"> <tr bgcolor="#ccccff"> <td colspan="2"><font size="+2"><b>Component Summary</b></font></td> <tr> - <td width="20%" valign="top"><strong>[EMAIL PROTECTED] org.apache.avalon.merlin.container.DefaultContainer}</strong></td> + <td width="20%" valign="top"><strong>[EMAIL PROTECTED] org.apache.avalon.merlin.container.impl.DefaultContainer}</strong></td> <td>A <code>[EMAIL PROTECTED] org.apache.avalon.merlin.container.Container}</code> implementation that provides support for the management of a containment heirachy. A container manages a set of contained components together with a set of container containers. A containment heirachy represents an implementation strategy appropriate for block level deployment.</td></tr> </tr> </table> 1.3 +1 -1 avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/kernel/package.html Index: package.html =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/kernel/package.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- package.html 27 Dec 2002 16:44:41 -0000 1.2 +++ package.html 19 Jan 2003 15:49:04 -0000 1.3 @@ -8,7 +8,7 @@ <tr bgcolor="#ccccff"> <td colspan="2"><font size="+2"><b>Component Summary</b></font></td> <tr> - <td width="20%" valign="top"><strong>[EMAIL PROTECTED] org.apache.avalon.merlin.kernel.DefaultKernel}</strong></td> + <td width="20%" valign="top"><strong>[EMAIL PROTECTED] org.apache.avalon.merlin.kernel.impl.DefaultKernel}</strong></td> <td>A <code>[EMAIL PROTECTED] org.apache.avalon.merlin.kernel.Kernel}</code> implementation that provides support the establishment, deployment and decommissioning of a set of [EMAIL PROTECTED] org.apache.avalon.merlin.block.Block } instances.</td></tr> </tr> </table> 1.4 +8 -0 avalon-sandbox/merlin/src/test/config/james.xml Index: james.xml =================================================================== RCS file: /home/cvs/avalon-sandbox/merlin/src/test/config/james.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- james.xml 17 Jan 2003 06:27:40 -0000 1.3 +++ james.xml 19 Jan 2003 15:49:04 -0000 1.4 @@ -307,6 +307,14 @@ <appliance name="dns" class="org.apache.james.dnsserver.DNSServer" activation="true"> <!-- see blocks.xml for configuration --> + <configuration target="dns"> + <servers> + <server>192.112.36.4</server> + <server>212.198.0.66</server> + <server>212.198.0.67</server> + </servers> + <authoritative>false</authoritative> + </configuration> </appliance> <appliance name="remote"
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>