Skip to Content.
Sympa Menu

notify-dpml - r1281 - in trunk/main/central/src/docs: depot metro metro/directives metro/directives/component metro/directives/component/context metro/directives/type metro/directives/type/categories metro/directives/type/context metro/directives/type/info metro/directives/type/parts metro/directives/type/services metro/directives/type/state metro/directives/type/state/trigger metro/runtime/parts transit transit/parts/strategy transit/setup transit/setup/config

notify-dpml AT lists.ibiblio.org

Subject: DPML Notify

List archive

Chronological Thread  
  • From: mcconnell at BerliOS <mcconnell AT mail.berlios.de>
  • To: notify-dpml AT lists.ibiblio.org
  • Subject: r1281 - in trunk/main/central/src/docs: depot metro metro/directives metro/directives/component metro/directives/component/context metro/directives/type metro/directives/type/categories metro/directives/type/context metro/directives/type/info metro/directives/type/parts metro/directives/type/services metro/directives/type/state metro/directives/type/state/trigger metro/runtime/parts transit transit/parts/strategy transit/setup transit/setup/config
  • Date: Tue, 28 Mar 2006 15:19:36 +0200

Author: mcconnell
Date: 2006-03-28 15:19:22 +0200 (Tue, 28 Mar 2006)
New Revision: 1281

Added:
trunk/main/central/src/docs/metro/directives/
trunk/main/central/src/docs/metro/directives/component/
trunk/main/central/src/docs/metro/directives/component/categories.xml
trunk/main/central/src/docs/metro/directives/component/context/
trunk/main/central/src/docs/metro/directives/component/context/entries.xml
trunk/main/central/src/docs/metro/directives/component/context/index.xml

trunk/main/central/src/docs/metro/directives/component/context/navigation.xml
trunk/main/central/src/docs/metro/directives/component/context/values.xml
trunk/main/central/src/docs/metro/directives/component/index.xml
trunk/main/central/src/docs/metro/directives/component/navigation.xml
trunk/main/central/src/docs/metro/directives/component/parts.xml
trunk/main/central/src/docs/metro/directives/index.xml
trunk/main/central/src/docs/metro/directives/navigation.xml
trunk/main/central/src/docs/metro/directives/type/
trunk/main/central/src/docs/metro/directives/type/categories/
trunk/main/central/src/docs/metro/directives/type/categories/category.xml
trunk/main/central/src/docs/metro/directives/type/categories/index.xml
trunk/main/central/src/docs/metro/directives/type/categories/navigation.xml
trunk/main/central/src/docs/metro/directives/type/context/
trunk/main/central/src/docs/metro/directives/type/context/entry.xml
trunk/main/central/src/docs/metro/directives/type/context/index.xml
trunk/main/central/src/docs/metro/directives/type/context/navigation.xml
trunk/main/central/src/docs/metro/directives/type/index.xml
trunk/main/central/src/docs/metro/directives/type/info/
trunk/main/central/src/docs/metro/directives/type/info/index.xml
trunk/main/central/src/docs/metro/directives/type/info/navigation.xml
trunk/main/central/src/docs/metro/directives/type/info/property.xml
trunk/main/central/src/docs/metro/directives/type/navigation.xml
trunk/main/central/src/docs/metro/directives/type/parts/
trunk/main/central/src/docs/metro/directives/type/parts/index.xml
trunk/main/central/src/docs/metro/directives/type/parts/navigation.xml
trunk/main/central/src/docs/metro/directives/type/services/
trunk/main/central/src/docs/metro/directives/type/services/index.xml
trunk/main/central/src/docs/metro/directives/type/services/navigation.xml
trunk/main/central/src/docs/metro/directives/type/services/service.xml
trunk/main/central/src/docs/metro/directives/type/state/
trunk/main/central/src/docs/metro/directives/type/state/index.xml
trunk/main/central/src/docs/metro/directives/type/state/interface.xml
trunk/main/central/src/docs/metro/directives/type/state/navigation.xml
trunk/main/central/src/docs/metro/directives/type/state/operation.xml
trunk/main/central/src/docs/metro/directives/type/state/transition.xml
trunk/main/central/src/docs/metro/directives/type/state/trigger/
trunk/main/central/src/docs/metro/directives/type/state/trigger/apply.xml
trunk/main/central/src/docs/metro/directives/type/state/trigger/exec.xml
trunk/main/central/src/docs/metro/directives/type/state/trigger/index.xml

trunk/main/central/src/docs/metro/directives/type/state/trigger/navigation.xml
trunk/main/central/src/docs/transit/setup/config/
trunk/main/central/src/docs/transit/setup/properties.xml
Removed:
trunk/main/central/src/docs/transit/config/
trunk/main/central/src/docs/transit/properties.xml
Modified:
trunk/main/central/src/docs/depot/navigation.xml
trunk/main/central/src/docs/metro/navigation.xml
trunk/main/central/src/docs/metro/runtime/parts/index.xml
trunk/main/central/src/docs/transit/navigation.xml
trunk/main/central/src/docs/transit/parts/strategy/index.xml
trunk/main/central/src/docs/transit/setup/config/index.xml
Log:
getting in place the formal specs for the component and type XML schema

Modified: trunk/main/central/src/docs/depot/navigation.xml
===================================================================
--- trunk/main/central/src/docs/depot/navigation.xml 2006-03-28 11:50:13
UTC (rev 1280)
+++ trunk/main/central/src/docs/depot/navigation.xml 2006-03-28 13:19:22
UTC (rev 1281)
@@ -28,7 +28,7 @@
<item name="Overview" href="concepts/index.html"/>
<item name="Library" href="library/index.html"/>
<item name="Builder" href="tools/index.html"/>
- <item name="Tasks" href="tasks/index.html"/>
+ <item name="Antlib" href="tasks/index.html"/>
<item name="CLI" href="cli/index.html"/>
</menu>


Added: trunk/main/central/src/docs/metro/directives/component/categories.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/component/categories.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/component/categories.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Categories Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Categories">
+
+ <subsection name="Description">
+
+ <p>
+ 0..n <tt>&lt;category&gt;</tt> elements may be declared within an
+ enclosing <tt>&lt;categories&gt;</tt> element.
+ </p>
+
+ </subsection>
+
+ <subsection name="Category Attributes">
+
+ <table>
+ <tr>
+ <td><tt>name</tt></td>
+ <td>The category name (required).</td>
+ </tr>
+ <tr>
+ <td><tt>priority</tt></td>
+ <td>An optional logging channel priority value. Allowable values
+ include <tt>DEBUG</tt>, <tt>INFO</tt>, <tt>WARN</tt>, and
+ <tt>ERROR</tt>.</td>
+ </tr>
+ <tr>
+ <td><tt>target</tt></td>
+ <td>An optional logging channel target.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <p>
+ the following component directive is asserting that the two subsidiary
+ logging channels (<tt>alpha</tt> and <tt>beta</tt>) shall be
established
+ with the respective priorities of <tt>WARN</tt> and <tt>ERROR</tt>.
+ </p>
+
+<pre><![CDATA[
+<component xmlns="dpml:metro" dest="target/test/categories.part" test="true"
activation="true"
+ type="net.dpml.test.categories.CategoriesComponent" collection="hard">
+ <categories>
+ <category name="alpha" priority="warn"/>
+ <category name="beta" priority="error"/>
+ </categories>
+<component>
+]]></pre>
+
+ </section>
+
+ <section name="Technical Notes">
+
+ <p>
+ Overriding of category settings via metro comandline settings is not
+ supported at this time. While the commandline handler does pass a
+ categories configuration uri to the ComponentAdapter, the adapter
+ does not currently support this feature. A second issue relates to
+ non-assignment of logging category targets within the runtime
+ DefaultComponentHandler.
+ </p>
+
+ </section>
+
+ </body>
+
+</document>

