You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by tv...@apache.org on 2007/05/05 08:58:51 UTC
svn commit: r535465 [48/49] - in /jakarta/turbine/fulcrum/trunk: ./ bsf/
bsf/src/java/org/apache/fulcrum/bsf/ bsf/src/test/ bsf/xdocs/ cache/
cache/src/java/org/apache/fulcrum/cache/
cache/src/java/org/apache/fulcrum/cache/impl/ cache/src/test/ cache/s...
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/interceptors/performanceinterceptor.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/interceptors/performanceinterceptor.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/interceptors/performanceinterceptor.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/interceptors/performanceinterceptor.xml Fri May 4 23:58:06 2007
@@ -1,253 +1,271 @@
-<?xml version="1.0"?>
-<document>
-
- <properties>
- <title>Fulcrum YAAFI Avalon Container Interceptors</title>
- <author email="siegfried.goeschl@it20one.at">Siegfried Goeschl</author>
- </properties>
-
- <body>
-
- <section name="Overview">
- <p>
- The service solves a simple problem - how to monitor the execution time of
- service invocations in a production environment. It allows to monitor a
- a user-defined list of services and tresholds which affects the trace
- level of the logger being used to write the performance data.
- </p>
- </section>
-
- <section name="Captured Information">
- <p>
- During the execution the service captures the following information for
- producing a meaning log
- <table>
- <tr>
- <th>Item</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>Transaction ID (TID)</td>
- <td>the number of times the invocationDepth was zero</td>
- </tr>
- <tr>
- <td>Invocation ID (IID)</td>
- <td>the current number of inovking a service method</td>
- </tr>
- <tr>
- <td>InvocationDepth (ID)</td>
- <td>
- the service invocation depth, e.g a value of "1" that
- the currently invoked service method was invoked by
- another service. A value of "0" indicates that the service
- method was directly invoked from the caller therefore
- starting a new transaction
- </td>
- </tr>
- <tr>
- <td>Mode (M)</td>
- <td>
- the invocation mode of the interceptor
- <ul>
- <li>0 ==> entering the service method</li>
- <li>1 ==> leaving the the service method</li>
- <li>2 ==> an exception occured</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>ServiceName</td>
- <td>the shorthand of the service being invoked</td>
- </tr>
- <tr>
- <td>ServiceMethod</td>
- <td>the name of the service method being invoked</td>
- </tr>
- <tr>
- <td>Millis</td>
- <td>the execution time in milliseconds</td>
- </tr>
- <tr>
- <td>Method Signature</td>
- <td>the name of the executing thread</td>
- </tr>
- </table>
- </p>
- </section>
-
- <section name="Example Logfile">
- <p>
- Looking at the following <a href="performance.csv">example</a> you see that
- <ul>
- <li>that this was the 18th transaction during the lifetime of the container</li>
- <li>the transaction spanned eight Avalon service invocations</li>
- <li>SignatureService.sign is the top-level service invocation taking 140 ms</li>
- <li>PdfSignatureService.isSupported is invoked by SignatureService.sign hence the invocation depth of "1"</li>
- <li>PdfSignatureService.sign is also invoked by SignatureService.sign and took 140 ms</li>
- <li>PdfSignatureService.sign invokes five other Avalon service methods to do its work</li>
- </ul>
- </p>
- <source>
- <![CDATA[
-TID IID ID M ServiceName ServiceMethod Millis
-18 28 0 1 SignatureService sign 140
-18 29 1 1 PdfSignatureService isSupported 0
-18 30 1 1 PdfSignatureService sign 140
-18 31 2 1 CommandDispatcher exists 0
-18 32 2 1 ResourceManagerService exists 0
-18 33 2 1 ResourceManagerService exists 0
-18 34 2 1 ResourceManagerService read 0
-18 35 2 1 PKCS12KeyStore getCertificateEntry 0
- ]]>
- </source>
- </section>
-
- <section name="Configuration">
- <subsection name="Component Configuration">
- <table>
- <tr>
- <th>Item</th>
- <th>Datatype</th>
- <th>Cardinality</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>isEnabled</td>
- <td>Boolean</td>
- <td>[0|1]</td>
- <td>
- Turn the interceptor. If no value is supplied then "false" is used
- thereby disabling all interceptor invocations.
- </td>
- </tr>
- <tr>
- <td>tresholds</td>
- <td>Tree</td>
- <td>[0|1]</td>
- <td>
- Contains a list of mappings from execution time to tracelevel
- </td>
- </tr>
- <tr>
- <td>tresholds/debug</td>
- <td>Integer</td>
- <td>[0|1]</td>
- <td>
- The minimum exeuction time for debug output
- </td>
- </tr>
- <tr>
- <td>tresholds/info</td>
- <td>Integer</td>
- <td>[0|1]</td>
- <td>
- The minimum exeuction time for info output
- </td>
- </tr>
- <tr>
- <td>tresholds/warn</td>
- <td>Integer</td>
- <td>[0|1]</td>
- <td>
- The minimum exeuction time for warn output
- </td>
- </tr>
- <tr>
- <td>tresholds/error</td>
- <td>Integer</td>
- <td>[0|1]</td>
- <td>
- The minimum exeuction time for error output
- </td>
- </tr>
- <tr>
- <td>tresholds/fatal</td>
- <td>Integer</td>
- <td>[0|1]</td>
- <td>
- The minimum exeuction time for fatal output
- </td>
- </tr>
- <tr>
- <td>services</td>
- <td>Tree</td>
- <td>[0|1]</td>
- <td>
- Contains a list of services to be monitored.
- </td>
- </tr>
- <tr>
- <td>services/service@name</td>
- <td>String</td>
- <td>[1..n]</td>
- <td>
- The name of an individual service to be monitored.
- </td>
- </tr>
- </table>
- </subsection>
- <subsection name="Role Configuration">
- <source><![CDATA[
-<role
- name="org.apache.fulcrum.yaafi.interceptor.performance.PerformanceInterceptorService"
- shorthand="PerformanceInterceptorService"
- default-class="org.apache.fulcrum.yaafi.interceptor.performance.PerformanceInterceptorServiceImpl"
- logger="performance"
-/>
- ]]></source>
- </subsection>
-
- <subsection name="Log4J Configuration">
- <p>
- The following Log4J configuration defines a custom
- appender for the PerformanceInterceptorService. For
- the layout we just add a timestamp since we produce
- a CSV file to be analyzed with EXCEL or your tool
- of choice
- </p>
- <source><![CDATA[
-#
-# Custom logfiles
-#
-
-log4j.category.yaafi.performance = DEBUG, performance
-log4j.additivity.yaafi.performance = false
-
-#
-# Performance Appender
-#
-
-log4j.appender.performance = org.apache.log4j.FileAppender
-log4j.appender.performance.file = ./temp/performance.csv
-log4j.appender.performance.layout = org.apache.log4j.PatternLayout
-log4j.appender.performance.layout.conversionPattern = %d;%m%n
-log4j.appender.performance.append = true
- ]]></source>
- </subsection>
- </section>
-
- <section name="Usage">
- <p>
- Monitor all exection times
- </p>
- <source>
- <![CDATA[
-<PerformanceInterceptorService>
- <isEnabled>true</isEnabled>
- <tresholds>
- <debug millis="0"/>
- <info millis="100"/>
- <warn millis="500"/>
- <error millis="1000"/>
- <fatal millis="5000"/>
- </tresholds>
- <services>
- <service name="*"/>
- </services>
-</PerformanceInterceptorService>
- ]]>
- </source>
- </section>
-
- </body>
-</document>
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
+ <title>Fulcrum YAAFI Avalon Container Interceptors</title>
+ <author email="siegfried.goeschl@it20one.at">Siegfried Goeschl</author>
+ </properties>
+
+ <body>
+
+ <section name="Overview">
+ <p>
+ The service solves a simple problem - how to monitor the execution time of
+ service invocations in a production environment. It allows to monitor a
+ a user-defined list of services and tresholds which affects the trace
+ level of the logger being used to write the performance data.
+ </p>
+ </section>
+
+ <section name="Captured Information">
+ <p>
+ During the execution the service captures the following information for
+ producing a meaning log
+ <table>
+ <tr>
+ <th>Item</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>Transaction ID (TID)</td>
+ <td>the number of times the invocationDepth was zero</td>
+ </tr>
+ <tr>
+ <td>Invocation ID (IID)</td>
+ <td>the current number of inovking a service method</td>
+ </tr>
+ <tr>
+ <td>InvocationDepth (ID)</td>
+ <td>
+ the service invocation depth, e.g a value of "1" that
+ the currently invoked service method was invoked by
+ another service. A value of "0" indicates that the service
+ method was directly invoked from the caller therefore
+ starting a new transaction
+ </td>
+ </tr>
+ <tr>
+ <td>Mode (M)</td>
+ <td>
+ the invocation mode of the interceptor
+ <ul>
+ <li>0 ==> entering the service method</li>
+ <li>1 ==> leaving the the service method</li>
+ <li>2 ==> an exception occured</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>ServiceName</td>
+ <td>the shorthand of the service being invoked</td>
+ </tr>
+ <tr>
+ <td>ServiceMethod</td>
+ <td>the name of the service method being invoked</td>
+ </tr>
+ <tr>
+ <td>Millis</td>
+ <td>the execution time in milliseconds</td>
+ </tr>
+ <tr>
+ <td>Method Signature</td>
+ <td>the name of the executing thread</td>
+ </tr>
+ </table>
+ </p>
+ </section>
+
+ <section name="Example Logfile">
+ <p>
+ Looking at the following <a href="performance.csv">example</a> you see that
+ <ul>
+ <li>that this was the 18th transaction during the lifetime of the container</li>
+ <li>the transaction spanned eight Avalon service invocations</li>
+ <li>SignatureService.sign is the top-level service invocation taking 140 ms</li>
+ <li>PdfSignatureService.isSupported is invoked by SignatureService.sign hence the invocation depth of "1"</li>
+ <li>PdfSignatureService.sign is also invoked by SignatureService.sign and took 140 ms</li>
+ <li>PdfSignatureService.sign invokes five other Avalon service methods to do its work</li>
+ </ul>
+ </p>
+ <source>
+ <![CDATA[
+TID IID ID M ServiceName ServiceMethod Millis
+18 28 0 1 SignatureService sign 140
+18 29 1 1 PdfSignatureService isSupported 0
+18 30 1 1 PdfSignatureService sign 140
+18 31 2 1 CommandDispatcher exists 0
+18 32 2 1 ResourceManagerService exists 0
+18 33 2 1 ResourceManagerService exists 0
+18 34 2 1 ResourceManagerService read 0
+18 35 2 1 PKCS12KeyStore getCertificateEntry 0
+ ]]>
+ </source>
+ </section>
+
+ <section name="Configuration">
+ <subsection name="Component Configuration">
+ <table>
+ <tr>
+ <th>Item</th>
+ <th>Datatype</th>
+ <th>Cardinality</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>isEnabled</td>
+ <td>Boolean</td>
+ <td>[0|1]</td>
+ <td>
+ Turn the interceptor. If no value is supplied then "false" is used
+ thereby disabling all interceptor invocations.
+ </td>
+ </tr>
+ <tr>
+ <td>tresholds</td>
+ <td>Tree</td>
+ <td>[0|1]</td>
+ <td>
+ Contains a list of mappings from execution time to tracelevel
+ </td>
+ </tr>
+ <tr>
+ <td>tresholds/debug</td>
+ <td>Integer</td>
+ <td>[0|1]</td>
+ <td>
+ The minimum exeuction time for debug output
+ </td>
+ </tr>
+ <tr>
+ <td>tresholds/info</td>
+ <td>Integer</td>
+ <td>[0|1]</td>
+ <td>
+ The minimum exeuction time for info output
+ </td>
+ </tr>
+ <tr>
+ <td>tresholds/warn</td>
+ <td>Integer</td>
+ <td>[0|1]</td>
+ <td>
+ The minimum exeuction time for warn output
+ </td>
+ </tr>
+ <tr>
+ <td>tresholds/error</td>
+ <td>Integer</td>
+ <td>[0|1]</td>
+ <td>
+ The minimum exeuction time for error output
+ </td>
+ </tr>
+ <tr>
+ <td>tresholds/fatal</td>
+ <td>Integer</td>
+ <td>[0|1]</td>
+ <td>
+ The minimum exeuction time for fatal output
+ </td>
+ </tr>
+ <tr>
+ <td>services</td>
+ <td>Tree</td>
+ <td>[0|1]</td>
+ <td>
+ Contains a list of services to be monitored.
+ </td>
+ </tr>
+ <tr>
+ <td>services/service@name</td>
+ <td>String</td>
+ <td>[1..n]</td>
+ <td>
+ The name of an individual service to be monitored.
+ </td>
+ </tr>
+ </table>
+ </subsection>
+ <subsection name="Role Configuration">
+ <source><![CDATA[
+<role
+ name="org.apache.fulcrum.yaafi.interceptor.performance.PerformanceInterceptorService"
+ shorthand="PerformanceInterceptorService"
+ default-class="org.apache.fulcrum.yaafi.interceptor.performance.PerformanceInterceptorServiceImpl"
+ logger="performance"
+/>
+ ]]></source>
+ </subsection>
+
+ <subsection name="Log4J Configuration">
+ <p>
+ The following Log4J configuration defines a custom
+ appender for the PerformanceInterceptorService. For
+ the layout we just add a timestamp since we produce
+ a CSV file to be analyzed with EXCEL or your tool
+ of choice
+ </p>
+ <source><![CDATA[
+#
+# Custom logfiles
+#
+
+log4j.category.yaafi.performance = DEBUG, performance
+log4j.additivity.yaafi.performance = false
+
+#
+# Performance Appender
+#
+
+log4j.appender.performance = org.apache.log4j.FileAppender
+log4j.appender.performance.file = ./temp/performance.csv
+log4j.appender.performance.layout = org.apache.log4j.PatternLayout
+log4j.appender.performance.layout.conversionPattern = %d;%m%n
+log4j.appender.performance.append = true
+ ]]></source>
+ </subsection>
+ </section>
+
+ <section name="Usage">
+ <p>
+ Monitor all exection times
+ </p>
+ <source>
+ <![CDATA[
+<PerformanceInterceptorService>
+ <isEnabled>true</isEnabled>
+ <tresholds>
+ <debug millis="0"/>
+ <info millis="100"/>
+ <warn millis="500"/>
+ <error millis="1000"/>
+ <fatal millis="5000"/>
+ </tresholds>
+ <services>
+ <service name="*"/>
+ </services>
+</PerformanceInterceptorService>
+ ]]>
+ </source>
+ </section>
+
+ </body>
+</document>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/decommission.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/decommission.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/decommission.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/decommission.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -10,7 +28,7 @@
<body>
<section name="Decommision">
-
+
<p>
The decommision of a service covers the shutdown procedure a service
@@ -18,19 +36,19 @@
<li>Startable.stop()</li>
<li>Disposable.dispose()</li>
<li>Finalizer</li>
- </ul>
+ </ul>
</p>
-
+
<subsection name="Startable.stop()">
<p>
- Stop all of the service activities since it is guaranteed that no client
+ Stop all of the service activities since it is guaranteed that no client
will invoke the service.
</p>
</subsection>
<subsection name="Disposable.dispose()">
<p>
- Free all resources hold by the service implementation.
+ Free all resources hold by the service implementation.
</p>
</subsection>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/incarnation.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/incarnation.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/incarnation.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/incarnation.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -10,14 +28,14 @@
<body>
<section name="Incarnation">
-
+
<p>
The incarnation of a service covers the creation and configuration of a
service
</p>
-
+
<p>
- The following methods are invoked:
+ The following methods are invoked:
<ul>
<li>Constructor()</li>
<li>LogEnabled.enableLogging(Logger)</li>
@@ -28,21 +46,21 @@
<li>Initializable.initialize()</li>
<li>Executable.execute()</li>
<li>Startable.start()</li>
- </ul>
+ </ul>
</p>
-
+
<p>
The good news are that you don't have to implement all these interfaces
if you have a simple service. The bad news are that you might need all of
this interfaces in a complex application ... :-)
</p>
-
+
<subsection name="Constructor()">
<p>
This doesn't come as a surprise
</p>
</subsection>
-
+
<subsection name="LogEnabled.enableLogging(Logger)">
<p>
Here you get the logger for your service implementation. This
@@ -82,28 +100,28 @@
<subsection name="Parameterizable.parameterize(Parameters)">
<p>
- Quite frankly I'm not sure why this method is needed. The only
+ Quite frankly I'm not sure why this method is needed. The only
reason I can think of is a command-line application ...
</p>
</subsection>
<subsection name="Initializable.initialize()">
<p>
- This method is used for initializing your service implementation
+ This method is used for initializing your service implementation
since you have all your configuration information by now,
</p>
</subsection>
<subsection name="Executable.execute()">
<p>
- If the component implements Executable the execute method will be
+ If the component implements Executable the execute method will be
invoked before the component instance is exposed to any other component.
</p>
</subsection>
<subsection name="Startable.start()">
<p>
- The Startable interface is used by any component that is constantly
+ The Startable interface is used by any component that is constantly
running for the duration of its life. This is the method to go if
you want to start a worker thread in the background.
</p>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/index.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/index.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/index.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/index.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -13,21 +31,21 @@
<p>
The service lifecycle contains of a bunch of interfaces covering the following aspects of a service
-
+
<ul>
<li><a href="incarnation.html">incarnation</a></li>
<li><a href="reconfiguration.html">reconfiguration</a></li>
<li><a href="decommission.html">decommissioning</a></li>
</ul>
</p>
-
+
<p>
- These interfaces are the contract between your service implementation
+ These interfaces are the contract between your service implementation
and the service container. And this is the reason why we can deploy
a service implementation using different service framework implementations
such as Excalibur or Merlin.
</p>
-
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/reconfiguration.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/reconfiguration.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/reconfiguration.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/lifecycle/reconfiguration.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -10,16 +28,16 @@
<body>
<section name="Reconfiguration">
-
+
<p>
The reconfiguration of a service covers the following methods
<ul>
<li>Suspendable.suspend()</li>
<li>Reconfigurable.reconfigure(Configuration)</li>
<li>Suspendable.resume()</li>
- </ul>
+ </ul>
</p>
-
+
<subsection name="Suspendable.suspend()">
<p>
Suspend the service since it is guarenteed that no client
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/navigation.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/navigation.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/navigation.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/navigation.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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
name="Fulcrum YAAFI Avalon Container"
href="http://jakarta.apache.org/turbine/fulcrum/yaafi/">
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/adviceservice.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/adviceservice.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/adviceservice.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/adviceservice.xml Fri May 4 23:58:06 2007
@@ -1,57 +1,75 @@
-<?xml version="1.0"?>
-<document>
-
- <properties>
- <title>Fulcrum YAAFI Avalon Container AdviceService</title>
- <author email="siegfried.goeschl@it20one.at">Siegfried Goeschl</author>
- </properties>
-
- <body>
-
- <section name="Overview">
- <p>
- The service reuses YAAFI infrastructure to add Avalon interceptor services
- to any Java object. This service is useful if you would like to extend the
- existing interceptor services (e.g. logging) to non-Avalon services.
- </p>
- </section>
-
- <section name="Configuration">
- <subsection name="Role Configuration">
- <source><![CDATA[
-<role
- name="org.apache.fulcrum.yaafi.service.advice.AdviceService"
- shorthand="AdviceService"
- default-class="org.apache.fulcrum.yaafi.service.advice.AdviceServiceImpl"
- has-proxy="false"
-/>
- ]]></source>
- </subsection>
-
- <subsection name="Component Configuration">
- <table>
- <tr>
- <th>Item</th>
- <th>Datatype</th>
- <th>Optional</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>interceptors</td>
- <td>Tree</td>
- <td>Y</td>
- <td>Contains a list of interceptors</td>
- </tr>
- <tr>
- <td>interceptors/interceptor</td>
- <td>String</td>
- <td>Y</td>
- <td>The name of the interceptor</td>
- </tr>
- </table>
- </subsection>
-
- </section>
-
- </body>
-</document>
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
+ <title>Fulcrum YAAFI Avalon Container AdviceService</title>
+ <author email="siegfried.goeschl@it20one.at">Siegfried Goeschl</author>
+ </properties>
+
+ <body>
+
+ <section name="Overview">
+ <p>
+ The service reuses YAAFI infrastructure to add Avalon interceptor services
+ to any Java object. This service is useful if you would like to extend the
+ existing interceptor services (e.g. logging) to non-Avalon services.
+ </p>
+ </section>
+
+ <section name="Configuration">
+ <subsection name="Role Configuration">
+ <source><![CDATA[
+<role
+ name="org.apache.fulcrum.yaafi.service.advice.AdviceService"
+ shorthand="AdviceService"
+ default-class="org.apache.fulcrum.yaafi.service.advice.AdviceServiceImpl"
+ has-proxy="false"
+/>
+ ]]></source>
+ </subsection>
+
+ <subsection name="Component Configuration">
+ <table>
+ <tr>
+ <th>Item</th>
+ <th>Datatype</th>
+ <th>Optional</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>interceptors</td>
+ <td>Tree</td>
+ <td>Y</td>
+ <td>Contains a list of interceptors</td>
+ </tr>
+ <tr>
+ <td>interceptors/interceptor</td>
+ <td>String</td>
+ <td>Y</td>
+ <td>The name of the interceptor</td>
+ </tr>
+ </table>
+ </subsection>
+
+ </section>
+
+ </body>
+</document>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/index.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/index.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/index.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/index.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/reconfigurationservice.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/reconfigurationservice.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/reconfigurationservice.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/reconfigurationservice.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -11,14 +29,14 @@
<section name="Overview">
<p>
This service uses a background thread to monitor a list of configuration
- files. A resource is loaded by using a resource name and an InputStreamLocator.
+ files. A resource is loaded by using a resource name and an InputStreamLocator.
The a SHA-1 hashcode is derived and compared to the previous hashcode.
- If a change is detected either the whole container or a list of
- services are reconfigured. This service allows reconfiguration
+ If a change is detected either the whole container or a list of
+ services are reconfigured. This service allows reconfiguration
support without using client/server communication.
</p>
</section>
-
+
<section name="Configuration">
<subsection name="Role Configuration">
@@ -30,7 +48,7 @@
default-class="org.apache.fulcrum.yaafi.service.reconfiguration.ReconfigurationServiceImpl"
early-init="true"
description="Monitors configuration files to reconfigure YAAFI"
- />
+ />
]]>
</source>
</subsection>
@@ -41,27 +59,27 @@
if the files have changed. Changing "TestComponentConfig"
triggers the reconfiguration of the container whereas a change
of "TestParameters.properties" would reconfigure the two
- listed services.
+ listed services.
</p>
<source>
<![CDATA[
<ReconfigurationService interval="5000">
<entry>
- <location>./src/test/TestComponentConfig.xml</location>
+ <location>./src/test/TestComponentConfig.xml</location>
</entry>
<entry>
<location>./src/test/TestParameters.properties</location>
<services>
<service name="org.apache.fulcrum.yaafi.TestComponent"/>
<service name="org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyService"/>
- </services>
- </entry>
+ </services>
+ </entry>
</ReconfigurationService>
]]>
</source>
</subsection>
</section>
-
+
</body>
-
+
</document>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/servicemanagerservice.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/servicemanagerservice.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/servicemanagerservice.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/servicemanagerservice.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -21,7 +39,7 @@
<role
name="org.apache.fulcrum.yaafi.service.servicemanager.ServiceManagerService"
default-class="org.apache.fulcrum.yaafi.service.servicemanager.ServiceManagerServiceImpl"
- />
+ />
]]></source>
</subsection>
</section>
@@ -40,6 +58,6 @@
File home = (File) serviceManagerService.getContext().get("urn:avalon:home")
]]></source>
</section>
-
+
</body>
</document>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/shutdownservice.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/shutdownservice.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/shutdownservice.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/shutdownservice.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -10,17 +28,17 @@
<section name="Overview">
<p>
- This service uses a background thread to monitor a resource. A
- resource is loaded by using a resource name and an InputStreamLocator.
+ This service uses a background thread to monitor a resource. A
+ resource is loaded by using a resource name and an InputStreamLocator.
The a SHA-1 hashcode is derived and compared to the previous hashcode.
- If a change is detected the container is disposed, either by
+ If a change is detected the container is disposed, either by
terminating all active threads or by calling System.exit(). This
service allows to shutdown a long-running application by writing
a timestamp into a file therefore avoiding any additional network
support.
</p>
</section>
-
+
<section name="Configuration">
<subsection name="Role Configuration">
@@ -32,7 +50,7 @@
default-class="org.apache.fulcrum.yaafi.service.shutdown.ShutdownServiceImpl"
early-init="true"
description="Monitors a resource to force a disposal of the Avalon container"
-/>
+/>
]]>
</source>
</subsection>
@@ -48,15 +66,15 @@
<![CDATA[
<ShutdownService interval="5000">
<entry>
- <location>./src/test/shutdown.txt</location>
- <useSystemExit>true</useSystemExit>
- </entry>
+ <location>./src/test/shutdown.txt</location>
+ <useSystemExit>true</useSystemExit>
+ </entry>
</ShutdownService>
]]>
</source>
</subsection>
</section>
-
+
</body>
-
+
</document>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/systempropertyservice.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/systempropertyservice.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/systempropertyservice.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/services/systempropertyservice.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -11,9 +29,9 @@
<section name="Overview">
<p>
This service copies entries from the configuration.xml into the
- SystemProperties. Quite useful since you can avoid tinkering
+ SystemProperties. Quite useful since you can avoid tinkering
with system properties in start scripts.
- </p>
+ </p>
</section>
<section name="Configuration">
@@ -25,7 +43,7 @@
shorthand="SystemPropertyService"
default-class="org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyServiceImpl"
early-init="true"
-/>
+/>
]]>
</source>
</subsection>
@@ -45,7 +63,7 @@
This service does not expose any methods
</p>
</section>
-
+
</body>
-
+
</document>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/component.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/component.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/component.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/component.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -12,26 +30,25 @@
<section name="Component Configuration File">
<p>
- The Component Configuration File is used to configure the
+ The Component Configuration File is used to configure the
components defined in the Role Configuration File. It is
seperated into sections where the shorthand of the component
is used.
</p>
-
+
<subsection name="Example">
<source>
<![CDATA[
-<?xml version="1.0" encoding="ISO-8859-1"?>
<componentConfig>
<SystemPropertyService>
<property name="FOO">BAR</property>
</SystemPropertyService>
-</componentConfig>
+</componentConfig>
]]>
</source>
</subsection>
-
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/container.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/container.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/container.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/container.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -15,7 +33,7 @@
The Container Configuration File is used to bootstrap the
YAAFI container.
</p>
-
+
<subsection name="Specification">
<table>
<tr>
@@ -29,9 +47,9 @@
<td>String</td>
<td>[0|1]</td>
<td>
- The type of Avalon container where YAAFI is instantiated,
- either "phoenix", "fortress" or "merlin". If no value is
- defined then <b>merlin</b> will be used.
+ The type of Avalon container where YAAFI is instantiated,
+ either "phoenix", "fortress" or "merlin". If no value is
+ defined then <b>merlin</b> will be used.
</td>
</tr>
<tr>
@@ -41,7 +59,7 @@
<td>
The class name of the YAAFI container to be instantiated. This
feature allows to use inheritance for customizing the container
- functionality.
+ functionality.
</td>
</tr>
<tr>
@@ -138,7 +156,7 @@
<td>Boolean</td>
<td>[true|false]</td>
<td>
- Enable the usage of dynamic proxies for the whole container. When
+ Enable the usage of dynamic proxies for the whole container. When
the no dynamic proxies are used no interceptors will be installed.
</td>
</tr>
@@ -163,8 +181,7 @@
<subsection name="Example 1">
<source>
- <![CDATA[
-<?xml version="1.0" encoding="ISO-8859-1"?>
+ <![CDATA[
<fulcrum-yaafi>
<containerType>phoenix</containerType
@@ -181,7 +198,7 @@
<location>./src/test/TestParameters.properties</location>
<isEncrypted>false</isEncrypted>
</parameters>
-</fulcrum-yaafi>
+</fulcrum-yaafi>
]]>
</source>
</subsection>
@@ -189,7 +206,6 @@
<subsection name="Example 2">
<source>
<![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
<fulcrum-yaafi>
<componentRoles>
<location>./src/test/componentRoles.xml</location>
@@ -205,9 +221,9 @@
]]>
</source>
</subsection>
-
+
</section>
-
+
</body>
-
+
</document>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/context.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/context.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/context.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/context.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/index.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/index.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/index.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/index.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -13,7 +31,7 @@
<p>
Here you find the specification of the following entities
-
+
<ul>
<li><a href="container.html">Container Configuration</a></li>
<li><a href="role.html">Role Configuration</a></li>
@@ -22,7 +40,7 @@
<li><a href="lifecycle.html">YAAFI Service Lifecycle</a></li>
</ul>
</p>
-
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/lifecycle.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/lifecycle.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/lifecycle.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/lifecycle.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -12,27 +30,27 @@
<section name="Lifecycle Contract">
<p>
- The following contract is fulfilled by the Avalon YAAFI Container
+ The following contract is fulfilled by the Avalon YAAFI Container
</p>
-
+
<subsection name="Early Initialization">
<p>
If a service component is defined as "early-init" the instance
of the service component will be incarnated during startup of the
container.
- </p>
+ </p>
</subsection>
<subsection name="Lazy Initialization">
<p>
- If a service component is initialized lazily the
- implementation class is loaded but incarnation takes
+ If a service component is initialized lazily the
+ implementation class is loaded but incarnation takes
place during the first invocation of ServiceManager.lookup().
- </p>
+ </p>
<p>
An invocation of ServiceManager.hasService() will not incarnate
a service component instance.
- </p>
+ </p>
</subsection>
<subsection name="Decommisioning">
@@ -41,9 +59,9 @@
in exactly the same state as using a lazily initialized service
component. I.e. the implementation class is loaded but no
instance exists
- </p>
+ </p>
</subsection>
-
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/role.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/role.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/role.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/specification/role.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -15,7 +33,7 @@
The Role Configuration File is used to map the services to
implementation classes.
</p>
-
+
<subsection name="Specification">
<table>
<tr>
@@ -48,7 +66,7 @@
<td>[0|1]</td>
<td>
The shorthand for referencing the section in the Component
- Configuration File. If no value is defined then
+ Configuration File. If no value is defined then
<b>role@name</b> will be used.
</td>
</tr>
@@ -66,7 +84,7 @@
<td>[0|1]</td>
<td>
Shall the service implementation class be instantiated
- during startup of the container or on demand? If no
+ during startup of the container or on demand? If no
value is defined then <b>true</b> will be used.
</td>
</tr>
@@ -111,7 +129,7 @@
<td>String</td>
<td>[0|1]</td>
<td>
- A description what the service is actually doing.
+ A description what the service is actually doing.
</td>
</tr>
<tr>
@@ -136,15 +154,14 @@
<subsection name="Example 1">
<source>
<![CDATA[
-<?xml version="1.0" encoding="ISO-8859-1"?>
<role-list>
<role
name="org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyService"
shorthand="SystemPropertyService"
default-class="org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyServiceImpl"
- />
-</role-list>
+ />
+</role-list>
]]>
</source>
</subsection>
@@ -152,7 +169,6 @@
<subsection name="Example 2">
<source>
<![CDATA[
-<?xml version="1.0" encoding="ISO-8859-1"?>
<role-list>
<role
@@ -162,8 +178,8 @@
early-init="true"
component-type="merlin"
description="Copies name/value pairs into the SystemProperties"
- />
-</role-list>
+ />
+</role-list>
]]>
</source>
</subsection>
@@ -171,8 +187,7 @@
<subsection name="Example 3">
<source>
<![CDATA[
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
+
<role-list>
<role
name="org.apache.fulcrum.yaafi.TestComponent"
@@ -186,11 +201,11 @@
<interceptor>org.apache.fulcrum.yaafi.interceptor.logging.LoggingInterceptorService</interceptor>
</interceptors>
</role>
-</role-list>
+</role-list>
]]>
</source>
</subsection>
-
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/todo.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/todo.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/todo.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/todo.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/index.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/index.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/index.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/index.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -15,7 +33,7 @@
This tutorial demonstrate how to write an Avalon service - in our
case an Avalon SystemProperty Service.
</p>
-
+
<subsection name="What We Want to Do?!">
<p>
The service will implement the following features
@@ -24,8 +42,8 @@
<li>write some diagnostic output to the logfile</li>
<li>be reconfigurable without restarting the container</li>
<li>dump the updated system properties into the temporary directory</li>
- </ul>
- </p>
+ </ul>
+ </p>
</subsection>
<subsection name="The Five Steps to Happiness">
@@ -36,8 +54,8 @@
<li><a href="step4.html">Running an Avalon Service</a></li>
<li><a href="step5.html">Odds and Ends</a></li>
</ul>
- </subsection>
-
+ </subsection>
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step1.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step1.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step1.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step1.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -13,9 +31,9 @@
<p>
The role configuration file is a XML file containing configuration
- information for the Avalon Service Container.
+ information for the Avalon Service Container.
</p>
-
+
<subsection name="Adding the Avalon SystemProperty Service">
<p>
The following information is needed by the Avalon Service Container to
@@ -37,21 +55,20 @@
<td>default-class</td>
<td>The implementation class of the service</td>
</tr>
- </table>
- <source><![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
+ </table>
+ <source><![CDATA[
<role-list>
<role
name="org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyService"
shorthand="SystemPropertyService"
default-class="org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyServiceImpl"
- />
-</role-list>
- ]]></source>
+ />
+</role-list>
+ ]]></source>
</p>
</subsection>
-
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step2.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step2.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step2.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step2.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -13,27 +31,26 @@
<p>
The component configuration file is a XML file containing configuration
- information for the instantiated Avalone services.
+ information for the instantiated Avalone services.
</p>
-
+
<subsection name="Adding the Avalon SystemProperty Service">
- <p>
+ <p>
For finding the right section of the component configuration file
the shorthand of the role configuration is used - in our case
"SystemPropertyService". Here we define a system property with the
name "FOO" and the value "BAR".
- <source><![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
+ <source><![CDATA[
-<componentConfig>
+<componentConfig>
<SystemPropertyService>
<property name="FOO">BAR</property>
</SystemPropertyService>
-</componentConfig>
- ]]></source>
+</componentConfig>
+ ]]></source>
</p>
</subsection>
-
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step3.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step3.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step3.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step3.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -18,7 +36,7 @@
<ul>
<li>org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyService as interface</li>
<li>org.apache.fulcrum.yaafi.service.systemproperty.SystemPropertyServiceImpl as implementation class</li>
- </ul>
+ </ul>
</p>
</subsection>
@@ -26,105 +44,105 @@
<p>
The interface exposes only business methods and never ever one of the various Avalon
interfaces.
- <source><![CDATA[
+ <source><![CDATA[
public interface SystemPropertyService
{
// This interface doesn't exposes any other methods
-}
- ]]></source>
+}
+ ]]></source>
</p>
</subsection>
- <subsection name="Chasing the Interfaces to Implement">
+ <subsection name="Chasing the Interfaces to Implement">
<p>
- The Avalon Service Container interacts with an Avalon service
- through a bunch of interfaces also known as
- <a href="../lifecycle/index.html">Avalon Lifecycle
- Management Specification</a>. Finding the right interface might be
- challenge in the beginning but it is not an unsurmountable task.
- Our service needs access to the logging infrastructure, to the
- component configuration and needs to tell the Avalon Service
- Container that it is reconfigurable. To make things more
- interesting we want to dump the updated system properties into
- the temp directory of the application during service initialization.
- <source><![CDATA[
+ The Avalon Service Container interacts with an Avalon service
+ through a bunch of interfaces also known as
+ <a href="../lifecycle/index.html">Avalon Lifecycle
+ Management Specification</a>. Finding the right interface might be
+ challenge in the beginning but it is not an unsurmountable task.
+ Our service needs access to the logging infrastructure, to the
+ component configuration and needs to tell the Avalon Service
+ Container that it is reconfigurable. To make things more
+ interesting we want to dump the updated system properties into
+ the temp directory of the application during service initialization.
+ <source><![CDATA[
public class SystemPropertyServiceImpl
extends AbstractLogEnabled
implements SystemPropertyService, Reconfigurable, Contextualizable, Initializable
{
// here comes the implementation ...
}
- ]]></source>
- </p>
+ ]]></source>
+ </p>
<p>
- Our service derives from "AbstractLogEnabled" which takes
- care of getting access to the logger. The implementation
- class also implements the "Reconfigurable" interface which
+ Our service derives from "AbstractLogEnabled" which takes
+ care of getting access to the logger. The implementation
+ class also implements the "Reconfigurable" interface which
tells the Avalon Service Container that the service implements
<ul>
<li>public void configure(Configuration configuration)</li>
<li>public void reconfigure(Configuration configuration)</li>
- </ul>
+ </ul>
</p>
<p>
- The information about the application context is provided by
+ The information about the application context is provided by
the "Contextualizable" interface while the service initialization
needs the "Initializable" interface.
</p>
</subsection>
- <subsection name="Accessing the Avalon Context">
+ <subsection name="Accessing the Avalon Context">
<p>
- The <a href="../specification/context.html">Avalon Context </a>contains
- environment settings such as the current working directory, the
+ The <a href="../specification/context.html">Avalon Context </a>contains
+ environment settings such as the current working directory, the
temporary directory or the name of the service.
- <source><![CDATA[
+ <source><![CDATA[
public void contextualize(Context context) throws ContextException
-{
+{
this.tempDir = (File) context.get("urn:avalon:temp");
}
- ]]></source>
+ ]]></source>
</p>
</subsection>
-
- <subsection name="Accessing the Component Configuration">
+
+ <subsection name="Accessing the Component Configuration">
<p>
In the Role Configuration file we defined "SystemPropertyService" as shorthand for accessing
the Component Configuration. The Component Configuration we use is shown below
- <source><![CDATA[
+ <source><![CDATA[
<SystemPropertyService>
<property name="FOO">BAR</property>
</SystemPropertyService>
- ]]></source>
+ ]]></source>
</p>
<p>
- Let's access the configuration to set the system properties - we get all childrem from
- the configuration instance and process them. Each child consists of an attribute
- containing the name and text for the value of the system property to be set. We also
+ Let's access the configuration to set the system properties - we get all childrem from
+ the configuration instance and process them. Each child consists of an attribute
+ containing the name and text for the value of the system property to be set. We also
write some diagnostic ouptut by requesting the logger instance from "AbstractLogEnabled".
- <source><![CDATA[
+ <source><![CDATA[
public void configure(Configuration configuration) throws ConfigurationException
{
Configuration[] systemProperties = configuration.getChildren("property");
-
+
for( int i=0; i<systemProperties.length; i++ )
{
String key = systemProperties[i].getAttribute("name");
String value = systemProperties[i].getValue();
this.getLogger().debug( "Setting the value of " + key + " to " + value );
- System.setProperty( key, value );
+ System.setProperty( key, value );
}
}
- ]]></source>
- </p>
+ ]]></source>
+ </p>
</subsection>
- <subsection name="Service Initialization ">
+ <subsection name="Service Initialization ">
<p>
- Since we have done most of our work already we use the
+ Since we have done most of our work already we use the
service initialization to dump the current system properties
- into the temporary directory.
- <source><![CDATA[
+ into the temporary directory.
+ <source><![CDATA[
public void initialize() throws Exception
{
FileOutputStream fos = new FileOutputStream( new File(this.tempDir,"system.properties") );
@@ -132,32 +150,32 @@
fos.flush();
fos.close();
}
- ]]></source>
+ ]]></source>
</p>
</subsection>
-
- <subsection name="Implementing the Reconfiguration">
+
+ <subsection name="Implementing the Reconfiguration">
<p>
Making our service reconfigurable is simple. When the service is
reconfigured a new configuration instance is passed. We just reuse
the configure() method to reinitalize our service - that's it.
- <source><![CDATA[
+ <source><![CDATA[
public void reconfigure(Configuration configuration) throws ConfigurationException
{
this.configure(configuration);
-}
- ]]></source>
+}
+ ]]></source>
</p>
</subsection>
- <subsection name="Putting it all together">
+ <subsection name="Putting it all together">
<p>
Below you find your first complete and fully functional Avalon service.
- <source><![CDATA[
+ <source><![CDATA[
public interface SystemPropertyService
{
// This interface doesn't exposes any other methods
-}
+}
public class SystemPropertyServiceImpl
extends AbstractLogEnabled
@@ -165,15 +183,15 @@
{
/** the Avalon temp directory */
private File tempDir;
-
+
/**
* @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
*/
public void contextualize(Context context) throws ContextException
- {
+ {
this.tempDir = (File) context.get("urn:avalon:temp");
}
-
+
/**
* @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
*/
@@ -187,7 +205,7 @@
String value = systemProperties[i].getValue();
this.getLogger().debug( "Setting the value of " + key + " to " + value );
System.setProperty( key, value );
- }
+ }
}
/**
@@ -200,7 +218,7 @@
fos.flush();
fos.close();
}
-
+
/**
* @see org.apache.avalon.framework.configuration.Reconfigurable#reconfigure(org.apache.avalon.framework.configuration.Configuration)
*/
@@ -210,10 +228,10 @@
this.configure(configuration);
}
}
- ]]></source>
+ ]]></source>
</p>
</subsection>
-
+
</section>
</body>
Modified: jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step4.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step4.xml?view=diff&rev=535465&r1=535464&r2=535465
==============================================================================
--- jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step4.xml (original)
+++ jakarta/turbine/fulcrum/trunk/yaafi/xdocs/tutorial/step4.xml Fri May 4 23:58:06 2007
@@ -1,4 +1,22 @@
<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.apache.org/licenses/LICENSE-2.0
+
+ 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>
@@ -13,8 +31,8 @@
<p>
Writing an Avalon service without running it is a rather
- academic approach. The YAAFI container was born out of the need
- to add infrastructure service to an existing web application.
+ academic approach. The YAAFI container was born out of the need
+ to add infrastructure service to an existing web application.
Therefore there are many ways to skin the YAAFI cat
<ul>
<li>Using the org.apache.fulcrum.yaafi.framework.factory.ServiceContainerFactory</li>
@@ -22,14 +40,13 @@
<li>Using another Avalon container</li>
</ul>
</p>
-
+
<subsection name="Using ServiceContainerFactory">
- <p>
+ <p>
The easist way of getting it going is to define a container configuration
file as shown below. The file contains the location of the Avalon artifacts
to get the container and the services up and running.
- <source><![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
+ <source><![CDATA[
<fulcrum-yaafi>
<componentRoles>
@@ -41,35 +58,35 @@
<parameters>
<location>./tutorial/conf/parameters.properties</location>
</parameters>
-</fulcrum-yaafi>
- ]]></source>
+</fulcrum-yaafi>
+ ]]></source>
</p>
<p>
- After writing the container configuration file you fire up
+ After writing the container configuration file you fire up
the factory to get an instance of the YAAFI container. Since
all of the optional configuration the YAAFI container uses
the default temp directory and a ConsoleLogger.
- <source><![CDATA[
+ <source><![CDATA[
ServiceContainer container = null;
ServiceContainerConfiguration config = null;
config = new ServiceContainerConfiguration();
config.loadContainerConfiguration( "./tutorial/conf/containerConfiguration.xml" );
-container = ServiceContainerFactory.create( config );
- ]]></source>
+container = ServiceContainerFactory.create( config );
+ ]]></source>
</p>
<p>
It is gooooooood practice to shutdown an Avalon container properly
- to give the running Avalon service a chance to free any
+ to give the running Avalon service a chance to free any
resources
- <source><![CDATA[
+ <source><![CDATA[
container.dispose();
- ]]></source>
+ ]]></source>
</p>
</subsection>
<subsection name="Using Main">
- <p>
+ <p>
This class helps to run a command line application based on the YAAFI
container. The following sample shows a more complex setup
<ul>
@@ -79,60 +96,60 @@
<li>blocks the main thread until termination</li>
<li>installs a JVM shutdown hook to dispose the YAAFI container during JVM shutdown</li>
</ul>
- <source><![CDATA[
+ <source><![CDATA[
public class Application implements Runnable
{
/** the YAAFI command line interface */
private Main cli;
-
+
public static void main( String[] args )
{
try
- {
- new Application(args).init().run();
+ {
+ new Application(args).init().run();
}
catch( Throwable t )
{
String msg = "Execution of the server failed : " + t.getMessage();
System.err.println(msg);
- }
+ }
}
-
+
public Application(String[] args)
{
- this.cli = new Main(args);
- }
-
+ this.cli = new Main(args);
+ }
+
protected Application init() throws Exception
- {
+ {
// 1) initialize the YAAFI Main class
-
+
// 1.1) set the temp directory to be used
this.cli.setTempHome( "./tutorial/temp" );
-
+
// 1.2) set the container configuration to bootstrap the YAAFI container
this.cli.setContainerConfigValue( "./tutorial/conf/containerConfiguration.xml" );
-
+
// 1.3) block the main thread until the JVM is terminated
this.cli.setIsBlocking(true);
-
+
// 1.4) install a JVM shutdown hook to dispose the YAAFI container
this.cli.setHasShutdownHook(true);
-
+
// 2) initialize the logger
ConsoleLogger consoleLogger = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG);
this.cli.setLogger( consoleLogger );
-
+
return this;
}
-
+
public void run()
{
try
{
this.cli.initialize();
- this.cli.getLogger().info( "The application is up and running ..." );
+ this.cli.getLogger().info( "The application is up and running ..." );
this.cli.onWait();
}
catch (Throwable t)
@@ -141,24 +158,24 @@
this.cli.getLogger().error(msg,t);
throw new RuntimeException(msg);
}
- }
- }
- ]]></source>
+ }
+ }
+ ]]></source>
</p>
</subsection>
<subsection name="Using Another Avalon Container">
- <p>
+ <p>
Emebdding YAAFI into another Avalon container might sound like
a no-brainer but YAAFI was successfully integrated as Avalon
service in the JAMES mail server using the Phoenix container.
The ugly truth behind it is the fact that Avalon services might
not be portable across different Avalon service containers which
- definitely is a no-brainer.
+ definitely is a no-brainer.
</p>
- <source><![CDATA[
+ <source><![CDATA[
<block name="fulcrum-yaafi" class="org.apache.fulcrum.yaafi.framework.container.ServiceContainerImpl" />
-
+
<fulcrum-yaafi>
<containerFlavour>phoenix</containerFlavour>
<componentRoles>
@@ -167,11 +184,11 @@
<componentConfiguration>
<location>../conf/componentConfiguration.xml</location>
</componentConfiguration>
-</fulcrum-yaafi>
- ]]></source>
-
+</fulcrum-yaafi>
+ ]]></source>
+
</subsection>
-
+
</section>
</body>
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org