mcconnell    2003/04/02 07:58:39

  Modified:    merlin   README.TXT maven.xml
               merlin/merlin-smp maven.xml
               merlin/meta/src/java/org/apache/avalon/meta/info/builder
                        package.html
               merlin/meta-spi/src/java/org/apache/avalon/meta/info
                        Type.java package.html
               merlin/meta-spi/src/java/org/apache/avalon/meta/model
                        package.html
               merlin/meta-tools/xdocs tags.xml
  Added:       merlin/meta/src/java/org/apache/avalon/meta/info/doc-files
                        Type.gif
               merlin/meta/src/java/org/apache/avalon/meta/model/doc-files
                        uml.gif
  Log:
  General doc updates.
  
  Revision  Changes    Path
  1.2       +2 -0      avalon-sandbox/merlin/README.TXT
  
  Index: README.TXT
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/README.TXT,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- README.TXT        13 Mar 2003 03:58:52 -0000      1.1
  +++ README.TXT        2 Apr 2003 15:58:38 -0000       1.2
  @@ -17,8 +17,10 @@
       +-- merlin-cli               merlin command line handler
       +-- merlin-core              merlin kernel, block, and container 
       +-- merlin-spi               merlin SPI interfaces and classes
  +    +-- merlin-plugin            plugin for Maven 
       +-- meta                     meta package implementation
       +-- meta-spi                 meta SPI interfaces and classes
  +    +-- meta-tools               meta info generator task
       +-- merlin-extensions        
             +- merlin-jndi         merlin JNDI connector
       +-- merlin-smp               site and installation resources
  
  
  
  1.5       +27 -9     avalon-sandbox/merlin/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/maven.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- maven.xml 29 Mar 2003 06:56:46 -0000      1.4
  +++ maven.xml 2 Apr 2003 15:58:38 -0000       1.5
  @@ -3,15 +3,6 @@
     <property name="merlin.build.inst" value="inst"/>
     <property name="merlin.build.inst.dir" 
value="${maven.build.dir}/${merlin.build.inst}"/>
   
  -  <!--
  -  <property name="ibiblio.rep.remote" 
  -    value="http://www.ibiblio.org/maven"/>
  -  <property name="avalon.rep.remote" 
  -    value="http://www.osm.net/repository"/>
  -  <property name="maven.repo.remote" 
  -    value="${avalon.rep.remote},${ibiblio.rep.remote}"/>
  -  -->
  -
     <property name="maven.checkstyle.format" value="avalon"/>
     <property name="maven.jar.manifest" value="${basedir}/src/etc/project.mf"/>
     <property name="pom.organization.identifier" value="ASF"/>
  @@ -132,12 +123,39 @@
     -->
     <goal name="merlin-site"
       description="Build the Merlin site.">
  +
       <maven:reactor
         basedir="${basedir}"
         includes="merlin-smp/project.xml"
         goals="site"
         banner="Building site."
         ignoreFailures="false"/>
  +
  +  </goal>
  +
  +  <!--
  +  The site goal is called by the merlin-install goal and handles the generation
  +  of the documetation for the entire Merlin project including the related sub-
  +  projects.
  +  -->
  +  <goal name="merlin-site-deploy"
  +    description="Deploy the Merlin site.">
  +
  +    <maven:reactor
  +      basedir="${basedir}"
  +      includes="merlin-smp/project.xml"
  +      goals="site:fsdeploy"
  +      banner="Deploying site."
  +      ignoreFailures="false"/>
  +
  +  </goal>
  +
  +  <!--
  +  The update goal generates the merlin site and deploys it to locat site repository.
  +  -->
  +  <goal name="merlin-update">
  +    <attainGoal name="merlin-site"/>
  +    <attainGoal name="merlin-site-deploy"/>
     </goal>
   
     <!--
  
  
  
  1.3       +0 -1      avalon-sandbox/merlin/merlin-smp/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/merlin-smp/maven.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- maven.xml 30 Mar 2003 05:27:49 -0000      1.2
  +++ maven.xml 2 Apr 2003 15:58:38 -0000       1.3
  @@ -9,7 +9,6 @@
       <attainGoal name="license"/>
     </preGoal>
   
  -
     <!--
     In order to build consolidated project javadoc and related 
     information we need to build up a simulated source path containing
  
  
  
  1.2       +1 -1      
avalon-sandbox/merlin/meta/src/java/org/apache/avalon/meta/info/builder/package.html
  
  Index: package.html
  ===================================================================
  RCS file: 
