notify-dpml AT lists.ibiblio.org
Subject: DPML Notify
List archive
r1667 - in trunk: central/site central/site/src/docs/metro/tutorials central/site/src/docs/metro/tutorials/customize main main/depot/library/src/main/net/dpml/library main/depot/library/src/main/net/dpml/library/info main/depot/tools/builder/src/main/net/dpml/tools/impl main/depot/tools/builder/src/main/net/dpml/tools/tasks main/metro/model/src/main/net/dpml/metro/builder main/metro/runtime/src/main/net/dpml/metro/runtime main/metro/tools/src/main/net/dpml/metro/tools main/transit/core/src/main/net/dpml/lang tutorials tutorials/components tutorials/components/customize/clock/etc/data tutorials/components/customize/clock/src/main/org/acme/clock tutorials/components/customize/custom tutorials/components/customize/custom/src/main/org/acme/extra tutorials/components/customize/extension tutorials/components/examples/src/main/org/acme tutorials/components/import/api/src/main/org/acme tutorials/components/import/clock/src/main/org/acme/scheduler tutorials/components/import! /demo/src/main/org/acme/demo tutorials/components/import/test/src/test/org/acme/testing tutorials/components/lifestyle/src/main/org/acme tutorials/components/lookup/src/main/org/acme tutorials/components/parts tutorials/components/parts/etc tutorials/components/parts/etc/data tutorials/components/parts/src/main/org/acme tutorials/components/singleton/src/main/org/acme tutorials/components/state/src/main/org/acme tutorials/components/thread/src/main/org/acme tutorials/components/transient/src/main/org/acme tutorials/components/type/src/main/org/acme tutorials/tooling tutorials/tooling/alias tutorials/tooling/complex/build/api/src/main/org/acme tutorials/tooling/complex/build/impl/src/test/org/acme/impl/test tutorials/tooling/complex/export/api/src/main/org/acme tutorials/tooling/complex/export/impl/src/test/org/acme/impl/test tutorials/tooling/complex/modules/api/src/main/org/acme tutorials/tooling/complex/modules/impl/src/test/org/acme/impl/test tutorials/tooling/complex/pl! ugin/api/src/main/org/acme tutorials/tooling/complex/plugin/im! pl/src/m
- From: mcconnell at BerliOS <mcconnell AT mail.berlios.de>
- To: notify-dpml AT lists.ibiblio.org
- Subject: r1667 - in trunk: central/site central/site/src/docs/metro/tutorials central/site/src/docs/metro/tutorials/customize main main/depot/library/src/main/net/dpml/library main/depot/library/src/main/net/dpml/library/info main/depot/tools/builder/src/main/net/dpml/tools/impl main/depot/tools/builder/src/main/net/dpml/tools/tasks main/metro/model/src/main/net/dpml/metro/builder main/metro/runtime/src/main/net/dpml/metro/runtime main/metro/tools/src/main/net/dpml/metro/tools main/transit/core/src/main/net/dpml/lang tutorials tutorials/components tutorials/components/customize/clock/etc/data tutorials/components/customize/clock/src/main/org/acme/clock tutorials/components/customize/custom tutorials/components/customize/custom/src/main/org/acme/extra tutorials/components/customize/extension tutorials/components/examples/src/main/org/acme tutorials/components/import/api/src/main/org/acme tutorials/components/import/clock/src/main/org/acme/scheduler tutorials/components/import! /demo/src/main/org/acme/demo tutorials/components/import/test/src/test/org/acme/testing tutorials/components/lifestyle/src/main/org/acme tutorials/components/lookup/src/main/org/acme tutorials/components/parts tutorials/components/parts/etc tutorials/components/parts/etc/data tutorials/components/parts/src/main/org/acme tutorials/components/singleton/src/main/org/acme tutorials/components/state/src/main/org/acme tutorials/components/thread/src/main/org/acme tutorials/components/transient/src/main/org/acme tutorials/components/type/src/main/org/acme tutorials/tooling tutorials/tooling/alias tutorials/tooling/complex/build/api/src/main/org/acme tutorials/tooling/complex/build/impl/src/test/org/acme/impl/test tutorials/tooling/complex/export/api/src/main/org/acme tutorials/tooling/complex/export/impl/src/test/org/acme/impl/test tutorials/tooling/complex/modules/api/src/main/org/acme tutorials/tooling/complex/modules/impl/src/test/org/acme/impl/test tutorials/tooling/complex/pl! ugin/api/src/main/org/acme tutorials/tooling/complex/plugin/im! pl/src/m
- Date: Tue, 25 Jul 2006 19:15:57 +0200
Author: mcconnell
Date: 2006-07-25 19:15:20 +0200 (Tue, 25 Jul 2006)
New Revision: 1667
Added:
trunk/central/site/src/docs/metro/tutorials/customize/
trunk/central/site/src/docs/metro/tutorials/customize/index.xml
trunk/central/site/src/docs/metro/tutorials/customize/navigation.xml
trunk/tutorials/build.xml
trunk/tutorials/components/customize/custom/build.xml
trunk/tutorials/components/customize/extension/build.xml
trunk/tutorials/components/parts/etc/
trunk/tutorials/components/parts/etc/data/
trunk/tutorials/components/parts/etc/data/logging.properties
Modified:
trunk/central/site/build.xml
trunk/central/site/src/docs/metro/tutorials/index.xml
trunk/central/site/src/docs/metro/tutorials/navigation.xml
trunk/main/build.xml
trunk/main/depot/library/src/main/net/dpml/library/Library.java
trunk/main/depot/library/src/main/net/dpml/library/info/LibraryEncoder.java
trunk/main/depot/tools/builder/src/main/net/dpml/tools/impl/DefaultContext.java
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/FeatureTask.java
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/JUnitTestTask.java
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/PartTask.java
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/ResourceTask.java
trunk/main/metro/model/src/main/net/dpml/metro/builder/ComponentTypeDecoder.java
trunk/main/metro/model/src/main/net/dpml/metro/builder/ComponentTypeEncoder.java
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentController.java
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionController.java
trunk/main/metro/tools/src/main/net/dpml/metro/tools/CatalogTask.java
trunk/main/metro/tools/src/main/net/dpml/metro/tools/TypeBuilderTask.java
trunk/main/transit/core/src/main/net/dpml/lang/Classpath.java
trunk/main/transit/core/src/main/net/dpml/lang/Part.java
trunk/main/transit/core/src/main/net/dpml/lang/PartDecoder.java
trunk/main/transit/core/src/main/net/dpml/lang/StandardClassLoader.java
trunk/tutorials/
trunk/tutorials/components/customize/clock/etc/data/logging.properties
trunk/tutorials/components/customize/clock/src/main/org/acme/clock/Clock.java
trunk/tutorials/components/customize/custom/src/main/org/acme/extra/Customizer.java
trunk/tutorials/components/examples/src/main/org/acme/Demo.java
trunk/tutorials/components/import/api/src/main/org/acme/Clock.java
trunk/tutorials/components/import/clock/src/main/org/acme/scheduler/SimpleClock.java
trunk/tutorials/components/import/demo/src/main/org/acme/demo/Demo.java
trunk/tutorials/components/import/test/src/test/org/acme/testing/DemoTestCase.java
trunk/tutorials/components/lifestyle/src/main/org/acme/Gizmo.java
trunk/tutorials/components/lookup/src/main/org/acme/Gizmo.java
trunk/tutorials/components/module.xml
trunk/tutorials/components/parts/src/main/org/acme/Demo.java
trunk/tutorials/components/parts/src/main/org/acme/Widget.java
trunk/tutorials/components/singleton/src/main/org/acme/Demo.java
trunk/tutorials/components/state/src/main/org/acme/Demo.java
trunk/tutorials/components/thread/src/main/org/acme/Demo.java
trunk/tutorials/components/transient/src/main/org/acme/Demo.java
trunk/tutorials/components/type/src/main/org/acme/Demo.java
trunk/tutorials/components/type/src/main/org/acme/Widget.java
trunk/tutorials/tooling/alias/
trunk/tutorials/tooling/complex/build/api/src/main/org/acme/Clock.java
trunk/tutorials/tooling/complex/build/impl/src/test/org/acme/impl/test/DemoTestCase.java
trunk/tutorials/tooling/complex/export/api/src/main/org/acme/Clock.java
trunk/tutorials/tooling/complex/export/impl/src/test/org/acme/impl/test/DemoTestCase.java
trunk/tutorials/tooling/complex/modules/api/src/main/org/acme/Clock.java
trunk/tutorials/tooling/complex/modules/impl/src/test/org/acme/impl/test/DemoTestCase.java
trunk/tutorials/tooling/complex/plugin/api/src/main/org/acme/Clock.java
trunk/tutorials/tooling/complex/plugin/impl/src/main/org/acme/impl/SimpleClock.java
trunk/tutorials/tooling/imports/src/test/org/acme/test/DemoTestCase.java
trunk/tutorials/tooling/module.xml
trunk/tutorials/tooling/types/
trunk/tutorials/tooling/unit/
trunk/tutorials/tooling/unit/src/test/org/acme/test/DemoTestCase.java
Log:
checkstyle cleanup and tutorial content dealing with super-components
Modified: trunk/central/site/build.xml
===================================================================
--- trunk/central/site/build.xml 2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/central/site/build.xml 2006-07-25 17:15:20 UTC (rev 1667)
@@ -150,6 +150,18 @@
</fileset>
</copy>
+ <property name="customize.src.dir"
location="${components.dir}/customize"/>
+ <property name="customize.import.docs.dir"
location="target/docs/metro/tutorials/customize"/>
+ <mkdir dir="${customize.import.docs.dir}"/>
+ <copy toDir="${customize.import.docs.dir}" flatten="true">
+ <fileset dir="${customize.src.dir}/clock/target/reports/src">
+ <include name="**/*.html"/>
+ </fileset>
+ <fileset dir="${customize.src.dir}/custom/target/reports/src">
+ <include name="**/*.html"/>
+ </fileset>
+ </copy>
+
</target>
@@ -226,6 +238,7 @@
<checkstyle>
<formatter type="xml" toFile="${checkstyle.data}"/>
<fileset dir="../../main">
+ <include name="**/target/build/main/**/*.java"/>
<include name="**/target/build/test/**/*.java"/>
</fileset>
</checkstyle>
Added: trunk/central/site/src/docs/metro/tutorials/customize/index.xml
===================================================================
--- trunk/central/site/src/docs/metro/tutorials/customize/index.xml
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/central/site/src/docs/metro/tutorials/customize/index.xml
2006-07-25 17:15:20 UTC (rev 1667)
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<document>
+ <properties>
+ <author email="mcconnell AT osm.net">Stephen McConnell</author>
+ <title>Building on the Sholders of Giants</title>
+ </properties>
+
+ <body>
+
+ <section name="Building on the Sholders of Giants">
+
+ <subsection name="Tutorial Objective">
+
+ <p>
+ This tutorial aims to demonstrate the reuse of existing component
+ definitions. The demonstration uses three projects:
+ </p>
+
+ <ul>
+ <li>a component that defines a minamalistic clock</li>
+ <li>a component that extends the clock defintion with overriding
+ context data declared in the component directive</li>
+ <li>a component that extends the clock both in terms of classpath
+ and context arguments</li>
+ </ul>
+
+ <p>
+ In addition to the techniques uses to create a component defintion
by
+ extension, the tutorial also summarizes the impact of these changes
on
+ the overall classloader heirachy established by the Metro runtime.
+ </p>
+
+ </subsection>
+
+ <subsection name="Project 1: The SimpleClock">
+
+ <p>
+ Our minamalistic clock is defined as a component with a context
+ format argument <tt>K:mm a, z</tt>. The format argument simply
+ determines the format that the clock will use when listing the
+ current time.
+ </p>
+
+<pre><index .... >
+
+ ...
+
+ <project name="acme-simple-clock" basedir="customize/clock">
+ <info title="Simple Clock"/>
+ <types>
+ <type id="jar"/>
+ <component xmlns="link:xsd:dpml/lang/dpml-component#1.0"
alias="true"
+ type="org.acme.clock.SimpleClock" name="clock">
+ <context>
+ <entry key="format" value="K:mm a, z"/>
+ </context>
+ </component>
+ </types>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </test>
+ </dependencies>
+ </project>
+
+ ...
+
+</index></pre>
+
+ <p>
+ Based on the above defintion Metro will construct a single
classloader
+ containing the
<tt>dpmlx/tutorials/components/acme-simple-clock#SNAPSHOT</tt>
+ jar file as a child of the Metro SPI.
+ </p>
+
+ <p><i>Classloader chain for the clock component.</i></p>
+
+<pre>
+|-----------------------------|
+| Classloader (PUBLIC) |
+| Metro Runtime |
+|-----------------------------|
+ ^
+ |
+|-----------------------------|
+| Classloader (PROTECTED) |
+| Metro Runtime |
+|-----------------------------|
+ ^
+ |
+|-----------------------------|
+| Classloader (PRIVATE) |
+| /clock |
+|-----------------------------|
+</pre>
+
+ </subsection>
+
+ <subsection name="Project 2: Overriding the component ..">
+
+ <p>
+ Our second project is an example of a component solution based on
+ our first project - however, we change the data format context
argument
+ (but reference the original component defintion under the uri
attribute).
+ Secondly, we have overriden the context format argument with a new
value.
+ Any context argument not declared in our new defintion will be based
on
+ arguments declared in the super-component.
+ </p>
+
+<pre><index .... >
+
+ ...
+
+ <project name="acme-simple-clock" basedir="customize/extension">
+ <info title="Cusomized Clock"/>
+ <types>
+ <component xmlns="link:xsd:dpml/lang/dpml-component#1.0"
+ <font
color="darkred">uri="link:part:dpmlx/tutorials/components/acme-simple-clock"</font>
+ name="clock">
+ <font color="darkred"><context>
+ <entry key="format" value="K:mm a, z"/>
+ </context></font>
+ </component>
+ </types>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </test>
+ </dependencies>
+ </project>
+
+ ...
+
+</index></pre>
+
+ <p>
+ The classloader chain constructed in the second example is basically the
same as before
+ except that the final component classloader is established relative to
the classloader
+ definition declared in the super-component.
+ </p>
+
+<pre>
+|-----------------------------|
+| Classloader (PUBLIC) |
+| Metro Runtime |
+|-----------------------------|
+ ^
+ |
+|-----------------------------|
+| Classloader (PROTECTED) |
+| Metro Runtime |
+|-----------------------------|
+ ^
+ |
+|-----------------------------|
+| Classloader (PRIVATE) |
+| <font color="blue">/clock (super)</font> |
+|-----------------------------|
+</pre>
+
+ </subsection>
+
+ <subsection name="Project 3: Extending the component ..">
+
+ <p>
+ Our third project is an example of a component solution where we
+ customize the original component defintion with a new context value,
+ but the context value is resolved from a class local to the
customized
+ component. In this case Metro has to handle the establishment of a
+ classloader for the super-component and a subsidiary classloader for
+ the cusomization content.
+ </p>
+
+<pre><index .... >
+
+ ...
+
+ <project name="acme-simple-clock" basedir="customize/custom">
+ <info title="Simple Clock"/>
+ <types>
+ <font color="darkred"><type id="jar"/></font>
+ <component xmlns="link:xsd:dpml/lang/dpml-component#1.0"
+ uri="resource:part:dpmlx/tutorials/components/acme-simple-clock"
+ name="clock">
+ <font color="darkred"><context>
+ <entry key="format" class="org.acme.extra.Customizer"
method="getCustomFormat"/>
+ </context></font>
+ </component>
+ </types>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </test>
+ </dependencies>
+ </project>
+
+ ...
+
+</index></pre>
+
+ <p>
+ The following classloader chain is similar to the above (the
super-component
+ classloader hanging of the Metro SPI) together with an additional
classloader
+ created as a child of the super-component classloader holding the
classes
+ used in the new component definition.
+ </p>
+
+<pre>
+|-----------------------------|
+| Classloader (PUBLIC) |
+| Metro Runtime |
+|-----------------------------|
+ ^
+ |
+|-----------------------------|
+| Classloader (PROTECTED) |
+| Metro Runtime |
+|-----------------------------|
+ ^
+ |
+|-----------------------------|
+| Classloader (PRIVATE) |
+| <font color="blue">/clock (super)</font> |
+|-----------------------------|
+ ^
+ |
+|-----------------------------|
+| Classloader (PRIVATE) |
+| <font color="blue">/clock</font> |
+|-----------------------------|
+</pre>
+
+ </subsection>
+
+ <subsection name="Summary">
+
+ <p>
+ In this tutorial we have demonstrated the usage of the <tt>uri</tt>
attribute in
+ a component defintion as a means to declare a super-component. In
each case we
+ used a different date fomat value generating the following output
values:
+ </p>
+
+ <table>
+ <tr><td>base</td><td><tt>[junit] 11:33 PM, CST</tt></td></tr>
+ <tr><td>customizer</td><td><tt>[junit] 11:33 PM</tt></td></tr>
+ <tr><td>extended</td><td><tt>[junit] 11:33 </tt></td></tr>
+ </table>
+
+ <p>
+ In real-world applications component context models can become
rather complex
+ and the ability to define a generic solution component fully
populated with
+ an appropriate deployment solution is attractive. Adding the
ability to
+ further customize default solutions further simplifies the overall
development
+ task and encorages reuse of existing component definitions.
+ </p>
+
+ </subsection>
+
+ </section>
+
+ </body>
+</document>
+
Added: trunk/central/site/src/docs/metro/tutorials/customize/navigation.xml
===================================================================
--- trunk/central/site/src/docs/metro/tutorials/customize/navigation.xml
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/central/site/src/docs/metro/tutorials/customize/navigation.xml
2006-07-25 17:15:20 UTC (rev 1667)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+<project>
+
+ <title>Building on the Sholders of Giants</title>
+
+ <body>
+
+ <menu>
+ </menu>
+
+ </body>
+
+</project>
Modified: trunk/central/site/src/docs/metro/tutorials/index.xml
===================================================================
--- trunk/central/site/src/docs/metro/tutorials/index.xml 2006-07-25
13:27:16 UTC (rev 1666)
+++ trunk/central/site/src/docs/metro/tutorials/index.xml 2006-07-25
17:15:20 UTC (rev 1667)
@@ -112,7 +112,7 @@
<classpath>
<private>
- <uri>artifact:jar:org/acme/acme-demo-001#SNAPSHOT</uri>
+
<uri>artifact:jar:dpmlx/tutorials/components/acme-demo-hello#SNAPSHOT</uri>
</private>
</classpath>
@@ -127,26 +127,14 @@
In this example the Demo implementation class contains nothing
significant -
however, the important point of this tutorial is the association of
a different runtime handler for the class within our part definition.
+ Our next tutorial extends this project with the introduction of
+ <a href="context.html">context management</a> and in particular, the
way in
+ which a component class declares context assumptions, and the
mechanisms
+ used by the Metro runtime to fullfill those requirements.
</p>
- <p>
- The next tutorial extends the project
- with the introduction of <a href="context.html">context
management</a> and
- in particular, the way in which a component class declares context
assumptions,
- and the mechanisms used by the Metro runtime to fullfill those
requirements.
- </p>
-
</subsection>
- <subsection name="Related Links">
-
- <ul>
- <li><a href="../../transit/tutorials/plugins.html">Transit Plugin
Tutorial</a></li>
- <li><a href="../concepts/ioc.html">IOC Overview</a></li>
- </ul>
-
- </subsection>
-
</section>
</body>
Modified: trunk/central/site/src/docs/metro/tutorials/navigation.xml
===================================================================
--- trunk/central/site/src/docs/metro/tutorials/navigation.xml 2006-07-25
13:27:16 UTC (rev 1666)
+++ trunk/central/site/src/docs/metro/tutorials/navigation.xml 2006-07-25
17:15:20 UTC (rev 1667)
@@ -34,7 +34,7 @@
<item name="Lifecycles" href="lifecycles/index.html"/>
<item name="Logging" href="logging/index.html"/>
<item name="Component Types" href="types/index.html"/>
- <item name="Building On Sholders" href="import/index.html"/>
+ <item name="Building On Sholders" href="customize/index.html"/>
</menu>
</body>
Modified: trunk/main/build.xml
===================================================================
--- trunk/main/build.xml 2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/main/build.xml 2006-07-25 17:15:20 UTC (rev 1667)
@@ -300,7 +300,6 @@
</target>
-->
- <!--
<target name="checkstyle" depends="prepare">
<property name="checkstyle.dir"
location="${basedir}/target/reports/checkstyle"/>
<property name="checkstyle.data"
location="${checkstyle.dir}/checkstyle.xml"/>
@@ -311,6 +310,7 @@
<checkstyle>
<formatter type="xml" toFile="${checkstyle.data}"/>
<fileset dir=".">
+ <include name="**/target/build/main/**/*.java"/>
<include name="**/target/build/test/**/*.java"/>
</fileset>
</checkstyle>
@@ -320,6 +320,5 @@
<param name="output.dir" expression="${checkstyle.dir}"/>
</xslt>
</target>
- -->
</project>
Modified: trunk/main/depot/library/src/main/net/dpml/library/Library.java
===================================================================
--- trunk/main/depot/library/src/main/net/dpml/library/Library.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/main/depot/library/src/main/net/dpml/library/Library.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -28,6 +28,9 @@
*/
public interface Library
{
+ /**
+ * Index filename.
+ */
public static final String INDEX_FILENAME = "index.xml";
/**
Modified:
trunk/main/depot/library/src/main/net/dpml/library/info/LibraryEncoder.java
===================================================================
---
trunk/main/depot/library/src/main/net/dpml/library/info/LibraryEncoder.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/depot/library/src/main/net/dpml/library/info/LibraryEncoder.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -24,8 +24,6 @@
import java.io.OutputStreamWriter;
import java.util.Properties;
-import javax.xml.XMLConstants;
-
import net.dpml.lang.Category;
import net.dpml.lang.Version;
Modified:
trunk/main/depot/tools/builder/src/main/net/dpml/tools/impl/DefaultContext.java
===================================================================
---
trunk/main/depot/tools/builder/src/main/net/dpml/tools/impl/DefaultContext.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/depot/tools/builder/src/main/net/dpml/tools/impl/DefaultContext.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -33,7 +33,6 @@
import net.dpml.library.Type;
import net.dpml.library.Filter;
import net.dpml.library.impl.DefaultLibrary;
-import net.dpml.library.ResourceNotFoundException;
import net.dpml.tools.info.ListenerDirective;
Modified:
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/FeatureTask.java
===================================================================
---
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/FeatureTask.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/FeatureTask.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,7 +18,6 @@
package net.dpml.tools.tasks;
-import net.dpml.library.ResourceNotFoundException;
import net.dpml.library.Resource;
import net.dpml.library.Feature;
import net.dpml.library.Type;
Modified:
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/JUnitTestTask.java
===================================================================
---
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/JUnitTestTask.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/JUnitTestTask.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -351,33 +351,8 @@
junit.addConfiguredSysproperty( security );
}
- File base = project.getBaseDir();
- final File properties = new File( base, "test.properties" );
- if( properties.exists() )
- {
- Properties props = new Properties();
- try
- {
- InputStream input = new FileInputStream( properties );
- props.load( input );
- Enumeration enum = props.propertyNames();
- while( enum.hasMoreElements() )
- {
- String name = (String) enum.nextElement();
- final Environment.Variable v = new
Environment.Variable();
- v.setKey( name );
- v.setValue( props.getProperty( name ) );
- junit.addConfiguredSysproperty( v );
- }
- }
- catch( IOException ioe )
- {
- final String error =
- "Unexpected IO error while reading " +
properties.toString();
- throw new BuildException( error, ioe, getLocation() );
- }
- }
-
+ setupTestProperties( junit, project );
+
final File logProperties = new File( working, "logging.properties" );
if( logProperties.exists() )
{
@@ -438,6 +413,36 @@
junit.execute();
}
+ private void setupTestProperties( JUnitTask junit, Project project )
+ {
+ File base = project.getBaseDir();
+ final File properties = new File( base, "test.properties" );
+ if( properties.exists() )
+ {
+ Properties props = new Properties();
+ try
+ {
+ InputStream input = new FileInputStream( properties );
+ props.load( input );
+ Enumeration enum = props.propertyNames();
+ while( enum.hasMoreElements() )
+ {
+ String name = (String) enum.nextElement();
+ final Environment.Variable v = new
Environment.Variable();
+ v.setKey( name );
+ v.setValue( props.getProperty( name ) );
+ junit.addConfiguredSysproperty( v );
+ }
+ }
+ catch( IOException ioe )
+ {
+ final String error =
+ "Unexpected IO error while reading " +
properties.toString();
+ throw new BuildException( error, ioe, getLocation() );
+ }
+ }
+ }
+
private void configureForExecution( JUnitTask task )
{
if( getForkProperty() )
Modified:
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/PartTask.java
===================================================================
---
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/PartTask.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/PartTask.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -34,13 +34,11 @@
import net.dpml.library.Type;
import net.dpml.library.Resource;
-import net.dpml.library.info.Scope;
import net.dpml.transit.Artifact;
import net.dpml.tools.Context;
-import net.dpml.util.Logger;
import net.dpml.util.DefaultLogger;
import org.apache.tools.ant.Project;
Modified:
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/ResourceTask.java
===================================================================
---
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/ResourceTask.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/depot/tools/builder/src/main/net/dpml/tools/tasks/ResourceTask.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -20,13 +20,10 @@
import net.dpml.library.ResourceNotFoundException;
import net.dpml.library.Resource;
-import net.dpml.library.Feature;
-import net.dpml.library.Type;
import net.dpml.tools.Context;
import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
/**
* Locate a named feature of the a project or resource.
Modified:
trunk/main/metro/model/src/main/net/dpml/metro/builder/ComponentTypeDecoder.java
===================================================================
---
trunk/main/metro/model/src/main/net/dpml/metro/builder/ComponentTypeDecoder.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/metro/model/src/main/net/dpml/metro/builder/ComponentTypeDecoder.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -27,14 +27,12 @@
import net.dpml.lang.Version;
-import net.dpml.metro.data.ComponentDirective;
import net.dpml.metro.info.Type;
import net.dpml.metro.info.InfoDescriptor;
import net.dpml.metro.info.ContextDescriptor;
import net.dpml.metro.info.CategoryDescriptor;
import net.dpml.metro.info.ServiceDescriptor;
import net.dpml.metro.info.EntryDescriptor;
-import net.dpml.metro.info.PartReference;
import net.dpml.metro.info.CollectionPolicy;
import net.dpml.metro.info.LifestylePolicy;
import net.dpml.metro.info.ThreadSafePolicy;
Modified:
trunk/main/metro/model/src/main/net/dpml/metro/builder/ComponentTypeEncoder.java
===================================================================
---
trunk/main/metro/model/src/main/net/dpml/metro/builder/ComponentTypeEncoder.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/metro/model/src/main/net/dpml/metro/builder/ComponentTypeEncoder.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -31,7 +31,6 @@
import net.dpml.metro.info.CategoryDescriptor;
import net.dpml.metro.info.ServiceDescriptor;
import net.dpml.metro.info.EntryDescriptor;
-import net.dpml.metro.info.PartReference;
import net.dpml.metro.info.Descriptor;
import net.dpml.state.State;
Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentController.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentController.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/ComponentController.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -239,14 +239,16 @@
{
if( model instanceof DefaultComponentModel )
{
- getLogger().debug( "using model classloader (local mode) for " +
model.getContextPath() );
DefaultComponentModel impl = (DefaultComponentModel) model;
return impl.getClassLoader();
}
else
{
String path = model.getContextPath();
- getLogger().debug( "building new classloader (remote mode) for "
+ path );
+ if( getLogger().isTraceEnabled() )
+ {
+ getLogger().trace( "building new classloader (remote mode)
for " + path );
+ }
Classpath classpath = model.getClasspath();
return getClassLoader( path, anchor, classpath );
}
Modified:
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionController.java
===================================================================
---
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionController.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/main/metro/runtime/src/main/net/dpml/metro/runtime/CompositionController.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -22,7 +22,6 @@
import java.io.IOException;
import java.net.URI;
import java.net.URL;
-import java.net.URLClassLoader;
import net.dpml.component.Controller;
import net.dpml.component.ControlException;
@@ -144,6 +143,7 @@
/**
* Construct the deployment information from a part definition.
+ * @param logger the logging channel
* @param info the part info definition
* @param classpath the part classpath definition
* @param strategy the DOM element definining the deplyment streategy
@@ -175,6 +175,7 @@
/**
* Build a classloader stack.
+ * @param name the name to assign to the classloader
* @param anchor the anchor classloader to server as the classloader
chain root
* @param classpath the part classpath definition
* @return the new classloader
@@ -362,28 +363,11 @@
*/
private Component createComponent( Model model, boolean flag ) throws
Exception
{
- if( getLogger().isTraceEnabled() )
- {
- if( flag )
- {
- getLogger().trace( "creating new locally controlled
component" );
- }
- else
- {
- getLogger().trace( "creating new remotelly controlled
component" );
- }
- }
if( model instanceof ComponentModel )
{
ClassLoader anchor = Logger.class.getClassLoader();
ComponentModel componentModel = (ComponentModel) model;
return m_controller.createDefaultComponentHandler( anchor,
componentModel, flag );
-
- //ClassLoader anchor = Logger.class.getClassLoader();
- //Classpath classpath = componentModel.getClasspath();
- //String name = componentModel.getName();
- //ClassLoader classloader = getClassLoader( name, anchor,
classpath );
- //return m_controller.createDefaultComponentHandler(
classloader, componentModel, flag );
}
else
{
Modified:
trunk/main/metro/tools/src/main/net/dpml/metro/tools/CatalogTask.java
===================================================================
--- trunk/main/metro/tools/src/main/net/dpml/metro/tools/CatalogTask.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/main/metro/tools/src/main/net/dpml/metro/tools/CatalogTask.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -30,14 +30,11 @@
import java.util.Arrays;
import java.util.Map;
-import net.dpml.component.Directive;
-
-import net.dpml.metro.info.PartReference;
import net.dpml.metro.info.EntryDescriptor;
import net.dpml.metro.info.Type;
import net.dpml.metro.info.ContextDescriptor;
import net.dpml.metro.info.ServiceDescriptor;
-import net.dpml.metro.data.ComponentDirective;
+
import net.dpml.metro.builder.ComponentTypeDecoder;
import net.dpml.transit.Transit;
Modified:
trunk/main/metro/tools/src/main/net/dpml/metro/tools/TypeBuilderTask.java
===================================================================
--- trunk/main/metro/tools/src/main/net/dpml/metro/tools/TypeBuilderTask.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/main/metro/tools/src/main/net/dpml/metro/tools/TypeBuilderTask.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -41,7 +41,6 @@
import net.dpml.metro.info.LifestylePolicy;
import net.dpml.metro.info.CollectionPolicy;
import net.dpml.metro.info.Type;
-import net.dpml.metro.info.PartReference;
import net.dpml.metro.info.EntryDescriptor;
import net.dpml.metro.info.ServiceDescriptor;
import net.dpml.metro.info.ThreadSafePolicy;
Modified: trunk/main/transit/core/src/main/net/dpml/lang/Classpath.java
===================================================================
--- trunk/main/transit/core/src/main/net/dpml/lang/Classpath.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/main/transit/core/src/main/net/dpml/lang/Classpath.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -19,7 +19,6 @@
package net.dpml.lang;
import java.net.URI;
-import java.io.Serializable;
import java.util.Arrays;
/**
@@ -50,16 +49,19 @@
/**
* Creation of a new classpath definition.
* @param base the base classpath from which this classpath is derived
- * @param extension the extended classpath defintion
+ * @param extension the extended classpath definition
*/
public Classpath( final Classpath base, final Classpath extension )
{
- this( base, extension.m_system, extension.m_public,
extension.m_protected,extension.m_private );
- //m_base = base;
- //m_system = extension.m_system;
- //m_public = extension.m_public;
- //m_protected = extension.m_protected;
- //m_private = extension.m_private;
+ if( null == extension )
+ {
+ throw new NullPointerException( "extension" );
+ }
+ m_base = base;
+ m_system = extension.m_system;
+ m_public = extension.m_public;
+ m_protected = extension.m_protected;
+ m_private = extension.m_private;
}
/**
@@ -72,11 +74,12 @@
public Classpath(
URI[] systemUris, URI[] publicUris, URI[] protectedUris, URI[]
privateUris )
{
- this( null, systemUris, publicUris,protectedUris, privateUris );
+ this( null, systemUris, publicUris, protectedUris, privateUris );
}
/**
* Creation of a new classpath definition.
+ * @param base super classpath (may be null)
* @param systemUris an array of uris representing the system classpath
extensions
* @param publicUris an array of uris representing the public classpath
entries
* @param protectedUris an array of uris representing protected classpath
entries
Modified: trunk/main/transit/core/src/main/net/dpml/lang/Part.java
===================================================================
--- trunk/main/transit/core/src/main/net/dpml/lang/Part.java 2006-07-25
13:27:16 UTC (rev 1666)
+++ trunk/main/transit/core/src/main/net/dpml/lang/Part.java 2006-07-25
17:15:20 UTC (rev 1667)
@@ -23,8 +23,6 @@
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.URI;
-import java.net.URL;
-import java.net.URLClassLoader;
import javax.xml.XMLConstants;
Modified: trunk/main/transit/core/src/main/net/dpml/lang/PartDecoder.java
===================================================================
--- trunk/main/transit/core/src/main/net/dpml/lang/PartDecoder.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/main/transit/core/src/main/net/dpml/lang/PartDecoder.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -233,6 +233,7 @@
/**
* Resolve a part plugin or resource strategy.
+ * @param logger the logging channel
* @param information the part info definition
* @param classpath the part classpath definition
* @param strategy part deployment strategy definition
Modified:
trunk/main/transit/core/src/main/net/dpml/lang/StandardClassLoader.java
===================================================================
--- trunk/main/transit/core/src/main/net/dpml/lang/StandardClassLoader.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/main/transit/core/src/main/net/dpml/lang/StandardClassLoader.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -44,6 +44,7 @@
* Internal utility class to build a classloader. If the supplied url
* sequence is zero length the parent classloader is returned directly.
*
+ * @param logger the logging channel
* @param name the name identifying the classloader
* @param category the category that this classloader is handling
* @param parent the parent classloader
@@ -462,11 +463,12 @@
/**
* Handle notification of the creation of a new classloader.
+ * @param logger the logging channel
* @param label the classloader label
* @param category the classloader category
* @param classloader the new classloader to report
*/
- protected static void classloaderConstructed( Logger logger, String
label, Category category, ClassLoader classloader )
+ private static void classloaderConstructed( Logger logger, String label,
Category category, ClassLoader classloader )
{
if( logger.isTraceEnabled() )
{
@@ -480,7 +482,9 @@
if( null != parent )
{
int pid = System.identityHashCode( parent );
- buffer.append( "\n extends: " + pid );
+ buffer.append(
+ "\n extends: "
+ + pid );
}
if( classloader instanceof URLClassLoader )
{
@@ -488,16 +492,24 @@
URL[] urls = loader.getURLs();
if( urls.length == 1 )
{
- buffer.append( "\n contains: 1 entry" );
+ buffer.append(
+ "\n contains: 1 entry" );
}
else
{
- buffer.append( "\n contains: " + urls.length + "
entries" );
+ buffer.append(
+ "\n contains: "
+ + urls.length
+ + " entries" );
}
for( int i=0; i < urls.length; i++ )
{
URL url = urls[i];
- buffer.append( "\n [" + (i+1) + "] " +
url.toString() );
+ buffer.append(
+ "\n ["
+ + ( i+1 )
+ + "] "
+ + url.toString() );
}
}
logger.trace( buffer.toString() );
Property changes on: trunk/tutorials
___________________________________________________________________
Name: svn:ignore
- tooling
+ tooling
target
Added: trunk/tutorials/build.xml
===================================================================
--- trunk/tutorials/build.xml 2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/build.xml 2006-07-25 17:15:20 UTC (rev 1667)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright 2005 Stephen J 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.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="tutorials" default="install"
+ xmlns:transit="antlib:net.dpml.transit"
+ xmlns:x="dpml:depot"
+ xmlns:c="dpml:metro">
+
+ <transit:import uri="local:template:dpml/tools/standard"/>
+
+ <target name="checkstyle" depends="prepare">
+ <property name="checkstyle.dir"
location="${basedir}/target/reports/checkstyle"/>
+ <property name="checkstyle.data"
location="${checkstyle.dir}/checkstyle.xml"/>
+ <x:plugin uri="link:part:dpml/depot/dpml-depot-checkstyle">
+ <task class="net.dpml.tools.checkstyle.CheckstyleTask"
name="checkstyle"/>
+ </x:plugin>
+ <mkdir dir="${checkstyle.dir}"/>
+ <checkstyle>
+ <formatter type="xml" toFile="${checkstyle.data}"/>
+ <fileset dir=".">
+ <include name="**/src/main/**/*.java"/>
+ <include name="**/src/test/**/*.java"/>
+ <exclude name="**/target/**/*.*"/>
+ </fileset>
+ </checkstyle>
+ <xslt style="${dpml.prefs}/dpml/tools/xsls/checkstyle-frames.xsl"
+ in="${checkstyle.data}"
+ out="${checkstyle.dir}/checkstyle_report.html">
+ <param name="output.dir" expression="${checkstyle.dir}"/>
+ </xslt>
+ </target>
+
+</project>
Modified:
trunk/tutorials/components/customize/clock/etc/data/logging.properties
===================================================================
--- trunk/tutorials/components/customize/clock/etc/data/logging.properties
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/customize/clock/etc/data/logging.properties
2006-07-25 17:15:20 UTC (rev 1667)
@@ -1,4 +1,4 @@
.level=FINEST
sun.rmi.level=INFO
-dpml.level=FINEST
-
+dpml.level=INFO
+clock.level=INFO
Modified:
trunk/tutorials/components/customize/clock/src/main/org/acme/clock/Clock.java
===================================================================
---
trunk/tutorials/components/customize/clock/src/main/org/acme/clock/Clock.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/tutorials/components/customize/clock/src/main/org/acme/clock/Clock.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,8 +18,6 @@
package org.acme.clock;
-import java.util.Date;
-
/**
* Clock interface.
*
@@ -28,5 +26,9 @@
*/
public interface Clock
{
+ /**
+ * Return the current time.
+ * @return the current time
+ */
String getTimestamp();
}
Added: trunk/tutorials/components/customize/custom/build.xml
===================================================================
--- trunk/tutorials/components/customize/custom/build.xml 2006-07-25
13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/customize/custom/build.xml 2006-07-25
17:15:20 UTC (rev 1667)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<project default="install"
+ xmlns:transit="antlib:net.dpml.transit"
+ xmlns:x="dpml:depot">
+
+ <transit:import uri="local:template:dpml/tools/standard"/>
+
+ <target name="prepare" depends="standard.prepare">
+ <x:plugin uri="link:part:dpml/depot/dpml-depot-convert">
+ <task name="convert" class="de.java2html.anttasks.Java2HtmlTask"/>
+ </x:plugin>
+ <convert srcdir="target/build/main" destdir="target/reports/src"/>
+ </target>
+
+</project>
Modified:
trunk/tutorials/components/customize/custom/src/main/org/acme/extra/Customizer.java
===================================================================
---
trunk/tutorials/components/customize/custom/src/main/org/acme/extra/Customizer.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/tutorials/components/customize/custom/src/main/org/acme/extra/Customizer.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -25,8 +25,12 @@
* @author <a href="@PUBLISHER-URL@">@PUBLISHER-NAME@</a>
* @version @PROJECT-VERSION@
*/
-public class Customizer
+public final class Customizer
{
+ private Customizer()
+ {
+ }
+
/**
* Static method that returns a customized format value.
* @return the customized format value
Added: trunk/tutorials/components/customize/extension/build.xml
===================================================================
--- trunk/tutorials/components/customize/extension/build.xml 2006-07-25
13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/customize/extension/build.xml 2006-07-25
17:15:20 UTC (rev 1667)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<project default="install"
+ xmlns:transit="antlib:net.dpml.transit"
+ xmlns:x="dpml:depot">
+
+ <transit:import uri="local:template:dpml/tools/standard"/>
+
+</project>
Modified: trunk/tutorials/components/examples/src/main/org/acme/Demo.java
===================================================================
--- trunk/tutorials/components/examples/src/main/org/acme/Demo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/examples/src/main/org/acme/Demo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -57,7 +57,6 @@
/**
* Return a constructed color.
- * @param color another color value
* @return the color value
*/
Color getAnotherColor();
@@ -226,6 +225,7 @@
* Creation of a new object using a supplied logging channel.
* @param logger the logging channel
* @param context the deployment context
+ * @exception Exception if an error occurs
*/
public Demo( final Logger logger, final Context context ) throws
Exception
{
Modified: trunk/tutorials/components/import/api/src/main/org/acme/Clock.java
===================================================================
--- trunk/tutorials/components/import/api/src/main/org/acme/Clock.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/import/api/src/main/org/acme/Clock.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,8 +18,6 @@
package org.acme;
-import java.util.Date;
-
/**
* Clock interface.
*
@@ -28,7 +26,9 @@
*/
public interface Clock
{
+ /**
+ * Return the current time.
+ * @return the current time
+ */
String getTimestamp();
-
- void list();
}
Modified:
trunk/tutorials/components/import/clock/src/main/org/acme/scheduler/SimpleClock.java
===================================================================
---
trunk/tutorials/components/import/clock/src/main/org/acme/scheduler/SimpleClock.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/tutorials/components/import/clock/src/main/org/acme/scheduler/SimpleClock.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -23,7 +23,6 @@
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import net.dpml.lang.StandardClassLoader;
import net.dpml.util.Logger;
import org.acme.Clock;
@@ -80,6 +79,7 @@
/**
* Creation of a new instance.
+ * @param logger the logging channel
* @param context the initial configuration
*/
public SimpleClock( final Logger logger, final Context context )
@@ -103,20 +103,6 @@
return formatter.format( date );
}
- public void list()
- {
- ClassLoader classloader = getClass().getClassLoader();
- if( classloader instanceof StandardClassLoader )
- {
- StandardClassLoader loader = (StandardClassLoader) classloader;
- m_logger.info( loader.toString( true ) );
- }
- else
- {
- m_logger.info( classloader.toString() );
- }
- }
-
private DateFormat getDateFormatter()
{
String format = m_context.getFormat( DEFAULT_PATTERN );
Modified:
trunk/tutorials/components/import/demo/src/main/org/acme/demo/Demo.java
===================================================================
--- trunk/tutorials/components/import/demo/src/main/org/acme/demo/Demo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/import/demo/src/main/org/acme/demo/Demo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -20,8 +20,6 @@
import org.acme.Clock;
-import net.dpml.lang.StandardClassLoader;
-
import net.dpml.logging.Logger;
/**
@@ -36,8 +34,15 @@
// criteria
//------------------------------------------------------------------
+ /**
+ * Internal parts accessor interface.
+ */
public interface Parts
{
+ /**
+ * Get the clock instance.
+ * @return a clock
+ */
Clock getClock();
}
@@ -52,6 +57,11 @@
// constructor
//------------------------------------------------------------------
+ /**
+ * Create a new demo instance.
+ * @param logger the assigned logging channel
+ * @param parts the internal parts
+ */
public Demo( final Logger logger, final Parts parts )
{
m_logger = logger;
@@ -59,27 +69,9 @@
Clock clock = parts.getClock();
logger.info(
clock.getTimestamp()
- + " (from " + clock.getClass().getName()
+ + " (from "
+ + clock.getClass().getName()
+ ")"
);
- list();
}
-
- public void list()
- {
- m_logger.info( "A #############" );
- ClassLoader classloader = getClass().getClassLoader();
- if( classloader instanceof StandardClassLoader )
- {
- StandardClassLoader loader = (StandardClassLoader) classloader;
- m_logger.info( loader.toString( true ) );
- }
- else
- {
- m_logger.info( classloader.toString() );
- }
- m_logger.info( "B #############" );
- m_parts.getClock().list();
- m_logger.info( "C #############" );
- }
}
Modified:
trunk/tutorials/components/import/test/src/test/org/acme/testing/DemoTestCase.java
===================================================================
---
trunk/tutorials/components/import/test/src/test/org/acme/testing/DemoTestCase.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/tutorials/components/import/test/src/test/org/acme/testing/DemoTestCase.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,7 +18,6 @@
package org.acme.testing;
-import java.io.File;
import java.net.URI;
import junit.framework.TestCase;
Modified: trunk/tutorials/components/lifestyle/src/main/org/acme/Gizmo.java
===================================================================
--- trunk/tutorials/components/lifestyle/src/main/org/acme/Gizmo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/lifestyle/src/main/org/acme/Gizmo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,8 +18,6 @@
package org.acme;
-import java.awt.Color;
-
/**
* A test component.
*
Modified: trunk/tutorials/components/lookup/src/main/org/acme/Gizmo.java
===================================================================
--- trunk/tutorials/components/lookup/src/main/org/acme/Gizmo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/lookup/src/main/org/acme/Gizmo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,8 +18,6 @@
package org.acme;
-import java.awt.Color;
-
/**
* A test component.
*
Modified: trunk/tutorials/components/module.xml
===================================================================
--- trunk/tutorials/components/module.xml 2006-07-25 13:27:16 UTC (rev
1666)
+++ trunk/tutorials/components/module.xml 2006-07-25 17:15:20 UTC (rev
1667)
@@ -327,13 +327,13 @@
</dependencies>
</project>
- <!-- customization demo -->
+ <!-- customization demo: simple clock -->
<project name="acme-simple-clock" basedir="customize/clock">
<info title="Simple Clock"/>
<types>
<type id="jar"/>
- <component xmlns="link:xsd:dpml/lang/dpml-component#1.0"
+ <component xmlns="link:xsd:dpml/lang/dpml-component#1.0" alias="true"
type="org.acme.clock.SimpleClock" name="clock">
<context>
<entry key="format" value="K:mm a, z"/>
@@ -357,9 +357,9 @@
<info title="Extended Clock"/>
<types>
<component xmlns="link:xsd:dpml/lang/dpml-component#1.0"
- uri="resource:part:dpmlx/tutorials/components/acme-simple-clock"
name="extension">
+ uri="link:part:dpmlx/tutorials/components/acme-simple-clock"
name="clock">
<context>
- <entry key="format" value="K:mm a, z"/>
+ <entry key="format" value="K:mm a"/>
</context>
</component>
</types>
@@ -380,7 +380,7 @@
<types>
<type id="jar"/>
<component xmlns="link:xsd:dpml/lang/dpml-component#1.0"
- uri="resource:part:dpmlx/tutorials/components/acme-simple-clock"
name="custom">
+ uri="link:part:dpmlx/tutorials/components/acme-simple-clock"
name="clock">
<context>
<entry key="format" class="org.acme.extra.Customizer"
method="getCustomFormat"/>
</context>
Added: trunk/tutorials/components/parts/etc/data/logging.properties
===================================================================
--- trunk/tutorials/components/parts/etc/data/logging.properties
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/parts/etc/data/logging.properties
2006-07-25 17:15:20 UTC (rev 1667)
@@ -0,0 +1,3 @@
+.level=INFO
+dpml.level=INFO
+demo.level=FINE
Modified: trunk/tutorials/components/parts/src/main/org/acme/Demo.java
===================================================================
--- trunk/tutorials/components/parts/src/main/org/acme/Demo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/parts/src/main/org/acme/Demo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -56,7 +56,7 @@
/**
* Creation of a new object using a supplied logging channel.
* @param logger the logging channel
- * @param context the deployment context
+ * @param parts the internal parts handler
*/
public Demo( final Logger logger, final Parts parts )
{
Modified: trunk/tutorials/components/parts/src/main/org/acme/Widget.java
===================================================================
--- trunk/tutorials/components/parts/src/main/org/acme/Widget.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/parts/src/main/org/acme/Widget.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -58,7 +58,6 @@
/**
* Creation of a new object using a supplied logging channel.
- * @param logger the logging channel
* @param context the deployment context
*/
public Widget( final Context context )
Modified: trunk/tutorials/components/singleton/src/main/org/acme/Demo.java
===================================================================
--- trunk/tutorials/components/singleton/src/main/org/acme/Demo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/singleton/src/main/org/acme/Demo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -73,6 +73,8 @@
* internal parts.
* @param logger the logging channel
* @param context the deployment context
+ * @param parts the internal parts
+ * @exception Exception if an error occurs
*/
public Demo( final Logger logger, final Context context, Parts parts )
throws Exception
{
@@ -89,8 +91,14 @@
}
}
+ /**
+ * Internal thread uses to simulate multi-thread access.
+ */
private class Accessor extends Thread
- {
+ {
+ /**
+ * Run the thread.
+ */
public void run()
{
int n = m_context.getAccessCount();
@@ -98,7 +106,15 @@
for( int i=0; i<n; i++ )
{
int id = System.identityHashCode( gizmo );
- m_logger.info( " gizmo (" + this + ") [" + id + "]" );
+ if( m_logger.isLoggable( Level.INFO ) )
+ {
+ m_logger.info(
+ " gizmo ("
+ + this
+ + ") ["
+ + id
+ + "]" );
+ }
}
}
}
Modified: trunk/tutorials/components/state/src/main/org/acme/Demo.java
===================================================================
--- trunk/tutorials/components/state/src/main/org/acme/Demo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/state/src/main/org/acme/Demo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -44,13 +44,25 @@
m_logger = logger;
}
+ /**
+ * Startup the component.
+ */
public void start()
{
- m_logger.info( "startup" );
+ if( m_logger.isLoggable( Level.INFO ) )
+ {
+ m_logger.info( "startup" );
+ }
}
+ /**
+ * Shutdown the component.
+ */
public void stop()
{
- m_logger.info( "shutdown" );
+ if( m_logger.isLoggable( Level.INFO ) )
+ {
+ m_logger.info( "shutdown" );
+ }
}
}
Modified: trunk/tutorials/components/thread/src/main/org/acme/Demo.java
===================================================================
--- trunk/tutorials/components/thread/src/main/org/acme/Demo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/thread/src/main/org/acme/Demo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -19,7 +19,6 @@
package org.acme;
import java.util.logging.Logger;
-import java.util.logging.Level;
/**
* A minimal component.
@@ -73,6 +72,8 @@
* internal parts.
* @param logger the logging channel
* @param context the deployment context
+ * @param parts the internal parts
+ * @exception Exception if an error occurs
*/
public Demo( final Logger logger, final Context context, Parts parts )
throws Exception
{
@@ -89,8 +90,14 @@
}
}
+ /**
+ * Internal thread uses to simulate multi-thread access.
+ */
private class Accessor extends Thread
{
+ /**
+ * Run the thread.
+ */
public void run()
{
int n = m_context.getAccessCount();
Modified: trunk/tutorials/components/transient/src/main/org/acme/Demo.java
===================================================================
--- trunk/tutorials/components/transient/src/main/org/acme/Demo.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/transient/src/main/org/acme/Demo.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -63,6 +63,7 @@
* internal parts.
* @param logger the logging channel
* @param context the deployment context
+ * @param parts the internal parts
*/
public Demo( final Logger logger, final Context context, Parts parts )
{
@@ -73,7 +74,11 @@
if( logger.isLoggable( Level.INFO ) )
{
int id = System.identityHashCode( gizmo );
- logger.info( " gizmo [" + (i+1) + "] " + id );
+ logger.info(
+ " gizmo ["
+ + ( i+1 )
+ + "] "
+ + id );
}
}
}
Modified: trunk/tutorials/components/type/src/main/org/acme/Demo.java
===================================================================
--- trunk/tutorials/components/type/src/main/org/acme/Demo.java 2006-07-25
13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/type/src/main/org/acme/Demo.java 2006-07-25
17:15:20 UTC (rev 1667)
@@ -44,18 +44,36 @@
m_logger = logger;
}
+ /**
+ * Startup the component.
+ */
public void start()
{
- m_logger.info( "startup" );
+ if( m_logger.isLoggable( Level.INFO ) )
+ {
+ m_logger.info( "startup" );
+ }
}
+ /**
+ * Shutdown the component.
+ */
public void stop()
{
- m_logger.info( "shutdown" );
+ if( m_logger.isLoggable( Level.INFO ) )
+ {
+ m_logger.info( "shutdown" );
+ }
}
+ /**
+ * Do something.
+ */
public void doSomething()
{
- m_logger.info( "doing stuff" );
+ if( m_logger.isLoggable( Level.INFO ) )
+ {
+ m_logger.info( "doing stuff" );
+ }
}
}
Modified: trunk/tutorials/components/type/src/main/org/acme/Widget.java
===================================================================
--- trunk/tutorials/components/type/src/main/org/acme/Widget.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/components/type/src/main/org/acme/Widget.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -26,5 +26,8 @@
*/
public interface Widget
{
+ /**
+ * Do something.
+ */
void doSomething();
}
Property changes on: trunk/tutorials/tooling/alias
___________________________________________________________________
Name: svn:ignore
+ target
Modified:
trunk/tutorials/tooling/complex/build/api/src/main/org/acme/Clock.java
===================================================================
--- trunk/tutorials/tooling/complex/build/api/src/main/org/acme/Clock.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/tooling/complex/build/api/src/main/org/acme/Clock.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,8 +18,6 @@
package org.acme;
-import java.util.Date;
-
/**
* Clock interface.
*
@@ -28,5 +26,9 @@
*/
public interface Clock
{
+ /**
+ * Return the timestamp.
+ * @return the timestamp value
+ */
String getTimestamp();
}
Modified:
trunk/tutorials/tooling/complex/build/impl/src/test/org/acme/impl/test/DemoTestCase.java
===================================================================
---
trunk/tutorials/tooling/complex/build/impl/src/test/org/acme/impl/test/DemoTestCase.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/tutorials/tooling/complex/build/impl/src/test/org/acme/impl/test/DemoTestCase.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -19,7 +19,6 @@
package org.acme.impl.test;
import java.util.logging.Logger;
-import java.util.logging.Level;
import junit.framework.TestCase;
@@ -40,7 +39,7 @@
*/
public void testTheClock() throws Exception
{
- SimpleClock clock = new SimpleClock();
+ Clock clock = new SimpleClock();
String timestamp = clock.getTimestamp();
Logger logger = Logger.getLogger( "test" );
logger.info( timestamp );
Modified:
trunk/tutorials/tooling/complex/export/api/src/main/org/acme/Clock.java
===================================================================
--- trunk/tutorials/tooling/complex/export/api/src/main/org/acme/Clock.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/tooling/complex/export/api/src/main/org/acme/Clock.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,8 +18,6 @@
package org.acme;
-import java.util.Date;
-
/**
* Clock interface.
*
@@ -28,5 +26,9 @@
*/
public interface Clock
{
+ /**
+ * Return the timestamp.
+ * @return the timestamp value
+ */
String getTimestamp();
}
Modified:
trunk/tutorials/tooling/complex/export/impl/src/test/org/acme/impl/test/DemoTestCase.java
===================================================================
---
trunk/tutorials/tooling/complex/export/impl/src/test/org/acme/impl/test/DemoTestCase.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/tutorials/tooling/complex/export/impl/src/test/org/acme/impl/test/DemoTestCase.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -19,7 +19,6 @@
package org.acme.impl.test;
import java.util.logging.Logger;
-import java.util.logging.Level;
import junit.framework.TestCase;
@@ -40,7 +39,7 @@
*/
public void testTheClock() throws Exception
{
- SimpleClock clock = new SimpleClock();
+ Clock clock = new SimpleClock();
String timestamp = clock.getTimestamp();
Logger logger = Logger.getLogger( "test" );
logger.info( timestamp );
Modified:
trunk/tutorials/tooling/complex/modules/api/src/main/org/acme/Clock.java
===================================================================
--- trunk/tutorials/tooling/complex/modules/api/src/main/org/acme/Clock.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/tooling/complex/modules/api/src/main/org/acme/Clock.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,8 +18,6 @@
package org.acme;
-import java.util.Date;
-
/**
* Clock interface.
*
@@ -28,5 +26,9 @@
*/
public interface Clock
{
+ /**
+ * Return the timestamp value.
+ * @return the timestamp
+ */
String getTimestamp();
}
Modified:
trunk/tutorials/tooling/complex/modules/impl/src/test/org/acme/impl/test/DemoTestCase.java
===================================================================
---
trunk/tutorials/tooling/complex/modules/impl/src/test/org/acme/impl/test/DemoTestCase.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/tutorials/tooling/complex/modules/impl/src/test/org/acme/impl/test/DemoTestCase.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -19,11 +19,9 @@
package org.acme.impl.test;
import java.util.logging.Logger;
-import java.util.logging.Level;
import junit.framework.TestCase;
-import org.acme.Clock;
import org.acme.impl.SimpleClock;
/**
Modified:
trunk/tutorials/tooling/complex/plugin/api/src/main/org/acme/Clock.java
===================================================================
--- trunk/tutorials/tooling/complex/plugin/api/src/main/org/acme/Clock.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/tooling/complex/plugin/api/src/main/org/acme/Clock.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -18,8 +18,6 @@
package org.acme;
-import java.util.Date;
-
/**
* Clock interface.
*
@@ -28,5 +26,9 @@
*/
public interface Clock
{
+ /**
+ * Return a formatted timestamp value.
+ * @return the timestamp value
+ */
String getTimestamp();
}
Modified:
trunk/tutorials/tooling/complex/plugin/impl/src/main/org/acme/impl/SimpleClock.java
===================================================================
---
trunk/tutorials/tooling/complex/plugin/impl/src/main/org/acme/impl/SimpleClock.java
2006-07-25 13:27:16 UTC (rev 1666)
+++
trunk/tutorials/tooling/complex/plugin/impl/src/main/org/acme/impl/SimpleClock.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -46,7 +46,8 @@
/**
* Creation of a new instance.
- * @param context the initial configuration
+ * @param format the format to use for timestamps
+ * @param locale the assigned locale
*/
public SimpleClock( final String format, final Locale locale )
{
Modified:
trunk/tutorials/tooling/imports/src/test/org/acme/test/DemoTestCase.java
===================================================================
--- trunk/tutorials/tooling/imports/src/test/org/acme/test/DemoTestCase.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/tooling/imports/src/test/org/acme/test/DemoTestCase.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -19,7 +19,6 @@
package org.acme.test;
import java.util.logging.Logger;
-import java.util.logging.Level;
import junit.framework.TestCase;
Modified: trunk/tutorials/tooling/module.xml
===================================================================
--- trunk/tutorials/tooling/module.xml 2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/tooling/module.xml 2006-07-25 17:15:20 UTC (rev 1667)
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<module xmlns="link:xsd:dpml/lang/dpml-module#1.0" name="tooling">
+ <dependencies>
+ <build>
+ <include ref="dpml"/>
+ </build>
+ </dependencies>
+
<project name="simple" basedir="simple"/>
<project name="properties" basedir="properties">
@@ -24,4 +30,82 @@
</filters>
</project>
-</module>
\ No newline at end of file
+ <project name="alias-demo" basedir="alias">
+ <properties>
+ <property name="location" value="New York"/>
+ <property name="message" value="Hello from ${user.name} in
${location}"/>
+ </properties>
+ <types>
+ <type id="jar" alias="true"/>
+ </types>
+ <filters>
+ <filter token="MESSAGE" value="${message}"/>
+ </filters>
+ </project>
+
+ <project name="automation-demo" basedir="automation">
+ <properties>
+ <property name="location" value="New York"/>
+ <property name="message" value="Hello from ${user.name} in
${location}"/>
+ </properties>
+ <types>
+ <type id="jar"/>
+ </types>
+ <filters>
+ <filter token="MESSAGE" value="${message}"/>
+ </filters>
+ </project>
+
+ <project name="imports-demo" basedir="imports">
+ <properties>
+ <property name="location" value="New York"/>
+ <property name="message" value="Hello from ${user.name} in
${location}"/>
+ </properties>
+ <types>
+ <type id="jar"/>
+ </types>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </test>
+ </dependencies>
+ <filters>
+ <filter token="MESSAGE" value="${message}"/>
+ </filters>
+ </project>
+
+ <project name="types-demo" basedir="types">
+ <properties>
+ <property name="location" value="New York"/>
+ <property name="message" value="Hello from ${user.name} in
${location}"/>
+ </properties>
+ <types>
+ <type id="jar"/>
+ </types>
+ <filters>
+ <filter token="MESSAGE" value="${message}"/>
+ </filters>
+ </project>
+
+ <project name="unit-demo" basedir="unit">
+ <properties>
+ <property name="location" value="New York"/>
+ <property name="message" value="Hello from ${user.name} in
${location}"/>
+ </properties>
+ <types>
+ <type id="jar"/>
+ </types>
+ <dependencies>
+ <test>
+ <include uri="artifact:jar:ant/ant-junit#1.6.5"/>
+ <include uri="artifact:jar:ant/ant#1.6.5"/>
+ <include uri="artifact:jar:junit/junit#3.8.1"/>
+ </test>
+ </dependencies>
+ <filters>
+ <filter token="MESSAGE" value="${message}"/>
+ </filters>
+ </project>
+
+</module>
Property changes on: trunk/tutorials/tooling/types
___________________________________________________________________
Name: svn:ignore
+ target
Property changes on: trunk/tutorials/tooling/unit
___________________________________________________________________
Name: svn:ignore
+ target
Modified:
trunk/tutorials/tooling/unit/src/test/org/acme/test/DemoTestCase.java
===================================================================
--- trunk/tutorials/tooling/unit/src/test/org/acme/test/DemoTestCase.java
2006-07-25 13:27:16 UTC (rev 1666)
+++ trunk/tutorials/tooling/unit/src/test/org/acme/test/DemoTestCase.java
2006-07-25 17:15:20 UTC (rev 1667)
@@ -19,7 +19,6 @@
package org.acme.test;
import java.util.logging.Logger;
-import java.util.logging.Level;
import junit.framework.TestCase;
- r1667 - in trunk: central/site central/site/src/docs/metro/tutorials central/site/src/docs/metro/tutorials/customize main main/depot/library/src/main/net/dpml/library main/depot/library/src/main/net/dpml/library/info main/depot/tools/builder/src/main/net/dpml/tools/impl main/depot/tools/builder/src/main/net/dpml/tools/tasks main/metro/model/src/main/net/dpml/metro/builder main/metro/runtime/src/main/net/dpml/metro/runtime main/metro/tools/src/main/net/dpml/metro/tools main/transit/core/src/main/net/dpml/lang tutorials tutorials/components tutorials/components/customize/clock/etc/data tutorials/components/customize/clock/src/main/org/acme/clock tutorials/components/customize/custom tutorials/components/customize/custom/src/main/org/acme/extra tutorials/components/customize/extension tutorials/components/examples/src/main/org/acme tutorials/components/import/api/src/main/org/acme tutorials/components/import/clock/src/main/org/acme/scheduler tutorials/components/import! /demo/src/main/org/acme/demo tutorials/components/import/test/src/test/org/acme/testing tutorials/components/lifestyle/src/main/org/acme tutorials/components/lookup/src/main/org/acme tutorials/components/parts tutorials/components/parts/etc tutorials/components/parts/etc/data tutorials/components/parts/src/main/org/acme tutorials/components/singleton/src/main/org/acme tutorials/components/state/src/main/org/acme tutorials/components/thread/src/main/org/acme tutorials/components/transient/src/main/org/acme tutorials/components/type/src/main/org/acme tutorials/tooling tutorials/tooling/alias tutorials/tooling/complex/build/api/src/main/org/acme tutorials/tooling/complex/build/impl/src/test/org/acme/impl/test tutorials/tooling/complex/export/api/src/main/org/acme tutorials/tooling/complex/export/impl/src/test/org/acme/impl/test tutorials/tooling/complex/modules/api/src/main/org/acme tutorials/tooling/complex/modules/impl/src/test/org/acme/impl/test tutorials/tooling/complex/pl! ugin/api/src/main/org/acme tutorials/tooling/complex/plugin/im! pl/src/m, mcconnell at BerliOS, 07/25/2006
Archive powered by MHonArc 2.6.24.