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/06 06:10:38 UTC

cvs commit: jakarta-avalon-excalibur/assembly/src/xdocs dictionary.xml menu.xml

mcconnell    2002/08/05 21:10:38

  Modified:    assembly docs.xml
               assembly/src/java/org/apache/excalibur/meta/info
                        ExtensionDescriptor.java
               assembly/src/xdocs menu.xml
  Added:       assembly/src/xdocs dictionary.xml
  Log:
  Documentation on phases and stages and things that go bump in the night.
  
  Revision  Changes    Path
  1.7       +2 -2      jakarta-avalon-excalibur/assembly/docs.xml
  
  Index: docs.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/docs.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- docs.xml	26 Jul 2002 15:24:55 -0000	1.6
  +++ docs.xml	6 Aug 2002 04:10:38 -0000	1.7
  @@ -87,8 +87,8 @@
               style="docs.vsl"
               projectfile="menu.xml"
               includes="**/*.xml"
  -            excludes="aaaa.xml menu.xml history/** changes.xml announcement.xml"
  -	    velocitypropertiesfile="../site/src/stylesheets/velocity.properties"
  +            excludes="menu.xml stylesheets/** history/** changes.xml announcement.xml"
  +            velocitypropertiesfile="${xdocs.dir}/stylesheets/velocity.properties"
               />
   
           <!--
  
  
  
  1.5       +51 -5     jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/meta/info/ExtensionDescriptor.java
  
  Index: ExtensionDescriptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/meta/info/ExtensionDescriptor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ExtensionDescriptor.java	30 Jul 2002 14:34:04 -0000	1.4
  +++ ExtensionDescriptor.java	6 Aug 2002 04:10:38 -0000	1.5
  @@ -17,12 +17,47 @@
    */
   public final class ExtensionDescriptor extends Descriptor
   {
  +   /**
  +    * Constant emumeration referring to the creation stage in a component
  +    * management lifecycle. An extension declaring CREATE will be invoked 
  +    * prior to component initialization.
  +    */
       public static final int CREATE = 0;
  +
  +   /**
  +    * Constant emumeration referring to the access stage in a component
  +    * management lifecycle. An extension declaring ACCESS will be invoked 
  +    * prior to component lookup within a component or service manager.
  +    */
       public static final int ACCESS = 1;
  +
  +   /**
  +    * Constant emumeration referring to the release stage in a component
  +    * management lifecycle. An extension declaring RELEASSE will be invoked 
  +    * after a component release within a component or service manager.
  +    */
       public static final int RELEASE = 2;
  +
  +   /**
  +    * Constant emumeration referring to the destruction stage in a component
  +    * management lifecycle. An extension declaring DESTROY will be invoked 
  +    * prior to component disposal.
  +    */
       public static final int DESTROY = 3;
  +
  +   /**
  +    * Constant emumeration that is equivalent to ACCESS and RELEASE.
  +    */
       public static final int INNER = 4;
  +
  +   /**
  +    * Constant emumeration that is equivalent to CREATE and DESTROY.
  +    */
       public static final int OUTER = 5;
  +
  +   /**
  +    * Constant emumeration that is equivalent to OUTER and INNER.
  +    */
       public static final int ALL = 6;
   
       /**
  @@ -77,7 +112,7 @@
       }
   
       /**
  -     * Return the name of the lifecycle phase.
  +     * Return the name of the lifecycle extension.
        *
        * @return the name the lifecycle phase.
        */
  @@ -87,9 +122,9 @@
       }
   
       /**
  -     * Return the version interface reference.
  +     * Return the versioned interface reference.
        *
  -     * @return the version interface reference.
  +     * @return the reference.
        */
       public ReferenceDescriptor getReference()
       {
  @@ -97,7 +132,8 @@
       }
   
       /**
  -     * Return the lifecycle stage that this phase is to be applied under.
  +     * Return the component management lifecycle stage that this 
  +     * extension is to be applied under.
        *
        * @return one of the phase values {@link #CREATE}, {@link #ACCESS}, {@link #RELEASE}, {@link #DESTROY},
        *   {@link #INNER}, {@link #OUTER}, or {@link #ALL}.
  @@ -107,6 +143,11 @@
           return m_stage;
       }
   
  +   /**
  +    * Returns TRUE if the supplied stage matches a stage applicable to this extension.
  +    * @param stage the lifecycle management stage enumeration
  +    * @return true if the supplied stage is applicable
  +    */
       public boolean isApplicable( int stage )
       {
           final int policy = getStage();
  @@ -125,6 +166,11 @@
           return false;
       } 
   
  +   /**
  +    * Return a string representation of the stage enumeration.
  +    * @param stage the component lifecycle management stage enumeration
  +    * @return the string representation of the stage value
  +    */
       public static String stageToString( int stage )
       {
          if( stage == CREATE )
  
  
  
  1.2       +31 -7     jakarta-avalon-excalibur/assembly/src/xdocs/menu.xml
  
  Index: menu.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/menu.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- menu.xml	19 Jul 2002 16:24:39 -0000	1.1
  +++ menu.xml	6 Aug 2002 04:10:38 -0000	1.2
  @@ -6,18 +6,42 @@
   
       <body>
   
  +        <item name="Jakarta main" href="http://jakarta.apache.org/"/>
  +        <item name="Avalon main" href="http://jakarta.apache.org/avalon"/>
  +
           <menu name="Essentials">
  -            <item name="Overview" href="index.html"/>
  -            <item name="Kernel" href="kernel.html"/>
  -            <item name="Containers" href="containers.html"/>
  -	    <item name="Deployment" href="deployment.html"/>
  +            <item name="Overview" href="/index.html"/>
  +            <item name="Kernel" href="/kernel.html"/>
  +            <item name="Containers" href="/containers.html"/>
  +            <item name="Deployment" href="/deployment.html"/>
  +        </menu>
  +
  +        <menu name="Getting Started">
  +            <item name="Installation" href="/install.html"/>
  +            <item name="Dictionary" href="/dictionary.html"/>
  +            <item name="FAQ" href="/faq.html"/>
  +        </menu>
  +
  +        <menu name="Facilities">
  +            <item name="Logging" href="/logging.html"/>
  +            <item name="Extensions" href="/extensions.html"/>
  +            <item name="Classpath" href="/classpath.html"/>
  +            <item name="Assembly" href="/assembly.html"/>
  +            <item name="Activation" href="/activation.html"/>
  +            <item name="Export" href="/export.html"/>
  +        </menu>
  +
  +        <menu name="Support">
  +            <item name="Mailing List" href="/list.html"/>
  +            <item name="Commercial Links" href="/support.html"/>
           </menu>
   
           <menu name="Reference">
  -            <item name="Merlin API" href="api/assembly/"/>
  -            <item name="Meta-Info API" href="api/meta/"/>
  +            <item name="Merlin API" href="/api/assembly/index.html"/>
  +            <item name="Meta-Info API" href="/api/meta/index.html"/>
           </menu>
   
       </body>
  -
  +  
   </project>
  +
  
  
  
  1.1                  jakarta-avalon-excalibur/assembly/src/xdocs/dictionary.xml
  
  Index: dictionary.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <document>
    <properties>
      <title>Dictionary</title>
      <author email="mcconnell@apache.org">Stephen McConnell</author>
    </properties>
    <body>
      <section name="Merlin Dictionary">
  
      <table>
        <tr>
          <td><p>Term</p></td>
          <td><p>Definition</p></td>
        </tr>
        <tr>
          <td><a href="assembly"/><p>Assembly</p></td>
  <td>
  <p>The recursive process of the resolution of dependencies declared by a component with services provided by other components.</p>
  <p>Merlin provides substantial support for the automation of component assembly.  Under a kernel configuration a user can declare explicit components to be assembled.  Merlin will attempt to put together solutions for component dependencies (service depedencies ad extension dependecies) based on the availability of other explicit component declarations together with implicit and packaged component declarations.  Implicit components are derived from the manifest declarations within the jar files containing Packaged components are based on a &lt;classname&gt;.xprofile resource packaged with a component type.</p>
          </td>
        </tr>
        <tr>
          <td><p>Container</p></td>
          <td>
  <p>A <a href="api/assembly/org/apache/excalibur/merlin/contasiner/Container.html">Container</a> is an object used within the Merlin system to manage the assembly and deployment of a set of components.</p> 
  <p>The Merlin <a href="api/assembly/org/apache/excalibur/merlin/container/DefaultContainer.html">DefaultContainer</a> implementation provides support for the asynchronous execution of a container hierarchy where each container represents a degree of system isolation.  Isolation is provided in terms of class management, failure, and logging.  Containers isolate failure of components to the container the component is embedded within.  Failure of a container does not imply failure of a parent container.  Each container in a container hierarchy is associated with its own classloader.  In practice the classloader is the basic framework on which container hierarchies are arranged. Containers are further isolated in terms of logging management.  Each container is assigned its own logger based on the container path.  Component container within a container log to the container logging category path.  This enables clear identification of component logging information and minimisation of component naming restrictions within a container hierarchy.</p>
          </td>
        </tr>
        <tr>
          <td><p>Kernel</p></td>
          <td>
  <p>A <a href="api/assembly/org/apache/excalibur/merlin/kernel/Kernel.html">Kernel</a> is an object that manages a set of components.</p>
  <p>A kernel is responsible for the establishment of set of services that may be exported by the kernel and used by other systems.  The Merlin <a href="api/assembly/org/apache/excalibur/merlin/kernel/DefaultKernel.html">DefaultKernel</a> implementation achieves this objective though the management of a container hierarchy.</p>
          </td>
        </tr>
        <tr>
          <td><a href="phase"/><p>Phase</p></td>
          <td>
  <p>A reference to a behavioural extension - sometimes referred to as a lifecycle phase or lifecycle stage.</p>
  <p>Component types can declare their dependence on providers of lifecycle extensions through a <a href="api/meta/org/apache/excalibur/meta/info/PhaseDescriptor.html">PhaseDescriptor</a>.  Examples of a lifecycle phase includes notions such as <code>Exploitable</code>, <code>Demonstratable</code>, or <code>Persistable</code>.  These interfaces represent extended behavioural cycles supported by a component, and as such, dependencies that a component has towards phase extension providers.  It is the responsibility of a container to resolve and provide an appropriate phase provider to service the phase dependencies published by a component.</p>
          </td>
        </tr>
        <tr>
          <td><a href="phase"/><p>Profile</p></td>
          <td>
  <p>A <a href="api/assembly/org/apache/excalibur/merlin/model/Profile.html">Profile</a> is a description of a component <a href="api/meta/org/apache/excalibur/meta/info/Type.html">Type</a> instantiation criteria.</p> 
  <p>A type may have many differnet instantionation crieria - differented in terms of the context, parameters, or configuration to be applied.  Profiles within Merlin may be qualifed in terms of the statup policy and enabled status.  Startup policy inidicates that a component shall be started on startup of the container or if activation of the component can be deferred until it is requered.  Profile enablement policy simply declares if a profile is enabled or not - non enabled component profiles will not be included as assembly candidates.</p>
          </td>
        </tr>
        <tr>
          <td><a href="stage"/><p>Stage</p></td>
          <td>
  <p>A stage is defined as one of the well-know lifecycle step that a component passed though during deployment.</p>
  <p>These stages include <a href="api/meta/org/apache/excalibur/meta/info/ExtensionDescriptor.html#CREATE">create</a>, <a href="api/meta/org/apache/excalibur/meta/info/ExtensionDescriptor.html#ACCESS">access</a>, <a href="api/meta/org/apache/excalibur/meta/info/ExtensionDescriptor.html#RELEASE">release</a> and <a href="api/meta/org/apache/excalibur/meta/info/ExtensionDescriptor.html#DESTROY">destroy</a>.  The creation and destruction stages are referred to within the Merlin environment as outer-stages whereas access and release are referred to as inner-stages.  Stages represent the points at which lifecycle extensions can be applied to the core component model.  The meta-info model used within Merlin allows for a component to declare itself as a provider of a lifecycle <a href="#phase">phase</a> extension.  The meta-info <a href="api/meta/org/apache/excalibur/meta/info/ExtensionDescriptor.html">ExtensionDescriptor</a> is a declaration of a phase interface together with the stages that the extension should applied under.</p>
          </td>
        </tr>
      </table>
  
      </section>
    </body>
    <footer>
      <legal>
        Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
        $Revision: 1.1 $ $Date: 2002/08/06 04:10:38 $
      </legal>
    </footer>
  
  </document>
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>