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 [EMAIL PROTECTED] #CREATE}, [EMAIL 
PROTECTED] #ACCESS}, [EMAIL PROTECTED] #RELEASE}, [EMAIL PROTECTED] #DESTROY},
        *   [EMAIL PROTECTED] #INNER}, [EMAIL PROTECTED] #OUTER}, or [EMAIL 
PROTECTED] #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="[EMAIL PROTECTED]">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:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to