mcconnell    2002/07/19 22:03:01

  Modified:    assembly build.xml
               assembly/src/etc activation-demo.xml kernel.xml
               assembly/src/java/org/apache/excalibur/merlin
                        DefaultController.java
               assembly/src/java/org/apache/excalibur/merlin/container
                        ProfileRegistry.java ProfileTable.java
               assembly/src/java/org/apache/excalibur/merlin/kernel
                        DefaultKernel.java DefaultLoggerManager.java
                        TypeRegistry.java
               assembly/src/java/org/apache/excalibur/merlin/model
                        LoggingDescriptor.java
               assembly/src/xdocs container.xml deployment.xml index.xml
                        kernel.xml
  Log:
  logging sub-system debugging
  
  Revision  Changes    Path
  1.29      +1 -1      jakarta-avalon-excalibur/assembly/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/build.xml,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- build.xml 20 Jul 2002 00:54:06 -0000      1.28
  +++ build.xml 20 Jul 2002 05:03:00 -0000      1.29
  @@ -72,7 +72,7 @@
     <target name="merlin" depends="merlin.javadoc"/>
     <target name="all" depends="clean,deploy,docs"/>
   
  -  <target name="docs" depends="meta,merlin">
  +  <target name="docs">
       <ant antfile="docs.xml"/>
     </target>
   
  
  
  
  1.4       +5 -5      
jakarta-avalon-excalibur/assembly/src/etc/activation-demo.xml
  
  Index: activation-demo.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/etc/activation-demo.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- activation-demo.xml       20 Jul 2002 01:55:27 -0000      1.3
  +++ activation-demo.xml       20 Jul 2002 05:03:01 -0000      1.4
  @@ -1,13 +1,13 @@
   
   <kernel>
   
  - <logging>
  -   <loggers priority="WARN">
  -     <category name="lifecycle" priority="INFO"  />
  -   </loggers>
  - </logging>
  + <logging priority="WARN"/>
   
    <container name="root">
  +
  +   <loggers priority="INFO">
  +     <category priority="WARN"  name="loader" />
  +   </loggers>
   
      <classpath>
        <fileset dir="dist">
  
  
  
  1.15      +22 -19    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.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- kernel.xml        20 Jul 2002 00:54:06 -0000      1.14
  +++ kernel.xml        20 Jul 2002 05:03:01 -0000      1.15
  @@ -21,14 +21,17 @@
      the corresponds to the name of the logging file.
      -->
   
  -   <logging priority="INFO" target="kernel">
  +   <logging priority="WARN" target="default">
         <target name="kernel">
           <file location="kernel.log" />
         </target>
         <loggers priority="INFO">
  -        <category name="logging" priority="WARN" />
  -        <category name="loader" priority="WARN" />
  -        <category name="installer" priority="WARN"  />
  +        <category priority="WARN"  name="logging" />
  +        <category priority="WARN"  name="loader" />
  +        <category priority="WARN"  name="installer" />
  +        <category priority="WARN"  name="installer.types" />
  +        <category priority="WARN"  name="installer.types.builder" />
  +        <category priority="INFO"  name="export" />
         </loggers>
      </logging>
   
  @@ -50,18 +53,25 @@
   
        <!--
        A container has a number of internal logging catagories that you can 
modify to
  -     see what's going on.  The following declaration is equivalent to the 
default
  -     behviour is nothing is specified.
  +     see what's going on. In practice you will probably only declare 
categories under
  +     components, however - the container level logging categories are 
presented here 
  +     for completness. 
        -->
   
        <loggers priority="INFO">
  -       <category priority="DEBUG"  name="loader" />
  -       <category priority="DEBUG"  name="types" />
  -       <category priority="INFO"  name="assembly" />
  -       <category priority="INFO"  name="lifecycle" />
  -       <category priority="WARN"  name="verifier" />
  +       <category priority="WARN"  name="loader" />
  +       <category priority="WARN"  name="loader.types" />
  +       <category priority="WARN"  name="loader.types.builder" />
  +       <category priority="WARN"  name="assembly" />
  +       <category priority="WARN"  name="assembly.selector" />
  +       <category priority="WARN"  name="provider" />
  +       <category priority="WARN"  name="lifecycle" />
        </loggers>
   
  +     <!--
  +     Declaration of the classpath for this container.
  +     -->
  +
        <classpath>
          <fileset dir="dist">
            <include name="demo.jar"/>
  @@ -76,7 +86,7 @@
   
        <component name="complex" 
