donaldp     2002/11/12 18:24:45

  Added:       docs/excalibur/info MyComponent-info.xml.txt
                        MyComponent.java.txt attributes.html context.html
                        doclet.html features.html index.html tasks.html
               docs/excalibur/info/css ns4_only.css print.css site.css
                        tigris.css
  Log:
  Add in start of info site.
  
  Revision  Changes    Path
  1.1                  jakarta-avalon-site/docs/excalibur/info/MyComponent-info.xml.txt
  
  Index: MyComponent-info.xml.txt
  ===================================================================
  <?xml version="1.0" encoding="utf-8" ?>
  <!DOCTYPE component-info
        PUBLIC "-//AVALON/Component Info DTD Version 1.0//EN"
               "http://jakarta.apache.org/avalon/dtds/info/componentinfo_1_0.dtd"; >
  
  <component-info>
      <component type="com.biz.MyComponent">
      </component>
  
      <loggers>
          <logger/>
          <logger name="auth"/>
      </loggers>
  
      <context>
          <entry key="component.classloader" type="java.lang.ClassLoader"/>
      </context>
  
      <services>
          <service type="com.biz.Service1"/>
      </services>
  
      <dependencies>
          <dependency type="com.biz.Service2"/>
          <dependency key="com.biz.Service1/Variation" type="com.biz.Service1"
                      optional="true"/>
      </dependencies>
  
      <schema category="configuration"  location="MyComponent-schema.xml"/>
  
  </component-info>
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/MyComponent.java.txt
  
  Index: MyComponent.java.txt
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package com.biz;
  
  import org.apache.avalon.framework.service.ServiceException;
  import org.apache.avalon.framework.service.ServiceManager;
  import org.apache.avalon.framework.service.Serviceable;
  import org.apache.avalon.framework.logger.LogEnabled;
  import org.apache.avalon.framework.logger.Logger;
  import org.apache.avalon.framework.context.Contextualizable;
  import org.apache.avalon.framework.context.Context;
  import org.apache.avalon.framework.context.ContextException;
  import org.apache.avalon.framework.configuration.Configurable;
  import org.apache.avalon.framework.configuration.Configuration;
  import org.apache.avalon.framework.configuration.ConfigurationException;
  import org.apache.avalon.framework.activity.Initializable;
  
  /**
   * A sample component that shows the info descriptor that
   * is created for a particular component that has been marked up
   * using javadoc tags.
   *
   * @author <a href="mailto:peter at apache.org">Peter Donald</a>
   * @version $Revision: 1.1 $ $Date: 2002/11/13 02:24:44 $
   * @avalon.component
   * @avalon.service type="Service1"
   */
  public class MyComponent
      implements LogEnabled, Contextualizable, Serviceable,
      Configurable, Initializable, Service1
  {
      private Logger m_logger;
      private Logger m_authLogger;
      private ClassLoader m_classLoader;
      private Service2 m_service2Variation;
      private Service2 m_service2;
  
      /**
       * @avalon.logger
       * @avalon.logger name="auth"
       */
      public void enableLogging( Logger logger )
      {
          m_logger = logger;
          m_authLogger = logger.getChildLogger( "auth" );
      }
  
      /**
       * @avalon.entry key="component.classloader" type="ClassLoader"
       */
      public void contextualize( Context context )
          throws ContextException
      {
          m_classLoader = (ClassLoader)context.get( "component.classloader" );
      }
  
      /**
       * @avalon.dependency type="Service2"
       * @avalon.dependency type="Service2/Variation" optional="true"
       */
      public void service( final ServiceManager manager )
          throws ServiceException
      {
          m_service2 = (Service2)manager.lookup( Service2.ROLE );
  
          final String key = Service2.ROLE + "/Variation";
          if( manager.hasService( key ) )
          {
              m_service2Variation =
                  (Service2)manager.lookup( key );
          }
      }
  
      /**
       * @avalon.configuration
       */
      public void configure( final Configuration configuration )
          throws ConfigurationException
      {
      }
  
      public void initialize()
          throws Exception
      {
          m_logger.info( "Aquired ClassLoader: " + m_classLoader );
          m_logger.info( "Aquired first Service2: " + m_service2 );
  
          if( null != m_service2Variation )
          {
              m_logger.info( "Aquired second Service2: " + m_service2Variation );
          }
  
          m_authLogger.info( "Success!" );
      }
  }
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/attributes.html
  
  Index: attributes.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  
  <!-- This is a generated file.  Do not edit. -->
      <html>
      <head>
        <style type="text/css">
          @import url("./css/tigris.css");
          @import url("./css/site.css");
        </style>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  
                        <meta name="author" value="Peter Donald">
    <meta name="email" value="peter at apache.org">
        
        <title>Avalon Info - Attribute Definitions</title>
      </head>
  
      <body marginwidth="0" marginheight="0" class="composite">
  
        <div id="banner">
          <table border="0" cellspacing="0" cellpadding="8" width="100%">
            <!-- TOP IMAGE -->
            <tr>
              <td>      <td colspan="2">
      <a href="http://jakarta.apache.org";><img 
src="http://jakarta.apache.org/images/jakarta-logo.gif"; align="left" border="0"/></a>
      </td>
    </td>
              <td><div align="right" valign="bottom"><b><font size="+3">Avalon 
Info</font></b></div></td>
            </tr>
          </table>
        </div>
  
        <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
          <tr valign="top">
            <!-- LEFT SIDE NAVIGATION -->
            <td id="leftcol" width="20%">
              <div id="navcolumn">
                    <div>
        <strong>About</strong>
                <div><small>      <a href="./index.html">Overview</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/avalon/excalibur/index.html";>Excalibur Home</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/builds/jakarta-avalon-excalibur/release";>Download</a>
    </small></div>
                <div><small>      <a href="./api/">API Docs</a>
    </small></div>
            </div>
        <div>
        <strong>Specifications</strong>
                <div><small>      <a href="./attributes.html">Common Attributes</a>
    </small></div>
                <div><small>      <a href="./context.html">Context Entry Spec</a>
    </small></div>
                <div><small>      <a href="./features.html">Features</a>
    </small></div>
            </div>
        <div>
        <strong>Tools</strong>
                <div><small>      <a href="./tasks.html">Ant Tasks</a>
    </small></div>
                <div><small>      <a href="./doclet.html">Doclet Markup</a>
    </small></div>
            </div>
                </div>
            </td>
            <td><div id="bodycol"><div class="app">
          <div class="h3">
              <h3><a name="Introduction">Introduction</a></h3>
                          <p
          >                    This document aims to describe the attributes that 
define
              functionality common to multiple containers. These Info attributes
              are usually generated from source files that have been decorated
              with 
                                      <a href="doclet.html">Javadoc</a>
                               tags.
              </p>
                </div>
          <div class="h3">
              <h3><a name="Tags">Tags</a></h3>
                          <p
          >      The list of standard metadata attributes includes;
    </p>
                                  <ul
          >                    
                  
                                <li
          >                                <a href="#doc">doc</a>
                              : documentation attribute
              </li>
                            
                  
                                <li
          >                                <a href="#feature">feature</a>
                              : attribute for specifying
                  which container extensions are required or supported.
              </li>
                            
                  
                                <li
          >                    
                  
                                      <a href="#lifecycle">lifecycle</a>
                              : attribute for specifying
                  the lifecycle of component.
              </li>
                            
              
              </ul>
                              <div class="h4">
              <h4><a name="doc">doc</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <th
            >
                  Target
          </th>
                    <td
            >
                  All
          </td>
          </tr>
                          <tr class="b">
                  <th
            >
                  Allow Multiple
          </th>
                    <td
            >
                  false
          </td>
          </tr>
                          <tr class="a">
                  <th
            >
                  Inherit
          </th>
                    <td
            >
                  true
          </td>
          </tr>
                          <tr class="b">
                  <th
            >
                  Description
          </th>
                    <td
            >
                  The "doc" attribute is used to document artefacts in the
                          system. The documentation can either be read from
                          ResourceBundles or loaded directly from the Parameters.
                          Loading descriptions from ResourceBundles is supported
                          to enable internationalization of descriptions and
                          display strings.
          </td>
          </tr>
          </table>
                    <h4
          >      Parameters:
    </h4>
                      <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <th
            >
                  Name
          </th>
                    <th
            >
                  Default
          </th>
                    <th
            >
                  Required
          </th>
                    <th
            >
                  Description
          </th>
          </tr>
                          <tr class="b">
                  <td
            >
                  display-string
          </td>
                    <td
            >
            &nbsp;
        </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This specifies string to display on the
                          User Interface when labeling artefact.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  description
          </td>
                    <td
            >
            &nbsp;
        </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This specifies a human readable description of artefact.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  i18n-bundle
          </td>
                    <td
            >
                  Component Name + "Info"
          </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This specifies the location of ResourceBundle to use when
                          looking up display string and the description via keys.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  display-string-key
          </td>
                    <td
            >
            &nbsp;
        </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This is an alternative to display-string parameter. It
                          defines a key to use when loading display-string from the
                          ResourceBundle.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  description-key
          </td>
                    <td
            >
            &nbsp;
        </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This is an alternative to description parameter. It
                          defines a key to use when loading description from the
                          ResourceBundle.
          </td>
          </tr>
          </table>
                    <p
          >      The following is an example info fragment that defines a
                  display string and description by directly storing data in 
