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
>
</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
>
</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
>
</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
>
</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><attribute name="doc">
<param name="display-name" value="My Magic Component"/>
<param name="description"
value="My Magic Component does Magic."/>
</attribute></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><attribute name="doc">
<param name="display-name-key"
value="component.display-name"/>
<param name="description-key"
value="component.description"/>
</attribute></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 "feature" 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
>
</td>
<td
>
false
</td>
<td
>
This whitespace seprated list of features
that this component requires.
</td>
</tr>
<tr class="a">
<td
>
optional
</td>
<td
>
</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><attribute name="feature">
<param name="required" value="sec tx"/>
<param name="optional" value="mx"/>
</attribute></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><attribute name="lifestyle">
<param name="scope" value="access"/>
<param name="public" value="true"/>
</attribute></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 © 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 © 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><component type="com.biz.MyComponent"></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="MyService1"
* @avalon.service type="MyService2"
*/
public class MyComponent
implements MyService1, MyService2, SomeOtherInterface</pre>
</div>
<p
> Will produce the following part of xml info descriptor:
</p>
<div id="source">
<pre><services>
<service type="com.biz.services.MyService1"/>
<service type="com.biz.MyService2"/>
</services></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="auth"
*/
public void enableLogging( Logger logger )</pre>
</div>
<p
> Will produce the following part of xml info descriptor:
</p>
<div id="source">
<pre><loggers>
<logger/>
<logger name="auth"/>
</loggers></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="BlockContext"
*/
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><context type="org.apache.avalon.phoenix.BlockContext">
...
</context></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="component.name" type="String"
* @avalon.entry key="component.classloader" type="ClassLoader"
* @avalon.entry key="mbean.server" type="MBeanServer"
optional="true"
*/
public void contextualize( Context context )
throws ContextException
{
m_name = (String)context.get( "component.name" );
m_classLoader = (ClassLoader)context.get( "component.classloader" );
try
{
m_mBeanServer = (MBeanServer)context.get( "mbean.server" );
}
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><context>
<entry key="component.name"
type="java.lang.String"/>
<entry key="component.classloader"
type="java.lang.ClassLoader"/>
<entry key="mbean.server"
type="javax.management.MBeanServer"
optional="true"/>
</context></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="Store"
* @avalon.dependency key="Store/Spool" type="Store"
* @avalon.dependency type="Monitor" optional="true"
*/
public void service( ServiceManager sm )
throws ServiceException
{
m_store = (Store)sm.get( Store.ROLE );
m_spoolStore = (Store)sm.lookup( Store.ROLE + "/Spool" );
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><dependencies>
<dependency type="org.apache.avalon.services.Store" />
<dependency key="org.apache.avalon.services.Store/Spool"
type="org.apache.avalon.services.Store" />
<dependency type="org.apache.avalon.services.Monitor"
optional="true"/>
</dependencies></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>
. "location" 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 "{componentname}-schema.xml".
</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><schema category="configuration"
location="MyComponent-schema.xml"/></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>
. "location" indicates the location
of the schema definition file for parameters (relative
to the Component). If the parameter is unspecified it
defaults to "{componentname}-schema.xml". Note that
currently there is no supported schema for parameters
objects.
</td>
</tr>
</table>
<p
> Example:
</p>
<div id="source">
<pre>/**
* @avalon.parameters location="Foo.xml"
*/
public void parameterize( Parameters parameters )
throws ParametersException</pre>
</div>
<p
> Will produce the following part of xml info descriptor:
</p>
<div id="source">
<pre><schema category="parameters"
location="Foo.xml"/></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 © 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 © 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><!-- A simple attribute defining security features -->
<attribute name="avalon:sec">
<!-- Make sure that the caller is in the role "Bob" -->
<param name="role" value="Bob"/>
</attribute></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 © 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><taskdef name="infodoclet"
classname="org.apache.avalon.framework.tools.ant.MetaGenerateTask">
<classpath>
<path refid="project.class.path"/>
</classpath>
</taskdef>
<infodoclet format="xml" destDir="target/info">
<fileset dir="src">
<include name="**/*.java"/>
</fileset>
</infodoclet></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><taskdef name="info-verify"
classname="org.apache.avalon.framework.tools.ant.ComponentVerifierTask">
<classpath>
<path refid="project.class.path"/>
</classpath>
</taskdef>
<info-verify classname="org.realityforge.ModelCompiler">
<classpath>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
</info-verify></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 © 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>