mcconnell 2002/08/24 19:50:28
Added: meta/src/xdocs context.xml dependencies.xml extensions.xml
index.xml list.xml logging.xml menu.xml pending.xml
services.xml stages.xml tools.xml type.xml
meta/src/xdocs/images Type.gif
Log:
Site docs for the meta info model.
Revision Changes Path
1.1 jakarta-avalon-excalibur/meta/src/xdocs/context.xml
Index: context.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Context Descriptors</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
The org.apache.excalibur.meta.info.ContextDescriptor class describes the set
of context entries that a component may be depedent on. Context entries
declare a context key and the classname of the value that the component expects
to receive. A compliant container will ensure that a context object supplied
to a component under the Contextualize phase can access required context
entries with assurance that the value will be supplied under the correct key as
as an instance of the required type. The supply of optional context entries is
a container concern with the single exception that a container must ensure that
the an optional entry corresponds to the type requirested by the componet
context entry.
</p>
<s2 title="XML Schema">
<source>
<font color="gray"><i><!--
Example of a component meta info external XML form
for a context descriptor within a type. The element
contains the information declaring the context entries
that the componet will expect to receive, the respective
types the the context values shall conform to, and if
the context entry is optional or required.
--></i></font>
<type>
<font color="gray"><i><!--
Declaration of the context constraints for the compoent type.
The "type" attribute is the name of an interface derived from the default
contenxt interface org.apache.avalon.framework.context.Context
--></i></font>
<context type="<font color="darkred">MyContextInterface</font>">
<font color="gray"><i><!--
Declaration of an entry in a context object, the "key" is
the key used by a component to locate the context entry,
the "type" is the classname of value (typically an interface)
or primative type. The default value is java.lang.String.
The "optional" attribute is a boolean value derived from the
TRUE or FALSE that indicates if the context value must be
provided or not (default is FALSE).
--></i></font>
<entry key="<font color="darkred">base</font>" type="<font
color="darkred">java.io.File</font>"/>
<entry key="<font color="darkred">mode</font>" optional="<font
color="darkred">TRUE</font>"/>
</context>
</type>
</source>
</s2>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/dependencies.xml
Index: dependencies.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Service Dependencies</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
The org.apache.excalibur.meta.info.DependencyDescriptor class associates a
rol name with a version interface reference. A depedency is a references to a
service provided by a component. A container will typically provide services to
resolve service providers with components declaring depedencies by matching
provider and dependency declaration references.
</p>
<s2 title="XML Schema">
<source>
<font color="gray"><i><!--
Example of a component meta info external XML form
for a set of service descriptors within a type. A
services elememnt containtains 0..n servie elements.
Each service element contains the role name together
with a version interface reference.
--></i></font>
<type>
<font color="gray"><i><!--
Declaration of the set of dependecies that this component type has on
component suppliers. Dependency declarations define the role name
that the component will use to access a service via a service
or component manager. The service element identifies a service
descriptor that is publised by a potential supplier component.
A dependecy may be declared as optional by setting the optional
attribute value to TRUE. The default value for optional is FALSE.
--></i></font>
<dependencies>
<font color="gray"><i><!--
A dependecy declaration. In the following example the optional
attribute is redundant as it is equivalent to the default value
but is included here for completness.
--></i></font>
<dependency optional="<font color="darkred">FALSE</font>">
<font color="gray"><i><!--
The role name that the component will use as the argument to
lookup. The default value is the value of the service type
attribute listed below.
--></i></font>
<role><font color="darkred">my-transformer</font></role>
<font color="gray"><i><!--
service reference containing the classname of the service interface
and the version value where version defaults to 1.0
--></i></font>
<reference type="<font
color="darkred">org.apache.cocoon.api.Transformer</font>" version="<font
color="darkred">1.1</font>"/>
<font color="gray"><i><!-- the set of attributes associated with
the dependecy --></i></font>
<attributes>
<font color="gray"><i><!--
Service type constraints go here.
Need some relevant examples.
--></i></font>
</attributes>
</dependency>
</dependencies>
</type>
</source>
</s2>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/extensions.xml
Index: extensions.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Extension Descriptors</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
The org.apache.excalibur.meta.info.ExtensionDescriptor class declares tha
ability of a component implementation to provide support for the handling of
another component declararing a lifecycle stage interface dependency. For
example, component A may declare that it is capable of supporting lifecycle
interface X and component B may declare that it requires a handler for
lifecycle stage interface X. A compliant container will handle the association
of a component capable of handling the the lifecycle stage interface with the
component declaring the stage dependency.
</p>
<s2 title="XML Schema">
<source>
<font color="gray"><i><!--
Example of a component meta info external XML form
for a set of extension desclarations. Each extension
declaration declares the ability of this componet to
provide support for extension phase handling for a
lifecycle stage interface declared under each respective
reference element.
--></i></font>
<type>
<extensions>
<extension>
<name><font
color="darkred">a-security-solution</font></name>
<reference type="<font color="darkred">Securable</font>"/>
</extension>
</extensions>
</type>
</source>
</s2>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/index.xml
Index: index.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Meta Model Overview</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>The Meta Model is an object model describing a type of Avalon component.
The meta model encompasses all information about a component that is not
specified by its work interface and/or lifecycle interfaces.
Specifically, the Meta Model allows for specification of
lifecycle-related constraints/requirments, ie Context, Configuration,
Parameter, and Dependency constraints/requirments.
</p>
<p>
The Meta Model API is a set of well-known interfaces and classes that
can be used to provide a runtime representation of the meta model.
</p>
<p>
The Meta Model DTDs are a set of well-known XML DTDs that provide a
mapping of the Meta Model API in XML.
</p>
<p>
The Meta Model XML API provides an implementation of the Meta Model API
that takes XML documents following the Meta Model DTDs as source.
</p>
<p>
The Meta Model should be well-known to all avalonized applications.
Avalon Containers should share as much of a common meta model as
possible. It should be easy to implement support for the common meta
model in an Avalon Container.
</p>
<p>
The Meta Model should allow for easy extensibility to provide additional
container-specific functionality. It should be flexible to allow for
dynamic and/or runtime manageable ("hot-pluggable") containers to
function properly.
</p>
<p>
It should provide support for both linear and hierarchical metadata.
</p>
</s1>
<s1 title="Design Constraints">
<p>The Meta Model should be restricted to the same problem domain as avalon
itself: it should be specifically about enabling COP. It should be small
in terms of code size, footprint, resource consumption, just like avalon
framework. It should be well-documented.</p>
<p>ECM is stable and phoenix is in beta. The meta model should provide as
much interoperability with and support for these projects as possible.</p>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/list.xml
Index: list.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Mailing List</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Mailing Lists">
<p>
The Avalon Meta Model is part of the Apache Avalon Project. The <a
href="http://jakarta.apache.org/site/mail2.html#Avalon">Avalon User list</a> is
available for general questions and queries relating to Avalon initiatives.
</p>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/logging.xml
Index: logging.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Logging Descriptors</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
The org.apache.excalibur.meta.info.LoggerDescriptor class describes the set
of logging channels that the component requires. The name of each logging
channel is relative to the logging channel passed to the component. For
example, a component hosted in a container names aaa/bbb/ccc will be supplied
with a logging with a catagory of aaa.bbb.ccc.your-component and the logging
categories defined in the meta-info model will be appended to that (using the
period as a category delimiter).
</p>
<s2 title="XML Schema">
<source>
<font color="gray"><i><!--
Example of a component meta info external XML form
for a logging descriptor within a type. The element
contains the information required to construct an
instance of org.apache.excalibur.meta.info.LoggerDescriptor.
It includes information about subsidiary logging categories
required by the component type.
--></i></font>
<type>
<font color="gray"><i><!--
The set of logging catagories the component uses.
--></i></font>
<loggers>
<logger name="<font color="darkred">store</font>"/>
<logger name="<font
color="darkred">store.cache</font>"/>
<logger name="<font color="darkred">verifier</font>"/>
</loggers>
</type>
</source>
</s2>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/menu.xml
Index: menu.xml
===================================================================
<project name="Avalon Merlin"
href="http://jakarta.apache.org/avalon/merlin">
<title>Merlin Service Management</title>
<logo href="images/merlin_logo.gif">Merlin</logo>
<body>
<menu name="Essentials">
<item name="Overview" href="index.html"/>
<item name="Tools" href="tools.html"/>
</menu>
<menu name="Facilities">
<item name="Type Definition" href="type.html"/>
<item name="Logging Criteria" href="logging.html"/>
<item name="Context Criteria" href="context.html"/>
<item name="Services" href="services.html"/>
<item name="Dependencies" href="dependencies.html"/>
<item name="Extensions" href="extensions.html"/>
<item name="Stages" href="stages.html"/>
</menu>
<menu name="Links">
<item name="Mailing List" href="list.html"/>
<item name="Merlin"
href="http://jakarta.apache.org/avalon/merlin"/>
<item name="Fortress"
href="http://jakarta.apache.org/avalon/excalibur/fortress"/>
</menu>
<menu name="Reference">
<item name="Meta Info API" href="api/"/>
</menu>
</body>
</project>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/pending.xml
Index: pending.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Infomation Unavailable</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Unavailable">
<p>
The information you have selected is cutrrently in development. PLease check
back soon.
</p>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/services.xml
Index: services.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Service Descriptors</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
The org.apache.excalibur.meta.info.ServiceDescriptor class describes the a
service that a component provides. Serices represent the value-proposition
that the component offers to its clients, including other components that my
declare dependencies that a container will normally resolve in a container
independent manner. Services are exposed to clients though a ServiceManager
(or ComponentManager). The client will typically invoke the <code>lookup</code>
operation, passing the role name of the to the manager. The object retured is
a reference to a component providing the requested service (or a proxy that
isolates the component from the offered service). Role names and the services
that the role refers to are declared in depedency entries within the meta
model.
</p>
<s2 title="XML Schema">
<source>
<font color="gray"><i><!--
Example of a component meta info external XML form
for a set of service descriptors within a type. A
services elememnt containtains 0..n servie elements.
Each service element contains the role name together
with a version interface reference.
--></i></font>
<type>
<font color="gray"><i><!--
Declaration of the set of services that this component is capable
of supplying. Each service declarared under the services element
may be referenced by other component info descriptions as a
dependecy. A container is responsible for the assemably of
components based on the connection of supply components to
consumer components via a common service description.
--></i></font>
<services>
<font color="gray"><i><!--
The service type is the classname of an interface and the
version identifier qualifes the interface version. The
default version value is 1.0.
--></i></font>
<service>
<reference type="<font color="darkred">SimpleService</font>"
version="<font color="darkred">3.2</font>">
<attributes>
<font color="gray"><i><!--
Service type attributes go here.
Need some relevant examples.
--></i></font>
</attributes>
</service>
</services>
</type>
</source>
</s2>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/stages.xml
Index: stages.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Stage Descriptors</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
The org.apache.excalibur.meta.info.StageDescriptor class declares a depedency
that
a component has towards a stage interface handler (refer extensions). A
component
may declare multiple stage depedencies. Each stage depedency references a
version
interface. A compliant container is responsible for handling the association
of
extension handlers with components that are dependent on custom stages by
matching
extension candidates based on the interface reference.
</p>
<s2 title="XML Schema">
<source>
<font color="gray"><i><!--
Example of a component meta info external XML form
for a set of stage descriptors within a type.
--></i></font>
<type>
<font color="gray"><i><!--
The set of stage dependencies that a component declares towards
the container it is running within.
--></i></font>
<stages>
<stage>
<name><font
color="darkred">security-provider</font><name>
<reference type="<font color="darkred">Securable</font>"/>
</stage>
<stage>
<name><font
color="darkred">persistence-provider</font><name>
<reference type="<font color="darkred">Persistable</font>"/>
</stage>
</stages>
</type>
</source>
</s2>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/tools.xml
Index: tools.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Meta-Info Tools</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Tools Support">
<p>Tool support can be broken up into two categories.</p>
<p>A meta-info structure contains the following information:
<ul>
<li>Containers leveraging meta-info for component management</li>
<li>Tools supporting the generation of meta-info descriptors.</li>
<li>Tools leveraging meta-info in the degenation of supporting
information.</li>
</ul>
</p>
<s2 title="Containers">
</s2>
<s2 title="Generation Tools">
</s2>
<s2 title="Developer Tools">
</s2>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/type.xml
Index: type.xml
===================================================================
<?xml version="1.0"?>
<document>
<header>
<title>Type Descriptor</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Introduction">
<p>
Type is an assembly of descriptors of the constraints a component
type declares towards a container and includes declaration of service
dependencies, Logger establishment criteria, Configuration, Parameters
and Context establishment criteria, in addition to human-readable
information about the component type.
</p>
<s2 title="XML Schema">
<p>Configuration instances supplied to the builder shall correspond to the <a
href="http://jakarta.apache.org/avalon/type-1_1.dtd">type DTD</a>.
The structure of a Type XML document is is described below:</p>
<source>
<font color="gray"><i><!--
Example of a component meta info external XML form. The
element contains the information required to construct an
instance of org.apache.excalibur.meta.info.Type. It
includes information about the component type, the service
it provides, and the services it is dependent on.
--></i></font>
<type>
<font color="gray"><i><!--
Defintion of a single component descriptor.
--></i></font>
<component>
<font color="gray"><i><!-- the name of the component (character
restriction appply) --></i></font>
<name><font color="darkred">my-component</font></name>
<font color="gray"><i><!-- the implementation version
--></i></font>
<version><font color="darkred">1.2.1</font></version>
<font color="gray"><i><!-- the set of attribibutes associated with
the type
(attribute names and values are examples only) --></i></font>
<attributes>
<attribute key="<font
color="darkred">avalon:display-name-i18n</font>" value="<font
color="darkred">display-name</font>"/>
<attribute key="<font color="darkred">avalon:lifestyle</font>"
value="<font color="darkred">THREAD_SAFE</font>"/>
</attributes>
</component>
<font color="gray"><i><!--
The set of logging catagories the component uses.
--></i></font>
<loggers>
<logger name="store"/>
<logger name="store.cache"/>
<logger name="verifier"/>
</loggers>
<font color="gray"><i><!--
Declaration of the context constraints for the compoent type.
The "type" attribute is the name of an interface derived from the default
contenxt interface org.apache.avalon.framework.context.Context
--></i></font>
<context type="<font color="darkred">MyContextInterface</font>">
<font color="gray"><i><!--
Declaration of an entry in a context object, the "key" is
the key used by a component to locate the context entry,
the "type" is the classname of value (typically an interface)
or primative type. The default value is java.lang.String.
The "optional" attribute is a boolean value derived from the
TRUE or FALSE that indicates if the context value must be
provided or not (default is FALSE).
--></i></font>
<entry key="<font color="darkred">base</font>" type="<font
color="darkred">java.io.File</font>"/>
<entry key="<font color="darkred">mode</font>" optional="<font
color="darkred">TRUE</font>"/>
</context>
<font color="gray"><i><!--
Declaration of the set of services that this component is capable
of supplying. Each service declarared under the services element
may be referenced by other component info descriptions as a
dependecy. A container is responsible for the assemably of
components based on the connection of supply components to
consumer components via a common service description.
--></i></font>
<services>
<font color="gray"><i><!--
The service type is the classname of an interface and the
version identifier qualifes the interface version. The
default version value is 1.0.
--></i></font>
<service>
<reference type="<font color="darkred">SimpleService</font>"
version="<font color="darkred">3.2</font>">
<attributes>
<font color="gray"><i><!--
Service type attributes go here.
Need some relevant examples.
--></i></font>
</attributes>
</service>
</services>
<font color="gray"><i><!--
Declaration of the set of dependecies that this component type has on
component suppliers. Dependency declarations define the role name
that the component will use to access a service via a service
or component manager. The service element identifies a service
descriptor that is publised by a potential supplier component.
A dependecy may be declared as optional by setting the optional
attribute value to TRUE. The default value for optional is FALSE.
--></i></font>
<dependencies>
<font color="gray"><i><!--
A dependecy declaration. In the following example the optional
attribute is redundant as it is equivalent to the default value
but is included here for completness.
--></i></font>
<dependency optional="<font color="darkred">FALSE</font>">
<font color="gray"><i><!--
The role name that the component will use as the argument to
lookup. The default value is the value of the service type
attribute listed below.
--></i></font>
<role><font color="darkred">my-transformer</font></role>
<font color="gray"><i><!--
service reference containing the classname of the service interface
and the version value where version defaults to 1.0
--></i></font>
<reference type="<font
color="darkred">org.apache.cocoon.api.Transformer</font>" version="<font
color="darkred">1.1</font>"/>
<font color="gray"><i><!-- the set of attributes associated with
the dependecy --></i></font>
<attributes>
<font color="gray"><i><!--
Service type constraints go here.
Need some relevant examples.
--></i></font>
</attributes>
</dependency>
</dependencies>
</type>
</source>
</s2>
</s1>
</body>
<footer>
<legal>
Copyright (c) @year@ The Jakarta Apache Project All rights reserved.
$Revision: 1.1 $ $Date: 2002/08/25 02:50:28 $
</legal>
</footer>
</document>
1.1 jakarta-avalon-excalibur/meta/src/xdocs/images/Type.gif
<<Binary file>>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>