Added:
trunk/main/central/src/docs/metro/directives/component/context/entries.xml
===================================================================
---
trunk/main/central/src/docs/metro/directives/component/context/entries.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++
trunk/main/central/src/docs/metro/directives/component/context/entries.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Entry Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Entry">
+
+ <subsection name="Description">
+
+ <p>
+ Declaration of the binding of a context key with
+ a value established by reference or in-line construction.
+ </p>
+
+ </subsection>
+
+ <subsection name="Entry Attributes (Common)">
+ <table>
+ <tr>
+ <td><tt>key</tt></td>
+ <td>The entry key (required). If a context interface declares
+ a method such as <tt>getTotalWidth()</tt> the key value will
be
+ <tt>totalWidth</tt>. (refer
java.beans.Introspector#decapitalize
+ for additional details concerning method to key
transformation).</td>
+ </tr>
+ </table>
+ </subsection>
+
+ <subsection name="Entry Attributes (for non-array entries)">
+ <table>
+ <tr>
+ <td><tt>class</tt></td>
+ <td>
+ Optional declaration of a classname to be instantiated using
+ any enclosed values. Classnames may include any class within
+ the scope of the component classloader or any primitive
datatype.
+ The 'class' attribue not be used in in conjunction with the
+ <tt>lookup</tt> attribute.
+ </td>
+ </tr>
+ <tr>
+ <td><tt>method</tt></td>
+ <td>
+ Optional declaration of the method to invoke on the target
+ object established by the class attribute. The default
+ method value is the keyword <tt>new</tt> used within bean
+ expression construction. If the method name references a
+ static field the filed value will be used to establish the
+ target object. May not be used in in conjunction with the
+ <tt>lookup</tt> attribute.</td>
+ </tr>
+ <tr>
+ <td><tt>value</tt></td>
+ <td>
+ Optional declaration of string value used as a constructor
+ or operation argument. May not be used in in conjunction with
the
+ <tt>lookup</tt> attribute or <tt>value</tt> attribute.</td>
+ </tr>
+ <tr>
+ <td><tt>lookup</tt></td>
+ <td>Requested service interface classname. For exmple, the
+ the <tt>lookup="org.acme.Widget"</tt> is an instruction to
+ the container to resolve a service instance type assignable
to
+ the <tt>Widget</tt> interface. May not be used in
conjunction
+ with the class, method, or value attributes or nested values.
+ </td>
+ </tr>
+ </table>
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <table>
+ <tr>
+ <td><tt><a href="values.html">value</a></tt></td>
+ <td>The entry element may contain 0..n nested &lt;value&gt;
directives.
+ A value directive allows in-line construction of operation
parameters,
+ array entries, or constructor arguments. Nested values may
not be used in
+ conjunction with the entry <tt>lookup</tt> or <tt>value</tt>
+ attributes.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <subsection name="Static Field Example">
+
+ <p>
+ Example of the creation of a context entry referencing
+ a static method. In the following example a value is constructed
+ using a static field <tt>RED</tt> on the class
<tt>java.awt.Color</tt>.
+ The class <tt>java.awt.Color</tt> is selected by default because
+ no <tt>class</tt> attribute is declared therefore the class
defaults to
+ the class declared as a return type in the component context
<tt>getColor</tt>
+ method.
+ </p>
+
+<pre><![CDATA[
+<entry key="color" method="RED"/>
+]]></pre>
+
+ </subsection>
+
+ <subsection name="Constructed Example">
+
+ <p>
+ The following example constructs a <tt>java.awt.Color</tt>
instance
+ by creating a series of primitive constructor arguments,
instantiating
+ a new color instance and assigning this under the context entry
key.
+ </p>
+
+<pre><![CDATA[
+<entry key="color">
+ <value class="float" value="100"/>
+ <value class="float" value="200"/>
+ <value class="float" value="0"/>
+</entry>
+]]></pre>
+
+ <p>
+ The following example constructs an instance of
<tt>java.io.File</tt>
+ using a symbolic argument as a constructor parameter value (the
+ example assumes that the return type declared by the context entry
+ is of the type <tt>java.io.File</tt>). Any system or Transit
+ property may be used as a symbolic argument.
+ </p>
+
+<pre><![CDATA[
+<entry key="dir" value="${user.dir}/working">
+]]></pre>
+
+ <p>
+ The following example constructs an String array (assuming that
the
+ underlying context entry declares a String[] return type).
+ </p>
+
+<pre><![CDATA[
+<entry key="names">
+ <value value="Hello"/>
+ <value value="World"/>
+</entry>
+]]></pre>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added:
trunk/main/central/src/docs/metro/directives/component/context/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/component/context/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/component/context/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Context Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Context">
+
+ <subsection name="Description">
+
+ <p>
+ Declaration of the initial context model state together
+ including context entry key/value bindings. A context
+ directive typically contains a series of &lt;entry&gt; directives
+ where each directive asserts a default inital value for a context
+ entry key. Any required context entry declared by a component must
+ be associated with a context entry directive. Failure to provide
+ context entry directives for all required context keys will result
+ ina build failure.
+ </p>
+
+ </subsection>
+
+ <subsection name="Context Nested Elements">
+
+ <table>
+ <tr>
+ <td><tt><a href="entries.html">entry</a></tt></td>
+ <td>The entry element may contain 0..n nested &lt;entry&gt;
directives.
+ A entry directive allows the creation by (value or reference)
of
+ a value associated with a context entry key.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <subsection name="General Example">
+
+ <p>
+ The following example demonstrates a variety
+ of context entry directives including the usage of
+ symbolic values, static field references, direct value
+ creation, composite value creation, and service wiring.
+ </p>
+
+<pre><![CDATA[
+<context>
+ <entry key="name" value="$${user.name}"/>
+ <entry key="printer" lookup="org.acme.Printer"/>
+ <entry key="background" method="RED"/>
+ <entry key="foreground">
+ <value class="float" value="100"/>
+ <value class="float" value="200"/>
+ <value class="float" value="0"/>
+ </entry>
+ <entry key="widget" class="org.acme.DefaultWidget">
+ <value class="org.acme.DefaultGizmo">
+ <value class="float" value="0"/>
+ <value class="int" value="1024"/>
+ </value>
+ </entry>
+</context>
+]]></pre>
+
+ </subsection>
+
+ </section>
+
+ <section name="Technical Notes">
+
+ <p>
+ The context descriptor class provides support for the declaration of
+ an alternative context class hewever this feature is not currently
+ supporting within the runtime.
+ </p>
+
+ </section>
+
+ </body>
+
+</document>