/home/cvs/avalon-sandbox/merlin/meta/src/java/org/apache/avalon/meta/info/builder/package.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- package.html      13 Mar 2003 01:05:59 -0000      1.1
  +++ package.html      2 Apr 2003 15:58:38 -0000       1.2
  @@ -3,7 +3,7 @@
   <p>
   Resources supporting the creation of a [EMAIL PROTECTED] 
org.apache.avalon.meta.info.Type} instance from a serialized form.
   <a name="external"><h3>External Form (XML)</h3></a>
  -<p>Configuration instances supplied to the builder shall correspond to the <a 
href="http://jakarta.apache.org/avalon/dts/meta/type.dtd";>Type DTD</a>.  
  +<p>Configuration instances supplied to the builder shall correspond to the <a 
href="http://avalon.apache.org/dtds/meta/type.dtd";>Type DTD</a>.  
   The structure of a component-info XML document is is described below:</p>
   
   <pre>
  
  
  
  1.1                  
avalon-sandbox/merlin/meta/src/java/org/apache/avalon/meta/info/doc-files/Type.gif
  
        <<Binary file>>
  
  
  1.1                  
avalon-sandbox/merlin/meta/src/java/org/apache/avalon/meta/model/doc-files/uml.gif
  
        <<Binary file>>
  
  
  1.3       +1 -2      
avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/info/Type.java
  
  Index: Type.java
  ===================================================================
  RCS file: 
/home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/info/Type.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Type.java 29 Mar 2003 03:25:58 -0000      1.2
  +++ Type.java 2 Apr 2003 15:58:39 -0000       1.3
  @@ -72,7 +72,6 @@
    * <p><image src="doc-files/Type.gif" border="0"/></p>
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
  - * @author <a href="mailto:[EMAIL PROTECTED]">Avalon Development Team</a>
    * @version $Revision$ $Date$
    */
   public class Type implements Serializable
  
  
  
  1.2       +1 -1      
avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/info/package.html
  
  Index: package.html
  ===================================================================
  RCS file: 
/home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/info/package.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- package.html      13 Mar 2003 01:06:14 -0000      1.1
  +++ package.html      2 Apr 2003 15:58:39 -0000       1.2
  @@ -9,5 +9,5 @@
   </p>
   
   <h3>Package Structure (UML)</h3>
  -<p><img src=doc-files/Type.gif border=0></p>
  +<p><img src=./doc-files/Type.gif border=0></p>
   </body>
  
  
  
  1.2       +1 -1      
avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/model/package.html
  
  Index: package.html
  ===================================================================
  RCS file: 
/home/cvs/avalon-sandbox/merlin/meta-spi/src/java/org/apache/avalon/meta/model/package.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- package.html      13 Mar 2003 01:06:28 -0000      1.1
  +++ package.html      2 Apr 2003 15:58:39 -0000       1.2
  @@ -5,6 +5,6 @@
   </p>
   
   <h3>Object Model (UML)</h3>
  -<p><img src=doc-files/uml.gif border=0></p>
  +<p><img src=./doc-files/uml.gif border=0></p>
   
   </body>
  
  
  
  1.2       +508 -1    avalon-sandbox/merlin/meta-tools/xdocs/tags.xml
  
  Index: tags.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/meta-tools/xdocs/tags.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- tags.xml  29 Mar 2003 03:13:11 -0000      1.1
  +++ tags.xml  2 Apr 2003 15:58:39 -0000       1.2
  @@ -14,9 +14,516 @@
   <p>
   Meta information associated with component types can be expressed directly in XML 
or documented in javadoc tags within the component source code.  The javadoc tag 
approach ensures that specifications are maintain with respective sources.  Generation 
of meta info is achieved through a meta-info generation tool.  Tools are provided for 
both Ant and Maven.
   </p>
  +
  +      <subsection name="Tag List">
  +<table>
  +  <tr><th>Tag</th><th>Scope</th><th>Description</th></tr>
  +  <tr><td><a href="#Namespace Tag">@avalon.meta.namespace</a></td>
  +    <td>class</td><td>Enables client modification of the tag namespace.</td></tr>
  +  <tr><td><a href="#Version Tag">@avalon.meta.version</a></td>
  +    <td>class</td><td>Identifies a class or interface are a Type or 
Service.</td></tr>
  +  <tr><td><a href="#Attribute Tag">@avalon.meta.attribute</a></td>
  +    <td>class</td><td>A attribute associated with a containing type or 