descriptor.
    </p>
                      <div id="source">
      <pre>&lt;attribute name=&quot;doc&quot;&gt;
    &lt;param name=&quot;display-name&quot; value=&quot;My Magic Component&quot;/&gt;
    &lt;param name=&quot;description&quot;
           value=&quot;My Magic Component does Magic.&quot;/&gt;
  &lt;/attribute&gt;</pre>
    </div>
                    <p
          >      The following is an example info fragment that loads the
                  display string and description from a resource bundle.
    </p>
                      <div id="source">
      <pre>&lt;attribute name=&quot;doc&quot;&gt;
    &lt;param name=&quot;display-name-key&quot; 
value=&quot;component.display-name&quot;/&gt;
    &lt;param name=&quot;description-key&quot; 
value=&quot;component.description&quot;/&gt;
  &lt;/attribute&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="feature">feature</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <th
            >
                  Target
          </th>
                    <td
            >
                  Component,Service
          </td>
          </tr>
                          <tr class="b">
                  <th
            >
                  Allow Multiple
          </th>
                    <td
            >
                  false
          </td>
          </tr>
                          <tr class="a">
                  <th
            >
                  Inherit
          </th>
                    <td
            >
                  true
          </td>
          </tr>
                          <tr class="b">
                  <th
            >
                  Description
          </th>
                    <td
            >
                                The &quot;feature&quot; attribute is used to define 
which
                          container extensions that the component requires
                          or will use if present. See the 
                                      <a href="features.html">
                          features</a>
                               document for details about container
                          extensions.
                    </td>
          </tr>
          </table>
                    <h4
          >      Parameters:
    </h4>
                      <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <th
            >
                  Name
          </th>
                    <th
            >
                  Default
          </th>
                    <th
            >
                  Required
          </th>
                    <th
            >
                  Description
          </th>
          </tr>
                          <tr class="b">
                  <td
            >
                  required
          </td>
                    <td
            >
            &nbsp;
        </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This whitespace seprated list of features
                          that this component requires.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  optional
          </td>
                    <td
            >
            &nbsp;
        </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This whitespace seprated list of features
                          that this component will use if present.
          </td>
          </tr>
          </table>
                    <p
          >      The following is an example of a component declaring
                  that it requires extension sec, tx and will use mx if present.
    </p>
                      <div id="source">
      <pre>&lt;attribute name=&quot;feature&quot;&gt;
    &lt;param name=&quot;required&quot; value=&quot;sec tx&quot;/&gt;
    &lt;param name=&quot;optional&quot; value=&quot;mx&quot;/&gt;
  &lt;/attribute&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="lifecycle">lifecycle</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <th
            >
                  Target
          </th>
                    <td
            >
                  Component,Service
          </td>
          </tr>
                          <tr class="b">
                  <th
            >
                  Allow Multiple
          </th>
                    <td
            >
                  false
          </td>
          </tr>
                          <tr class="a">
                  <th
            >
                  Inherit
          </th>
                    <td
            >
                  true
          </td>
          </tr>
                          <tr class="b">
                  <th
            >
                  Description
          </th>
                    <td
            >
                  The "lifecycle" attribute is used to define
                          the "lifecycle" of a particular component. The lifecycle
                          is defined by a number of parameters. The most important
                          of which is the scope in which a component can be, the scope
                          in which it is visible and the activation policy.
                          
          </td>
          </tr>
          </table>
                    <h4
          >      Parameters:
    </h4>
                      <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <th
            >
                  Name
          </th>
                    <th
            >
                  Default
          </th>
                    <th
            >
                  Required
          </th>
                    <th
            >
                  Description
          </th>
          </tr>
                          <tr class="b">
                  <td
            >
                  scope
          </td>
                    <td
            >
                  application
          </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This defines the scope with in which the the component is
                          capable of being used. The valid scopes include 
"application",
                          "thread", "access" and "transaction". "application" scope 
means
                          that each lookup will return the same component. "thread" 
scope
                          means that each access in the same thread will return the 
same
                          component (usually it also means that the component can only 
be used
                          in that thread). "access" scope means that each access will 
return a
                          new instance. "transaction" scope means that each access in 
the
                          same transaction will return the same component. The notion 
of
                          "transaction" is container specific and requires some 
context to
                          be shared between the client and the container.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  public
          </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This parameter specifies whether the component
                          is visible outside this particular partition.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  activation
          </td>
                    <td
            >
                  startup
          </td>
                    <td
            >
                  false
          </td>
                    <td
            >
                  This parameter specifies the activation policy of
                          component. Possible values include "startup" which
                          indicates that the component is created at startup and
                          remains till the application ends. "jit" which means the
                          component is created the first time it is needed.
                          The "on-demand" policy indicates that the component is
                          created when it is needed and that it may be passivated
                          if it is no longer needed. The exact scheduling of 
"on-demand"
                          is container specific.
          </td>
          </tr>
          </table>
                    <p
          >      The following is an example of a component declaring
                  that it is scoped per access and which can be exported
                  to other partitions.
    </p>
                      <div id="source">
      <pre>&lt;attribute name=&quot;lifestyle&quot;&gt;
    &lt;param name=&quot;scope&quot; value=&quot;access&quot;/&gt;
    &lt;param name=&quot;public&quot; value=&quot;true&quot;/&gt;
  &lt;/attribute&gt;</pre>
    </div>
          </div>
              </div>
                </div>
                <div align="right" id="authors">
                 by   <a href="mailto:peter at apache.org">Peter Donald</a>
                </div>
            </div></td>
          </tr>
        </table>
  
        <!-- FOOTER -->
        <div id="footer">
          <table border="0" cellspacing="0" cellpadding="4">
            <tr>
              <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
            </tr>
          </table>
        </div>
  
      </body>
    </html>
  
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/context.html
  
  Index: context.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  
  <!-- This is a generated file.  Do not edit. -->
      <html>
      <head>
        <style type="text/css">
          @import url("./css/tigris.css");
          @import url("./css/site.css");
        </style>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  
                        <meta name="author" value="Peter Donald">
    <meta name="email" value="peter at apache.org">
        
        <title>Avalon Info - Context Entrys</title>
      </head>
  
      <body marginwidth="0" marginheight="0" class="composite">
  
        <div id="banner">
          <table border="0" cellspacing="0" cellpadding="8" width="100%">
            <!-- TOP IMAGE -->
            <tr>
              <td>      <td colspan="2">
      <a href="http://jakarta.apache.org";><img 
src="http://jakarta.apache.org/images/jakarta-logo.gif"; align="left" border="0"/></a>
      </td>
    </td>
              <td><div align="right" valign="bottom"><b><font size="+3">Avalon 