Added:
trunk/main/central/src/docs/metro/directives/component/context/navigation.xml
===================================================================
---
trunk/main/central/src/docs/metro/directives/component/context/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++
trunk/main/central/src/docs/metro/directives/component/context/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Central</title>
+
+ <body>
+
+ <menu>
+ <item name="Entry" href="entries.html"/>
+ <item name="Value" href="values.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added:
trunk/main/central/src/docs/metro/directives/component/context/values.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/component/context/values.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/component/context/values.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Value Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Value">
+
+ <subsection name="Description">
+
+ <p>
+ In-line construction of an entry or value constructor
+ or invocation argument. In other words - value directives
+ allow for the creation of target objects that can be used as
+ class constructor values or operation arguments to an enclosing
+ value or entry.
+ </p>
+
+ </subsection>
+
+ <subsection name="Entry Attributes">
+
+ <table>
+ <tr>
+ <td><tt>class</tt></td>
+ <td>Optional declaration of a classname to be instantiated using
+ any enclosed values. The default class value is
+ <tt>java.lang.String</tt>.</td>
+ </tr>
+ <tr>
+ <td><tt>method</tt></td>
+ <td>
+ Optional declaration of the method to invoke on the target
+ object established by the class attribute. The default
+ method value is the keyword <tt>new</tt> used within bean
+ expression construction. If the method name references a
+ static field the filed value will be used to establish the
+ target object.</td>
+ </tr>
+ <tr>
+ <td><tt>value</tt></td>
+ <td>
+ Optional declaration of string value used as a constructor
+ or operation argument. May not be used in in conjunction with
+ nested <tt>value</tt> attributes.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <table>
+ <tr>
+ <td><tt><a href="values.html">value</a></tt></td>
+ <td>The value element may contain 0..n nested &lt;value&gt;
directives.
+ If the value class is an array class the nested values are
+ interprited as array entries otherwise nested values are
interprited
+ as constructor parameter values. Nested values may not be used
in
+ conjuntion with the <tt>value</tt> attribute.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <subsection name="Simple Value Example">
+
+ <p>
+ Simple <tt>java.lang.String</tt> value assignment:
+ </p>
+
+<pre><![CDATA[
+<value value="Hello"/>
+]]></pre>
+
+ </subsection>
+
+ <subsection name="Static Field Example">
+
+ <p>
+ Example of the creation of a value referencing
+ a static method. In the following example a value is constructed
+ using a static field <tt>BLUE</tt> on the class
<tt>java.awt.Color</tt>.
+ </p>
+
+<pre><![CDATA[
+<value class="java.awt.Color" method="RED"/>
+]]></pre>
+
+ </subsection>
+
+ <subsection name="Constructor Example">
+
+ <p>
+ Example of the creation of an instance of <tt>java.awt.Color</tt>
+ using a set of nested primitive values.
+ </p>
+
+<pre><![CDATA[
+<value class="java.awt.Color">
+ <value class="float" value="100"/>
+ <value class="float" value="200"/>
+ <value class="float" value="0"/>
+</value>
+]]></pre>
+
+ </subsection>
+
+ <subsection name="Array Example">
+
+ <p>
+ Example of the creation of an int array. Array datatypes
+ may be declared using the "[]" postfix on the class attribute
+ value. Nested elements will be used to resolve array entry
+ values.
+ </p>
+
+<pre><![CDATA[
+<value class="int[]">
+ <value class="int" value="1"/>
+ <value class="int" value="2"/>
+ <value class="int" value="3"/>
+</value>
+]]></pre>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+
+

Added: trunk/main/central/src/docs/metro/directives/component/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/component/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/component/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Task</title>
+ </properties>
+
+ <body>
+
+ <section name="Component Directive">
+
+ <subsection name="Description">
+
+ </subsection>
+
+ <subsection name="Attributes">
+ <table>
+ <tr>
+ <td><tt>class</tt></td>
+ <td>Set the component type classname (required).</td>
+ </tr>
+ <tr>
+ <td><tt>key</tt></td>
+ <td>Required only when declaring a nested component within a
type.
+ The key corresponds to the internal key that uniquely
identifies the
+ child component within the scope of the enclosing component
type.
+ </td>
+ </tr>
+ <tr>
+ <td><tt>name</tt></td>
+ <td>Optional overriding of the component profile name. If not
supplied
+ the component profile name will default to the name of the
underlying
+ component type.</td>
+ </tr>
+ <tr>
+ <td><tt>activation</tt></td>
+ <td>Set the auto-activation policy (optional). The default
value is SYSTEM.
+ Possible values include STARTUP (triggers activation on
startup), DEMAND
+ (activation trigger on demand) and SYSTEM (activation decesions
are delagated
+ to the container).</td>
+ </tr>
+ <tr>
+ <td><tt>collection</tt></td>
+ <td>Overrides the component garbage collection policy
(optional). Allowable
+ values include <tt>WEAK</tt>, <tt>SOFT</tt> and <tt>HARD</tt>.
+ A component declaring a <tt>WEAK</tt> collection policy will
+ be garbage collected at the discretion of the JVM. A component
+ declaring a <tt>SOFT</tt> collection policy will be garbage
+ collected in the event of memory contention. A component
+ declaring the <tt>HARD</tt> collection policy will remain in
+ memory for the lifetime of the JVM unless explicitly removed
+ via a management system or controlling application.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <table>
+ <tr>
+ <td><tt><a href="categories.html">categories</a></tt></td>
+ <td>The categories element may contain 0..n logging
&lt;category&gt; directives.
+ A category directive allows manipulation of logging channel
priorities and
+ targets.</td>
+ </tr>
+ <tr>
+ <td><tt><a href="context/index.html">context</a></tt></td>
+ <td>Declaration of the component initial context state.</td>
+ </tr>
+ <tr>
+ <td><tt><a href="parts.html">parts</a></tt></td>
+ <td>Declaration of the nested componets.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>

Added: trunk/main/central/src/docs/metro/directives/component/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/component/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/component/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>Component Strategy Directive Specification</title>
+
+ <body>
+
+ <menu>
+ <item name="Categories" href="categories.html"/>
+ <item name="Context" href="context/index.html"/>
+ <item name="Parts" href="parts.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added: trunk/main/central/src/docs/metro/directives/component/parts.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/component/parts.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/component/parts.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Categories Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Parts">
+
+ <subsection name="Description">
+
+ <p>
+ A <tt>&lt;parts&gt;</tt> elements enables the declaration of
+ 0..n nested components.
+ </p>
+
+ </subsection>
+
+ <subsection name="Part Nested Elements">
+
+ <table>
+ <tr>
+ <td><a href="index.html"><tt>component</tt></a></td>
+ <td><tt>0..n</tt> nested components.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <p>
+ The following component defines an HHTP server deployment
+ profile made up of a collection in internal parts.
+ </p>
+
+<pre><![CDATA[
+ <target name="build" depends="standard.build">
+
+ <depot:plugin uri="link:plugin:dpml/metro/dpml-metro-tools" urn="metro"/>
+
+ <component xmlns="metro" type="net.dpml.http.Server"
lifestyle="singleton">
+ <parts>
+ <!--
+ Add a select channel connector to 8080.
+ -->
+ <component key="plain" type="net.dpml.http.SelectChannelConnector">
+ <context>
+ <entry key="port" value="8080"/>
+ <entry key="maxIdleTime" value="50000"/>
+ <entry key="acceptors" value="10"/>
+ </context>
+ </component>
+ <!--
+ Add a SSL connector to 8443.
+ -->
+ <component key="ssl" type="net.dpml.http.SslSocketConnector">
+ <context>
+ <entry key="port" value="8443"/>
+ <entry key="maxIdleTime" value="30000"/>
+ <entry key="keystore"
value="local:keystore:dpml/planet/http/jetty"/>
+ <entry key="password"
value="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/>
+ <entry key="keyPassword" value="OBF:1u2u1wml1z7s1z7a1wnl1u2g"/>
+ </context>
+ </component>
+ <!--
+ Add a user realm.
+ -->
+ <component key="realm" type="net.dpml.http.HashUserRealm">
+ <context>
+ <entry key="name" value="Test Realm"/>
+ <entry key="URI"
value="local:properties:dpml/planet/http/realm"/>
+ </context>
+ </component>
+ <!--
+ Add a web application.
+ -->
+ <component key="webapp" type="net.dpml.http.WebAppContextHandler">
+ <context>
+ <entry key="contextPath" value="/"/>
+ <entry key="war"
value="link:war:dpml/planet/http/dpml-http-app"/>
+ </context>
+ </component>
+ <!--
+ Creation of a HTTP server configured to present static content in
+ the ${dpml.share}/docs directory.
+ -->
+ <component key="context" type="net.dpml.http.ResourceContextHandler">
+ <context>
+ <entry key="resourceBase" value="$${dpml.share}/docs"/>
+ <entry key="contextPath" value="/docs"/>
+ </context>
+ </component>
+ <!--
+ Add an experimental servlet context.
+ -->
+ <component key="servlets" type="net.dpml.http.ServletContextHandler">
+ <context>
+ <entry key="resourceBase" value="$${dpml.data}"/>
+ <entry key="contextPath" value="/data"/>
+ </context>
+ <configuration>
+ <servlets>
+ <servlet name="data"
class="org.mortbay.jetty.servlet.DefaultServlet"/>
+ </servlets>
+ <mappings>
+ <map servlet="data" path="/"/>
+ </mappings>
+ </configuration>
+ </component>
+ </parts>
+ </component>
+]]></pre>
+
+ </section>
+
+ </body>
+
+</document>