service.</td></tr>
  +  <tr><td><a href="#Name Tag">@avalon.meta.name</a></td>
  +    <td>class</td><td>Declaration of a component type name.</td></tr>
  +  <tr><td><a href="#Lifestyle Tag">@avalon.meta.lifestyle</a></td>
  +    <td>class</td><td>Declaration of the lifestyle policy.</td></tr>
  +  <tr><td><a href="#Service Tag">@avalon.meta.service</a></td>
  +    <td>class</td><td>Service export declaration from a type.</td></tr>
  +  <tr><td><a href="#Stage Tag">@avalon.meta.stage</a></td>
  +    <td>class</td><td>Lifecycle stage dependency declaration.</td></tr>
  +  <tr><td><a href="#Extension Tag">@avalon.meta.extension</a></td>
  +    <td>class</td><td>Lifecycle stage handling capability declaration.</td></tr>
  +  <tr><td><a href="#Logger Tag">@avalon.meta.logger</a></td>
  +    <td>enableLogging</td><td>Logging channel name declaration.</td></tr>
  +  <tr><td><a href="#Context Tag">@avalon.meta.context</a></td>
  +    <td>contextualize</td><td>Declaration of a specialized context class.</td></tr>
  +  <tr><td><a href="#Entry Tag">@avalon.meta.entry</a></td>
  +    <td>contextualize</td><td>Context entry declaration.</td></tr>
  +  <tr><td><a href="#Dependency Tag">@avalon.meta.dependency</a></td>
  +    <td>service</td><td>Service type dependency declaration.</td></tr>
  +</table>
  +      </subsection>
  +
  +      <subsection name="Namespace Tag">
  +<p>Javadoc tags may not include line breaks.  As such, it is convinient for the 
client to declare an alternatice namespace to the default avalon.mata.</p>
  +                <p>Example:</p>
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example component containing a namespace declaration.  The tag value
  + * supplied under the avalon.meta.namespace tag represents an alias of 
  + * the namespace, enabling more compact tag specification.
  + *
  + * @avalon.meta.namespace xx
  + *
  + * @xx.version 1.3
  + * @xx.name primary-component
  + * @xx.lifestyle singleton
  + * @xx.service type="org.apache.avalon.playground.PrimaryService:9.8"
  + */
  +public class MyComponent
  +{
  +  ...
  +}
  +]]></source>
  +
  +      </subsection>
  +
         <subsection name="Version Tag">
   <p>A version tag may be declared in either a class or interface.  It specifices the 
version of the component or service (depeding if the tag is included within a class or 
interface).  The presence of a version tag signals to the generation tools that a 
meta-info description is required.  In the case of a class, a Type defintion is 
created whereas an version tag in an interface will result in the generation of a 
Service descriptor.</p>
   
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example of a version declaration defintion.  The version tag is  
  + * required in order to generate a <classname>.xservice definition  
  + * or <classname>.xinfo type descriptor. 
  + *
  + * @avalon.meta.version 1.3
  + */
  +public interface MyService
  +{
  +  ...
  +}
  +]]></source>
  +
  +<p>Generated meta-info when declared within an interface:</p>
  +
  +<source><![CDATA[
  +<service>
  +  <version>1.3.0<version>
  +</service>
  +]]></source>
  +
  +<p>Generated meta-info when declared within an class:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>1.3.0<version>
  +  </info>
  +</type>
  +]]></source>
  +
  +      </subsection>
  +
  +      <subsection name="Attribute Tag">
  +<p>An attribute may be declared within an interface or class. When declared under 
an interface the attribute will be included in the generated service defintion.  When 
declared under a class, the attribute will be included in the info element of the type 
defintion.</p>
  +
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example of the declaration of a series of attributes.
  + *
  + * @avalon.meta.attribute key="description" value="an example"
  + * @avalon.meta.attribute key="color" value="red"
  + * @avalon.meta.attribute key="priority" value="normal"
  + */
  +public interface MyService
  +{
  +  ...
  +}
  +]]></source>
  +
  +<p>Generated meta-info when declared within an interface:</p>
  +
  +<source><![CDATA[
  +<service>
  +  <attributes>
  +    <attribute name="description" value="an example"/>
  +    <attribute name="color" value="red"/>
  +    <attribute name="priority" value="normal"/>
  +  </attributes>
  +</service>
  +]]></source>
  +
  +<p>Generated meta-info when declared within an class:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <attributes>
  +      <attribute name="description" value="an example"/>
  +      <attribute name="color" value="red"/>
  +      <attribute name="priority" value="normal"/>
  +    </attributes>
  +  </info>
  +</type>
  +]]></source>
  +
  +      </subsection>
  +
  +      <subsection name="Name Tag">
  +<p>The name tag associates a name to a component type.  The name tag is a required 
