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