Added: trunk/main/central/src/docs/metro/directives/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/index.xml 2006-03-28
11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/index.xml 2006-03-28
13:19:22 UTC (rev 1281)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Task</title>
+ </properties>
+
+ <body>
+
+ <section name="Component Type Descriptors and Deployment Directives">
+
+ <subsection name="Component as a Part Strategy">
+
+ <p>
+ The transit part XML-schema specification provides support for
+ the declaration of specialized deployment strategies. The DPML
+ component schema is defined as a specialization of the part strategy.
+ As such, a <a href="component/index.html">component directive</a>
+ may be used within the scope of an enclosing
+ <a href="/transit/parts/index.html">part</a>.
+ </p>
+
+ <p>The following example demonstrates the definition of a part
+ using a component directive as the part deployment strategy.</p>
+
+<source><![CDATA[<?xml version="1.0"?>
+
+<part xmlns="artifact:xsd:dpml/lang/dpml-part#1.0">
+
+ <info/>
+
+ <component xmlns="artifact:xsd:dpml/lang/dpml-component#1.0"
class="org.acme.Widget"/>
+
+ <classpath>
+ <private>
+ <uri>artifact:jar:acme/widget/acme-widget#1.2.3</uri>
+ </private>
+ </classpath>
+
+</part>]]></source>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>

Added: trunk/main/central/src/docs/metro/directives/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/navigation.xml 2006-03-28
11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/navigation.xml 2006-03-28
13:19:22 UTC (rev 1281)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>Descriptors and Directives</title>
+
+ <body>
+
+ <menu>
+ <item name="Component Directive" href="component/index.html"/>
+ <item name="Type Descriptor" href="type/index.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added:
trunk/main/central/src/docs/metro/directives/type/categories/category.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/categories/category.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/categories/category.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type Parts Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Category Descriptor">
+
+ <subsection name="Description">
+
+ <p>
+ </p>
+
+<source>
+<![CDATA[
+]]>
+</source>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/categories/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/categories/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/categories/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>Logging Categories Descriptor</title>
+ </properties>
+
+ <body>
+
+ <section name="Categories Descriptor">
+
+ <subsection name="Description">
+
+ <p>
+ </p>
+
+<source>
+<![CDATA[
+<?xml version="1.0"?>
+
+<type xmlns="artifact:xsd:dpml/lang/dpml-type#1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+ xmlns:part="artifact:xsd:dpml/lang/dpml-part#1.0"
+ xmlns:type="artifact:xsd:dpml/lang/dpml-type#1.0"
+ xmlns:component="artifact:xsd:dpml/lang/dpml-component#1.0">
+
+ <info name="categories"
+ class="net.dpml.test.categories.CategoriesComponent"
+ version="0.0.0"
+ lifestyle="thread"
+ collection="system"
+ threadsafe="unknown"/>
+
+ <categories>
+ <category name="alpha" priority="debug"/>
+ <category name="beta" priority="debug"/>
+ </categories>
+
+</type>
+]]>
+</source>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <table>
+ <tr>
+ <td><tt><a href="category.html">category</a></tt></td>
+ <td>
+ Declaration of zero or more logging categories.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+
+ </section>
+
+ </body>
+
+</document>
+

Added:
trunk/main/central/src/docs/metro/directives/type/categories/navigation.xml
===================================================================
---
trunk/main/central/src/docs/metro/directives/type/categories/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++
trunk/main/central/src/docs/metro/directives/type/categories/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Central</title>
+
+ <body>
+
+ <menu>
+ <item name="Category" href="category.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added: trunk/main/central/src/docs/metro/directives/type/context/entry.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/context/entry.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/context/entry.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type Parts Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Entry Descriptor">
+
+ <subsection name="Description">
+
+ <p>
+ </p>
+
+<source>
+<![CDATA[
+]]>
+</source>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/context/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/context/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/context/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type Parts Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Context Descriptor">
+
+ <subsection name="Description">
+
+ <p>
+ </p>
+
+<source>
+<![CDATA[
+<type xmlns="artifact:xsd:dpml/lang/dpml-type#1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+ xmlns:part="artifact:xsd:dpml/lang/dpml-part#1.0"
+ xmlns:type="artifact:xsd:dpml/lang/dpml-type#1.0"
+ xmlns:component="artifact:xsd:dpml/lang/dpml-component#1.0">
+
+ <info name="context"
+ class="net.dpml.test.ContextTestComponent"
+ version="0.0.0"
+ lifestyle="singleton"
+ collection="system"
+ threadsafe="true"/>
+ <context>
+ <entry key="boolean" class="boolean" optional="false"/>
+ <entry key="byte" class="byte" optional="false"/>
+ <entry key="short" class="short" optional="false"/>
+ <entry key="char" class="char" optional="false"/>
+ <entry key="long" class="long" optional="false"/>
+ <entry key="float" class="float" optional="false"/>
+ <entry key="double" class="double" optional="false"/>
+ <entry key="name" class="java.lang.String" optional="false"/>
+ <entry key="integer" class="int" optional="false"/>
+ <entry key="path" class="java.lang.String" optional="false"/>
+ <entry key="file" class="java.io.File" optional="false"/>
+ <entry key="file" class="java.io.File" optional="true"/>
+ <entry key="URI" class="java.net.URI" optional="false"/>
+ <entry key="color" class="java.awt.Color" optional="false"/>
+ <entry key="optionalColor" class="java.awt.Color" optional="true"/>
+ <entry key="optionalInteger" class="int" optional="true"/>
+ <entry key="optionalShort" class="short" optional="true"/>
+ <entry key="optionalLong" class="long" optional="true"/>
+ <entry key="optionalByte" class="byte" optional="true"/>
+ <entry key="optionalDouble" class="double" optional="true"/>
+ <entry key="optionalFloat" class="float" optional="true"/>
+ <entry key="optionalChar" class="char" optional="true"/>
+ <entry key="optionalBoolean" class="boolean" optional="true"/>
+ <entry key="optionalFile" class="java.io.File" optional="true"/>
+ <entry key="tempFile" class="java.io.File" optional="false"/>
+ <entry key="optionalURI" class="java.net.URI" optional="true"/>
+ </context>
+
+</type>
+ </info>]]>
+</source>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <table>
+ <tr>
+ <td><tt><a href="entry.html">entry</a></tt></td>
+ <td>
+ Declaration of context entry. The context element
+ may contain multiple context entry directives. Each directive
+ declares a key identifying the component context entry name
+ using the Java-beans naming convention. The entry element
+ may also declare the context entry class expected the component
+ implementation and its optional or required status.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+
+ </section>
+
+ </body>
+
+</document>
+

