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