You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ep...@apache.org on 2006/02/25 01:17:43 UTC

svn commit: r380871 - in /maven/repository-manager/trunk/maven-repository-proxy/src: main/java/org/apache/maven/repository/proxy/ main/java/org/apache/maven/repository/proxy/configuration/ test/java/org/apache/maven/repository/proxy/ test/m1-remote-rep...

Author: epunzalan
Date: Fri Feb 24 16:17:39 2006
New Revision: 380871

URL: http://svn.apache.org/viewcvs?rev=380871&view=rev
Log:
PR: MRM-59

Made the proxy able to respond to m1 path requests

Added:
    maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/LegacyProxyManagerTest.java
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt.md5
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt.sha1
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar   (with props)
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar.md5
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/poms/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/poms/commons-logging-1.0.pom
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/not-standard/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/not-standard/repository/
    maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/not-standard/repository/file.txt
Modified:
    maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java
    maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/ProxyManagerFactory.java
    maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java

Modified: maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java?rev=380871&r1=380870&r2=380871&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java (original)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java Fri Feb 24 16:17:39 2006
@@ -49,7 +49,7 @@
 
 /**
  * @author Edwin Punzalan
- * @plexus.component role="org.apache.maven.repository.proxy.ProxyManager" role-hint="default"
+ * @plexus.component role="org.apache.maven.repository.proxy.ProxyManager"
  */
 public class DefaultProxyManager
     extends AbstractLogEnabled

Modified: maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/ProxyManagerFactory.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/ProxyManagerFactory.java?rev=380871&r1=380870&r2=380871&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/ProxyManagerFactory.java (original)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/ProxyManagerFactory.java Fri Feb 24 16:17:39 2006
@@ -49,7 +49,8 @@
     public ProxyManager getProxyManager( String proxy_type, ProxyConfiguration config )
         throws ComponentLookupException
     {
-        ProxyManager proxy = (ProxyManager) container.lookup( ProxyManager.ROLE, proxy_type );
+        ProxyManager proxy = (ProxyManager) container.lookup( ProxyManager.ROLE );
+        config.setLayout( proxy_type );
         proxy.setConfiguration( config );
         return proxy;
     }

Modified: maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java?rev=380871&r1=380870&r2=380871&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java (original)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java Fri Feb 24 16:17:39 2006
@@ -21,6 +21,7 @@
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.artifact.repository.layout.LegacyRepositoryLayout;
 import org.apache.maven.repository.proxy.repository.ProxyRepository;
 
 import java.io.File;
@@ -52,6 +53,8 @@
 
     private List repositories = new ArrayList();
 