Added:
trunk/main/central/src/docs/metro/directives/type/context/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/context/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/context/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Central</title>
+
+ <body>
+
+ <menu>
+ <item name="Entry" href="entry.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added: trunk/main/central/src/docs/metro/directives/type/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/index.xml 2006-03-28
11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/index.xml 2006-03-28
13:19:22 UTC (rev 1281)
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Type Task</title>
+ </properties>
+
+ <body>
+
+ <section name="Type Task">
+
+ <subsection name="Description">
+
+ <p>
+ The types task automates the creation of component type meta-info.
+ Information captured during type creation includes the component
+ implementation class name, logging channel assumptions, the services
+ provided by the type, context assumptions, and internal parts.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>name</tt></td>
+ <td>Set the type name - used internally in error reports.</td>
+ </tr>
+ <tr>
+ <td><tt>class</tt></td>
+ <td>Set the component implementation class.</td>
+ </tr>
+ <tr>
+ <td><tt>lifestyle</tt></td>
+ <td>Set the component lifestyle. Allowable values include
+ <tt>SINGLETON</tt>, <tt>THREAD</tt>, and <tt>TRANSIENT</tt>.
+ A component declaring the <tt>SINGLETON</tt> will be shared
+ across all consumers within the JVM (i.e. the potential
+ for concurrent access will exist). A component declaring
+ the <tt>THREAD</tt> lifestyle policy will have a set of
instances
+ corresponding to the number of threads requesting access. A
+ component declaring the <tt>TRANSIENT</tt> lifestyle will
+ instantiated for each request. The default lifestyle policy
+ is <tt>TRANSIENT</tt> (reflecting the most conservative
+ scenario).</td>
+ </tr>
+ <tr>
+ <td><tt>collection</tt></td>
+ <td>Sets the component garbage collection policy. Allowable
+ values include <tt>WEAK</tt>, <tt>SOFT</tt> and <tt>HARD</tt>.
+ A component declaring a <tt>WEAK</tt> collection policy will
+ be garbage collected at the discretion of the JVM. A component
+ declaring a <tt>SOFT</tt> collection policy will be garbage
+ collected in the event of memory contention. A component
+ declaring the <tt>HARD</tt> collection policy will remain in
+ memory for the lifetime of the JVM unless explicitly removed
+ via a management system or controlling application.</td>
+ </tr>
+ <tr>
+ <td><tt>threadsafe</tt></td>
+ <td>Declares the component implementation as threadsafe.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <table>
+ <tr>
+ <td><a href="state/index.html"><tt>state</tt></a></td>
+ <td>Definition of a component state graph.</td>
+ </tr>
+ <tr>
+ <td><a href="parts/index.html"><tt>parts</tt></a></td>
+ <td>Definition of the internal parts (nested components)
+ within this component type.
+ The <tt>parts</tt> element allows for the structural
+ composition of components as <i>part-of</i> an enclosing
+ component type. Enclosed components can be viewed as a
+ private internal implementation strategy of the type.
+ </td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <subsection name="Type Example">
+
+ <p>Example using the <tt>&lt;type&gt;</tt> task to generate
+ a series of <tt>.type</tt> descriptors:</p>
+
+<pre><![CDATA[
+<type xmlns="dpml:metro" class="net.dpml.test.composite.ChildComponent"
name="child"/>
+<type xmlns="dpml:metro" class="net.dpml.test.composite.CompositeComponent"
name="parent">
+ <parts>
+ <component type="net.dpml.test.composite.ChildComponent" name="child"
activation="false">
+ <context>
+ <entry key="color" method="BLUE"/>
+ </context>
+ </component>
+ </parts>
+</type>
+]]></pre>
+
+ </subsection>
+
+ <subsection name="Optimization using the Types task">
+
+ <p>
+ The above usage of the <tt>&lt;type&gt;</tt> task can be optimised
through the
+ usage of the <tt>&lt;types&gt;</tt>. The <tt>&lt;types&gt;</tt>
tasks reduces the
+ overhead during construction of runtime classloader information.
When generating types
+ using the <tt>&lt;types&gt;</tt> task the classloader construction
is only executed
+ once. The following example is an optimized equivalent of the above.
+ </p>
+
+<pre><![CDATA[
+<types xmlns="dpml:metro">
+ <type class="net.dpml.test.composite.ChildComponent" name="child"/>
+ <type class="net.dpml.test.composite.CompositeComponent" name="parent">
+ <parts>
+ <component type="net.dpml.test.composite.ChildComponent" name="child"
activation="false">
+ <context>
+ <entry key="color" method="BLUE"/>
+ </context>
+ </component>
+ </parts>
+ </type>
+</types>
+]]></pre>
+
+ </subsection>
+
+ </section>
+
+ <section name="Technical Notes">
+
+ <subsection name="Issues and Limitations">
+
+ <p>
+ The implementation does not currently provide support for the
+ overriding of published services or the delcaration of
+ logging channel usage assumptions within the component
+ implementation.
+ </p>
+
+ </subsection>
+
+ <subsection name="Persistence">
+
+ <p>
+ Component type meta-info is stored in an XML file collocated with
the class.
+ The naming convention is the full-qualified classname appended with
the suffix
+ <tt>.type</tt>. The file format is the XML encoding specificed by
JSR-57.
+ </p>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/info/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/info/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/info/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type Parts Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Info Element">
+
+ <subsection name="Description">
+
+ <p>
+ </p>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <p>
+ The <tt>info</tt> element may contain any number of the property
+ elements.
+ </p>
+
+ <table>
+ <tr>
+ <td><tt><a href="property.html">property</a></tt></td>
+ <td>Declaration of a named value pair.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Examples">
+
+ <subsection name="Nested component example">
+
+<pre><![CDATA[
+ <type class="net.dpml.test.composite.CompositeComponent" name="parent">
+ <parts>
+ <component type="net.dpml.test.composite.ChildComponent" key="primary">
+ <context>
+ <entry key="color" method="RED"/>
+ </context>
+ </component>
+ <component type="net.dpml.test.composite.ChildComponent"
key="secondary">
+ <context>
+ <entry key="color" method="BLUE"/>
+ </context>
+ </component>
+ </parts>
+ </type>
+]]></pre>
+
+ </subsection>
+
+ <subsection name="Part by reference example">
+
+<pre><![CDATA[
+ <type class="org.acme.DefaultGizmo" name="gizmo">
+ <parts>
+ <part key="widget"
uri="artifact:part:acme/widget/standard-widget#3.1"/>
+ </parts>
+ </type>
+]]></pre>
+
+ </subsection>
+
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/info/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/info/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/info/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Central</title>
+
+ <body>
+
+ <menu>
+ <item name="Property" href="property.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added: trunk/main/central/src/docs/metro/directives/type/info/property.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/info/property.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/info/property.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type Parts Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Property Element">
+
+ <subsection name="Description">
+
+ <p>
+ The <tt>property</tt> element declares a name value pair.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td>name</td>
+ <td>The property name.</td>
+ </tr>
+ <tr>
+ <td>value</td>
+ <td>The property value.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Examples">
+
+ <subsection name="Property assertion example">
+
+<pre><![CDATA[
+]]></pre>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Central</title>
+
+ <body>
+
+ <menu>
+ <item name="Info" href="info/index.html"/>
+ <item name="Services" href="services/index.html"/>
+ <item name="Context" href="context/index.html"/>
+ <item name="Categories" href="categories/index.html"/>
+ <item name="State" href="state/index.html"/>
+ <item name="Parts" href="parts/index.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added: trunk/main/central/src/docs/metro/directives/type/parts/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/parts/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/parts/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type Parts Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Parts">
+
+ <subsection name="Description">
+
+ <p>
+ The <tt>parts</tt> element allows for the structural
+ composition of components as <i>part-of</i> an enclosing
+ component type. Enclosed components can be viewed as a
+ private internal implementation strategy of the type.
+ </p>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <p>
+ The <tt>parts</tt> element may contain any number of the following
+ elements.
+ </p>
+
+ <table>
+ <tr>
+ <td><tt><a
href="../../component/index.html">component</a></tt></td>
+ <td>Declaration of a nested component using the Metro component
directive.</td>
+ </tr>
+ <tr>
+ <td><tt>part</tt></td>
+ <td>Inclusion of a part by reference to a part uri</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Examples">
+
+ <subsection name="Nested component example">
+
+<pre><![CDATA[
+ <type class="net.dpml.test.composite.CompositeComponent" name="parent">
+ <parts>
+ <component type="net.dpml.test.composite.ChildComponent" key="primary">
+ <context>
+ <entry key="color" method="RED"/>
+ </context>
+ </component>
+ <component type="net.dpml.test.composite.ChildComponent"
key="secondary">
+ <context>
+ <entry key="color" method="BLUE"/>
+ </context>
+ </component>
+ </parts>
+ </type>
+]]></pre>
+
+ </subsection>
+
+ <subsection name="Part by reference example">
+
+<pre><![CDATA[
+ <type class="org.acme.DefaultGizmo" name="gizmo">
+ <parts>
+ <part key="widget"
uri="artifact:part:acme/widget/standard-widget#3.1"/>
+ </parts>
+ </type>
+]]></pre>
+
+ </subsection>
+
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/parts/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/parts/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/parts/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Central</title>
+
+ <body>
+
+ <menu>
+ </menu>
+
+ </body>
+
+</project>