Info</font></b></div></td>
            </tr>
          </table>
        </div>
  
        <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
          <tr valign="top">
            <!-- LEFT SIDE NAVIGATION -->
            <td id="leftcol" width="20%">
              <div id="navcolumn">
                    <div>
        <strong>About</strong>
                <div><small>      <a href="./index.html">Overview</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/avalon/excalibur/index.html";>Excalibur Home</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/builds/jakarta-avalon-excalibur/release";>Download</a>
    </small></div>
                <div><small>      <a href="./api/">API Docs</a>
    </small></div>
            </div>
        <div>
        <strong>Specifications</strong>
                <div><small>      <a href="./attributes.html">Common Attributes</a>
    </small></div>
                <div><small>      <a href="./context.html">Context Entry Spec</a>
    </small></div>
                <div><small>      <a href="./features.html">Features</a>
    </small></div>
            </div>
        <div>
        <strong>Tools</strong>
                <div><small>      <a href="./tasks.html">Ant Tasks</a>
    </small></div>
                <div><small>      <a href="./doclet.html">Doclet Markup</a>
    </small></div>
            </div>
                </div>
            </td>
            <td><div id="bodycol"><div class="app">
          <div class="h3">
              <h3><a name="Overview">Overview</a></h3>
                          <p
          >      The Context interface gives the component writer an interface via
              which to access resources that are provided by the container. Each
              component declares the resources it requires (or will use if present)
              under a specific key with a specific type.
    </p>
                                  <p
          >                    The list of context keys that is supported by the 
container is
              extensible and follows the namespacing conventions outlined in the
              
                                      <a href="namespaces.html">Namespace</a>
                               document. However there are
              a set of standard key-value pairs. It is recomended that container
              recognize these if they support the particular feature.
              </p>
                </div>
          <div class="h3">
              <h3><a name="Entry Definitions">Entry Definitions</a></h3>
                            <table cellpadding="3" cellspacing="2" border="1" 
width="100%">
                      <tr class="a">
                  <th
            >
                  Key
          </th>
                    <th
            >
                  Type
          </th>
                    <th
            >
                  Description
          </th>
          </tr>
                          <tr class="b">
                  <td
            >
                  component.name
          </td>
                    <td
            >
                                      <code
          >      java.lang.String
    </code>
                      </td>
                    <td
            >
                  This entry defines the name of the component.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  component.classloader
          </td>
                    <td
            >
                                      <code
          >      java.lang.ClassLoader
    </code>
                      </td>
                    <td
            >
                  The classloader via which the component was loaded. May
                      differ from the ClassLoader returned by 
getClass().getClassLoader()
                      if the component was loaded from parent classloader.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  partition.name
          </td>
                    <td
            >
                                      <code
          >      java.lang.String
    </code>
                      </td>
                    <td
            >
                  This entry defines the name of the partition.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  application.name
          </td>
                    <td
            >
                                      <code
          >      java.lang.String
    </code>
                      </td>
                    <td
            >
                  This entry defines the name of the application.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  component.home
          </td>
                    <td
            >
                                      <code
          >      java.io.File
    </code>
                      </td>
                    <td
            >
                  The location in which the component
                      to store persistent data relevent to the
                      component.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  component.work
          </td>
                    <td
            >
                                      <code
          >      java.io.File
    </code>
                      </td>
                    <td
            >
                  This directory in which to store temporary or working
                      information. It may not persist over restarts of
                      the component.
          </td>
          </tr>
          </table>
                </div>
                </div>
                <div align="right" id="authors">
                 by   <a href="mailto:peter at apache.org">Peter Donald</a>
                </div>
            </div></td>
          </tr>
        </table>
  
        <!-- FOOTER -->
        <div id="footer">
          <table border="0" cellspacing="0" cellpadding="4">
            <tr>
              <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
            </tr>
          </table>
        </div>
  
      </body>
    </html>
  
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/doclet.html
  
  Index: doclet.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  
  <!-- This is a generated file.  Do not edit. -->
      <html>
      <head>
        <style type="text/css">
          @import url("./css/tigris.css");
          @import url("./css/site.css");
        </style>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  
                        <meta name="author" value="Peter Donald">
    <meta name="email" value="peter at apache.org">
        
        <title>Avalon Info - Doclet</title>
      </head>
  
      <body marginwidth="0" marginheight="0" class="composite">
  
        <div id="banner">
          <table border="0" cellspacing="0" cellpadding="8" width="100%">
            <!-- TOP IMAGE -->
            <tr>
              <td>      <td colspan="2">
      <a href="http://jakarta.apache.org";><img 
src="http://jakarta.apache.org/images/jakarta-logo.gif"; align="left" border="0"/></a>
      </td>
    </td>
              <td><div align="right" valign="bottom"><b><font size="+3">Avalon 
Info</font></b></div></td>
            </tr>
          </table>
        </div>
  
        <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
          <tr valign="top">
            <!-- LEFT SIDE NAVIGATION -->
            <td id="leftcol" width="20%">
              <div id="navcolumn">
                    <div>
        <strong>About</strong>
                <div><small>      <a href="./index.html">Overview</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/avalon/excalibur/index.html";>Excalibur Home</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/builds/jakarta-avalon-excalibur/release";>Download</a>
    </small></div>
                <div><small>      <a href="./api/">API Docs</a>
    </small></div>
            </div>
        <div>
        <strong>Specifications</strong>
                <div><small>      <a href="./attributes.html">Common Attributes</a>
    </small></div>
                <div><small>      <a href="./context.html">Context Entry Spec</a>
    </small></div>
                <div><small>      <a href="./features.html">Features</a>
    </small></div>
            </div>
        <div>
        <strong>Tools</strong>
                <div><small>      <a href="./tasks.html">Ant Tasks</a>
    </small></div>
                <div><small>      <a href="./doclet.html">Doclet Markup</a>
    </small></div>
            </div>
                </div>
            </td>
            <td><div id="bodycol"><div class="app">
          <div class="h3">
              <h3><a name="Introduction">Introduction</a></h3>
                          <p
          >                    The Info toolkit allows you to mark up your java source 
files
              using javadoc tags. This markup will then be read by the
              
                                      <a 
href="tasks.html#infodoclet"><code>infodoclet</code></a>
                              
              task and used to generate the Info descriptors.
              </p>
                                  <p
          >      There are several advantages of using this approach.
    </p>
                                  <ul
          >                    
                  
                                <li
          >      its a lot faster than writing Info files by hand.
    </li>
                            
                  
                                <li
          >      its harder to make mistakes, since much of the data
                  required for the info descriptors is parsed out of the
                  source code
    </li>
                            
                  
                                <li
          >      useful defaults can be used by reading the standard
                  javadoc.
    </li>
                            
                  
                                <li
          >      Upgrades to descriptors can be transparent.
    </li>
                            
              
              </ul>
                </div>
          <div class="h3">
              <h3><a name="Doclet Tag Types">Doclet Tag Types</a></h3>
                          <p
          >      The following tags are defined;
    </p>
                                  <ul
          >                    
                  
                                <li
          >                                <a 
href="#avalon.component">avalon.component</a>
                  </li>
                            
                  
                                <li
          >                                <a href="#avalon.service">avalon.service</a>
                  </li>
                            
                  
                                <li
          >                                <a href="#avalon.logger">avalon.logger</a>
                  </li>
                            
                  
                                <li
          >                                <a href="#avalon.context">avalon.context</a>
                  </li>
                            
                  
                                <li
          >                                <a href="#avalon.entry">avalon.entry</a>
                  </li>
                            
                  
                                <li
          >                                <a 
href="#avalon.dependency">avalon.dependency</a>
                  </li>
                            
                  
                                <li
          >                                <a 
href="#avalon.configuration">avalon.configuration</a>
                  </li>
                            
                  
                                <li
          >                                <a 
href="#avalon.parameters">avalon.parameters</a>
                  </li>
                            
              
              </ul>
                                  <p
          >                    An example of processing the
              
                                      <a 
href="MyComponent.java.txt">MyComponent.java</a>
                               to produce
              
                                      <a 
