You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2003/12/11 13:24:23 UTC
cvs commit: avalon/repository/site/xdocs/tools index.xml
mcconnell 2003/12/11 04:24:23
Modified: repository/site/xdocs/about bootstrap.xml reference.xml
spi.xml
repository/site/xdocs/start/install index.xml navigation.xml
repository/site/xdocs/start/tutorial index.xml
repository/site/xdocs/tools index.xml
Removed: repository/site/xdocs/start/install binary.xml cvs.xml
Log:
Completion of the package documentation.
Revision Changes Path
1.2 +33 -0 avalon/repository/site/xdocs/about/bootstrap.xml
Index: bootstrap.xml
===================================================================
RCS file: /home/cvs/avalon/repository/site/xdocs/about/bootstrap.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- bootstrap.xml 4 Dec 2003 19:34:47 -0000 1.1
+++ bootstrap.xml 11 Dec 2003 12:24:23 -0000 1.2
@@ -67,6 +67,39 @@
features dealing with application deployment, including classloader
chain establishment and application instantiation.
</p>
+ <p>
+ A bootstrap profile is established relative to the following
+ environment variables and properties:
+ </p>
+ <table>
+ <tr><th>Location</th></tr>
+ <tr>
+ <td>${user.dir}/avalon.properties</td>
+ </tr>
+ <tr>
+ <td>${user.home}/avalon.properties</td>
+ </tr>
+ </table>
+ </subsection>
+ <subsection name="Bootstrap Properties">
+ <table>
+ <tr><th>Property</th><th>Default Value</th><th>Description</th></tr>
+ <tr>
+ <td>${avalon.repository.cache}</td>
+ <td>${avalon.home}</td>
+ <td>The default cache. In undefined in a property file, the value
+ defaults to an equivalent system property and if underfined, will
+ attempt to locate an environment variable AVALON_HOME. If the env
+ variable is not declared the default repository directory will
+ revert to ${user.home}/.avalon.</td>
+ </tr>
+ <tr>
+ <td>${avalon.repository.hosts}</td>
+ <td>http://dpml.net,http://ibiblio.org/maven</td>
+ <td>The default remote hosts expressed as a comma seperated
+ sequence of host urls. File or http urls may be supplied.</td>
+ </tr>
+ </table>
</subsection>
</section>
1.2 +42 -0 avalon/repository/site/xdocs/about/reference.xml
Index: reference.xml
===================================================================
RCS file: /home/cvs/avalon/repository/site/xdocs/about/reference.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- reference.xml 4 Dec 2003 19:34:48 -0000 1.1
+++ reference.xml 11 Dec 2003 12:24:23 -0000 1.2
@@ -65,6 +65,48 @@
for a chain of local and remote repositories using local file
replication and/or HTTP artifact replication (with proxy support).
</p>
+ <p>
+ A reference implementation profile is established relative to the
+ following environment variables and properties:
+ </p>
+ <table>
+ <tr><th>Location</th></tr>
+ <tr>
+ <td>${user.dir}/avalon.properties</td>
+ </tr>
+ <tr>
+ <td>${user.home}/avalon.properties</td>
+ </tr>
+ </table>
+ </subsection>
+ <subsection name="RI Properties">
+ <p>
+ The following properties suppliment the
+ <a href="bootstrap.html">bootstrap properties</a>.
+ </p>
+ <table>
+ <tr><th>Property</th><th>Default Value</th><th>Description</th></tr>
+ <tr>
+ <td>${avalon.repository.proxy.host}</td>
+ <td></td>
+ <td>The proxy host name.</td>
+ </tr>
+ <tr>
+ <td>${avalon.repository.proxy.port}</td>
+ <td></td>
+ <td>The proxy port.</td>
+ </tr>
+ <tr>
+ <td>${avalon.repository.proxy.username}</td>
+ <td></td>
+ <td>The proxy username.</td>
+ </tr>
+ <tr>
+ <td>${avalon.repository.proxy.password}</td>
+ <td></td>
+ <td>The proxy password.</td>
+ </tr>
+ </table>
</subsection>
</section>
1.2 +103 -3 avalon/repository/site/xdocs/about/spi.xml
Index: spi.xml
===================================================================
RCS file: /home/cvs/avalon/repository/site/xdocs/about/spi.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- spi.xml 4 Dec 2003 19:34:48 -0000 1.1
+++ spi.xml 11 Dec 2003 12:24:23 -0000 1.2
@@ -61,18 +61,118 @@
<subsection name="Service Provider Interface (SPI)">
<p>
-
The Avalon Repository SPI extends the API to provide a set
- of services that define the contact for alternative repository
- implementations. The Avalon Repository main bootstrapping system
+ of services that define the contact for plugin facilities.
+ The Avalon Repository main bootstrapping system
provides out-of-the-box support for concurrent deployment of
multiple repository implementations enabling complete customization
and future-proof evolution of artifact access and deployment needs.
+ It achives this functionality by applying the same plugin process to
+ its own implementation.
</p>
</subsection>
</section>
+ <section name="Plugin Facilities">
+ <subsection name="Factory Pattern">
+ <p>
+ A plugin facility is requred to implement on of the following
+ constructor patterns.
+ </p>
+ <table>
+ <tr><th>Constructor</th><th>Description</th></tr>
+ <tr>
+ <td>
+<source>
+public MyFactory(
+ InitialContext context,
+ ClassLoader loader )
+{
+}</source></td>
+ <td>
+ Creation of a new factory using a supplied initial
+ repository context and a classloader established by
+ the bootstrap facility. The classloader will be
+ fully populated in accordance with the metadata
+ published by the factory.
+ </td>
+ </tr>
+ <tr>
+ <td>
+<source>
+public MyFactory(
+ InitialContext context )
+{
+}</source></td>
+ <td>
+ Creation of a new factory using a supplied initial
+ repository context.
+ </td>
+ </tr>
+ <tr>
+ <td>
+<source>
+public MyFactory(
+ InitialContext context )
+{
+}</source></td>
+ <td>
+ Creation of a new factory using a supplied classloader
+ established by the bootstrap facility. The classloader
+ will be fully populated in accordance with the metadata
+ published by the factory.
+ </td>
+ </tr>
+ <tr>
+ <td>
+<source>
+public MyFactory()
+{
+}</source></td>
+ <td>
+ Creation of a new factory.
+ </td>
+ </tr>
+ </table>
+ </subsection>
+ <subsection name="Criteria Management">
+ <p>
+ The object established by the factory constructor must implement
+ the Factory interface.
+ </p>
+<source>
+public interface Factory
+{
+ /**
+ * Return a new instance of default criteria for the factory.
+ * @return a new criteria instance
+ */
+ Map createDefaultCriteria();
+
+ /**
+ * Create a new instance of an application.
+ * @return the application instance
+ */
+ Object create() throws Exception;
+ /**
+ * Create a new instance of an application.
+ * @param criteria the creation criteria
+ * @return the application instance
+ */
+ Object create( Map criteria ) throws Exception;
+
+}
+</source>
+ <p>
+ A client on aquiring the factory will get the default
+ criteria value and use this to parameterize the factory.
+ On completion of parameterization (by setting application
+ specific named values), the create operation is invoked and
+ returns a new instance of the facility.
+ </p>
+ </subsection>
+ </section>
</body>
</document>
1.2 +27 -23 avalon/repository/site/xdocs/start/install/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/avalon/repository/site/xdocs/start/install/index.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- index.xml 4 Dec 2003 19:34:53 -0000 1.1
+++ index.xml 11 Dec 2003 12:24:23 -0000 1.2
@@ -60,30 +60,34 @@
<section name="Avalon Repository - Installation">
<p>
- Installation details depend on your approach to building
- the repository package. Just at the moment things are changing
- daily as we move to finalization. As such - to stay on the bleeding
- edge you will probably want to build from CVS. On the otherhand,
- the package lends itself to a download and install approach,
- minimal footprint, and dynamic dependency resolution at runtime - so
- playing with a binary install is also fun.
+ The repository facility is available as a binary downaload
+ or can be built from CVS. The following instructions deal with
+ CVS related builds.
</p>
- <subsection name="Index">
- <table>
- <tr><th>Topic</th><th>Description</th></tr>
- <tr>
- <td><a href="binary.html">Binary Installation</a></td>
- <td>
- Installation instructions for binary distribution.
- </td>
- </tr>
- <tr>
- <td><a href="cvs.html">CVS Build Instructions</a></td>
- <td>
- Details for building the repository suite from CVS.
- </td>
- </tr>
- </table>
+ <subsection name="CVS Install">
+ <p>
+ To build the repository facility you need to checkout the
+ Merlin project from CVS. The commands in this document
+ assume a unix-style system; the procedure under windows is
+ similar, and identical if you have <a
+ href="http://www.cygwin.com">cygwin</a> installed.
+ </p>
+<source><![CDATA[
+$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
+$ cvs -z3 -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co avalon/util
+$ cvs -z3 -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co avalon/repository
+]]></source>
+ <p>
+ Once checkout is complete you can build Merlin using <a
+ href="http://maven.apache.org/">Maven</a> as follows:
+ </p>
+<source><![CDATA[
+$ cd avalon/util
+$ maven
+$ cd ../repository
+$ maven
+]]></source>
+
</subsection>
</section>
</body>
1.2 +1 -4 avalon/repository/site/xdocs/start/install/navigation.xml
Index: navigation.xml
===================================================================
RCS file: /home/cvs/avalon/repository/site/xdocs/start/install/navigation.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- navigation.xml 4 Dec 2003 19:34:53 -0000 1.1
+++ navigation.xml 11 Dec 2003 12:24:23 -0000 1.2
@@ -65,10 +65,7 @@
<menu name="About Repository">
<item name="Overview" href="/about/index.html"/>
<item name="Getting Started" href="/start/index.html">
- <item name="Installation" href="/start/install/index.html">
- <item name="Binary" href="/start/install/binary.html"/>
- <item name="CVS" href="/start/install/cvs.html"/>
- </item>
+ <item name="Installation" href="/start/install/index.html"/>
<item name="Tutorials" href="/start/tutorial/index.html"/>
</item>
<item name="Tools" href="/tools/index.html"/>
1.2 +47 -2 avalon/repository/site/xdocs/start/tutorial/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/avalon/repository/site/xdocs/start/tutorial/index.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- index.xml 4 Dec 2003 19:34:53 -0000 1.1
+++ index.xml 11 Dec 2003 12:24:23 -0000 1.2
@@ -59,8 +59,53 @@
<section name="Avalon Repository - Tutorials">
- <p>IN PROGRESS.</p>
- <p>Please check back soon.</p>
+ <subsection name="Application Example">
+ <p>The following example is taken from the the
+ <a href="http://avalon.apache.org/merlin">Merlin</a> project.
+ It demonstrates the creation of an embedded merlin kernel using
+ the Repository Facility builder, factory and criteria handling
+ patterns.</p>
+<source>
+try
+{
+ //
+ // declare the facility to load
+ //
+
+ Artifact artifact =
+ Artifact.createArtifact(
+ "merlin", "merlin-impl", "3.2-dev" );
+
+ //
+ // create an inital context
+ //
+
+ InitialContext context =
+ new DefaultInitialContext();
+
+ //
+ // create the factory using the default builder
+ //
+
+ Builder builder = new DefaultBuilder( context, artifact );
+ Factory factory = builder.getFactory();
+
+ //
+ // get the default factory parameters and apply these
+ // as the factory argument to construct the new facility
+ //
+
+ Map criteria = factory.createDefaultCriteria();
+ applyLocalProperties( criteria );
+ Object facility = factory.create( criteria );
+}
+catch( Throwable e )
+{
+ final String error = ExceptionHelper.packException( e, true );
+ throw new Exception( error );
+}
+</source>
+ </subsection>
</section>
1.2 +5 -5 avalon/repository/site/xdocs/tools/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/avalon/repository/site/xdocs/tools/index.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- index.xml 4 Dec 2003 19:34:54 -0000 1.1
+++ index.xml 11 Dec 2003 12:24:23 -0000 1.2
@@ -61,12 +61,12 @@
<p>
There is a repository plugin than is built as part of the
- CVS build. Its also available on DPML. The plugin generates
- meta data descriptors that are used by the repository package
- to construct classloaders on demand. Complete details of the
- plugin (goals, properties, etc.) will be provided in the near
- future.
+ avalon-util build. The plugin generates meta data descriptors
+ that are used by the repository package
+ to construct classloaders on demand.
</p>
+ <p><a href="http://avalon.apache.org/util/plugin/index.html">
+ Avalon Util Plugin</a></p>
</section>
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org