Added: trunk/main/central/src/docs/metro/directives/type/services/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/services/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/services/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type Parts Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Services">
+
+ <subsection name="Description">
+
+ <p>
+ The <tt>services</tt> element declares a collection of classnames
+ representing services (typically interfaces) that the component
+ is declaring it provides.
+ </p>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <p>
+ The <tt>services</tt> element may contain any number of
<tt>service</tt>
+ elements.
+ </p>
+
+ <table>
+ <tr>
+ <td><tt><a href="service.html">service</a></tt></td>
+ <td>Declaration of of a published service provided by the
component.
+ The services element may contain 0..n nested service
elements.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ <subsection name="Examples">
+
+ <p>
+ The following example illustrates a type descriptor that declares
that
+ the component implementation exports the service
+ <tt>net.dpml.http.BoundedThreadPool</tt> service.</p>
+
+<pre><![CDATA[
+<?xml version="1.0"?>
+
+<type xmlns="artifact:xsd:dpml/lang/dpml-type#1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+ xmlns:part="artifact:xsd:dpml/lang/dpml-part#1.0"
+ xmlns:type="artifact:xsd:dpml/lang/dpml-type#1.0"
+ xmlns:component="artifact:xsd:dpml/lang/dpml-component#1.0">
+
+ <info name="pool"
+ class="net.dpml.http.BoundedThreadPool"
+ version="0.0.0"
+ lifestyle="singleton"
+ collection="system"
+ threadsafe="true"/>
+ <services>
+ <service class="org.mortbay.thread.ThreadPool" version="1.0.0"/>
+ </services>
+ <context>
+ <entry key="name" class="java.lang.String" optional="true"/>
+ <entry key="priority" class="int" optional="true"/>
+ <entry key="min" class="int" optional="true"/>
+ <entry key="max" class="int" optional="true"/>
+ <entry key="daemon" class="boolean" optional="true"/>
+ <entry key="idle" class="int" optional="true"/>
+ </context>
+
+</type>]]></pre>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added:
trunk/main/central/src/docs/metro/directives/type/services/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/services/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/services/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Central</title>
+
+ <body>
+
+ <menu>
+ <item name="Service" href="service.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added: trunk/main/central/src/docs/metro/directives/type/services/service.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/services/service.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/services/service.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type Parts Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Service Element">
+
+ <subsection name="Description">
+
+ <p>
+ The <tt>service</tt> declares that the component is capable of
+ providing a service matching the specification. A service is
typically
+ a Java interface implementated by the component type. The service
+ may also be associated with a service version identifier.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>class</tt></td>
+ <td>The required classname of the service (typically an
interface).</td>
+ </tr>
+ <tr>
+ <td><tt>version</tt></td>
+ <td>The optional service version.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/state/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/state/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/state/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Component Type State Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="State Datatype">
+
+ <subsection name="Description">
+
+ <p>
+ A state is an immutable datastructure that defines a collection
+ of available transitions, management operations, and possibly
+ initialization or termination triggers. Actionable features
+ of a state are exposed when the state is within the current state
path.
+ The current state path is a path composed of the current state, it's
+ parent, parent's patrent, etc. unit the root state is reached. As
+ such, any operations declared within the root state will always be
+ available where operations and/transitions in sub-states will only
+ available if the associated state is present in the state path.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>name</tt></td>
+ <td>Set the state name (required on sub-states).</td>
+ </tr>
+ <tr>
+ <td><tt>terminal</tt></td>
+ <td>If set to 'true' the state will be classified as a terminal
state.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <table>
+ <tr>
+ <td><tt><a href="trigger/index.html">trigger</a></tt></td>
+ <td>An initialization or termination trigger.</td>
+ </tr>
+ <tr>
+ <td><tt><a href="index.html">state</a></tt></td>
+ <td>A nested state.</td>
+ </tr>
+ <tr>
+ <td><tt><a href="transition.html">transition</a></tt></td>
+ <td>A state transition.</td>
+ </tr>
+ <tr>
+ <td><tt><a href="operation.html">operation</a></tt></td>
+ <td>A management operation.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+<pre><![CDATA[
+<c:type class="net.dpml.test.state.ManagedComponent" name="demo"
lifestyle="thread">
+ <state>
+ <operation name="ping" method="ping"/>
+ <operation name="monitor"/>
+ <trigger event="initialization">
+ <transition name="startup" target="started">
+ <operation method="start"/>
+ </transition>
+ </trigger>
+ <state name="started">
+ <trigger event="termination">
+ <apply id="stop"/>
+ </trigger>
+ <transition name="stop" target="../stopped">
+ <operation method="stop"/>
+ </transition>
+ </state>
+ <state name="stopped">
+ <transition name="start" target="../started">
+ <operation method="start"/>
+ </transition>
+ </state>
+ </state>
+</c:type>
+]]></pre>
+
+ </section>
+
+ <section name="Technical Note">
+
+ <subsection name="Importing a State Graph">
+
+ <p>
+ As an alternative to the above attributes and nested elements, a
+ state graph may be imported from an external source. For example, a
+ graph defining a common lifecycle model can be shared across
multiple
+ components.
+ </p>
+
+ </subsection>
+
+ <subsection name="XGraph Resource">
+
+ <p>
+ The following example demonstrates the import of a state graph
+ using the <tt>class</tt> attribute. The classname supplied must
+ be a class that has a collocated <tt>.xgraph</tt> resource. The
+ <tt>.xgraph</tt> resource is an XML file containing a state model
+ described using the same attribute and element combinanations as
+ described above.
+ </p>
+
+<pre><![CDATA[
+<c:type name="http" class="net.dpml.http.impl.HttpServerImpl"
threadsafe="true">
+ <state class="net.dpml.activity.Startable"/>
+</c:type>
+]]></pre>
+
+ </subsection>
+
+ <subsection name="Graph Artifact">
+
+ <p>
+ Another alternative is to reference a state graph as a published
+ artifact using the <tt>uri</tt> attribute.
+ </p>
+
+<pre><![CDATA[
+<c:type class="org.acme.DefaultWidget" name="widget">
+ <state uri="artifact:state:acme/widget/acme-widget#123"/>
+</c:type>
+]]></pre>
+
+ <p>
+ The original graph artifact may be created using the
+ <a href="../../graph/index.html">state graph artifact
+ builder task</a>.
+ </p>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/state/interface.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/state/interface.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/state/interface.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Graph Interface Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Interface Datatype">
+
+ <subsection name="Description">
+
+ <p>
+ Declaration of the exposure of a management interface. The set of
+ interfaces declared under states within the state graph correspond
to
+ the enabled management contract for a component within a particular
+ state.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>class</tt></td>
+ <td>The classname of the interface.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/state/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/state/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/state/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Central</title>
+
+ <body>
+
+ <menu>
+ <item name="Trigger" href="trigger/index.html"/>
+ <item name="Transition" href="transition.html"/>
+ <item name="Operation" href="operation.html"/>
+ <item name="Interface" href="interface.html"/>
+ </menu>
+
+ </body>
+
+</project>

