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 2004/02/19 08:37:47 UTC

cvs commit: avalon/repository/test/conf repo.meta test.meta

mcconnell    2004/02/18 23:37:47

  Modified:    repository/cli/src/java/org/apache/avalon/repository/cli
                        Main.java RepositoryVerifier.java
               repository/impl project.xml
               repository/impl/src/java/org/apache/avalon/repository/impl
                        DefaultFactory.java DefaultRepository.java
                        DefaultRepositoryCriteria.java avalon.properties
               repository/main/src/java/org/apache/avalon/repository/main
                        DefaultBuilder.java DefaultInitialContext.java
                        DefaultInitialContextFactory.java
               repository project.xml
               repository/spi/src/java/org/apache/avalon/repository/provider
                        InitialContext.java InitialContextFactory.java
               repository/test/src/test/org/apache/avalon/repository/main
                        DefaultInitialContextTest.java
  Added:       repository/main/src/java/org/apache/avalon/repository/main
                        DefaultAuthenticator.java
               repository/spi/src/java/org/apache/avalon/repository/provider
                        RepositoryCriteria.java
  Removed:     repository/impl/src/java/org/apache/avalon/repository/impl
                        DefaultAuthenticator.java DefaultBlockManifest.java
                        DefaultCacheManager.java
                        DefaultCacheManagerMBean.java ProxyContext.java
               repository/spi/src/java/org/apache/avalon/repository/provider
                        BlockManifest.java CacheManager.java
               repository/api/src/java/org/apache/avalon/repository
                        TODO.TXT
               repository/test/conf repo.meta test.meta
  Log:
  Merge changes to repository facility related to the factoring out of the proxy handling from the repository implementation to the initial context implementation.
  
  Revision  Changes    Path
  1.5       +3 -1      avalon/repository/cli/src/java/org/apache/avalon/repository/cli/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/cli/src/java/org/apache/avalon/repository/cli/Main.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Main.java	19 Feb 2004 07:33:04 -0000	1.4
  +++ Main.java	19 Feb 2004 07:37:46 -0000	1.5
  @@ -195,6 +195,8 @@
                     new DefaultInitialContextFactory( "avalon", dir );
                   factory.setCacheDirectory( cache );
                   factory.setHosts( hosts );
  +                
  +                InitialContext context = factory.createInitialContext();
   
                   //
                   // process the commandline and do the real work
  
  
  
  1.2       +1 -1      avalon/repository/cli/src/java/org/apache/avalon/repository/cli/RepositoryVerifier.java
  
  Index: RepositoryVerifier.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/cli/src/java/org/apache/avalon/repository/cli/RepositoryVerifier.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  
  
  
  1.6       +1 -1      avalon/repository/impl/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/repository/impl/project.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- project.xml	24 Jan 2004 23:20:04 -0000	1.5
  +++ project.xml	19 Feb 2004 07:37:46 -0000	1.6
  @@ -8,7 +8,7 @@
     <id>avalon-repository-impl</id>
     <name>Avalon Repository Implementation</name>
     <package>org.apache.avalon.repository</package>
  -  <currentVersion>1.3-SNAPSHOT</currentVersion>
  +  <currentVersion>2.0-SNAPSHOT</currentVersion>
   
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Jar file repository implementation.</shortDescription>
  
  
  
  1.5       +5 -41     avalon/repository/impl/src/java/org/apache/avalon/repository/impl/DefaultFactory.java
  
  Index: DefaultFactory.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/impl/src/java/org/apache/avalon/repository/impl/DefaultFactory.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultFactory.java	24 Jan 2004 23:20:05 -0000	1.4
  +++ DefaultFactory.java	19 Feb 2004 07:37:46 -0000	1.5
  @@ -38,7 +38,6 @@
   import org.apache.avalon.repository.RepositoryException ;
   import org.apache.avalon.repository.RepositoryRuntimeException;
   import org.apache.avalon.repository.provider.InitialContext ;
  -import org.apache.avalon.repository.provider.CacheManager ;
   import org.apache.avalon.repository.provider.Factory ;
   import org.apache.avalon.repository.util.RepositoryUtils ;
   
  @@ -128,12 +127,13 @@
       public Object create( Map map ) throws Exception
       {
           if( null == map )
  -          throw new NullPointerException( "map" );
  +        {
  +            throw new NullPointerException( "map" );
  +        }
   
           File root = getCache( map );
           String[] hosts = getHosts( map );
  -        ProxyContext proxy = createProxyContext( map );
  -        return new DefaultCacheManager( root, proxy, hosts );
  +        return new DefaultRepository( root, hosts );
       }
   
       private File getCache( Map map )
  @@ -146,41 +146,5 @@
       {
           return (String[]) map.get( 
               DefaultRepositoryCriteria.REPOSITORY_REMOTE_HOSTS );
  -    }
  -
  -    private ProxyContext createProxyContext( Map map )
  -    {
  -        final String proxyHostName = 
  -          (String) map.get( 
  -            DefaultRepositoryCriteria.REPOSITORY_PROXY_HOST );
  -
  -        if( null == proxyHostName )
  -        {
  -            return null;
  -        }
  -        else
  -        {    
  -            final String proxyUsername = 
  -              (String) map.get( 
  -                DefaultRepositoryCriteria.REPOSITORY_PROXY_USERNAME );
  -
  -            final String proxyPassword = 
  -              (String) map.get( 
  -                DefaultRepositoryCriteria.REPOSITORY_PROXY_PASSWORD );
  -
  -            Authenticator authenticator = 
  -              new DefaultAuthenticator( proxyUsername, proxyPassword );
  -
  -            Integer proxyPort = 
  -              (Integer) map.get( 
  -                DefaultRepositoryCriteria.REPOSITORY_PROXY_PORT );
  -            if( null == proxyPort ) proxyPort = new Integer( 0 );
  -
  -            return new ProxyContext( 
  -                proxyHostName, 
  -                proxyPort.intValue(), 
  -                authenticator );
  -        }
  -
       }
   }
  
  
  
  1.7       +9 -7      avalon/repository/impl/src/java/org/apache/avalon/repository/impl/DefaultRepository.java
  
  Index: DefaultRepository.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/impl/src/java/org/apache/avalon/repository/impl/DefaultRepository.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DefaultRepository.java	24 Jan 2004 23:20:05 -0000	1.6
  +++ DefaultRepository.java	19 Feb 2004 07:37:46 -0000	1.7
  @@ -41,7 +41,6 @@
   import org.apache.avalon.repository.RepositoryRuntimeException;
   import org.apache.avalon.repository.meta.FactoryDescriptor;
   import org.apache.avalon.repository.meta.MetaException;
  -import org.apache.avalon.repository.provider.CacheManager;
   import org.apache.avalon.repository.util.LoaderUtils;
   import org.apache.avalon.repository.util.RepositoryUtils;
   
  @@ -59,6 +58,11 @@
       //------------------------------------------------------------------
   
      /**
  +    * The cache directory.
  +    */
  +    private File m_cache;
  +
  +   /**
       * Sequence of remote hosts.
       */
       private final URL[] m_hosts;
  @@ -67,8 +71,6 @@
       * Sequence of remote hosts.
       */
       private final String[] m_roots;
  -
  -    private final CacheManager m_cache;
       
       //------------------------------------------------------------------
       // constructor 
  @@ -81,7 +83,7 @@
       * @exception NullPointerException if the cache or hosts argument
       * is null
       */
  -    public DefaultRepository( CacheManager cache, String[] hosts )
  +    public DefaultRepository( File cache, String[] hosts )
       {
           if( cache == null ) throw new NullPointerException( "cache" );
           if( hosts == null ) throw new NullPointerException( "hosts" );
  @@ -135,7 +137,7 @@
           throws RepositoryException
       {
           return LoaderUtils.getResource( 
  -          artifact, m_roots, m_cache.getCacheDirectory(), true );
  +          artifact, m_roots, m_cache, true );
       }
   
       /**
  @@ -149,7 +151,7 @@
           throws RepositoryException
       {
           return LoaderUtils.getResource( 
  -          artifact, mime, m_roots, m_cache.getCacheDirectory(), true );
  +          artifact, mime, m_roots, m_cache, true );
       }
           
       /**
  
  
  
  1.4       +74 -67    avalon/repository/impl/src/java/org/apache/avalon/repository/impl/DefaultRepositoryCriteria.java
  
  Index: DefaultRepositoryCriteria.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/impl/src/java/org/apache/avalon/repository/impl/DefaultRepositoryCriteria.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DefaultRepositoryCriteria.java	18 Feb 2004 13:34:14 -0000	1.3
  +++ DefaultRepositoryCriteria.java	19 Feb 2004 07:37:46 -0000	1.4
  @@ -28,6 +28,7 @@
   
   import org.apache.avalon.repository.RepositoryException;
   import org.apache.avalon.repository.provider.InitialContext;
  +import org.apache.avalon.repository.provider.RepositoryCriteria;
   
   import org.apache.avalon.util.criteria.Criteria;
   import org.apache.avalon.util.criteria.Parameter;
  @@ -46,7 +47,7 @@
    * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
    * @version $Revision$
    */
  -public class DefaultRepositoryCriteria extends Criteria
  +public class DefaultRepositoryCriteria extends Criteria implements RepositoryCriteria
   {
       //--------------------------------------------------------------
       // static
  @@ -63,66 +64,62 @@
           null );
   
      /**
  -    * Repository proxy host parameter descriptor.
  +    * Repository proxy password parameter descriptor.
       */
  -    public static final String REPOSITORY_PROXY_HOST = "avalon.repository.proxy.host";
  -    private static final Parameter REPOSITORY_PROXY_HOST_PARAM = 
  -      new Parameter( 
  -        REPOSITORY_PROXY_HOST,
  -        String.class,
  +    public static final String REPOSITORY_REMOTE_HOSTS = InitialContext.HOSTS_KEY;
  +    public static final Parameter REPOSITORY_REMOTE_HOSTS_PARAM = 
  +      new PackedParameter( 
  +        REPOSITORY_REMOTE_HOSTS,
  +        ",",
           null );
   
  +
      /**
  -    * Repository proxy port parameter descriptor.
  +    * Repository proxy host parameter descriptor.
       */
  -    public static final String REPOSITORY_PROXY_PORT = "avalon.repository.proxy.port";
  -    private static final Parameter REPOSITORY_PROXY_PORT_PARAM = 
  -      new Parameter( 
  -        REPOSITORY_PROXY_PORT,
  -        Integer.class,
  -        null );
  +    //public static final String REPOSITORY_PROXY_HOST = "avalon.repository.proxy.host";
  +    //private static final Parameter REPOSITORY_PROXY_HOST_PARAM = 
  +    //  new Parameter( 
  +    //    REPOSITORY_PROXY_HOST,
  +    //    String.class,
  +    //    null );
   
      /**
  -    * Repository proxy username parameter descriptor.
  +    * Repository proxy port parameter descriptor.
       */
  -    public static final String REPOSITORY_PROXY_USERNAME = "avalon.repository.proxy.username";
  -    private static final Parameter REPOSITORY_PROXY_USERNAME_PARAM = 
  -      new Parameter( 
  -        REPOSITORY_PROXY_USERNAME,
  -        String.class,
  -        null );
  +    //public static final String REPOSITORY_PROXY_PORT = "avalon.repository.proxy.port";
  +    //private static final Parameter REPOSITORY_PROXY_PORT_PARAM = 
  +    //  new Parameter( 
  +    //    REPOSITORY_PROXY_PORT,
  +    //    Integer.class,
  +    //    null );
   
      /**
  -    * Repository proxy password parameter descriptor.
  +    * Repository proxy username parameter descriptor.
       */
  -    public static final String REPOSITORY_PROXY_PASSWORD = "avalon.repository.proxy.password";
  -    private static final Parameter REPOSITORY_PROXY_PASSWORD_PARAM = 
  -      new Parameter( 
  -        REPOSITORY_PROXY_PASSWORD,
  -        String.class,
  -        null );
  +    //public static final String REPOSITORY_PROXY_USERNAME = "avalon.repository.proxy.username";
  +    //private static final Parameter REPOSITORY_PROXY_USERNAME_PARAM = 
  +    //  new Parameter( 
  +    //    REPOSITORY_PROXY_USERNAME,
  +    //    String.class,
  +    //    null );
   
      /**
       * Repository proxy password parameter descriptor.
       */
  -    public static final String REPOSITORY_REMOTE_HOSTS = InitialContext.HOSTS_KEY;
  -    public static final Parameter REPOSITORY_REMOTE_HOSTS_PARAM = 
  -      new PackedParameter( 
  -        REPOSITORY_REMOTE_HOSTS,
  -        ",",
  -        null );
  +    //public static final String REPOSITORY_PROXY_PASSWORD = "avalon.repository.proxy.password";
  +    //private static final Parameter REPOSITORY_PROXY_PASSWORD_PARAM = 
  +    //  new Parameter( 
  +    //    REPOSITORY_PROXY_PASSWORD,
  +    //    String.class,
  +    //    null );
   
      /**
       * The factory parameters template.
       */
       public static final Parameter[] PARAMS = new Parameter[]{
              REPOSITORY_CACHE_DIR_PARAM,
  -           REPOSITORY_REMOTE_HOSTS_PARAM,
  -           REPOSITORY_PROXY_HOST_PARAM,
  -           REPOSITORY_PROXY_PORT_PARAM,
  -           REPOSITORY_PROXY_USERNAME_PARAM,
  -           REPOSITORY_PROXY_PASSWORD_PARAM };
  -
  +           REPOSITORY_REMOTE_HOSTS_PARAM };
   
      /** 
       * The name of the static defaults property resource.
  @@ -220,33 +217,33 @@
                   throw new RepositoryException( error, e );
               }
   
  -            if( properties.containsKey( REPOSITORY_PROXY_HOST ) )
  -            {    
  -                put(
  -                  REPOSITORY_PROXY_HOST, 
  -                  new Integer( properties.getProperty( REPOSITORY_PROXY_HOST ) ) );
  +            //if( properties.containsKey( REPOSITORY_PROXY_HOST ) )
  +            //{    
  +            //    put(
  +            //      REPOSITORY_PROXY_HOST, 
  +            //      new Integer( properties.getProperty( REPOSITORY_PROXY_HOST ) ) );
       
  -                if( properties.containsKey( REPOSITORY_PROXY_PORT ) )
  -                {
  -                    put(
  -                      REPOSITORY_PROXY_PORT, 
  -                      new Integer( properties.getProperty( REPOSITORY_PROXY_PORT ) ) );
  -                }
  +            //    if( properties.containsKey( REPOSITORY_PROXY_PORT ) )
  +            //    {
  +            //        put(
  +            //          REPOSITORY_PROXY_PORT, 
  +            //          new Integer( properties.getProperty( REPOSITORY_PROXY_PORT ) ) );
  +            //    }
       
  -                if( properties.containsKey( REPOSITORY_PROXY_USERNAME ) )
  -                {
  -                    put(
  -                      REPOSITORY_PROXY_USERNAME, 
  -                      properties.getProperty( REPOSITORY_PROXY_USERNAME ) );
  -                }
  -
  -                if( properties.containsKey( REPOSITORY_PROXY_PASSWORD ) )
  -                {
  -                    put(
  -                      REPOSITORY_PROXY_PASSWORD, 
  -                      properties.getProperty( REPOSITORY_PROXY_PASSWORD ) );
  -                }
  -            }
  +            //    if( properties.containsKey( REPOSITORY_PROXY_USERNAME ) )
  +            //    {
  +            //        put(
  +            //          REPOSITORY_PROXY_USERNAME, 
  +            //          properties.getProperty( REPOSITORY_PROXY_USERNAME ) );
  +            //    }
  +
  +            //    if( properties.containsKey( REPOSITORY_PROXY_PASSWORD ) )
  +            //    {
  +            //        put(
  +            //          REPOSITORY_PROXY_PASSWORD, 
  +            //          properties.getProperty( REPOSITORY_PROXY_PASSWORD ) );
  +            //    }
  +            //}
           }
           catch( IOException ioe )
           {
  @@ -257,8 +254,18 @@
       }
   
       //--------------------------------------------------------------
  -    // Criteria
  +    // RepositoryCriteria
       //--------------------------------------------------------------
  +
  +    public void setCacheDirectory( File cache )
  +    {
  +        put( REPOSITORY_CACHE_DIR, cache );
  +    }
  +
  +    public void setHosts( String[] hosts )
  +    {
  +        put( REPOSITORY_REMOTE_HOSTS, hosts );
  +    }
   
       public String toString()
       {
  
  
  
  1.2       +0 -3      avalon/repository/impl/src/java/org/apache/avalon/repository/impl/avalon.properties
  
  Index: avalon.properties
  ===================================================================
  RCS file: /home/cvs/avalon/repository/impl/src/java/org/apache/avalon/repository/impl/avalon.properties,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- avalon.properties	6 Dec 2003 23:51:08 -0000	1.1
  +++ avalon.properties	19 Feb 2004 07:37:46 -0000	1.2
  @@ -1,6 +1,3 @@
   # 
   # static implementation defaults
   # 
  -# Alternative root cache directory.
  -# Normally supplied by initial context.
  -#avalon.home = 
  
  
  
  1.14      +2 -14     avalon/repository/main/src/java/org/apache/avalon/repository/main/DefaultBuilder.java
  
  Index: DefaultBuilder.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/main/src/java/org/apache/avalon/repository/main/DefaultBuilder.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DefaultBuilder.java	17 Feb 2004 11:06:16 -0000	1.13
  +++ DefaultBuilder.java	19 Feb 2004 07:37:46 -0000	1.14
  @@ -42,7 +42,6 @@
   import org.apache.avalon.repository.meta.FactoryDescriptor;
   import org.apache.avalon.repository.provider.Builder;
   import org.apache.avalon.repository.provider.InitialContext;
  -import org.apache.avalon.repository.provider.CacheManager;
   import org.apache.avalon.repository.provider.Factory;
   import org.apache.avalon.util.env.Env;
   import org.apache.avalon.util.exception.ExceptionHelper;
  @@ -243,18 +242,7 @@
   
           ClassLoader parent = getClassLoader( classloader );
   
  -        try
  -        {
  -            Factory factory = m_context.getInitialFactory();
  -            CacheManager manager = (CacheManager)factory.create();
  -            m_repository = manager.createRepository();
  -        }
  -        catch( Throwable e )
  -        {
  -            final String error = 
  -              "Internal error while attempt to construct initial repository.";
  -            throw new RepositoryException( error, e );           
  -        }
  +        m_repository = m_context.getRepository();
   
           Attributes attributes = m_repository.getAttributes( artifact );
           FactoryDescriptor descriptor = new FactoryDescriptor( attributes );
  
  
  
  1.21      +44 -378   avalon/repository/main/src/java/org/apache/avalon/repository/main/DefaultInitialContext.java
  
  Index: DefaultInitialContext.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/main/src/java/org/apache/avalon/repository/main/DefaultInitialContext.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- DefaultInitialContext.java	18 Feb 2004 02:23:57 -0000	1.20
  +++ DefaultInitialContext.java	19 Feb 2004 07:37:46 -0000	1.21
  @@ -40,6 +40,7 @@
   import java.util.jar.Manifest;
   import java.util.jar.JarFile;
   import java.util.zip.ZipEntry;
  +import java.net.Authenticator;
   
   import javax.naming.NamingException;
   import javax.naming.NamingEnumeration;
  @@ -52,6 +53,7 @@
   import org.apache.avalon.repository.meta.FactoryDescriptor;
   import org.apache.avalon.repository.provider.Factory;
   import org.apache.avalon.repository.provider.InitialContext;
  +import org.apache.avalon.repository.provider.RepositoryCriteria;
   import org.apache.avalon.repository.provider.Builder;
   import org.apache.avalon.repository.util.LoaderUtils;
   import org.apache.avalon.repository.util.RepositoryUtils;
  @@ -81,64 +83,6 @@
       */
       public static final String BLOCK_GROUP_KEY = "Block-Group";
   
  -   /**
  -    * The name of the properties file to be searched for confiuration
  -    * properties.  Seaches will be conducted on the current directory and 
  -    * the user's home directory.
  -    */
  -    public static final String AVALON_PROPERTIES = "avalon.properties";
  -
  -   /**
  -    * Return the Avalon system common directory.  This directory is 
  -    * is used as the default root directory against which the 
  -    * default application repository is established.  
  -    * 
  -    * @return the avalon system home directory.
  -    */
  -    public static File getAvalonHome()
  -    {
  -        try
  -        {
  -            String path = 
  -              System.getProperty( "avalon.home", Env.getEnvVariable( "AVALON_HOME" ) );
  -
  -            if( null != path )
  -            {
  -                return new File( path ).getCanonicalFile();
  -            }
  -            else
  -            {
  -                return new File(
  -                  System.getProperty( "user.home" ) 
  -                  + File.separator 
  -                  + ".avalon" ).getCanonicalFile();
  -            }
  -        }
  -        catch( Throwable e )
  -        {
  -            final String error = 
  -              "Internal error while attempting to access symbol AVALON_HOME.";
  -            final String message = 
  -              ExceptionHelper.packException( error, e, true );
  -            throw new RuntimeException( message );
  -        }
  -    }
  -
  -    //------------------------------------------------------------------
  -    // private static 
  -    //------------------------------------------------------------------
  -
  -    private static final String AVALON_IMPL_PROPERTIES = 
  -       "avalon.properties";
  -
  -    private static final File USER_HOME = 
  -      new File( System.getProperty( "user.home" ) );
  -
  -    private static final String[] DEFAULT_INITIAL_HOSTS = 
  -      new String[]{
  -        "http://dpml.net/", 
  -        "http://ibiblio.org/maven" };
  -
       //------------------------------------------------------------------
       // immutable state 
       //------------------------------------------------------------------
  @@ -149,7 +93,7 @@
       private final String m_key;
           
      /** 
  -    * The instantiated delegate repository factory.
  +    * The instantiated delegate cache manager factory.
       */
       private final Factory m_factory;
   
  @@ -168,176 +112,14 @@
       */
       private final File m_base;
   
  +    private final Repository m_repository;
  +
       // ------------------------------------------------------------------------
       // constructors
       // ------------------------------------------------------------------------
   
       /**
        * Creates an initial repository context.
  -     * 
  -     * @deprecated use {@link DefaultInitialContextFactory}
  -     * @throws RepositoryException if an error occurs during establishment
  -     */
  -    public DefaultInitialContext( ) 
  -        throws RepositoryException
  -    {
  -         this( (File) null );
  -    }
  -
  -    /**
  -     * Creates an initial repository context.
  -     * 
  -     * @deprecated use {@link DefaultInitialContextFactory}
  -     * @param cache the cache directory
  -     * @throws RepositoryException if an error occurs during establishment
  -     */
  -    public DefaultInitialContext( File cache ) 
  -        throws RepositoryException
  -    {
  -         this( cache, null );
  -    }
  -
  -    /**
  -     * Creates an initial repository context.
  -     * 
  -     * @deprecated use {@link DefaultInitialContextFactory}
  -     * @param hosts a set of initial remote repository addresses 
  -     * @throws RepositoryException if an error occurs during establishment
  -     */
  -    public DefaultInitialContext( String[] hosts ) 
  -        throws RepositoryException
  -    {
  -         this( (File) null, hosts );
  -    }
  -
  -    /**
  -     * Creates an initial repository context.
  -     * 
  -     * @deprecated use {@link DefaultInitialContextFactory}
  -     * @param hosts a set of initial remote repository addresses 
  -     * @param cache the cache directory
  -     * @throws RepositoryException if an error occurs during establishment
  -     */
  -    public DefaultInitialContext( File cache, String[] hosts ) 
  -        throws RepositoryException
  -    {
  -         this( (Artifact) null, cache, hosts );
  -    }
  -    
  -    /**
  -     * Creates an initial repository context.
  -     *
  -     * @deprecated use {@link DefaultInitialContextFactory}
  -     * @param artifact an artifact referencing the default implementation
  -     * @param cache the cache directory
  -     * @param hosts a set of initial remote repository addresses 
  -     * @throws RepositoryException if an error occurs during establishment
  -     */
  -    public DefaultInitialContext( 
  -      Artifact artifact, File cache, String[] hosts ) 
  -      throws RepositoryException
  -    {
  -        this( 
  -          null, null, artifact, cache, hosts );
  -    }
  -
  -    /**
  -     * Creates an initial repository context.
  -     *
  -     * @deprecated use {@link DefaultInitialContextFactory}
  -     * @param base the base working directory
  -     * @param loader the parent classloader
  -     * @param artifact an artifact referencing the default implementation
  -     * @param cache the cache directory
  -     * @param hosts a set of initial remote repository addresses 
  -     * @throws RepositoryException if an error occurs during establishment
  -     */
  -    public DefaultInitialContext( 
  -      File base, ClassLoader loader, Artifact artifact, File cache, String[] hosts ) 
  -      throws RepositoryException
  -    {
  -        m_key = "avalon";
  -
  -        m_base = setupBaseDirectory( base );
  -        m_cache = setupCache( cache, base );
  -        m_hosts = setupHosts( hosts, base );
  -
  -        Artifact implementation = setupImplementation( artifact );
  -        ClassLoader parent = setupClassLoader( loader );
  -
  -        //
  -        // Create the temporary directory to pull down files into
  -        //
  -
  -        if ( ! m_cache.exists() ) m_cache.mkdirs();
  -
  -        //
  -        // Build the url to access the properties of the implementation artifact
  -        // which is default mechanism dependent.
  -        //
  -
  -        Attributes attributes = loadAttributes( m_cache, m_hosts, implementation );
  -        FactoryDescriptor descriptor = new FactoryDescriptor( attributes );
  -        String factory = descriptor.getFactory();
  -        if( null == factory ) 
  -        {
  -            final String error = 
  -              "Required property 'avalon.artifact.factory' not present in artifact: "
  -              + implementation + " under the active cache: [" + m_cache + "] using the "
  -              + "attribute sequence: " + attributes;
  -            throw new IllegalArgumentException( error );
  -        }
  -
  -        //
  -        // Grab all of the dependents in one hit because this is 
  -        // the implementation so we can ignore api/spi spread.
  -        //
  -
  -        Artifact[] dependencies = descriptor.getDependencies();
  -
  -        int n = dependencies.length;
  -        URL[] urls = new URL[ n + 1];
  -        for( int i=0; i<n; i++ )
  -        {
  -            urls[i] = LoaderUtils.getResource( 
  -              dependencies[i], m_hosts, m_cache, true );
  -        }
  -
  -        urls[ n ] = LoaderUtils.getResource( 
  -            implementation, m_hosts, m_cache, true );
  -
  -        //
  -        // create the classloader
  -        //
  -        
  -        ClassLoader classloader = new URLClassLoader( urls, parent );
  -        Class clazz = loadFactoryClass( classloader, factory );
  -
  -        //
  -        // load the actual repository implementation 
  -        //
  -
  -        try
  -        {
  -            m_factory = createDelegate( classloader, clazz, this );
  -        }
  -        catch( Throwable e )
  -        {
  -            final String error = 
  -              "Unable to establish a factory for the supplied artifact:";
  -            StringBuffer buffer = new StringBuffer( error );
  -            buffer.append( "\n artifact: " + implementation );
  -            buffer.append( "\n build: " + descriptor.getBuild() );
  -            buffer.append( "\n factory: " + descriptor.getFactory() );
  -            buffer.append( "\n source: " 
  -              + clazz.getProtectionDomain().getCodeSource().getLocation() );
  -            buffer.append( "\n cache: " + m_cache );
  -            throw new RepositoryException( buffer.toString(), e );
  -        }
  -    }
  -
  -    /**
  -     * Creates an initial repository context.
        *
        * @param parent the parent classloader
        * @param artifact an artifact referencing the default implementation
  @@ -347,7 +129,9 @@
        * @throws RepositoryException if an error occurs during establishment
        */
       DefaultInitialContext( 
  -      String key, ClassLoader parent, Artifact artifact, File base, File cache, String[] hosts ) 
  +      String key, ClassLoader parent, Artifact artifact, File base, File cache, 
  +      String proxyHost, int proxyPort, String proxyUsername, String proxyPassword, 
  +      String[] hosts ) 
         throws RepositoryException
       {
           if( null == key ) throw new NullPointerException( "key" ); 
  @@ -362,6 +146,8 @@
           m_cache = cache;
           m_hosts = hosts;
   
  +        setupProxy( proxyHost, proxyPort, proxyUsername, proxyPassword );
  +
           Attributes attributes = loadAttributes( m_cache, m_hosts, artifact );
           FactoryDescriptor descriptor = new FactoryDescriptor( attributes );
           String factory = descriptor.getFactory();
  @@ -400,12 +186,17 @@
           Class clazz = loadFactoryClass( classloader, factory );
   
           //
  -        // load the actual repository implementation 
  +        // load the cache manager factory implementation 
           //
   
           try
           {
               m_factory = createDelegate( classloader, clazz, this );
  +            RepositoryCriteria criteria = 
  +              (RepositoryCriteria) m_factory.createDefaultCriteria();
  +            criteria.setCacheDirectory( m_cache );
  +            criteria.setHosts( m_hosts );
  +            m_repository = (Repository) m_factory.create( criteria );
           }
           catch( Throwable e )
           {
  @@ -421,11 +212,37 @@
               throw new RepositoryException( buffer.toString(), e );
           }
       }
  -  
  +
  +    private void setupProxy( 
  +      final String host, final int port, final String username, final String password )
  +    {
  +        if( null == host ) return;
  +        Properties system = System.getProperties();
  +        system.put( "proxySet", "true" );
  +        system.put( "proxyHost", host );
  +        system.put( "proxyPort", String.valueOf( port ) );
  +        if( null != username )
  +        {
  +            Authenticator authenticator = 
  +              new DefaultAuthenticator( username, password );
  +            Authenticator.setDefault( authenticator );
  +        }
  +    }
  +
       // ------------------------------------------------------------------------
       // InitialContext
       // ------------------------------------------------------------------------
   
  +    public String getProperty( final String key )
  +    {
  +        return null;
  +    }
  +
  +    public Repository getRepository()
  +    {
  +        return m_repository;
  +    }
  +
       /**
        * Return the application key.  The value of the key may be used 
        * to resolve property files by using the convention 
  @@ -666,156 +483,5 @@
           {
                return RepositoryUtils.getAttributes( hosts, artifact );
           }
  -    }
  -
  -    private ClassLoader setupClassLoader( ClassLoader classloader )
  -    {
  -        if( null != classloader ) return classloader;
  -        return DefaultInitialContext.class.getClassLoader();
  -    }
  -
  -    private File setupCache( File cache, File base )
  -    {
  -        if( null != cache ) return cache;
  -        return setupDefaultCache( base );
  -    }
  -
  -    private String[] setupHosts( String[] hosts, File base )
  -    {
  -        if( null != hosts ) return RepositoryUtils.getCleanPaths( hosts );
  -        return setupDefaultHosts( base );
  -    }
  -
  -    private Artifact setupImplementation( Artifact artifact )
  -    {
  -        if( null != artifact ) return artifact;
  -        return getDefaultImplementation( );
  -    }
  -
  -   /**
  -    * Build the properties that declare the default repository
  -    * implementation that was assigned at build time.
  -    */
  -    private static Properties createDefaultProperties()
  -    {
  -        final String path = AVALON_IMPL_PROPERTIES;
  -        try
  -        {
  -            Properties properties = new Properties();
  -            ClassLoader classloader = DefaultInitialContext.class.getClassLoader();
  -            InputStream input = classloader.getResourceAsStream( path );
  -            if( input == null ) 
  -            {
  -                final String error = 
  -                  "Missing resource: [" + path + "]";
  -                throw new Error( error );
  -            }
  -            properties.load( input );
  -            return properties;
  -        }
  -        catch ( Throwable e )
  -        {
  -            final String error = 
  -              "Internal error. " 
  -              + "Unable to locate the standard repository implementation directive.";
  -            RepositoryException re = new RepositoryException( error, e );
  -            re.printStackTrace( System.err );
  -            return null;
  -        }
  -    }
  -
  -    private static Artifact getDefaultImplementation()
  -    {
  -        Properties properties = createDefaultProperties();
  -        String spec = properties.getProperty( 
  -          InitialContext.IMPLEMENTATION_KEY );
  -        if( null == spec )
  -        {
  -            final String error =
  -              "Missing avalon.properties resource.";
  -            throw new IllegalStateException( error );
  -        }
  -        return Artifact.createArtifact( spec );
  -    }
  -
  -    private File setupBaseDirectory( File base )
  -    {
  -        if( null != base ) return base;
  -        return getBaseDirectory();
  -    }
  -
  -    private String[] setupDefaultHosts( File base )
  -    {
  -        String homeValue = getUserProperties().getProperty( HOSTS_KEY );
  -        String workValue = getWorkProperties( base ).getProperty( HOSTS_KEY, homeValue );
  -        String value = System.getProperty( HOSTS_KEY , workValue );
  -        if( null == value ) return DEFAULT_INITIAL_HOSTS;
  -        return expandHosts( value );
  -    }
  -
  -    private static File setupDefaultCache( File base )
  -    {
  -        String homeValue = getUserProperties().getProperty( CACHE_KEY );
  -        String workValue = getWorkProperties( base ).getProperty( CACHE_KEY, homeValue );
  -        String value = System.getProperty( CACHE_KEY , workValue );
  -        if( null != value ) return new File( value  );
  -        return getDefaultCache();
  -    }
  -
  -    private static File getDefaultCache()
  -    {
  -        return new File( getAvalonHome(), "repository" );
  -    }
  -
  -    private static File getBaseDirectory()
  -    {
  -        String base = System.getProperty( "basedir" );
  -        if( null != base )
  -        {
  -            return new File( base );
  -        }
  -        return new File( System.getProperty( "user.dir" ) );
  -    }
  -
  -    private static Properties getLocalProperties( 
  -      File dir, String filename ) 
  -    {
  -        Properties properties = new Properties();
  -        if( null == dir ) return properties;
  -        File file = new File( dir, filename );
  -        if( !file.exists() ) return properties;
  -        try
  -        {
  -            properties.load( new FileInputStream( file ) );
  -            return properties;
  -        }
  -        catch( Throwable e )
  -        {
  -            final String error = 
  -              "Unexpected exception while attempting to read properties from: " 
  -              + file;
  -            throw new RepositoryRuntimeException( error, e );
  -        }
  -    }
  -
  -    private static String[] expandHosts( String arg )
  -    {
  -        ArrayList list = new ArrayList();
  -        StringTokenizer tokenizer = new StringTokenizer( arg, "," );
  -        while( tokenizer.hasMoreTokens() )
  -        {
  -            list.add( tokenizer.nextToken() );
  -        }
  -        return (String[]) list.toArray( new String[0] );
  -    }
  -
  -    private static Properties getUserProperties()
  -    {
  -        return getLocalProperties( USER_HOME, AVALON_PROPERTIES );
  -    }
  -
  -    private static Properties getWorkProperties( File base )
  -    {
  -        return getLocalProperties( base, AVALON_PROPERTIES );
       }
   }
  
  
  
  1.4       +100 -1    avalon/repository/main/src/java/org/apache/avalon/repository/main/DefaultInitialContextFactory.java
  
  Index: DefaultInitialContextFactory.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/main/src/java/org/apache/avalon/repository/main/DefaultInitialContextFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DefaultInitialContextFactory.java	18 Feb 2004 02:23:57 -0000	1.3
  +++ DefaultInitialContextFactory.java	19 Feb 2004 07:37:46 -0000	1.4
  @@ -118,6 +118,14 @@
   
       private String[] m_hosts;
   
  +    private String m_proxyHost;
  +
  +    private int m_proxyPort;
  +
  +    private String m_proxyUsername;
  +
  +    private String m_proxyPassword;
  +
       // ------------------------------------------------------------------------
       // constructor
       // ------------------------------------------------------------------------
  @@ -245,6 +253,47 @@
       }
   
      /**
  +    * Set the proxy host name.  If not supplied proxy usage will be 
  +    * disabled.
  +    *
  +    * @param host the proxy host name
  +    */
  +    public void setProxyHost( String host )
  +    {
  +        m_proxyHost = host;
  +    }
  +
  +   /**
  +    * Set the proxy host port.
  +    *
  +    * @param port the proxy port
  +    */
  +    public void setProxyPort( int port )
  +    {
  +        m_proxyPort = port;
  +    }
  +
  +   /**
  +    * Set the proxy username.
  +    *
  +    * @param username the proxy username
  +    */
  +    public void setProxyUsername( String username )
  +    {
  +        m_proxyUsername = username;
  +    }
  +
  +   /**
  +    * Set the proxy account password.
  +    *
  +    * @param password the proxy password
  +    */
  +    public void setProxyPassword( String password )
  +    {
  +        m_proxyPassword = password;
  +    }
  +
  +   /**
       * Creation of an inital context based on the system and working 
       * directory, parent classloader, repository cache manager implementation
       * artifact, cache directory, and remote hosts sequence supplied to the 
  @@ -262,6 +311,10 @@
                 getImplementation(),
                 getWorkingDirectory(),
                 getCacheDirectory(),
  +              getProxyHost(),
  +              getProxyPort(),
  +              getProxyUsername(),
  +              getProxyPassword(),
                 getHosts() );
           }
           catch( Throwable e )
  @@ -346,6 +399,52 @@
           String value = m_properties.getProperty( InitialContext.HOSTS_KEY );
           if( null == value ) return new String[0];
           return expandHosts( value );
  +    }
  +
  +   /**
  +    * Get the proxy host name.
  +    *
  +    * @return the proxy host name
  +    */
  +    public String getProxyHost()
  +    {
  +        if( null != m_proxyHost ) return m_proxyHost;
  +        return m_properties.getProperty( InitialContext.PROXY_HOST_KEY );
  +    }
  +
  +   /**
  +    * Get the proxy host port.
  +    *
  +    * @return the proxy port
  +    */
  +    public int getProxyPort()
  +    {
  +        if( m_proxyPort > -1 ) return m_proxyPort;
  +        String value = m_properties.getProperty( InitialContext.PROXY_PORT_KEY );
  +        if( value != null ) return Integer.parseInt( value );
  +        return -1;
  +    }
  +
  +   /**
  +    * Get the proxy username.
  +    *
  +    * @return the proxy username
  +    */
  +    public String getProxyUsername()
  +    {
  +        if( null != m_proxyUsername ) return m_proxyUsername;
  +        return m_properties.getProperty( InitialContext.PROXY_USERNAME_KEY );
  +    }
  +
  +   /**
  +    * Set the proxy account password.
  +    *
  +    * @return the proxy password
  +    */
  +    public String getProxyPassword()
  +    {
  +        if( null != m_proxyPassword ) return m_proxyPassword;
  +        return m_properties.getProperty( InitialContext.PROXY_PASSWORD_KEY );
       }
   
       // ------------------------------------------------------------------------
  
  
  
  1.2       +64 -0     avalon/repository/main/src/java/org/apache/avalon/repository/main/DefaultAuthenticator.java
  
  
  
  
  1.14      +1 -1      avalon/repository/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/repository/project.xml,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- project.xml	17 Feb 2004 11:06:17 -0000	1.13
  +++ project.xml	19 Feb 2004 07:37:47 -0000	1.14
  @@ -6,7 +6,7 @@
     <groupId>avalon</groupId>
     <id>avalon-repository</id>
     <name>Avalon Repository</name>
  -  <currentVersion>1.3</currentVersion>
  +  <currentVersion>1.3-SNAPSHOT</currentVersion>
   
     <organization>
       <name>Apache Software Foundation</name>
  
  
  
  1.10      +42 -14    avalon/repository/spi/src/java/org/apache/avalon/repository/provider/InitialContext.java
  
  Index: InitialContext.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/spi/src/java/org/apache/avalon/repository/provider/InitialContext.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- InitialContext.java	18 Feb 2004 02:23:58 -0000	1.9
  +++ InitialContext.java	19 Feb 2004 07:37:47 -0000	1.10
  @@ -22,6 +22,7 @@
   import java.util.jar.Manifest;
   
   import org.apache.avalon.repository.Artifact;
  +import org.apache.avalon.repository.Repository;
   import org.apache.avalon.repository.RepositoryException;
   
   
  @@ -31,7 +32,7 @@
    * @author <a href="mailto:mcconnell@osm.net">Stephen McConnell</a>
    * @version $Revision$ $Date$
    */
  -public interface InitialContext
  +public interface InitialContext 
   {        
      /**
       * The property key used when resolving the default implementation
  @@ -50,17 +51,45 @@
       */
       String HOSTS_KEY = "avalon.repository.hosts";
   
  +    String PROXY_HOST_KEY = "avalon.repository.proxy.host";
  +    String PROXY_PORT_KEY = "avalon.repository.proxy.port";
  +    String PROXY_USERNAME_KEY = "avalon.repository.proxy.username";
  +    String PROXY_PASSWORD_KEY = "avalon.repository.proxy.password";
  +
       String LINE = 
         "\n-----------------------------------------------------------";
   
  +   /**
  +    * Return the application key.  The value of the key may be used 
  +    * to resolve property files by using the convention 
  +    * [key].properties.
  +    * 
  +    * @return the application key.
  +    */
  +    String getApplicationKey();
  +
  +   /**
  +    * <p>Get the value of a property. If the property value does not 
  +    * exists a null value will be returned.  Property value resolution
  +    * shall take into account the following ordered property sources
  +    * (resolved relative to the application key):</p>
  +    * <ul>
  +    * <li>system properties</li>
  +    * <li>working directory properties</li>
  +    * <li>user properties</li>
  +    * <li>application properties</li>
  +    * </ul>
  +    *
  +    * @return the property value
  +    */
  +    String getProperty( String key );
  +
       /**
  -     * Return the application key.  The value of the key may be used 
  -     * to resolve property files by using the convention 
  -     * [key].properties.
  +     * Return cache root directory.
        * 
  -     * @return the application key.
  +     * @return the cache directory
        */
  -    String getApplicationKey();
  +    File getInitialCacheDirectory();
   
       /**
        * Return the base working directory.
  @@ -70,13 +99,6 @@
       File getInitialWorkingDirectory();
   
       /**
  -     * Return cache root directory.
  -     * 
  -     * @return the cache directory
  -     */
  -    File getInitialCacheDirectory();
  -    
  -    /**
        * Return the initial set of host names.
        * @return the host names sequence
        */
  @@ -87,6 +109,12 @@
       * @return the initial repository factory
       */
       Factory getInitialFactory();
  +
  +   /**
  +    * Return the repository.
  +    * @return the repository
  +    */
  +    Repository getRepository();
   
      /**
       * Create a factory builder using a supplied artifact.
  
  
  
  1.2       +30 -1     avalon/repository/spi/src/java/org/apache/avalon/repository/provider/InitialContextFactory.java
  
  Index: InitialContextFactory.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/spi/src/java/org/apache/avalon/repository/provider/InitialContextFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InitialContextFactory.java	17 Feb 2004 11:06:17 -0000	1.1
  +++ InitialContextFactory.java	19 Feb 2004 07:37:47 -0000	1.2
  @@ -75,6 +75,35 @@
       void setCacheDirectory( File cache );
   
      /**
  +    * Set the proxy host name.  If not supplied proxy usage will be 
  +    * disabled.
  +    *
  +    * @param host the proxy host name
  +    */
  +    void setProxyHost( String host );
  +
  +   /**
  +    * Set the proxy host port.
  +    *
  +    * @param port the proxy port
  +    */
  +    void setProxyPort( int port );
  +
  +   /**
  +    * Set the proxy username.
  +    *
  +    * @param username the proxy username
  +    */
  +    void setProxyUsername( String username );
  +
  +   /**
  +    * Set the proxy account password.
  +    *
  +    * @param password the proxy password
  +    */
  +    void setProxyPassword( String password );
  +
  +   /**
       * Set the initial hosts to be used by a repository cache manager 
       * implementation and the initial context implementation when 
       * resolving dependent resources.  If is resource is not present
  
  
  
  1.2       +62 -0     avalon/repository/spi/src/java/org/apache/avalon/repository/provider/RepositoryCriteria.java
  
  
  
  
  1.7       +21 -22    avalon/repository/test/src/test/org/apache/avalon/repository/main/DefaultInitialContextTest.java
  
  Index: DefaultInitialContextTest.java
  ===================================================================
  RCS file: /home/cvs/avalon/repository/test/src/test/org/apache/avalon/repository/main/DefaultInitialContextTest.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DefaultInitialContextTest.java	24 Jan 2004 23:20:06 -0000	1.6
  +++ DefaultInitialContextTest.java	19 Feb 2004 07:37:47 -0000	1.7
  @@ -23,12 +23,13 @@
   
   import junit.framework.TestCase ;
   
  -import org.apache.avalon.repository.Artifact ;
  -import org.apache.avalon.repository.Repository ;
  -import org.apache.avalon.repository.RepositoryException ;
  -import org.apache.avalon.repository.provider.CacheManager ;
  -import org.apache.avalon.repository.provider.Factory ;
  -import org.apache.avalon.repository.provider.InitialContext ;
  +import org.apache.avalon.repository.Artifact;
  +import org.apache.avalon.repository.Repository;
  +import org.apache.avalon.repository.RepositoryException;
  +import org.apache.avalon.repository.provider.Factory;
  +import org.apache.avalon.repository.provider.InitialContext;
  +import org.apache.avalon.repository.provider.InitialContextFactory;
  +import org.apache.avalon.repository.main.DefaultInitialContextFactory;
   
   import org.apache.avalon.util.env.Env;
   import org.apache.avalon.util.exception.ExceptionHelper;
  @@ -42,11 +43,10 @@
    */
   public class DefaultInitialContextTest extends TestCase
   {
  +    private static final String KEY = "test";
   
  -    public static void main(String[] args)
  -    {
  -        junit.textui.TestRunner.run(DefaultInitialContextTest.class);
  -    }
  +    private static final File BASEDIR = 
  +      new File( System.getProperty( "basedir" ) );
   
       /**
        * Constructor for DefaultInitialContextTest.
  @@ -59,10 +59,12 @@
   
       public void testRepositoryBootstrap() throws Exception
       {
  -        InitialContext context = 
  -          new DefaultInitialContext( 
  -            getMavenRepositoryDirectory(),
  -            getDefaultHosts() );
  +        DefaultInitialContextFactory factory = 
  +          new DefaultInitialContextFactory( KEY, BASEDIR );
  +        factory.setCacheDirectory( getMavenRepositoryDirectory() );
  +        factory.setHosts( getDefaultHosts() );
  +
  +        InitialContext context = factory.createInitialContext();
   
           assertEquals( 
             "cache", 
  @@ -80,15 +82,12 @@
                 "host", defaults[i], hosts[i] );
           }
   
  -        Factory factory = context.getInitialFactory();
  -        assertNotNull( factory );
  +        Factory initialFactory = context.getInitialFactory();
  +        assertNotNull( initialFactory );
   
  -        CacheManager manager = (CacheManager) factory.create() ;
  -        assertNotNull( manager ) ;
  -   
  -        Repository repository = manager.createRepository() ;
  +        Repository repository = (Repository) context.getRepository() ;
           assertNotNull( repository ) ;
  -        
  +   
           Artifact artifact = Artifact.createArtifact( 
             "avalon-framework", "avalon-framework-api", "4.1.5" );
           URL url = repository.getResource( artifact );
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org