mcconnell    2002/12/02 23:09:47

  Added:       merlin   kernel.xml
  Log:
  Testing content - complete meterial is not current used (only container level
  is funtional today).
  
  Revision  Changes    Path
  1.1                  avalon-sandbox/merlin/kernel.xml
  
  Index: kernel.xml
  ===================================================================
  
  <!--
  Merlin demonstration kernal configuration.
  
  This configuration assembles a set of component instance within a container 
  hierachy and is used as one of several validation points.  The example 
includes
  demonstration of some of the main Merlin features:
  
    a) automatic component assembly
    b) multiple candidate resolution
    c) lifestyle support
    d) lifecycle extension
    e) custom containers
    f) dynamic component addition
    g) context management
    h) configuration management
    i) use of explicit, packaged and implicit profiles
    j) nested containers
  
  -->
  
  <kernel>
  
     <!--
     Declaration of the domain name that this kernel is operating within.
     -->
  
     <system>
       <host>localhost</host>
     </system>
  
     <!--
     Optional logging catagory creation directive.  The logging element declares
     the application wide default logging priority.  
     A target element enables defintion of a logging file to which log entries 
will 
     be directed.  The target name attribute is the name referenced by category 
elements
     defined within the loggers element. 
  
     The target defaults of "default" which corresponds to a internal default 
logging 
     target that issue messages to System.out (unless overriden by a target 
named default).  
     If the target is declared inside a catagory element, it must refer to a 
named target 
     element.  The priority attribute may contain one of the values 
<code>DEBUG</code>
     <code>INFO</code>, <code>WARN</code>, or <code>ERROR</code> and declares 
the system 
     wide default logging priority.
  
     The target must contain a single file element with the attribute 
<code>location</code>
     the corresponds to the name of the logging file to which log entries shall 
be written.
     -->
  
     <logging priority="INFO" target="default">
        <category name="/sys/logger" priority="WARN"/>
        <target name="kernel">
          <file location="kernel.log" />
        </target>
     </logging>
  
     <categories priority="WARN">
       <category priority="DEBUG"  name="/sys" />
     </categories>
  
     <engine>
  
       <!--
       Declaration of installed extension directories and kernel level 
classpath.
       In this demo we are referencing the Merlin classes in the embedded demo 
so 
       we need to include Merlin and its' extension depedencies in directory 
       referenced within the library element.
       -->
  
       <library dir=".">
         <include name="extensions"/>
       </library>
  
       <!--
       Defintion of the lifestyle manager.
       The lifestyles class attribute must reference a class implementing the
       interface org.apache.excalibur.merlin.resource.LifestyleManager. 
       -->
  
       <lifestyles 
class="org.apache.excalibur.merlin.resource.DefaultLifestyleManager"/>
  
       <!--
       Declaration of the root container.
       -->
  
     </engine>
  
     <container name="root">
  
       <!--
       A container has a number of internal logging catagories that you can 
modify to
       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. 
       -->
  
       <categories priority="INFO">
         <category priority="WARN"  name="loader" />
         <category priority="WARN"  name="loader.services" />
         <category priority="WARN"  name="loader.deployment" />
         <category priority="WARN"  name="loader.lifecycle" />
         <category priority="WARN"  name="loader.resource" />
         <category priority="WARN"  name="loader.types" />
       </categories>
  
       <!--
       Declaration of the classpath for this container.
       -->
  
       <classpath>
         <fileset dir="build/lib">
           <include name="demo.jar"/>
         </fileset>
       </classpath>
  
       <!--
       Declaration of the services hosted by this container.  Service container 
here 
       will be managed relative to other provider components at the same level 
and 
       may be serviced by components declared in parent container.
       -->
  
       <component name="complex" 
class="org.apache.excalibur.playground.ComplexComponent" activation="startup">
  
          <categories priority="DEBUG">
            <category name="init" priority="DEBUG" />
          </categories>
  
          <!--
          Include the following context value in the context supplied a 
component using this 
          profile.  Context entries are normally only required in the case 
where the component
          type declares a required context type and entry values. Generally 
speaking, a component
          will normally qualify it's instantiation criteria through a 
configuration declaration.
          Any context values defined at this level will override context values 
supplied by the
          container.
          -->
  
          <context>
            <entry key="location" value="Paris"/>
          </context>
  
          <!--
          Apply the following configuration when instantiating the component.  
This configuration
          will be applied as the primary configuration in a cascading 
configuration chain.  A 
          type may declare a default configuration under a "classname".xconfig 
file that will be 
          used to dereference any configuration requests not resolvable by the 
configuration 
          supplied here.
          -->
  
          <configuration>
            <message value="Hello"/>
          </configuration>
  
          <!--
          The parameterization criteria from this instance of the component 
type.
          -->
  
          <parameters/>
  
       </component>
  
       <!--
       A containers declaration will cause the creation of a new registry 
holding the 
       child container instances.
       -->
  
       <container name="custom" 
class="org.apache.excalibur.playground.CustomContainer">
  
         <container name="demo">
  
           <categories priority="INFO">
             <category priority="WARN"  name="loader" />
           </categories>
  
           <!--
           Including the next entry demonstrates the resolution of a dependency 
via a profile
           resolved from a parent container. SimpleComponent needs BasicService 
with is available
           from either TerminalComponent or BasicComponent implicitly created 
in the parent 
           container path (due to a depenency declared by ComplexComponent).  
In addition, this
           profile demonstrates the use of a cascading configuration.  The 
configuration passed
           to the instantiated component is based primarily on this 
configuration declared here 
           with defaults derived from SimpleComponent.xconfig.
           -->
           <component name="simple" 
             class="org.apache.excalibur.playground.SimpleComponent" 
             enabled="true" 
             activation="true">
  
             <configuration>
               <message>This is a custom message.</message>
             </configuration>
  
           </component>
  
         </container>
  
       </container>
  
       <component name="basic-sample" 
class="org.apache.excalibur.playground.BasicComponent" activation="startup">
  
         <categories priority="DEBUG">
           <category priority="WARN"  name="loader" />
         </categories>
  
         <context class="org.apache.excalibur.playground.BasicContext">
           <entry key="location">My Place</entry>
           <import name="avalon:home" key="home"/>
         </context>
       </component>
  
     </container>
  
  </kernel>
  
  
  

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

Reply via email to