Added: trunk/main/central/src/docs/metro/directives/type/state/operation.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/state/operation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/state/operation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Management Operation Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Operation Datatype">
+
+ <subsection name="Description">
+
+ <p>
+ Declaration of a management operation.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>name</tt></td>
+ <td>The operation name.</td>
+ </tr>
+ <tr>
+ <td><tt>method</tt></td>
+ <td>The method name.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Technical Note">
+
+ <p>
+ The operation data does not currently support the nested declaration
+ of parameter values.
+ </p>
+
+ </section>
+
+ </body>
+
+</document>
+

Added: trunk/main/central/src/docs/metro/directives/type/state/transition.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/state/transition.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/state/transition.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro State Transition Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Transition Datatype">
+
+ <subsection name="Description">
+
+ <p>
+ The transition datatype descripes a transition from the current
+ state to a new target state. The transition may declare a nested
+ operation that will be invoked prior to the application of the
+ state transition. A side effect of a state transtion is that
+ active state will be changed to the target of the transition which
+ in-turn changes the defintion of the active state path (the
+ set of states from the root to the activie state). This will
+ typically result in changes to available transition and
+ management operations.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>name</tt></td>
+ <td>Set the name of the transition.</td>
+ </tr>
+ <tr>
+ <td><tt>target</tt></td>
+ <td>A relative path to a target state.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <table>
+ <tr>
+ <td><tt><a href="operation.html">operation</a></tt></td>
+ <td>Optional declaration of a management operation to be invoked
+ before applying the state transition.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added:
trunk/main/central/src/docs/metro/directives/type/state/trigger/apply.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/state/trigger/apply.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/state/trigger/apply.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Apply Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Apply Datatype">
+
+ <subsection name="Description">
+
+ <p>
+ The apply element may be used within a <tt>trigger</tt> to
+ request the automatic invocation of a state transition by
+ reference to a named transition.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>id</tt></td>
+ <td>The name of a state <a
href="../transition.html">transition</a> to be applied.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <p>
+ The following state definition contains a termination trigger that
+ holds an <tt>apply</tt> statement. The apply statement references
+ the state transition named <tt>stop</tt>. During termination the
+ the <tt>stop</tt> state transition will be invoked resulting in the
+ transition of the component fropm the <tt>started</tt> to
+ <tt>stopped</tt> state.
+ </p>
+
+<pre><![CDATA[
+<state name="started">
+ <transition name="stop" target="../stopped">
+ <operation name="stop" method="stop"/>
+ </transition>
+ <trigger event="termination">
+ <apply id="stop"/>
+ </trigger>
+</state>
+]]></pre>
+
+ </section>
+
+ </body>
+
+</document>
+

Added:
trunk/main/central/src/docs/metro/directives/type/state/trigger/exec.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/state/trigger/exec.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/state/trigger/exec.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Exec Datatype</title>
+ </properties>
+
+ <body>
+
+ <section name="Exec Datatype">
+
+ <subsection name="Description">
+
+ <p>
+ The exec element may be used within a <tt>trigger</tt> to
+ request the automatic invocation of a named management
+ operation.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>id</tt></td>
+ <td>The name of a <a href="../operation.html">operation</a> to
execute.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added:
trunk/main/central/src/docs/metro/directives/type/state/trigger/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/directives/type/state/trigger/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/directives/type/state/trigger/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Metro Trigger Datatypes</title>
+ </properties>
+
+ <body>
+
+ <section name="Trigger Datatype">
+
+ <subsection name="Description">
+
+ <p>
+ A trigger describes an action to be taken during initialization
+ or termination of a component. Triggers are declared as either
+ an <tt>initialization</tt> or <tt>termination</tt> trigger using the
+ <tt>event</tt> attribute. A trigger contains exactly one actionable
+ entity which may be a privide transition or operation, or a directive
+ invoking an existing transition or operation.
+ </p>
+
+ <p>
+ During component initialization the state machine implementation
+ will locate an initialization and invoke and declared operation or
+ transition. If the result of the initialization action is a modified
+ active state that has not been visited during the initialization
sequence
+ then the state machine will recommence evaluation of any declared
+ initialization triggers. This process continues until no further
+ initialization actions exist (i.e. all initialization actons have
been
+ fired).
+ </p>
+
+ <p>
+ On completion of the initialization phase, subsequent modifications
to
+ the active state (via the application of transitions) and invocation
of
+ management opeterations may be handled by an external management
system.
+ </p>
+
+ <p>
+ The process of termination follows the same pattern as
initialization. The
+ state machine will evaluate the current state chain for the
existance of an
+ termination trigger. If present the termination action associated
with the
+ trigger will be fired. If the action results in a change to the
active
+ state the evaluation procedure will start again util all termination
+ triggers have been executed.
+ </p>
+
+ </subsection>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td><tt>event</tt></td>
+ <td>Classification of the trigger as either
<tt>INITIALIZATION</tt>
+ or <tt>TERMINATION</tt>.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ <subsection name="Nested Elements">
+
+ <p>
+ The <tt>trigger</tt> element may contain exactly one of the
+ the following nested elements.
+ </p>
+
+ <table>
+ <tr>
+ <td><tt><a href="../transition.html">transition</a></tt></td>
+ <td>A private state transition.</td>
+ </tr>
+ <tr>
+ <td><tt><a href="../operation.html">operation</a></tt></td>
+ <td>A management operation to invoke.</td>
+ </tr>
+ <tr>
+ <td><tt><a href="apply.html">apply</a></tt></td>
+ <td>Apply a transition identified by an <tt>id</tt>
attribute.</td>
+ </tr>
+ <tr>
+ <td><tt><a href="exec.html">exec</a></tt></td>
+ <td>Execute a operation identified by the <tt>id</tt>
attribute.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ </body>
+
+</document>
+

Added:
trunk/main/central/src/docs/metro/directives/type/state/trigger/navigation.xml
===================================================================
---
trunk/main/central/src/docs/metro/directives/type/state/trigger/navigation.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++
trunk/main/central/src/docs/metro/directives/type/state/trigger/navigation.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project>
+
+ <title>DPML Metro</title>
+
+ <body>
+
+ <menu>
+ <item name="Apply" href="apply.html"/>
+ <item name="Exec" href="exec.html"/>
+ </menu>
+
+ </body>
+
+</project>

Modified: trunk/main/central/src/docs/metro/navigation.xml
===================================================================
--- trunk/main/central/src/docs/metro/navigation.xml 2006-03-28 11:50:13
UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/navigation.xml 2006-03-28 13:19:22
UTC (rev 1281)
@@ -26,6 +26,7 @@

<menu>
<item name="Overview" href="concepts/index.html"/>
+ <item name="Directives" href="directives/index.html"/>
<item name="Runtime" href="runtime/index.html"/>
<item name="Station" href="station/index.html"/>
<item name="Utilities" href="util/index.html"/>

Modified: trunk/main/central/src/docs/metro/runtime/parts/index.xml
===================================================================
--- trunk/main/central/src/docs/metro/runtime/parts/index.xml 2006-03-28
11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/metro/runtime/parts/index.xml 2006-03-28
13:19:22 UTC (rev 1281)
@@ -9,15 +9,28 @@