+    private ArtifactRepositoryLayout layout;
+
     /**
      * Method to set/unset the web-view of the repository cache
      *
@@ -83,11 +86,9 @@
         standardPolicy = new ArtifactRepositoryPolicy( true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
                                                        ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE );
 
-        ArtifactRepositoryLayout layout = new DefaultRepositoryLayout();
-
         repoCache = artifactRepositoryFactory.createArtifactRepository( "localCache",
                                                                         "file://" + new File( path ).getAbsolutePath(),
-                                                                        layout, standardPolicy, standardPolicy );
+                                                                        getLayout(), standardPolicy, standardPolicy );
     }
 
     /**
@@ -159,7 +160,6 @@
         this.setBrowsable( rcc.isBrowsable() );
 
         List repoList = new ArrayList();
-        ArtifactRepositoryLayout layout = new DefaultRepositoryLayout();
         for ( Iterator repos = rcc.getRepos().iterator(); repos.hasNext(); )
         {
             RepoConfiguration repoConfig = (RepoConfiguration) repos.next();
@@ -167,7 +167,7 @@
             //skip local store repo
             if ( !repoConfig.getKey().equals( "global" ) )
             {
-                ProxyRepository repo = new ProxyRepository( repoConfig.getKey(), repoConfig.getUrl(), layout );
+                ProxyRepository repo = new ProxyRepository( repoConfig.getKey(), repoConfig.getUrl(), getLayout() );
                 repo.setCacheFailures( repoConfig.getCacheFailures() );
                 repo.setCachePeriod( repoConfig.getCachePeriod() );
                 repo.setHardfail( repoConfig.getHardFail() );
@@ -185,5 +185,27 @@
         }
 
         this.setRepositories( repoList );
+    }
+
+    public ArtifactRepositoryLayout getLayout()
+    {
+        if ( layout == null )
+        {
+            setLayout( "default" );
+        }
+
+        return layout;
+    }
+
+    public void setLayout( String layout )
+    {
+        if ( "legacy".equalsIgnoreCase( layout ) )
+        {
+            this.layout = new LegacyRepositoryLayout();
+        }
+        else
+        {
+            this.layout = new DefaultRepositoryLayout();
+        }
     }
 }

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/LegacyProxyManagerTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/LegacyProxyManagerTest.java?rev=380871&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/LegacyProxyManagerTest.java (added)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/LegacyProxyManagerTest.java Fri Feb 24 16:17:39 2006
@@ -0,0 +1,150 @@
+package org.apache.maven.repository.proxy;
+
+/*
+ * Copyright 2005-2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.repository.layout.LegacyRepositoryLayout;
+import org.apache.maven.repository.proxy.configuration.ProxyConfiguration;
+import org.apache.maven.repository.proxy.repository.ProxyRepository;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+
+import java.io.File;
+
+/**
+ * @author Edwin Punzalan
+ */
+public class LegacyProxyManagerTest
+    extends PlexusTestCase
+{
+    private ProxyManager proxy;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        ProxyManagerFactory factory = (ProxyManagerFactory) container.lookup( ProxyManagerFactory.ROLE );
+        proxy = factory.getProxyManager( "default", getTestConfiguration() );
+    }
+
+    public void testExceptions()
+    {
+        proxy.setConfiguration( null );
+
+        try
+        {
+            proxy.get( "/invalid" );
+            fail( "Expected empty configuration error." );
+        }
+        catch ( ProxyException e )
+        {
+            assertEquals( "Expected Exception not thrown.", "No proxy configuration defined.", e.getMessage() );
+        }
+        catch ( ResourceDoesNotExistException e )
+        {
+            fail( "Expected Exception not thrown." );
+        }
+    }
+
+    public void testArtifactDownload()
+        throws Exception
+    {
+        //test download
+        File file = proxy.get( "/commons-logging/jars/commons-logging-1.0.jar" );
+        assertTrue( "File must be downloaded.", file.exists() );
+        assertTrue( "Downloaded file should be present in the cache.",
+                    file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
+
+        //test cache
+        file = proxy.get( "/commons-logging/jars/commons-logging-1.0.jar" );
+
+        try
+        {
+            file = proxy.get( "/commons-logging/jars/commons-logging-2.0.jar" );
+            fail( "Expected ResourceDoesNotExistException exception not thrown" );
+        }
+        catch ( ResourceDoesNotExistException e )
+        {
+            assertTrue( true );
+        }
+    }
+
+    public void testArtifactChecksum()
+        throws Exception
+    {
+        //force the downlod from the remote repository, use getRemoteFile()
+        File file = proxy.getRemoteFile( "/commons-logging/jars/commons-logging-1.0.jar.md5" );
+        assertTrue( "File must be downloaded.", file.exists() );
+        assertTrue( "Downloaded file should be present in the cache.",
+                    file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
+    }
+
+    public void testNonArtifactWithNoChecksum()
+        throws Exception
+    {
+        File file = proxy.get( "/not-standard/repository/file.txt" );
+        assertTrue( "File must be downloaded.", file.exists() );
+        assertTrue( "Downloaded file should be present in the cache.",
+                    file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
+    }
+
+    public void testNonArtifactWithMD5Checksum()
+        throws Exception
+    {
+        File file = proxy.get( "/checksumed-md5/repository/file.txt" );
+        assertTrue( "File must be downloaded.", file.exists() );
+        assertTrue( "Downloaded file should be present in the cache.",
+                    file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
+    }
+
+    public void testNonArtifactWithSHA1Checksum()
+        throws Exception
+    {
+        File file = proxy.get( "/checksumed-sha1/repository/file.txt" );
+        assertTrue( "File must be downloaded.", file.exists() );
+        assertTrue( "Downloaded file should be present in the cache.",
+                    file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
+    }
+
+    protected void tearDown()
+        throws Exception
+    {
+        container.release( proxy );
+
+        super.tearDown();
+    }
+
+    private ProxyConfiguration getTestConfiguration()
+        throws ComponentLookupException
+    {
+        ProxyConfiguration config = (ProxyConfiguration) container.lookup( ProxyConfiguration.ROLE );
+
+        config.setRepositoryCachePath( "target/proxy-cache" );
+
+        ArtifactRepositoryLayout layout = new LegacyRepositoryLayout();
+
+        File repo1File = getTestFile( "src/test/m1-remote-repo" );
+
+        ProxyRepository repo1 = new ProxyRepository( "m1-test-repo", "file://" + repo1File.getAbsolutePath(), layout );
+
+        config.addRepository( repo1 );
+
+        return config;
+    }
+}

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt?rev=380871&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt (added)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt Fri Feb 24 16:17:39 2006
@@ -0,0 +1 @@
+test file only
\ No newline at end of file

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt.md5
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt.md5?rev=380871&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt.md5 (added)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-md5/repository/file.txt.md5 Fri Feb 24 16:17:39 2006
@@ -0,0 +1 @@
+a473f827aa9d5df4e84c802e054c50f7
\ No newline at end of file

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt?rev=380871&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt (added)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt Fri Feb 24 16:17:39 2006
@@ -0,0 +1 @@
+test file only
\ No newline at end of file

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt.sha1
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt.sha1?rev=380871&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt.sha1 (added)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/checksumed-sha1/repository/file.txt.sha1 Fri Feb 24 16:17:39 2006
@@ -0,0 +1 @@
+afb037c2bd96fe1ef1cfd220e82682d088d60d3e
\ No newline at end of file

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar?rev=380871&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar.md5
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar.md5?rev=380871&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar.md5 (added)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/jars/commons-logging-1.0.jar.md5 Fri Feb 24 16:17:39 2006
@@ -0,0 +1 @@
+240b26992977c9ad119efb91cb21f8f8
\ No newline at end of file

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/poms/commons-logging-1.0.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/poms/commons-logging-1.0.pom?rev=380871&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/poms/commons-logging-1.0.pom (added)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/commons-logging/poms/commons-logging-1.0.pom Fri Feb 24 16:17:39 2006
@@ -0,0 +1,6 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>commons-logging</groupId>
+  <artifactId>commons-logging</artifactId>
+  <version>1.0</version>
+</project>

Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/not-standard/repository/file.txt
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/not-standard/repository/file.txt?rev=380871&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/not-standard/repository/file.txt (added)
+++ maven/repository-manager/trunk/maven-repository-proxy/src/test/m1-remote-repo/not-standard/repository/file.txt Fri Feb 24 16:17:39 2006
@@ -0,0 +1 @@
+test file only
\ No newline at end of file