href="MyComponent-info.xml.txt">MyComponent-info.xml</a>
                               is
              available.
              </p>
                              <div class="h4">
              <h4><a name="avalon.component">avalon.component</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <td
            >
                  Scope
          </td>
                    <td
            >
                  Class level javadocs
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  Purpose
          </td>
                    <td
            >
                  Marks the class as a Avalon component.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  Parameters
          </td>
                    <td
            >
                  The avalon.component tag does not currently
                          support any parameters.
          </td>
          </tr>
          </table>
                    <p
          >      Example:
    </p>
                      <div id="source">
      <pre>package com.biz;
  
  /**
   * This is an Avalon component.
   *
   * @avalon.component
   */
  public class MyComponent</pre>
    </div>
                    <p
          >      Will produce the following part of xml info descriptor:
    </p>
                      <div id="source">
      <pre>&lt;component type=&quot;com.biz.MyComponent&quot;&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="avalon.service">avalon.service</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <td
            >
                  Scope
          </td>
                    <td
            >
                  Class level javadocs
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  Purpose
          </td>
                    <td
            >
                  Specifies the set of services that a component is
                          capable of providing.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  Parameters
          </td>
                    <td
            >
                  The avalon.service has a single parameter named
                          "type" which specifies the type of service (ie the
                          interface classname) that the component
                          supports.
          </td>
          </tr>
          </table>
                    <p
          >      Example:
    </p>
                      <div id="source">
      <pre>package com.biz;
  
  import com.biz.services.MyService1;
  
  /**
   * This is an Avalon component.
   *
   * @avalon.service type=&quot;MyService1&quot;
   * @avalon.service type=&quot;MyService2&quot;
   */
  public class MyComponent
    implements MyService1, MyService2, SomeOtherInterface</pre>
    </div>
                    <p
          >      Will produce the following part of xml info descriptor:
    </p>
                      <div id="source">
      <pre>&lt;services&gt;
      &lt;service type=&quot;com.biz.services.MyService1&quot;/&gt;
      &lt;service type=&quot;com.biz.MyService2&quot;/&gt;
    &lt;/services&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="avalon.logger">avalon.logger</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <td
            >
                  Scope
          </td>
                    <td
            >
                  Javadocs on the LogEnabled.enableLogging(Logger)
                              method.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  Purpose
          </td>
                    <td
            >
                  Specifies the loggers that the component will
                          use.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  Parameters
          </td>
                    <td
            >
                  The avalon.logger tag takes one parameter
                          "name" that specifies the name of the logger
                          to use. If not specified the logger defualts to
                          an empty ("") name.
          </td>
          </tr>
          </table>
                    <p
          >      Example:
    </p>
                      <div id="source">
      <pre>/**
   * @avalon.logger
   * @avalon.logger name=&quot;auth&quot;
   */
  public void enableLogging( Logger logger )</pre>
    </div>
                    <p
          >      Will produce the following part of xml info descriptor:
    </p>
                      <div id="source">
      <pre>&lt;loggers&gt;
      &lt;logger/&gt;
      &lt;logger name=&quot;auth&quot;/&gt;
    &lt;/loggers&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="avalon.context">avalon.context</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <td
            >
                  Scope
          </td>
                    <td
            >
                  Javadocs on the
                              Contextualizable.contextualize(Context)
                              method.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  Purpose
          </td>
                    <td
            >
                  Specifies the type of the context expected.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  Parameters
          </td>
                    <td
            >
                  The avalon.context tag takes one parameter named
                          "type" that specifies the expected type of the
                          context.
          </td>
          </tr>
          </table>
                    <p
          >      Example:
    </p>
                      <div id="source">
      <pre>/**
   * @avalon.context type=&quot;BlockContext&quot;
   */
  public void contextualize( Context context )
    throws ContextException
  {
    m_context = (BlockContext)context;
  }</pre>
    </div>
                    <p
          >      Will produce the following part of xml info descriptor:
    </p>
                      <div id="source">
      <pre>&lt;context type=&quot;org.apache.avalon.phoenix.BlockContext&quot;&gt;
    ...
    &lt;/context&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="avalon.entry">avalon.entry</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <td
            >
                  Scope
          </td>
                    <td
            >
                  Javadocs on the
                              Contextualizable.contextualize(Context)
                              method.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  Purpose
          </td>
                    <td
            >
                  Specifies the way an item is exposed in the
                          context.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  Parameters
          </td>
                    <td
            >
                                The avalon.entry has three parameters;
                          
                                <em
          >      key
    </em>
                            , 
                                <em
          >      type
    </em>
                             and 
                                <em
          >      optional
    </em>
                            .
                          The key parameter specifies the key that is used
                          to look up entry in context. The type specifies
                          the type of the object in the entry. The optional
                          parameter defaults to false but if set to true
                          will indicate that the entry need not be
                          provided.
                    </td>
          </tr>
          </table>
                    <p
          >      Example:
    </p>
                      <div id="source">
      <pre>/**
   * @avalon.entry key=&quot;component.name&quot; type=&quot;String&quot;
   * @avalon.entry key=&quot;component.classloader&quot; type=&quot;ClassLoader&quot;
   * @avalon.entry key=&quot;mbean.server&quot; type=&quot;MBeanServer&quot; 
optional=&quot;true&quot;
   */
  public void contextualize( Context context )
    throws ContextException
  {
    m_name = (String)context.get( &quot;component.name&quot; );
    m_classLoader = (ClassLoader)context.get( &quot;component.classloader&quot; );
  
    try
    {
      m_mBeanServer = (MBeanServer)context.get( &quot;mbean.server&quot; );
    }
    catch( final ContextException ce )
    {
      //Not present so lets not be managed by JMX
    }
  }</pre>
    </div>
                    <p
          >      Will produce the following part of xml info descriptor:
    </p>
                      <div id="source">
      <pre>&lt;context&gt;
      &lt;entry key=&quot;component.name&quot;
             type=&quot;java.lang.String&quot;/&gt;
      &lt;entry key=&quot;component.classloader&quot;
             type=&quot;java.lang.ClassLoader&quot;/&gt;
      &lt;entry key=&quot;mbean.server&quot;
             type=&quot;javax.management.MBeanServer&quot;
             optional=&quot;true&quot;/&gt;
    &lt;/context&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="avalon.dependency">avalon.dependency</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <td
            >
                  Scope
          </td>
                    <td
            >
                  Javadocs on the
                              Composable.compose(ComponentManager) or
                              Serviceable.service(ServiceManager)
                              methods.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  Purpose
          </td>
                    <td
            >
                  Specifies the dependencies on other
                          services.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  Parameters
          </td>
                    <td
            >
                                The avalon.dependency has three parameters;
                          
                                <em
          >      key
    </em>
                            , 
                                <em
          >      type
    </em>
                             and 
                                <em
          >      optional
    </em>
                            .
                          The key parameter specifies the key that is used
                          to look up service and defaults to the type name
                          if not specified. The type specifies the type of
                          the service. The optional parameter defaults to
                          false but if set to true will indicate that the
                          service need not be provided.
                    </td>
          </tr>
          </table>
                    <p
          >      Example:
    </p>
                      <div id="source">
      <pre>/**
   * @avalon.dependency type=&quot;Store&quot;
   * @avalon.dependency key=&quot;Store/Spool&quot; type=&quot;Store&quot;
   * @avalon.dependency type=&quot;Monitor&quot; optional=&quot;true&quot;
   */
  public void service( ServiceManager sm )
    throws ServiceException
  {
    m_store = (Store)sm.get( Store.ROLE );
    m_spoolStore = (Store)sm.lookup( Store.ROLE + &quot;/Spool&quot; );
    if( sm.hasService( Monitor.ROLE ) )
    {
      m_monitor = (Monitor)sm.get( Monitor.ROLE );
    }
  }</pre>
    </div>
                    <p
          >      Will produce the following part of xml info descriptor:
    </p>
                      <div id="source">
      <pre>&lt;dependencies&gt;
    &lt;dependency type=&quot;org.apache.avalon.services.Store&quot; /&gt;
    &lt;dependency key=&quot;org.apache.avalon.services.Store/Spool&quot;
                type=&quot;org.apache.avalon.services.Store&quot; /&gt;
    &lt;dependency type=&quot;org.apache.avalon.services.Monitor&quot; 
optional=&quot;true&quot;/&gt;
  &lt;/dependencies&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="avalon.configuration">avalon.configuration</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <td
            >
                  Scope
          </td>
                    <td
            >
                  Javadocs on the
                              Configurable.configure(Configuration)
                              method.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  Purpose
          </td>
                    <td
            >
                  Specifies the schema which the configuration
                          object must conform to.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  Parameters
          </td>
                    <td
            >
                                The avalon.configuration has one parameter;
                          
                                <em
          >      location
    </em>
                            . &quot;location&quot; indicates the location
                          of the schema definition file for configuration
                          (relative to the Component). Several different schema
                          types are supported such as W3C XMLSchema, DTD,
                          Relax NG etc. If the parameter is unspecified it
                          defaults to &quot;{componentname}-schema.xml&quot;.
                    </td>
          </tr>
          </table>
                    <p
          >      Example:
    </p>
                      <div id="source">
      <pre>/**
   * @avalon.configuration
   */
  public void configure( Configuration config )
      throws ConfigurationException</pre>
    </div>
                    <p
          >      Will produce the following part of xml info descriptor:
    </p>
                      <div id="source">
      <pre>&lt;schema category=&quot;configuration&quot; 