when generating a type descriptor.</p>
  +
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example of the declaration of named component type.
  + *
  + * @avalon.meta.version 1.0
  + * @avalon.meta.name sample
  + */
  +public class DefaultComponent
  +{
  +  ...
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>1.0.0</version>
  +    <name>sample</name>
  +  </info>
  +</type>
  +]]></source>
  +
  +      </subsection>
  +
  +      <subsection name="Lifestyle Tag">
  +<p>The optional lifestyle tag associates a lifestyle policy with a component type. 
Recognized lifestyle policies include 'singleton', 'thread', 'pooled', and 
'transient'.</p>
  +
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example of the declaration of a lifestyle policy within a component.
  + *
  + * @avalon.meta.version 1.0
  + * @avalon.meta.name sample
  + * @avalon.meta.lifestyle transient
  + */
  +public class DefaultComponent
  +{
  +  ...
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>1.0.0</version>
  +    <name>sample</name>
  +    <attributes>
  +      <attribute name="urn:avalon:lifestyle" value="transient"/>
  +    </attributes>
  +  </info>
  +</type>
  +]]></source>
  +
  +      </subsection>
  +
  +      <subsection name="Service Tag">
  +<p>Compoent types can declare their ability to provide services via the service 
tag.  A component type may declare 0..n service export declarations.</p>
  +
  +<source><![CDATA[
  +package net.osm.vault;
  +
  +/**
  + * Example of a component declaring export of a set of services.  
  + *
  + * @avalon.meta.version 5.1
  + * @avalon.meta.name vault
  + * @avalon.meta.service type="net.osm.vault.Vault;
  + * @avalon.meta.service type="net.osm.vault.KeystoreHandler:2.1.1;
  + */
  +public class DefaultVault
  +{
  +  ...
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>5.1.0</version>
  +    <name>vault</name>
  +  </info>
  +  <services>
  +    <service type="net.osm.vault.Vault:1.0.0"/>
  +    <service type="net.osm.vault.KeystoreHandler:2.1.1"/>
  +  </services>
  +</type>
  +]]></source>
  +
  +      </subsection>
  +
  +      <subsection name="Stage Tag">
  +<p>A component type may declare a dependency on an arbitary number of lifecycle 
stages.  Each stage corresponds to a lifecycle extension that will be applied to the 
component in the order corresponding to the ordering of stage tags.  A container is 
responsible for the construction and deployment of an extension stage handler (refered 
to as an extension) capable of servicing the stage dependency.</p>
  +
  +<source><![CDATA[
  +package net.osm.vault;
  +
  +/**
  + * Example of a component declaring a stage dependency.
  + *
  + * @avalon.meta.version 0.1
  + * @avalon.meta.name extended-component
  + * @avalon.meta.stage type="org.apache.avalon.plyground.Demonstratable";
  + */
  +public class DemoComponent
  +{
  +  ...
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>0.1.0</version>
  +    <name>extended-component</name>
  +  </info>
  +  <stages>
  +    <stage type="org.apache.avalon.plyground.Demonstratable:1.0.0"/>
  +  </services>
  +</type>
  +]]></source>
  +
  +      </subsection>
  +
  +      <subsection name="Extension Tag">
  +<p>Lifecycle stages are resolved through the establishment of a component capable 
of service the stage dependency.  Component types declare this ability through the 
extension tag.</p>
  +
  +<source><![CDATA[
  +package net.osm.vault;
  +
  +/**
  + * Example of a component declaring a stage handling capability.
  + *
  + * @avalon.meta.version 0.1
  + * @avalon.meta.name handler
  + * @avalon.meta.extension type="org.apache.avalon.plyground.Demonstratable";
  + */
  +public class DemoExtension
  +{
  +  ...
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>0.1.0</version>
  +    <name>handler</name>
  +  </info>
  +  <extensions>
  +    <extension type="org.apache.avalon.plyground.Demonstratable:1.0.0"/>
  +  </services>
  +</type>
  +]]></source>
  +
  +      </subsection>
  +
  +      <subsection name="Logger Tag">
  +<p>The logger tag declares the name of a logging channel that is consumed by a 
component type.</p>
  +
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example of a component declaring the name of a logging channel.
  + *
  + * @avalon.meta.name component
  + * @avalon.meta.version 2.4
  + */
  +public class MyComponent extends AbstractLogEnabled
  +{
  +    private Logger m_system = null;
  +
  +   /**
  +    * Supply of a logging channel to the component.
  +    * @param logger the logging channel
  +    * @avalon.meta.logger name="system"
  +    */
  +    public void enableLogging( Logger logger )
  +    {
  +        super.enableLogging( logger );
  +        m_system = logger.getChildLogger( "system" );
  +    }
  +
  +    ...
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>2.4.0</version>
  +    <name>component</name>
  +  </info>
  +  <loggers>
  +    <logger name="system"/>
  +  </loggers>
  +</type>
  +]]></source>
  +      </subsection>
  +
  +      <subsection name="Context Tag">
  +<p>The context tag enables the declaration of a custom context interface 
argument.</p>
  +
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example of a component declaring a custom context argument type.
  + *
  + * @avalon.meta.version 1.3
  + * @avalon.meta.name primary-component
  + */
  +public class Primary implements Contextualizable
  +{
  +   /**
  +    * @avalon.meta.context type="net.osm.CustomContext"
  +    */
  +    public void contextualize( Context context ) 
  +      throws ContextException
  +    {
  +        CustomContext custom = (CustomContext) context;
  +        ...
  +    }
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>1.3.0</version>
  +    <name>primary-component</name>
  +  </info>
  +  <context type="net.osm.CustomComponent:1.0.0">
  +  </context>
  +</type>
  +]]></source>
  +      </subsection>
  +
  +      <subsection name="Entry Tag">
  +<p>The entry tag declares a context entry required by a component.  The component 
is supplied the context entry via a context argument as part of the contextualization 
lifecycle stage. Context entries my declare a object type or array of object types.  
If the type is not declared java.lang.String is assumed.  Context entries may be 
declared as option.  The default behaviour is to assume that a context entry is 
required.</p>
  +
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example of a component declaring a context entry dependencies.
  + *
  + * @avalon.meta.version 1.0
  + * @avalon.meta.name entry-demo
  + */
  +public class Primary implements Contextualizable
  +{
  +   /**
  +    * @avalon.meta.entry type="java.io.File" key="home" optional="true"
  +    * @avalon.meta.entry key="table" type="java.lang.Object[]"
  +    * @avalon.meta.entry key="name"
  +    */
  +    public void contextualize( Context context ) 
  +      throws ContextException
  +    {
  +        String name = (String) context.get( "name" );
  +        Object[] array = (Object[]) context.get( "table" );
  +        try
  +        {
  +            File home = (File) context.get( "home" );
  +            ...
  +        }
  +        catch( ContextException ce )
  +        {
  +            // it's optional
  +        }
  +    }
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>1.3.0</version>
  +    <name>primary-component</name>
  +  </info>
  +  <context>
  +    <entry key="home" type="java.io.File" optional="true"/>
  +    <entry key="table" type="java.lang.Object[]" optional="false"/>
  +    <entry key="name" type="java.lang.String" optional="false"/>
  +  </context>
  +</type>
  +]]></source>
  +      </subsection>
  +
  +      <subsection name="Dependency Tag">
  +<p>Component types may declare multiple service dependencies through the service 