<body>

- <section name="Parts">
+ <section name="Directives">

<p>
A component part associates a component profile with a
- supporting controller. The profile provides a description of the
- state of usage of a component type. It is represented by a
collections of
- serializable (and encodable) classes commonly referred to as
directives.
+ supporting controller. The profile provides a description of a
deployment
+ state of a component type.
</p>

+ <subsection name="XML Specification">
+
+ <p>
+ A component directive is a specialized part deployment strategy. As
+ such the component defintion is contained within an enclosing part.
+ </p>
+
+ <p>
+ FORMAL XML SPEC IS COMMING
+ </p>
+
+ </subsection>
+
+
<subsection name="Part Datastructure">

<p>

Modified: trunk/main/central/src/docs/transit/navigation.xml
===================================================================
--- trunk/main/central/src/docs/transit/navigation.xml 2006-03-28 11:50:13
UTC (rev 1280)
+++ trunk/main/central/src/docs/transit/navigation.xml 2006-03-28 13:19:22
UTC (rev 1281)
@@ -27,11 +27,10 @@
<menu>
<item name="Overview" href="concepts/index.html"/>
<item name="Protocols" href="technical/index.html"/>
+ <item name="Configuration" href="setup/index.html"/>
<item name="Directives" href="parts/index.html"/>
<item name="Services" href="services/index.html"/>
- <item name="Properties" href="properties.html"/>
- <item name="Configuration" href="config/index.html"/>
- <item name="Tasks" href="tasks/index.html"/>
+ <item name="Antlib" href="tasks/index.html"/>
<item name="CLI" href="cli/index.html"/>
</menu>


Modified: trunk/main/central/src/docs/transit/parts/strategy/index.xml
===================================================================
--- trunk/main/central/src/docs/transit/parts/strategy/index.xml
2006-03-28 11:50:13 UTC (rev 1280)
+++ trunk/main/central/src/docs/transit/parts/strategy/index.xml
2006-03-28 13:19:22 UTC (rev 1281)
@@ -14,6 +14,7 @@
<subsection name="Description">

<p>
+ IN PROGRESS
</p>

<p>Example:</p>

Deleted: trunk/main/central/src/docs/transit/properties.xml
===================================================================
--- trunk/main/central/src/docs/transit/properties.xml 2006-03-28 11:50:13
UTC (rev 1280)
+++ trunk/main/central/src/docs/transit/properties.xml 2006-03-28 13:19:22
UTC (rev 1281)
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!--
- Copyright 2005 Stephen McConnell
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.dpml.net/central/about/legal/
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied.
-
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<document>
-
- <properties>
- <author email="mcconnell AT dpml.net">Stephen McConnell</author>
- <title>DPML Transit Properties</title>
- </properties>
-
- <body>
- <section name="System Properties">
-
- <p>
- Two system properties may be used to control the condiguration
- of the Transit system. One property provides a mechanisms whereby a
- remote active transit model can be associated as the confiuration
- for a local transit instance. A second property is available for
- selection of a transit profile via url (suitable for centralized
- configuration of static models).
- </p>
-
- <table>
- <tr>
- <td>dpml.transit.model</td>
- <td>
- If this system property is passed as an argument to the Depot
- console handler (via the <tt>transit</tt>, <tt>metro</tt>, or
- <tt>station</tt> commandline handlers), Depot will attempt to
- locate a Transit Model using an RMI registry. If declared the
- value of the property must be in the form
<tt>registry[:host[:port]]:name</tt>
- where the <tt>name</tt> value corresponds to a RMI registry name
- bound to an instance of a TransitModel implementation.
- </td>
- </tr>
- <tr>
- <td>dpml.transit.profile</td>
- <td>
- If Transit is not initialized within an explicit TransitModel
then
- Transit will attempt to establish a TransitModel using a
externalized
- TransitDirective located at the uri
<tt>local:xml:dpml/transit/standard</tt>.
- This uri can be overridden using the
<tt>dpml.transit.profile</tt> property
- enabling the selection of a remote profile. The uri value will
be resolved
- to a url referencing a <a
href="xml/index.html">TransitDescriptor in XML form</a>. Overriding the uri
- enables the possiblity for centralization of multiple Transit
configurations.
- </td>
- </tr>
- </table>
-
- </section>
- </body>
-</document>
-

Copied: trunk/main/central/src/docs/transit/setup/config (from rev 1272,
trunk/main/central/src/docs/transit/config)

Modified: trunk/main/central/src/docs/transit/setup/config/index.xml
===================================================================
--- trunk/main/central/src/docs/transit/config/index.xml 2006-03-27
08:15:53 UTC (rev 1272)
+++ trunk/main/central/src/docs/transit/setup/config/index.xml 2006-03-28
13:19:22 UTC (rev 1281)
@@ -9,7 +9,7 @@

<body>

- <section name="Transit XML Specification">
+ <section name="Transit Configuration">

<subsection name="Description">


Copied: trunk/main/central/src/docs/transit/setup/properties.xml (from rev
1272, trunk/main/central/src/docs/transit/properties.xml)
===================================================================
--- trunk/main/central/src/docs/transit/properties.xml 2006-03-27 08:15:53
UTC (rev 1272)
+++ trunk/main/central/src/docs/transit/setup/properties.xml 2006-03-28
13:19:22 UTC (rev 1281)
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+ Copyright 2005 Stephen McConnell
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.dpml.net/central/about/legal/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied.
+
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Transit Properties</title>
+ </properties>
+
+ <body>
+ <section name="System Properties">
+
+ <p>
+ Two system properties may be used to control the condiguration
+ of the Transit system. One property provides a mechanisms whereby a
+ remote active transit model can be associated as the confiuration
+ for a local transit instance. A second property is available for
+ selection of a transit profile via url (suitable for centralized
+ configuration of static models).
+ </p>
+
+ <table>
+ <tr>
+ <td>dpml.transit.model</td>
+ <td>
+ If this system property is passed as an argument to the Depot
+ console handler (via the <tt>transit</tt>, <tt>metro</tt>, or
+ <tt>station</tt> commandline handlers), Depot will attempt to
+ locate a Transit Model using an RMI registry. If declared the
+ value of the property must be in the form
<tt>registry[:host[:port]]:name</tt>
+ where the <tt>name</tt> value corresponds to a RMI registry name
+ bound to an instance of a TransitModel implementation.
+ </td>
+ </tr>
+ <tr>
+ <td>dpml.transit.profile</td>
+ <td>
+ If Transit is not initialized within an explicit TransitModel
then
+ Transit will attempt to establish a TransitModel using a
externalized
+ TransitDirective located at the uri
<tt>local:xml:dpml/transit/standard</tt>.
+ This uri can be overridden using the
<tt>dpml.transit.profile</tt> property
+ enabling the selection of a remote profile. The uri value will
be resolved
+ to a url referencing a <a href="config/index.html">Transit XML
configuration</a>.
+ Overriding the uri enables the possiblity for centralization of
multiple
+ Transit configurations.
+ </td>
+ </tr>
+ </table>
+
+ </section>
+ </body>
+</document>
+




  • r1281 - in trunk/main/central/src/docs: depot metro metro/directives metro/directives/component metro/directives/component/context metro/directives/type metro/directives/type/categories metro/directives/type/context metro/directives/type/info metro/directives/type/parts metro/directives/type/services metro/directives/type/state metro/directives/type/state/trigger metro/runtime/parts transit transit/parts/strategy transit/setup transit/setup/config, mcconnell at BerliOS, 03/28/2006

Archive powered by MHonArc 2.6.24.

Top of Page