location=&quot;MyComponent-schema.xml&quot;/&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="avalon.parameters">avalon.parameters</a></h4>
                    <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <td
            >
                  Scope
          </td>
                    <td
            >
                  Javadocs on the
                              Parameterizable.parameterize(Parameters)
                              method.
          </td>
          </tr>
                          <tr class="b">
                  <td
            >
                  Purpose
          </td>
                    <td
            >
                  Specifies the schema which the parameters
                          object must conform to.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  Parameters
          </td>
                    <td
            >
                                The avalon.parameters has one parameter;
                          
                                <em
          >      location
    </em>
                            . &quot;location&quot; indicates the location
                          of the schema definition file for parameters (relative
                          to the Component). If the parameter is unspecified it
                          defaults to &quot;{componentname}-schema.xml&quot;. Note that
                          currently there is no supported schema for parameters
                          objects.
                    </td>
          </tr>
          </table>
                    <p
          >      Example:
    </p>
                      <div id="source">
      <pre>/**
   * @avalon.parameters location=&quot;Foo.xml&quot;
   */
  public void parameterize( Parameters parameters )
      throws ParametersException</pre>
    </div>
                    <p
          >      Will produce the following part of xml info descriptor:
    </p>
                      <div id="source">
      <pre>&lt;schema category=&quot;parameters&quot; 
location=&quot;Foo.xml&quot;/&gt;</pre>
    </div>
          </div>
              </div>
                </div>
                <div align="right" id="authors">
                 by   <a href="mailto:peter at apache.org">Peter Donald</a>
                </div>
            </div></td>
          </tr>
        </table>
  
        <!-- FOOTER -->
        <div id="footer">
          <table border="0" cellspacing="0" cellpadding="4">
            <tr>
              <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
            </tr>
          </table>
        </div>
  
      </body>
    </html>
  
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/features.html
  
  Index: features.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  
  <!-- This is a generated file.  Do not edit. -->
      <html>
      <head>
        <style type="text/css">
          @import url("./css/tigris.css");
          @import url("./css/site.css");
        </style>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  
                        <meta name="author" value="Peter Donald">
    <meta name="email" value="peter at apache.org">
        
        <title>Avalon Info - Features</title>
      </head>
  
      <body marginwidth="0" marginheight="0" class="composite">
  
        <div id="banner">
          <table border="0" cellspacing="0" cellpadding="8" width="100%">
            <!-- TOP IMAGE -->
            <tr>
              <td>      <td colspan="2">
      <a href="http://jakarta.apache.org";><img 
src="http://jakarta.apache.org/images/jakarta-logo.gif"; align="left" border="0"/></a>
      </td>
    </td>
              <td><div align="right" valign="bottom"><b><font size="+3">Avalon 