tag.  Each service tag references a versioned service identifier that the container 
will supply to the component type on request relative to the declared dependency 
key.</p>
  +
  +<source><![CDATA[
  +package net.osm;
  +
  +/**
  + * Example of a component declaring multiple service dependencies.
  + *
  + * @avalon.meta.version 1.0
  + * @avalon.meta.name demo
  + */
  +public class Demo implements Serviceable
  +{
  +    ...
  +
  +   /**
  +    * Supply of dependent services to this component by 
  +    *  the container.
  +    * @param manager the service manager
  +    * @avalon.meta.dependency key="home" type="Home:1.3" 
  +    * @avalon.meta.dependency type="Resource:5" optional="true"
  +    */
  +    public void service( ServiceManager manager ) 
  +      throws ServiceException
  +    {
  +        m_home = (Home) manager.lookup( "home" );
  +        try
  +        {
  +            m_resource = (Resource) manager.lookup( 
  +              Resource.getClass().getName() );
  +        }
  +        catch( ServiceException se )
  +        {
  +            // it's optional
  +        }
  +    }
  +}
  +]]></source>
  +
  +<p>Generated meta-info type descriptor:</p>
  +
  +<source><![CDATA[
  +<type>
  +  <info>
  +    <version>1.3.0</version>
  +    <name>demo</name>
  +  </info>
  +  <dependencies>
  +    <dependency key="home" type="Home:1.3.0"/>
  +    <dependency type="Resource:5.0.0" optional="true"/>
  +  </dependencies>
  +</type>
  +]]></source>
         </subsection>
   
       </section>
  
  
  

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

Reply via email to