mcconnell    2004/03/29 11:51:57

  Modified:    merlin/platform/xdocs/reference/component/artifacts
                        index.xml
  Log:
  Logger lifecycle artifact spec.
  
  Revision  Changes    Path
  1.3       +54 -0     
avalon/merlin/platform/xdocs/reference/component/artifacts/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: 
/home/cvs/avalon/merlin/platform/xdocs/reference/component/artifacts/index.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- index.xml 29 Mar 2004 18:10:29 -0000      1.2
  +++ index.xml 29 Mar 2004 19:51:57 -0000      1.3
  @@ -28,7 +28,61 @@
   
       <section name="Lifecycle Artifacts">
   
  +      <p>
  +Component-based solutions leverage the principals of Inversersion of Control 
(IoC). This principal leads to the notion that a component should be supplied 
with the resources it needs in order to function.  Another way of looking at 
this is that the component code should not be cluttered with content that is 
attempting to resolve resources relative to its environment. Through the 
application of a meta-info model a container has available to it a complete 
description of the component type and from this information can build the 
necessary resources that a component needs. These resources are supplied to a 
component through a set of standard Avalon lifecycle artificats.  These include 
  +<a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/logger/Logger.html";>Logger</a>,
 
  +<a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/context/Context.html";>Context</a>,
 
  +<a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/configuration/Configuration.html";>Configuration</a>,
 
  +<a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/parameters/Parameters.html";>Parameters</a>,
 and 
  +<a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/service/ServiceManager.html";>ServiceManager</a>.
  +      </p>
  +
  +      <p>
  +Two styles of artifact delivery are supported:
  +      </p>
  +
  +      <subsection name="Delivery Strategies">
  +
  +        <table>
  +          <tr>
  +            <td>injection</td>
  +            <td>
  +The artifact injection strategy enables the passing of artifacts via the 
component constructor.  This approach minimises lines of code dealing with 
establishment, enables the allocation of final variables, and eliminates the 
requirement for explict initialization of startup phases.
  +            </td>
  +          </tr>
  +          <tr>
  +            <td>phased</td>
  +            <td>
  +The phased artifact delivery strategy is based on a set of delivery 
interfaces (<a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/logger/LogEnabled.html";>LogEnabled</a>,
 <a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/context/Contextualizable.html";>Contextualizable</a>,
 <a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/configuration/Configurable.html";>Configurable</a>,
 <a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/parameters/Parameterizable.html";>Parameterizable</a>
 and <a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/service/Serviceable.html";>Serviceable</a>).
  The advantage of phased delivery over the injection strategy relates to 
artifact re-assignment by a component management subsystem. Phased artifact 
delivery is the traditional approach used be earlier Avalon solutions.
  +            </td>
  +          </tr>
  +        </table>
  +      </subsection>
  +
         <subsection name="Logger">
  +        <p>
  +The <a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/logger/Logger.html";>Logger</a>
 defines a implementation independent logging channel.  The logging channel 
supplied to a component represents the root loggging channel for the component. 
 A component may aquire additional subsidiary channels using the <a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/logger/Logger.html#getChildLogger(java.lang.String)">getChildLogger()</a>
 operation.  The Logger interface exposes a set of operations to check if a 
particular logging priority is enabled, thus enabling optimization of typically 
expensive string manipulation operations related to log message construction. 
  +        </p>
  +        <p>
  +A logging channel may be supplied via constructor or under an implementation 
of the <a 
href="http://avalon.apache.org/framework/api/org/apache/avalon/framework/logger/LogEnabled.html";>LogEnabled</a>
 lifecycle stage interface.
  +        </p>
  +<p><i>Example:</i></p>
  +<source>
  +  /**
  +   * Creation of a new widget. The implementation assigns 
  +   * the supplied logging channel as the default channel and 
  +   * constructs a subsidiary channel for connection related log 
  +   * messages.  Tgh
  +   *
  +   * @param logger a logging channel
  +   */
  +   public DefaultWidget( Logger logger ) 
  +   {
  +       m_logger = logger;
  +       m_connectionLogger = logger.getChildLogger( "connection" );
  +   }
  +</source>
  +
         </subsection>
   
         <subsection name="Context">
  
  
  

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

Reply via email to