Info</font></b></div></td>
            </tr>
          </table>
        </div>
  
        <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
          <tr valign="top">
            <!-- LEFT SIDE NAVIGATION -->
            <td id="leftcol" width="20%">
              <div id="navcolumn">
                    <div>
        <strong>About</strong>
                <div><small>      <a href="./index.html">Overview</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/avalon/excalibur/index.html";>Excalibur Home</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/builds/jakarta-avalon-excalibur/release";>Download</a>
    </small></div>
                <div><small>      <a href="./api/">API Docs</a>
    </small></div>
            </div>
        <div>
        <strong>Specifications</strong>
                <div><small>      <a href="./attributes.html">Common Attributes</a>
    </small></div>
                <div><small>      <a href="./context.html">Context Entry Spec</a>
    </small></div>
                <div><small>      <a href="./features.html">Features</a>
    </small></div>
            </div>
        <div>
        <strong>Tools</strong>
                <div><small>      <a href="./tasks.html">Ant Tasks</a>
    </small></div>
                <div><small>      <a href="./doclet.html">Doclet Markup</a>
    </small></div>
            </div>
                </div>
            </td>
            <td><div id="bodycol"><div class="app">
          <div class="h3">
              <h3><a name="Introduction">Introduction</a></h3>
                          <p
          >      A container may support features beyond and above standard Avalon
              lifecycle processing. These features (aka container extensions) are
              given a name. This allows components to refer to specific features
              that they require or will use if present.
    </p>
                </div>
          <div class="h3">
              <h3><a name="Naming">Naming</a></h3>
                          <p
          >      Feature names are usually derived from the names of the extra tags
              that they support. For example, a container that supports the "sec"
              (Security) tag will support the feature "sec". Alternatively the
              container may support features like "sec.auth" which indicates they
              support a superset or subset of the "sec" tag.
    </p>
                                  <p
          >      If a particular container extension or feature does not interpret
              specific tags or touches multiple tags then it is recomended that
              the short name of the container be used to name the feature (ie
              "fortress" or "fortress.lifestyle" to indicate a fortress specific
              feature.
    </p>
                                  <p
          >      Once a name has been found for a partciular feature it should be
              documented and listed in feature registry (unless it is container
              specific). No other feature may be defined with the same name.
    </p>
                </div>
          <div class="h3">
              <h3><a name="Implementation">Implementation</a></h3>
                          <p
          >                    The implementation of the feature is a container 
specific
              decision as long as the container adheres to the documented behaviour
              for an extension. However it is recomended that the
              
                                      <a 
href="http://jakarta.apache.org/avalon/excalibur/interceptor";>Interceptor
              </a>
                               project be considered for writing the container 
extensions.
              </p>
                </div>
                </div>
                <div align="right" id="authors">
                 by   <a href="mailto:peter at apache.org">Peter Donald</a>
                </div>
            </div></td>
          </tr>
        </table>
  
        <!-- FOOTER -->
        <div id="footer">
          <table border="0" cellspacing="0" cellpadding="4">
            <tr>
              <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
            </tr>
          </table>
        </div>
  
      </body>
    </html>
  
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/index.html
  
  Index: index.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  
  <!-- This is a generated file.  Do not edit. -->
      <html>
      <head>
        <style type="text/css">
          @import url("./css/tigris.css");
          @import url("./css/site.css");
        </style>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  
                        <meta name="author" value="Peter Donald">
    <meta name="email" value="peter at apache.org">
        
        <title>Avalon Info - Overview</title>
      </head>
  
      <body marginwidth="0" marginheight="0" class="composite">
  
        <div id="banner">
          <table border="0" cellspacing="0" cellpadding="8" width="100%">
            <!-- TOP IMAGE -->
            <tr>
              <td>      <td colspan="2">
      <a href="http://jakarta.apache.org";><img 
src="http://jakarta.apache.org/images/jakarta-logo.gif"; align="left" border="0"/></a>
      </td>
    </td>
              <td><div align="right" valign="bottom"><b><font size="+3">Avalon 
Info</font></b></div></td>
            </tr>
          </table>
        </div>
  
        <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
          <tr valign="top">
            <!-- LEFT SIDE NAVIGATION -->
            <td id="leftcol" width="20%">
              <div id="navcolumn">
                    <div>
        <strong>About</strong>
                <div><small>      <a href="./index.html">Overview</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/avalon/excalibur/index.html";>Excalibur Home</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/builds/jakarta-avalon-excalibur/release";>Download</a>
    </small></div>
                <div><small>      <a href="./api/">API Docs</a>
    </small></div>
            </div>
        <div>
        <strong>Specifications</strong>
                <div><small>      <a href="./attributes.html">Common Attributes</a>
    </small></div>
                <div><small>      <a href="./context.html">Context Entry Spec</a>
    </small></div>
                <div><small>      <a href="./features.html">Features</a>
    </small></div>
            </div>
        <div>
        <strong>Tools</strong>
                <div><small>      <a href="./tasks.html">Ant Tasks</a>
    </small></div>
                <div><small>      <a href="./doclet.html">Doclet Markup</a>
    </small></div>
            </div>
                </div>
            </td>
            <td><div id="bodycol"><div class="app">
          <div class="h3">
              <h3><a name="Introduction">Introduction</a></h3>
                          <p
          >                    The Info project aims to produce a complete
              metadata model for Avalon components. The project is
              an extension of work started in the
              
                                      <a 
href="http://jakarta.apache.org/avalon/phoenix";>Phoenix</a>
                              
              container.
              </p>
                </div>
          <div class="h3">
              <h3><a name="The Need">The Need</a></h3>
                          <p
          >      In Phoenix, component types were defined in a
              BlockInfo descriptor. The BlockInfo descriptor declared
              the services a component required, the services the component
              could provide to other components and general metadata about
              the component (like name, classname, version etc).
    </p>
                                  <p
          >      This model, while an improvement over previous efforts
              was not capable of supporting user extentions. However the need
              for developers to extend the BlockInfo model became apparent
              as Avalon containers became more sophisticated.
    </p>
                                  <p
          >      Some example extentions to the model that users wanted
              but that BlockInfo was incapable of providing included;
    </p>
                                  <ul
          >                    
                  
                                <li
          >      Declaration of extra entrys that needed to be placed
                  in the Components Context.
    </li>
                            
                  
                                <li
          >      Indicate a particular service is a Management service.
    </li>
                            
                  
                                <li
          >      Indicate a particular service is capable of being
                  exported as a soap service.
    </li>
                            
                  
                                <li
          >      Indicate a particular dependency was optional.
    </li>
                            
              
              </ul>
                </div>
          <div class="h3">
              <h3><a name="The Solution">The Solution</a></h3>
                          <p
          >      To address these concerns, descriptor elements for loggers,
              and context entrys were defined and the notion of attributes were
              introduced.
    </p>
                                  <p
          >      Attributes define a mechanism via which a the meta data about a
              component can be extended. Each attribute has a name and set of
              parameters. An example of a attribute is;
    </p>
                                    <div id="source">
      <pre>&lt;!-- A simple attribute defining security features --&gt;
  &lt;attribute name=&quot;avalon:sec&quot;&gt;
    &lt;!-- Make sure that the caller is in the role &quot;Bob&quot; --&gt;
    &lt;param name=&quot;role&quot; value=&quot;Bob&quot;/&gt;
  &lt;/attribute&gt;</pre>
    </div>
                                  <p
          >                    The definition of attribute names and parameters is not 
required to be
              defined by the info project. Containers are encouraged to define their
              own set of attribute to support container specific features. Some tag
              definitions that are common between containers are documented on our
              
                                      <a href="attribute.html">Tags</a>
                               page.
              </p>
                                  <p
          >                    The info project does not intend to define 
implementation
              strategies for containers who wish to support the info model and the
              tag extensions. It is recomend that you visit the
              
                                      <a 
href="http://jakarta.apache.org/avalon/excalibur/interceptor";>
              Interceptor</a>
                               project.
              </p>
                </div>
                </div>
                <div align="right" id="authors">
                 by   <a href="mailto:peter at apache.org">Peter Donald</a>
                </div>
            </div></td>
          </tr>
        </table>
  
        <!-- FOOTER -->
        <div id="footer">
          <table border="0" cellspacing="0" cellpadding="4">
            <tr>
              <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
            </tr>
          </table>
        </div>
  
      </body>
    </html>
  
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/tasks.html
  
  Index: tasks.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  
  <!-- This is a generated file.  Do not edit. -->
      <html>
      <head>
        <style type="text/css">
          @import url("./css/tigris.css");
          @import url("./css/site.css");
        </style>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  
                        <meta name="author" value="Peter Donald">
    <meta name="email" value="peter at apache.org">
        
        <title>Avalon Info - Ant Tasks</title>
      </head>
  
      <body marginwidth="0" marginheight="0" class="composite">
  
        <div id="banner">
          <table border="0" cellspacing="0" cellpadding="8" width="100%">
            <!-- TOP IMAGE -->
            <tr>
              <td>      <td colspan="2">
      <a href="http://jakarta.apache.org";><img 
src="http://jakarta.apache.org/images/jakarta-logo.gif"; align="left" border="0"/></a>
      </td>
    </td>
              <td><div align="right" valign="bottom"><b><font size="+3">Avalon 
Info</font></b></div></td>
            </tr>
          </table>
        </div>
  
        <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
          <tr valign="top">
            <!-- LEFT SIDE NAVIGATION -->
            <td id="leftcol" width="20%">
              <div id="navcolumn">
                    <div>
        <strong>About</strong>
                <div><small>      <a href="./index.html">Overview</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/avalon/excalibur/index.html";>Excalibur Home</a>
    </small></div>
                <div><small>      <a 
href="http://jakarta.apache.org/builds/jakarta-avalon-excalibur/release";>Download</a>
    </small></div>
                <div><small>      <a href="./api/">API Docs</a>
    </small></div>
            </div>
        <div>
        <strong>Specifications</strong>
                <div><small>      <a href="./attributes.html">Common Attributes</a>
    </small></div>
                <div><small>      <a href="./context.html">Context Entry Spec</a>
    </small></div>
                <div><small>      <a href="./features.html">Features</a>
    </small></div>
            </div>
        <div>
        <strong>Tools</strong>
                <div><small>      <a href="./tasks.html">Ant Tasks</a>
    </small></div>
                <div><small>      <a href="./doclet.html">Doclet Markup</a>
    </small></div>
            </div>
                </div>
            </td>
            <td><div id="bodycol"><div class="app">
          <div class="h3">
              <h3><a name="Introduction">Introduction</a></h3>
                          <p
          >      The Info toolkit has a number of Ant tasks associated
              with it to ease development. The tasks include;
    </p>
                                  <ul
          >                    
                  
                                <li
          >                                <a href="#infodoclet">infodoclet</a>
                              : a task used
                  to generate the Avalon Info descriptor from the source
                  code of component that has been marked using javadoc
                  tags.
              </li>
                            
                  
                                <li
          >                                <a 
href="#component-verify">component-verify</a>
                              : a task used
                  to verify a component class is valid and conforms to its
                  descriptor.
              </li>
                            
              
              </ul>
                </div>
          <div class="h3">
              <h3><a name="Tasks">Tasks</a></h3>
                      <div class="h4">
              <h4><a name="infodoclet">infodoclet</a></h4>
                  <p
          >                    A task to parse source files and generate Info
                  descriptors based on the way the source files are marked
                  up. The mechanism for marking up source is documented in
                  the 
                                      <a href="doclet.html">Doclet</a>
                               section.
              </p>
                      <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <th
            >
                  Attribute
          </th>
                    <th
            >
                  Description
          </th>
          </tr>
                          <tr class="b">
                  <td
            >
                  destDir
          </td>
                    <td
            >
                  This specifies the directory into which all the generated
                          info descriptors will be placed.
          </td>
          </tr>
                          <tr class="a">
                  <td
            >
                  format
          </td>
                    <td
            >
                  A enum of indicating the format in which to write
                          out the descriptors. Options include, "xml" to write as xml
                          descriptors or "ser" to write it as serialized objects.
                          By default an xml descriptor is used.
          </td>
          </tr>
          </table>
                    <p
          >                    The 
                                <code
          >      infodoclet
    </code>
                             task also accepts a
                  
                                <code
          >      fileset
    </code>
                             element via which you define
                  the source files which will be processed to generate the
                  info descriptors.
              </p>
                    <p
          >                    Example that generates descriptors for all relevent java
                  files in the 
                                <code
          >      src/
    </code>
                             directory and places them
                  in the 
                                <code
          >      target/info
    </code>
                             directory.
              </p>
                      <div id="source">
      <pre>&lt;taskdef name=&quot;infodoclet&quot;
    classname=&quot;org.apache.avalon.framework.tools.ant.MetaGenerateTask&quot;&gt;
    &lt;classpath&gt;
      &lt;path refid=&quot;project.class.path&quot;/&gt;
    &lt;/classpath&gt;
  &lt;/taskdef&gt;
  
  &lt;infodoclet format=&quot;xml&quot; destDir=&quot;target/info&quot;&gt;
    &lt;fileset dir=&quot;src&quot;&gt;
      &lt;include name=&quot;**/*.java&quot;/&gt;
    &lt;/fileset&gt;
  &lt;/infodoclet&gt;</pre>
    </div>
          </div>
                            <div class="h4">
              <h4><a name="component-verify">component-verify</a></h4>
                  <p
          >      Verify a Component is valid and conforms to its info
                  descriptor.
    </p>
                      <table cellpadding="3" cellspacing="2" border="1" width="100%">
                      <tr class="a">
                  <th
            >
                  Attribute
          </th>
                    <th
            >
                  Description
          </th>
          </tr>
                          <tr class="b">
                  <td
            >
                  classname
          </td>
                    <td
            >
                  This defines the name of the component you wish to verify.
          </td>
          </tr>
          </table>
                    <p
          >                    The 
                                <code
          >      component-verify
    </code>
                             task also accepts a
                  
                                <code
          >      classpath
    </code>
                             element via which you can define
                  the classpath that component is loaded from.
              </p>
                    <p
          >      Example that verifies component "org.realityforge.ModelCompiler"
    </p>
                      <div id="source">
      <pre>&lt;taskdef name=&quot;info-verify&quot;
    
classname=&quot;org.apache.avalon.framework.tools.ant.ComponentVerifierTask&quot;&gt;
    &lt;classpath&gt;
      &lt;path refid=&quot;project.class.path&quot;/&gt;
    &lt;/classpath&gt;
  &lt;/taskdef&gt;
  
  &lt;info-verify classname=&quot;org.realityforge.ModelCompiler&quot;&gt;
    &lt;classpath&gt;
      &lt;fileset dir=&quot;lib&quot;&gt;
        &lt;include name=&quot;**/*.jar&quot;/&gt;
      &lt;/fileset&gt;
    &lt;/classpath&gt;
  &lt;/info-verify&gt;</pre>
    </div>
          </div>
              </div>
                </div>
                <div align="right" id="authors">
                 by   <a href="mailto:peter at apache.org">Peter Donald</a>
                </div>
            </div></td>
          </tr>
        </table>
  
        <!-- FOOTER -->
        <div id="footer">
          <table border="0" cellspacing="0" cellpadding="4">
            <tr>
              <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
            </tr>
          </table>
        </div>
  
      </body>
    </html>
  
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/css/ns4_only.css
  
  Index: ns4_only.css
  ===================================================================
  /* simple rules suitable for Netscape 4.x only; richer rules are in tigris.css. see 
<http://style.tigris.org/> */
  
  /* colors, backgrounds, borders, link indication */ 
  
  body {
   background: #fff;
   color: #000;
   }
  #leftcol a:link, #leftcol a:visited {
   color: blue;
   }
  a:active, a:hover, #leftcol a:active, #leftcol a:hover {
   color: #f30;
   }
  #login a:link, #login a:visited {
   color: white; 
   text-decoration: underline;
   }
  #banner a:active, #banner a:hover {
   color: #f90;
   }
  #leftcol a, #breadcrumbs a  {
   text-decoration: none;
   }
  h2 .lastchild {
   color: #777
   } 
  .a td { 
   background: #ddd;
   }
  .b td { 
   background: #efefef;
   }
  .tabs td, .tabs th {
   background-color: #ddd;
   }
  body .app th {
   background-color: #bbb;
   }
  body .tabs th {
   background-color: #888;
   color: #fff;
   }
  body .app .axial th {
   background-color: #ddd;
   color: black
   }
  .tabs td {
   background-color: #ddd;
   }
  .alert { 
   color: #c00;
   }
  .confirm {
   color: green;
   }
  .info {
   color: blue;
   }
  .selection {
   background: #ffc;
   }
  #login {
   color: #fff;
   }
  #helptext th {
   background: #cc9;
   }
  #helptext td {
   background: #ffc;
   }
  .tabs a  {
   text-decoration: none;
   }
  #navcolumn div strong {
   color: #555;
   }
  #banner, #banner td { 
   background: #036;
   color: #fff;
   }
  body #banner #login a { 
   color: white;
   }
  
  
  /* font and text properties, exclusive of link indication, alignment, text-indent */
  
  body, div, p, th, td, li, dl, dd {
   font-family: Lucida, Arial, Helvetica, sans-serif;
   }
  code, pre {
   font-family: 'Andale Mono', Courier, monospace;
   }
  h2, h3, h4 {
   font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
   }
  .selection {
   font-weight: bold
   }
  #login .username {
   font-weight: bold;
   }
  
  
  /* box properties (exclusive of borders), positioning, alignments, list types, 
text-indent */
  
  th, td {
   text-align: left;
   vertical-align: top 
   }
  .right {
   text-align: right;
   }
  .center {
   text-align: center;
   }
  body .app .axial th {
   text-align: right;
   }
  .app .axial td th {
   text-align: left;
   }
  body td .stb {
   margin-top: 1em;
   text-indent: 0;
   }
  body td .mtb {
   margin-top: 2em;
   text-indent: 0;
   }
  dd {
   margin-bottom: .67em;
   }
  #footer {
   margin: 4px
   }
  #helptext {
   margin-top: 1em
   }
  #helptext td div {
   margin: .5em
   }
  .courtesylinks {
   margin-top: 1em;
   padding-top: 1em
   }
  #navcolumn div {
   margin-bottom: .5em;
   }
  #navcolumn div div {
   margin-top: .3em
   }
  #navcolumn div div {
   padding-left: 1em;
   }
  #banner, #banner td { 
   vertical-align: middle;
   }
  body.docs, body.nonav {
   margin: 1em
   }
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/css/print.css
  
  Index: print.css
  ===================================================================
  #banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks    {
        display: none;
        }
  body.docs div.docs    {
        margin: 0 !important;
        border: none !important
        }
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/css/site.css
  
  Index: site.css
  ===================================================================
  
  div#banner {
   border-top: 1px solid #fff;
   border-bottom: 1px solid #aaa;
  }
  
  #banner, #banner td {
   background: #fff;
   color: #036;
  }
  
  #source {
   background-color: #fff;
   color: #000;
   border-right: 1px solid #888;
   border-left: 1px solid #888;
   border-top: 1px solid #888;
   border-bottom: 1px solid #888;
   margin-right: 7px;
   margin-left: 7px;
   margin-top: 1em;
  }
  
  #source pre {
   margin-right: 7px;
   margin-left: 7px;
  }
  
  
  
  1.1                  jakarta-avalon-site/docs/excalibur/info/css/tigris.css
  
  Index: tigris.css
  ===================================================================
  /* contains rules unsuitable for Netscape 4.x; simpler rules are in ns4_only.css. 
see <http://style.tigris.org/> */
  
  /* colors, backgrounds, borders, link indication */ 
  
  body {
   background: #fff;
   color: #000;
   }
  .app h3, .app h4, .tabs td, .tabs th, .functnbar {
   background-image: url(../images/nw_min.gif);
   background-repeat: no-repeat;
   }
  #navcolumn div div, body.docs #toc li li  {
   background-image: url(../images/strich.gif);
   background-repeat: no-repeat;
   background-position: .5em .5em;
   }
  #navcolumn div div.heading  {
   background-image: none;
   }
  .app h3, .app h4 {
   color: #fff;
   }
  .app h3 {
   background-color: #036;
   }
  .app h4 { 
   background-color: #888;
   }
  .a td { 
   background: #ddd;
   }
  .b td { 
   background: #efefef;
   }
  table, th, td {
   border: none
   } 
  .mtb {
   border-top: solid 1px #ddd;
   }
  div.colbar {
   background: #bbb;
   }
  #banner {
   border-top: 1px solid #369;
   border-bottom: 1px solid #003;
   }
  div#helptext th {
   border-bottom: 1px solid #996;
   border-right: 1px solid #996;
   }
  div#helptext td {
   border-bottom: 1px solid #cc9;
   border-right: 1px solid #cc9;
   }
  .tabs th {
   border-right: 1px solid #333;
   background-color: #ddd;
   color: #fff;
   }
  .tabs td {
   background-color: #999;
   border-bottom: 1px solid #fff;
   border-right: 1px solid #fff;
   }
  .tabs { 
   border-bottom: 6px #ddd solid;
   }
  .tabs th, .tabs th a:link, .tabs th a:visited {
   color: #555;
   }
  .tabs td, .tabs td a:link, .tabs td a:visited  { 
   color: #fff;
   }
  .tabs a  {
   text-decoration: none;
   }
  #navcolumn {
   background: #eee;
   border-right: 1px solid #aaa;
   border-bottom: 1px solid #aaa;
   }
  #breadcrumbs {
   border-bottom: 1px solid #aaa;
   background-color: #ddd
   }
  #navcolumn, #breadcrumbs {
   border-top: 1px solid #fff;
   }
  #rightcol div.www, #rightcol div.help {
   border: 1px solid #ddd;
   }
  div#navcolumn div.focus { 
   border-top: 1px solid #aaa;
   border-left: 1px solid #aaa;
   background-color: #fff;
   } 
  body.docs div.docs { 
   background: #fff;
   border-left: 1px solid #ddd;
   border-top: 1px solid #ddd;
   }
  body.docs { 
   background: #eee url(../images/help_logo.gif) top right no-repeat !important;
   }
  .docs h3, .docs h4 {
   border-top: solid 1px #000;
   }
  #alerterrormessage { 
   background: url(../images/icon_alert.gif) top left no-repeat !important;
   }
  .functnbar {
   background-color: #aaa;
   }
  .functnbar2, .functnbar3  {
   background: #aaa url(../images/sw_min.gif) no-repeat bottom left;
   }
  .functnbar3 {
   background-color: #ddd;
   }
  .functnbar, .functnbar2, .functnbar3 {
   color: #000;
   }
  .functnbar a, .functnbar2 a, .functnbar3 a {
   color: #000;
   text-decoration: underline;
   }
  #topmodule {
   background: #ddd;
   border-top: 1px solid #fff;
   border-bottom: 1px solid #aaa; 
   border-right: 1px solid #aaa; 
   }
  #topmodule #issueid {
   border-right: 1px solid #aaa;
   }
  a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited {
   color: blue;
   }
  a:link.selfref, a:visited.selfref {
   color: #555 !important;
   text-decoration: none;
   }
  a:active, a:hover, #leftcol a:active, #leftcol a:hover {
   color: #f30 !important;
   }
  #login a:link, #login a:visited {
   color: white; 
   text-decoration: underline;
   }
  #banner a:active, #banner a:hover {
   color: #f90 !important;
   }
  #leftcol a, #breadcrumbs a  {
   text-decoration: none;
   }
  #apphead h2 em {
   color: #777;
   }
  a:link.selfref, a:visited.selfref {
   color: #555 !important;
   text-decoration: none;
   }
  .app th {
   background-color: #bbb;
   }
  .axial th {
   background-color: #ddd;
   color: black
   }
  .alert { 
   color: #c00;
   }
  .confirm {
   color: green;
   }
  .info {
   color: blue;
   }
  .selection {
   background: #ffc;
   }
  #login {
   color: #fff;
   }
  #helptext th {
   background: #cc9;
   }
  #helptext td {
   background: #ffc;
   }
  #navcolumn div strong {
   color: #000;
   }
  #banner, #banner td { 
   background: #036;
   color: #fff;
   }
  body #banner #login a { 
   color: #fff;
   }
  h4 a:link, h4 a:visited  {
   text-decoration: underline;
   color: #fff;
   }
  
  /* font and text properties, exclusive of link indication, alignment, text-indent */
  
  body, th, td, input, select, textarea, h2 small {
   font-family: Verdana, Helvetica, Arial, sans-serif;
   }
  code, pre {
   font-family: 'Andale Mono', Courier, monospace;
   }
  html body, body th, body td, textarea, h2 small, .app h3, .app h4, #rightcol h3, 