class="org.apache.excalibur.playground.ComplexComponent" activation="true">
   
  -        <loggers priority="DEBUG">
  +        <loggers priority="INFO">
             <category name="init" priority="DEBUG" />
           </loggers>
   
  @@ -119,13 +129,6 @@
        -->
   
        <container name="sub">
  -
  -       <loggers priority="INFO">
  -         <category priority="WARN"  name="loader" />
  -         <category priority="INFO"  name="assembly" />
  -         <category priority="WARN"  name="profiles" />
  -         <category priority="INFO"  name="lifecycle" />
  -       </loggers>
   
          <container name="demo">
   
  
  
  
  1.5       +1 -9      
jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/DefaultController.java
  
  Index: DefaultController.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/DefaultController.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultController.java    18 Jul 2002 03:40:11 -0000      1.4
  +++ DefaultController.java    20 Jul 2002 05:03:01 -0000      1.5
  @@ -243,14 +243,6 @@
               throw new ControllerException( error, e );
           }
   
  -        ResourceDesignator[] resources = m_kernel.getResources();
  -        System.out.println("\nExportable service list:\n");
  -        for( int i=0; i<resources.length; i++ )
  -        {
  -            System.out.println("  " + resources[i].getPath() );
  -        }
  -        System.out.println("\n");
  -
           m_status = INITIALIZED;
       }
   
  
  
  
  1.11      +21 -39    
jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/ProfileRegistry.java
  
  Index: ProfileRegistry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/ProfileRegistry.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ProfileRegistry.java      20 Jul 2002 00:54:07 -0000      1.10
  +++ ProfileRegistry.java      20 Jul 2002 05:03:01 -0000      1.11
  @@ -102,6 +102,11 @@
       */
       private Map m_mapping;
   
  +   /**
  +    * The default selector.
  +    */
  +    private DefaultSelector m_selector = new DefaultSelector();
  +
       //=======================================================================
       // constructor
       //=======================================================================
  @@ -128,6 +133,16 @@
       }
   
       //=======================================================================
  +    // LogEnabled
  +    //=======================================================================
  +
  +    public void enableLogging( Logger logger )
  +    {
  +        super.enableLogging( logger );
  +        m_selector.enableLogging( logger.getChildLogger("selector") );
  +    }
  +
  +    //=======================================================================
       // ProfileRegistry
       //=======================================================================
   
  @@ -218,7 +233,8 @@
               {
                   Profile[] candidates = assembleProfile( profile, dependency, 
visited, pad2 );
                   Profile[] facilities = getFacilities( 
dependency.getService() );
  -                Profile provider = selectProfile( dependency, facilities, 
candidates );
  +                Selector selector = getSelector( dependency );
  +                Profile provider = selector.select( facilities, candidates );
                   if( provider == null )
                   {
                       profile.setEnabled( false );
  @@ -313,7 +329,7 @@
           }
   
           // otherwise create a new table
  -        table = new ProfileTable( service, 
getLogger().getChildLogger("table")  );
  +        table = new ProfileTable( service );
           m_services.add( table );
           return table;
       }
  @@ -339,7 +355,7 @@
           }
           catch( Throwable e )
           {
  -            return null;
  +            return m_selector;
           }
       }
   
  @@ -358,42 +374,8 @@
       private Profile selectProfile( DependencyDescriptor dependency, 
Profile[] facilities, Profile[] profiles )
       {
           Selector selector = getSelector( dependency );
  -        if( selector != null )
  -        {
  -            return selector.select( facilities, profiles );
  -        }
  -        else
  -        {
  -            // apply default selection policy
  -            Profile profile = select( profiles, Profile.EXPLICIT );
  -            if( profile == null )
  -            {
  -                profile = select( facilities );
  -            }
  -            if( profile == null )
  -            {
  -                profile = select( profiles );
  -            }
  -            return profile;
  -        }
  +        return selector.select( facilities, profiles );
       }
   
  -    private Profile select( Profile[] profiles )
  -    {
  -        Profile profile = select( profiles, Profile.EXPLICIT );
  -        if( profile == null ) profile = select( profiles, Profile.PACKAGED );
  -        if( profile == null ) profile = select( profiles, Profile.IMPLICIT );
  -        return profile;
  -    }
  -
  -    private Profile select( Profile[] profiles, int mode )
  -    {
  -        for( int i=0; i<profiles.length; i++ )
  -        {
  -            if( profiles[i].getMode() == mode )
  -              return profiles[i];
  -        }
  -        return null;
  -    }
   }
   
  
  
  
  1.3       +3 -4      
jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/ProfileTable.java
  
  Index: ProfileTable.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/container/ProfileTable.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ProfileTable.java 12 Jul 2002 12:04:54 -0000      1.2
  +++ ProfileTable.java 20 Jul 2002 05:03:01 -0000      1.3
  @@ -22,7 +22,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Stephen McConnell</a>
    * @version $Revision$ $Date$
    */
  -final class ProfileTable extends AbstractLogEnabled
  +final class ProfileTable
   {
   
       //=======================================================================
  @@ -39,10 +39,9 @@
       */
       private ServiceDesignator m_designator;
   
  -    public ProfileTable( ServiceDesignator designator, Logger logger )
  +    public ProfileTable( ServiceDesignator designator )
       {
           m_designator = designator;
  -        super.enableLogging( logger );
       }
   
       //=======================================================================
  
  
  
  1.19      +12 -3     
jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/kernel/DefaultKernel.java
  
  Index: DefaultKernel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/kernel/DefaultKernel.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- DefaultKernel.java        19 Jul 2002 14:08:07 -0000      1.18
  +++ DefaultKernel.java        20 Jul 2002 05:03:01 -0000      1.19
  @@ -146,8 +146,10 @@
           // root container criteria
           //
   
  +
           CategoryDescriptor loggers = m_descriptor.getCategoryDescriptor();
           m_logging.addCategories( loggers );
  +        Logger containerLogger = m_logging.getLoggerForCategory( 
m_descriptor.getName() );
           
           //
           // classloader setup
  @@ -157,7 +159,7 @@
           final ContainerClassLoader loader = new ContainerClassLoader( 
m_classloader );
           try
           {
  -            loader.enableLogging( getLogger().getChildLogger( "loader" ) );
  +            loader.enableLogging( containerLogger.getChildLogger( "loader" ) 
);
               DefaultContext loaderContext = new DefaultContext();
               loaderContext.put( 
                 ContainerClassLoader.CLASSPATH_DESCRIPTOR_KEY, 
  @@ -202,7 +204,7 @@
           try
           {
               m_container = new DefaultContainer();
  -            m_container.enableLogging( m_logging.getLoggerForCategory( 
m_descriptor.getName() ) );
  +            m_container.enableLogging( containerLogger );
               m_container.contextualize( context );
               m_container.initialize( );
               m_container.verify();
  @@ -213,6 +215,13 @@
               if( getLogger() != null )
                 getLogger().error( error, e );
               throw new KernelException( error, e );
  +        }
  +
  +        ResourceDesignator[] resources = getResources();
  +        Logger export = getLogger().getChildLogger( "export" );
  +        for( int i=0; i<resources.length; i++ )
  +        {
  +            export.info( resources[i].getPath() );
           }
   
           m_initialized = true;
  
  
  
  1.4       +27 -0     
jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/kernel/DefaultLoggerManager.java
  
  Index: DefaultLoggerManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/kernel/DefaultLoggerManager.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DefaultLoggerManager.java 12 Jul 2002 19:09:27 -0000      1.3
  +++ DefaultLoggerManager.java 20 Jul 2002 05:03:01 -0000      1.4
  @@ -116,6 +116,33 @@
               addTarget( targets[i] );
           }
   
  +        String name = descriptor.getTarget();
  +        LogTarget target = (LogTarget) m_targets.get( name );
  +        if( target != null )
  +        {
  +            getHierarchy().setDefaultLogTarget( target );
  +        }
  +        else
  +        {
  +            throw new KernelException(
  +              "Supplied default logging target: '" + name + "' does not 
exist." );
  +        }
  +
  +        //
  +        // make sure the kernel.logging category is declared first
  +        //
  +
  +        CategoryDescriptor[] categories = descriptor.getCategories();
  +        for( int i=0; i<categories.length; i++ )
  +        {
  +            if( categories[i].getPath().equals("kernel.logging") );
  +            addSingleCategory( categories[i] );
  +        }
  +
  +        //
  +        // declare the kernel categories
  +        //
  +
           addCategories( descriptor.getCategoryDescriptor() );
       }
   
  
  
  
  1.3       +2 -1      
jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/kernel/TypeRegistry.java
  
  Index: TypeRegistry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/kernel/TypeRegistry.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TypeRegistry.java 12 Jul 2002 12:04:54 -0000      1.2
  +++ TypeRegistry.java 20 Jul 2002 05:03:01 -0000      1.3
  @@ -107,6 +107,7 @@
       */
       public Type register( String classname ) throws Exception
       {
  +        getLogger().info("register: " + classname );
           Type type = getType( classname );
           if( type == null )
           {
  
  
  
  1.4       +33 -20    
jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/model/LoggingDescriptor.java
  
  Index: LoggingDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/merlin/model/LoggingDescriptor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LoggingDescriptor.java    14 Jul 2002 00:55:12 -0000      1.3
  +++ LoggingDescriptor.java    20 Jul 2002 05:03:01 -0000      1.4
  @@ -50,7 +50,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Stephen McConnell</a>
    * @version $Revision$ $Date$
    */
  -public final class LoggingDescriptor implements Serializable
  +public final class LoggingDescriptor extends CategoryDescriptor implements 
Serializable
   {
       /**
        * The root category hierachy.
  @@ -85,50 +85,63 @@
                              final TargetDescriptor[] targets,
                              final CategoryDescriptor category )
       {
  +        super( "", priority, target );
           m_targets = targets;
  -        m_priority = priority;
  -        m_target = target;
           m_category = category;
  +        m_category.setParent( this );
       }
   
       /**
  -     * Return the default logging priority for the group of categories.
  +     * Return the set of logging target descriptors.
        *
  -     * @return the default logging priority
  +     * @return the target descriptors
        */
  -    public String getPriority( )
  +    public TargetDescriptor[] getTargetDescriptors()
       {
  -        return m_priority;
  +        return m_targets;
       }
   
       /**
  -     * Return the default log target for the group of categories.
  +     * Return the root catagory descriptor.
        *
  -     * @return the default target name
  +     * @return the target descriptors
        */
  -    public String getTarget( )
  +    public CategoryDescriptor getCategoryDescriptor()
  +    {
  +        return m_category;
  +    }
  +
  +   /**
  +    * Sets the parent category. Empty implementation.
  +    * @param parent the parent category from which the category name is 
relative
  +    *   and from which default priority and target information is derived
  +    */
  +    public void setParent( CategoryDescriptor parent )
       {
  -       return m_target;
  +        // null operation
       }
   
       /**
  -     * Return the set of logging target descriptors.
  +     * Return the category path.  A category path is a result of the 
concatination of 
  +     * the names of the parent category names with this category name.  
Names are seperated
  +     * by the period character.
        *
  -     * @return the target descriptors
  +     * @return the category path
        */
  -    public TargetDescriptor[] getTargetDescriptors()
  +    public String getPath()
       {
  -        return m_targets;
  +        return "";
       }
   
       /**
  -     * Return the root catagory descriptor.
  +     * Return the set of logging categories locally container in the 
category descriptor.
        *
  -     * @return the target descriptors
  +     * @return the set of service provider assignments.
        */
  -    public CategoryDescriptor getCategoryDescriptor()
  +    public CategoryDescriptor[] getCategories()
       {
  -        return m_category;
  +        return m_category.getCategories();
       }
  +
   
   }
  
  
  
  1.2       +6 -4      jakarta-avalon-excalibur/assembly/src/xdocs/container.xml
  
  Index: container.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/container.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- container.xml     17 Jul 2002 13:48:37 -0000      1.1
  +++ container.xml     20 Jul 2002 05:03:01 -0000      1.2
  @@ -10,15 +10,15 @@
       <section name="Container">
   
         <p>The Merlin system provides support for a cascading containers. This 
model enables component assemblers to associate jar files under a protected 
container scope where each container is associated with its own classloader.</p>
  -      <p>Merlin will handle resolution of service dependencies for 
components contained in containers by looking for explicitly declared 
components commencing within the local container, and working progressively up 
the container hierachy.  If no explict solutions are resolved, Merlin will 
attempt to build an implicit solution based on components declared in the 
respective container classpath declarations.</p>
  +      <p>Merlin will handle resolution of service dependencies for 
components contained in containers by looking for explicitly declared 
components commencing within the local container, and working progressively up 
the container hierarchy.  If no explicit solutions are resolved, Merlin will 
attempt to build an implicit solution based on components declared in the 
respective container classpath declarations.</p>
   
       </section>
   
       <section name="Container Model">
   
  -      <p>A new container is created using a container model.  The model is 
the defintion of the container, its classpath, and the profiles of the 
components it is resposible for managing.  Container models are declared 
programatically or via an XML description.</p>
  +      <p>A new container is created using a container model.  The model is 
the definition of the container, its classpath, and the profiles of the 
components it is responsible for managing.  Container models are declared 
programmatically or via an XML description.</p>
   
  -      <p><i>Minimilist container defintion.</i></p>
  +      <p><i>Minimilist container definition.</i></p>
   <pre>
       &lt;container name="<font color="darkred">root</font>"&gt;
         &lt;classpath&gt;
  @@ -42,3 +42,5 @@
     </footer>
   
   </document>
  +
  +
  
  
  
  1.2       +7 -5      
jakarta-avalon-excalibur/assembly/src/xdocs/deployment.xml
  
  Index: deployment.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/deployment.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- deployment.xml    17 Jul 2002 13:48:37 -0000      1.1
  +++ deployment.xml    20 Jul 2002 05:03:01 -0000      1.2
  @@ -15,8 +15,9 @@
       <ul>
         <li>General component type information.</li>
         <li>Context constraints.</li>
  -      <li>Dependecies.</li>
  +      <li>Service dependencies.</li>
         <li>Service declarations.</li>
  +      <li>Logging constraints.</li>
       </ul>
     </li>
     <li>&lt;classname&gt;.xprofile
  @@ -26,13 +27,12 @@
     </li>
     <li>&lt;classname&gt;.xconfig
       <ul>
  -      <li>Default configuration/parameter.</li>
  -      <li>Default context directives.</li>
  +      <li>Default configuration.</li>
       </ul>
     </li>
   </ul>
   
  -      <p>Components assembly rerquires the declaration of at least one 
component with the kernal configuration profile. The profile enables the 
declaration of a hierachy of containers and component profiles within 
containers.  The containers within a hierachy collaborate to resolve service 
dependecies for the components they respectively manage.</p>
  +      <p>Components assembly requires the declaration of at least one 
component with the kernel configuration profile. The profile enables the 
declaration of a hierarchy of containers and component profiles within 
containers.  The containers within a hierarchy collaborate to resolve service 
dependencies for the components they respectively manage.</p>
   
         <p>Example components and a kernel.xml profile are included in the 
distribution.</p>
   
  @@ -48,3 +48,5 @@
     </footer>
   
   </document>
  +
  +
  
  
  
  1.2       +6 -4      jakarta-avalon-excalibur/assembly/src/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/index.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- index.xml 17 Jul 2002 13:48:37 -0000      1.1
  +++ index.xml 20 Jul 2002 05:03:01 -0000      1.2
  @@ -23,7 +23,7 @@
         </ul>
         </p>
   
  -      <p>The function of the kernel is to provide a set of bootstap services 
and context 
  +      <p>The function of the kernel is to provide a set of bootstrap 
services and context 
         entries to the container it is managing, and subsequently publish 
establish entries 
         and services (derived from container deployment) towards kernel 
clients.</p>
   
  @@ -34,7 +34,7 @@
         <p>The Merlin project includes a number of demonstration components.  
One of these
         components declares several dependencies, which in turn refer to other 
components
         with dependencies.  A sample kernel.xml file included in this 
distribution references
  -      this component as a target.  Merlin handles the resolution of all 
dependecies, activation
  +      this component as a target.  Merlin handles the resolution of all 
dependencies, activation
         ordering, and the lifecycle processing automatically.</p>
   
         <p>To build and execute the demo, invoke the following commands:</p>
  @@ -42,7 +42,7 @@
         $ ant
         $ kernel 
         </pre>
  -      <p>For a description of the demo see the javadoc document for the <a 
href="api/assembly/org/apache/excalibur/merlin/Main.html">Main</a> class.</p>
  +      <p>For a description of the demo see the Javadoc document for the <a 
href="api/assembly/org/apache/excalibur/merlin/Main.html">Main</a> class.</p>
   
   
       </section>
  @@ -65,3 +65,5 @@
     </footer>
   
   </document>
  +
  +
  
  
  
  1.2       +13 -7     jakarta-avalon-excalibur/assembly/src/xdocs/kernel.xml
  
  Index: kernel.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/kernel.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- kernel.xml        17 Jul 2002 13:48:37 -0000      1.1
  +++ kernel.xml        20 Jul 2002 05:03:01 -0000      1.2
  @@ -11,9 +11,9 @@
   
       <section name="Kernel">
   
  -    <p>Merlin seperates the notion of a kernel from a container.  A kernel 
manages resources (Objects) whereas a container manages services.  The Merlin 
implementation provides a default kernel that manages a container hierachy.  
The <a 
href="api/assembly/org/apache/excalibur/merlin/kernel/DefaultKernel.html">DefaultKernel</a>
 implementation provides the framework for overall management including 
startup, shutting down, extensions management, and other system wide 
facilities.  The Melin implementation provides a utility class (<a 
href="api/assembly/org/apache/excalibur/merlin/Main.html">Main</a>) that 
handles establish of a kernel based on a single command line argument.</p>
  +    <p>Merlin separates the notion of a kernel from a container.  A kernel 
manages resources (Objects) whereas a container manages services.  The Merlin 
implementation provides a default kernel that manages a container hierarchy.  
The <a 
href="api/assembly/org/apache/excalibur/merlin/kernel/DefaultKernel.html">DefaultKernel</a>
 implementation provides the framework for overall management including 
startup, shutting down, extensions management, and other system wide 
facilities.  The Merlin implementation provides a utility class (<a 
href="api/assembly/org/apache/excalibur/merlin/Main.html">Main</a>) that 
handles establish of a kernel based on a single command line argument.</p>
   
  -    <p>The function of the kernel is to provide a set of bootstap services 
and context entries to the container it is managing, and subsequently publish 
establish entries and services (derived from container deployment) towards 
kernel clients.</p>
  +    <p>The function of the kernel is to provide a set of bootstrap services 
and context entries to the container it is managing, and subsequently publish 
establish entries and services (derived from container deployment) towards 
kernel clients.</p>
   
       <p><i>Kernel to Container conceptual relationship.</i></p>
   
  @@ -23,18 +23,22 @@
   
     <section name="Kernel Model">
   
  -    <p>A merlin kernel is created using a kernel model (<a 
href="api/assembly/org/apache/excalibur/merlin/model/KernelDescriptor.html">KernelDescriptor</a>).
  The model may be defined programatically or through an XML file.  A kernel 
XML file contains the defintion of kernel execution parameters and a root 
container.</p>
  +    <p>A Merlin kernel is created using a kernel model (<a 
href="api/assembly/org/apache/excalibur/merlin/model/KernelDescriptor.html">KernelDescriptor</a>).
  The model may be defined programmatically or through an XML file.  A kernel 
XML file contains the definition of kernel execution parameters and a root 
container.</p>
   
  -    <p><i>Minimilist kernel defintion.</i></p>
  +    <p><i>Minimilist kernel definition.</i></p>
   <pre>
     &lt;kernel&gt;
       &lt;classpath&gt;
  -      &lt;fileset dir=<font color="darkred">"dist"</font>&gt;
  +      &lt;fileset dir="<font color="darkred">dist</font>"&gt;
           &lt;include name="<font color="darkred">demo.jar</font>"/&gt;
         &lt;/fileset&gt;
  +      &lt;fileset dir="<font color="darkred">lib</font>"&gt;
  +        &lt;include name="<font 
color="darkred">avalon-framework.jar</font>"/&gt;
  +        &lt;include name="<font color="darkred">logkit.jar</font>"/&gt;
  +      &lt;/fileset&gt;
       &lt;/classpath&gt;
       &lt;container name="<font color="darkred">root</font>"&gt;
  -      &lt;component name="<font color="darkred">test</font>" class="<font 
color="darkred">org.apache.excalibur.playground.BasicComponent</font>"/&gt;
  +      &lt;component name="<font color="darkred">test</font>" class="<font 
color="darkred">org.apache.excalibur.playground.BasicComponent</font>"  
activation="<font color="darkred">true</font>"/&gt;
       &lt;/container&gt;
     &lt;/kernel&gt;
   </pre>
  @@ -51,3 +55,5 @@
     </footer>
   
   </document>
  +
  +
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to