#bodycol pre, #bodycol code {
   font-size: x-small;
   voice-family: "\"}\"";
   voice-family: inherit;
   font-size: small
   }
  html>body, html>body th, html>body td, html>body input, html>body select, html>body 
textarea, html>body h2 small, html>body .app h3, html>body .app h4, html>body 
#rightcol h3, html>body #bodycol pre, html>body #bodycol code {
   font-size: small
   }
  small, div#footer td, div#login, div.tabs th, div.tabs td, input, select, .paginate, 
.functnbar, .functnbar2, .functnbar3, #breadcrumbs td, .courtesylinks, #rightcol 
div.help, .colbar, .tasknav, body.docs div#toc, #leftcol {
   font-size: x-small;
   voice-family: "\"}\"";
   voice-family: inherit;
   font-size: x-small
   }
  html>body small, html>body div#footer td, html>body div#login, html>body div.tabs 
th, html>body div.tabs td, html>body input, html>body select, html>body .paginate, 
html>body .functnbar, html>body .functnbar2, html>body .functnbar3, html>body 
#breadcrumbs td, html>body .courtesylinks, html>body #rightcol div.help, html>body 
.colbar, html>body .tasknav, html>body.docs #toc, html>body #leftcol {
   font-size: x-small
   }
  #bodycol h2 {
   font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
   font-size: 1.5em;
   font-weight: normal;
   }
  .tabs td, .tabs th, dt, .tasknav .selfref, #login .username, .selection {
   font-weight: bold
   }
  h4 {
   font-size: 1em;
   }
  #apphead h2 em {
        font-style: normal;
   } 
  
  /* box properties (exclusive of borders), positioning, alignments, list types, 
text-indent */
  
  #bodycol h2 {
   margin-top: .3em;
   margin-bottom: .5em;
   }
  p, ul, ol, dl {
   margin-top: .67em;
   margin-bottom: .67em;
   }
  h3, h4 {
   margin-bottom: 0;
   }
  form {
   margin-top: 0;
   margin-bottom: 0;
   }
  #bodycol {
   padding-left: 12px;
   padding-right: 12px;
   width: 100%;
   voice-family: "\"}\"";
   voice-family: inherit;
   width: auto;
   }
  html>body #bodycol {
   width: auto;
   }
  .docs {
   line-height: 1.4;
   }
  .app h3, .app h4 {
   padding: 5px;
   margin-right: 2px;
   margin-left: 2px;
   }
  .h3 p, .h4 p, .h3 dt, .h4 dt {
   margin-right: 7px;
   margin-left: 7px;
   }
  .tasknav {
   margin-bottom: 1.33em
   }
  div.colbar {
   padding: 3px;
   margin: 2px 2px 0;
   }
  .tabs { 
   margin-top: .67em;
   margin-right: 2px;
   margin-left: 2px;
   }
  #leftcol {
   padding-bottom: .5em;
   }
  #breadcrumbs td {
   vertical-align: middle;
   padding: 2px 8px;
   } 
  .tabs td, .tabs th {
   padding: 3px 9px;
   }
  #rightcol div.www, #rightcol div.help {
   padding: 0 .5em
   }
  #navcolumn {
   margin: -8px -8px 0 -8px;
   padding: 4px;
   }
  #navcolumn div {
   padding-left: 5px
   }
  div#navcolumn div div {
   margin-top: .3em;
   margin-bottom: .3em;
   }
  div#navcolumn div.focus { 
   margin-top: -.1em;
   padding: .2em 4px; 
   } 
  body.docs #toc { 
   position: absolute;
   top: 15px;
   left: 0px;
   width: 120px;
   padding: 0 20px 0 0
   }
  body.docs #toc ul, #toc ol {
   margin-left: 0;
   padding-left: 0;
   }
  body.docs #toc li {
   margin-top: 7px;
   padding-left: 10px;
   list-style-type: none;
   }
  body.docs div.docs { 
   margin: 61px 0 0 150px;
   padding: 1em 2em 1em 1em !important;
   }
  .docs p+p {
   text-indent: 5%;
   margin-top: -.67em
   }
  .docs h3, .docs h4 {
   margin-bottom: .1em;
   padding-top: .3em;
   }
  #alerterrormessage { 
   padding-left: 100px;
   }
  .functnbar, .functnbar2, .functnbar3 {
   padding: 5px;
   margin: .67em 2px;
   }
  #topmodule td {
   vertical-align: middle;
   padding: 2px 8px
   } 
  body {
   padding: 1em;
   }
  body.composite, body.docs {
   margin: 0;
   padding: 0;
   }
  th, td {
   text-align: left;
   vertical-align: top 
   }
  .right {
   text-align: right !important;
   }
  .center {
   text-align: center !important;
   }
  .axial th {
   text-align: right;
   }
  .app .axial td th {
   text-align: left;
   }
  body td .stb {
   margin-top: 1em;
   text-indent: 0;
   }
  body td .mtb {
   margin-top: 2em;
   text-indent: 0;
   }
  dd {
   margin-bottom: .67em;
   }
  #footer {
   margin: 4px
   }
  #helptext {
   margin-top: 1em
   }
  #helptext td div {
   margin: .5em
   }
  .courtesylinks {
   margin-top: 1em;
   padding-top: 1em
   }
  #navcolumn div {
   margin-bottom: .5em;
   }
  #navcolumn div div {
   margin-top: .3em
   }
  #navcolumn div div {
   padding-left: 1em;
   }
  #banner, #banner td { 
   vertical-align: middle;
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:avalon-cvs-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@;jakarta.apache.org>

Reply via email to