mirror of https://github.com/apache/archiva.git
[MRM-118] proxy config is not a component
git-svn-id: https://svn.apache.org/repos/asf/maven/repository-manager/trunk@412658 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1ef50fd5bd
commit
bda451364b
|
@ -52,7 +52,7 @@ import java.util.Map;
|
||||||
* @author Edwin Punzalan
|
* @author Edwin Punzalan
|
||||||
* @plexus.component role="org.apache.maven.repository.proxy.ProxyManager"
|
* @plexus.component role="org.apache.maven.repository.proxy.ProxyManager"
|
||||||
* @todo too much of wagon manager is reproduced here because checksums need to be downloaded separately - is that necessary?
|
* @todo too much of wagon manager is reproduced here because checksums need to be downloaded separately - is that necessary?
|
||||||
* @todo this isn't reusing the parts of wagon manager than handle snapshots [!]
|
* @todo this isn't reusing the parts of artifact resolver that handles snapshots - should this be more artifact based than file-based?
|
||||||
* @todo currently, cache must be in the same layout as the request, which prohibits any mapping
|
* @todo currently, cache must be in the same layout as the request, which prohibits any mapping
|
||||||
*/
|
*/
|
||||||
public class DefaultProxyManager
|
public class DefaultProxyManager
|
||||||
|
@ -69,21 +69,15 @@ public class DefaultProxyManager
|
||||||
*/
|
*/
|
||||||
private ArtifactRepositoryFactory repositoryFactory;
|
private ArtifactRepositoryFactory repositoryFactory;
|
||||||
|
|
||||||
/**
|
|
||||||
* @plexus.requirement
|
|
||||||
*/
|
|
||||||
private ProxyConfiguration config;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @plexus.requirement role="org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout"
|
* @plexus.requirement role="org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout"
|
||||||
*/
|
*/
|
||||||
private Map repositoryLayoutMap;
|
private Map repositoryLayoutMap;
|
||||||
|
|
||||||
/**
|
|
||||||
* A map
|
|
||||||
*/
|
|
||||||
private Map failuresCache = new HashMap();
|
private Map failuresCache = new HashMap();
|
||||||
|
|
||||||
|
private ProxyConfiguration config;
|
||||||
|
|
||||||
private static final int MS_PER_SEC = 1000;
|
private static final int MS_PER_SEC = 1000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -102,11 +96,6 @@ public class DefaultProxyManager
|
||||||
this.config = config;
|
this.config = config;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProxyConfiguration getConfiguration()
|
|
||||||
{
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.maven.repository.proxy.ProxyManager#get(String)
|
* @see org.apache.maven.repository.proxy.ProxyManager#get(String)
|
||||||
*/
|
*/
|
||||||
|
@ -120,15 +109,15 @@ public class DefaultProxyManager
|
||||||
File cachedFile = new File( cachePath, path );
|
File cachedFile = new File( cachePath, path );
|
||||||
if ( !cachedFile.exists() )
|
if ( !cachedFile.exists() )
|
||||||
{
|
{
|
||||||
cachedFile = getRemoteFile( path );
|
cachedFile = getAlways( path );
|
||||||
}
|
}
|
||||||
return cachedFile;
|
return cachedFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.apache.maven.repository.proxy.ProxyManager#getRemoteFile(String)
|
* @see org.apache.maven.repository.proxy.ProxyManager#getAlways(String)
|
||||||
*/
|
*/
|
||||||
public File getRemoteFile( String path )
|
public File getAlways( String path )
|
||||||
throws ProxyException, ResourceDoesNotExistException
|
throws ProxyException, ResourceDoesNotExistException
|
||||||
{
|
{
|
||||||
checkConfiguration();
|
checkConfiguration();
|
||||||
|
@ -393,7 +382,7 @@ public class DefaultProxyManager
|
||||||
{
|
{
|
||||||
wagon = wagonManager.getWagon( repository.getProtocol() );
|
wagon = wagonManager.getWagon( repository.getProtocol() );
|
||||||
|
|
||||||
//@todo configure wagonManager [!]
|
//@todo configure wagon (ssh settings, etc)
|
||||||
|
|
||||||
if ( useChecksum )
|
if ( useChecksum )
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,7 +25,6 @@ import java.io.File;
|
||||||
* Class used to bridge the servlet to the repository proxy implementation.
|
* Class used to bridge the servlet to the repository proxy implementation.
|
||||||
*
|
*
|
||||||
* @author Edwin Punzalan
|
* @author Edwin Punzalan
|
||||||
* @todo the names get() and getRemoteFile() are confusing [!]
|
|
||||||
*/
|
*/
|
||||||
public interface ProxyManager
|
public interface ProxyManager
|
||||||
{
|
{
|
||||||
|
@ -53,7 +52,7 @@ public interface ProxyManager
|
||||||
* @throws ResourceDoesNotExistException when the requested object can't be found in any of the
|
* @throws ResourceDoesNotExistException when the requested object can't be found in any of the
|
||||||
* configured repositories
|
* configured repositories
|
||||||
*/
|
*/
|
||||||
File getRemoteFile( String path )
|
File getAlways( String path )
|
||||||
throws ProxyException, ResourceDoesNotExistException;
|
throws ProxyException, ResourceDoesNotExistException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,11 +61,4 @@ public interface ProxyManager
|
||||||
* @param config the ProxyConfiguration to set the behavior of the proxy
|
* @param config the ProxyConfiguration to set the behavior of the proxy
|
||||||
*/
|
*/
|
||||||
void setConfiguration( ProxyConfiguration config );
|
void setConfiguration( ProxyConfiguration config );
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to retrieve the configuration describing the behavior of the proxy
|
|
||||||
*
|
|
||||||
* @return the ProxyConfiguration of this proxy
|
|
||||||
*/
|
|
||||||
ProxyConfiguration getConfiguration();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,8 @@ public class DefaultProxyManagerTest
|
||||||
{
|
{
|
||||||
private ProxyManager proxy;
|
private ProxyManager proxy;
|
||||||
|
|
||||||
|
private ProxyConfiguration configuration;
|
||||||
|
|
||||||
protected void setUp()
|
protected void setUp()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
@ -41,7 +43,8 @@ public class DefaultProxyManagerTest
|
||||||
|
|
||||||
proxy = (ProxyManager) container.lookup( ProxyManager.ROLE );
|
proxy = (ProxyManager) container.lookup( ProxyManager.ROLE );
|
||||||
|
|
||||||
proxy.setConfiguration( getTestConfiguration() );
|
configuration = getTestConfiguration();
|
||||||
|
proxy.setConfiguration( configuration );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testExceptions()
|
public void testExceptions()
|
||||||
|
@ -70,7 +73,7 @@ public class DefaultProxyManagerTest
|
||||||
File file = proxy.get( "/commons-logging/commons-logging/1.0/commons-logging-1.0.jar" );
|
File file = proxy.get( "/commons-logging/commons-logging/1.0/commons-logging-1.0.jar" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
|
|
||||||
//test cache
|
//test cache
|
||||||
proxy.get( "/commons-logging/commons-logging/1.0/commons-logging-1.0.jar" );
|
proxy.get( "/commons-logging/commons-logging/1.0/commons-logging-1.0.jar" );
|
||||||
|
@ -89,11 +92,11 @@ public class DefaultProxyManagerTest
|
||||||
public void testArtifactChecksum()
|
public void testArtifactChecksum()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
//force the downlod from the remote repository, use getRemoteFile()
|
//force the downlod from the remote repository, use getAlways()
|
||||||
File file = proxy.getRemoteFile( "/commons-logging/commons-logging/1.0/commons-logging-1.0.jar.md5" );
|
File file = proxy.getAlways( "/commons-logging/commons-logging/1.0/commons-logging-1.0.jar.md5" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNonArtifactWithNoChecksum()
|
public void testNonArtifactWithNoChecksum()
|
||||||
|
@ -102,7 +105,7 @@ public class DefaultProxyManagerTest
|
||||||
File file = proxy.get( "/not-standard/repository/file.txt" );
|
File file = proxy.get( "/not-standard/repository/file.txt" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNonArtifactWithMD5Checksum()
|
public void testNonArtifactWithMD5Checksum()
|
||||||
|
@ -111,7 +114,7 @@ public class DefaultProxyManagerTest
|
||||||
File file = proxy.get( "/checksumed-md5/repository/file.txt" );
|
File file = proxy.get( "/checksumed-md5/repository/file.txt" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNonArtifactWithSHA1Checksum()
|
public void testNonArtifactWithSHA1Checksum()
|
||||||
|
@ -120,7 +123,7 @@ public class DefaultProxyManagerTest
|
||||||
File file = proxy.get( "/checksumed-sha1/repository/file.txt" );
|
File file = proxy.get( "/checksumed-sha1/repository/file.txt" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void tearDown()
|
protected void tearDown()
|
||||||
|
@ -134,7 +137,7 @@ public class DefaultProxyManagerTest
|
||||||
private ProxyConfiguration getTestConfiguration()
|
private ProxyConfiguration getTestConfiguration()
|
||||||
throws ComponentLookupException
|
throws ComponentLookupException
|
||||||
{
|
{
|
||||||
ProxyConfiguration config = (ProxyConfiguration) container.lookup( ProxyConfiguration.ROLE );
|
ProxyConfiguration config = new ProxyConfiguration();
|
||||||
|
|
||||||
config.setRepositoryCachePath( "target/proxy-cache" );
|
config.setRepositoryCachePath( "target/proxy-cache" );
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,8 @@ public class LegacyProxyManagerTest
|
||||||
{
|
{
|
||||||
private ProxyManager proxy;
|
private ProxyManager proxy;
|
||||||
|
|
||||||
|
private ProxyConfiguration configuration;
|
||||||
|
|
||||||
protected void setUp()
|
protected void setUp()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
@ -41,7 +43,8 @@ public class LegacyProxyManagerTest
|
||||||
|
|
||||||
proxy = (ProxyManager) container.lookup( ProxyManager.ROLE );
|
proxy = (ProxyManager) container.lookup( ProxyManager.ROLE );
|
||||||
|
|
||||||
proxy.setConfiguration( getTestConfiguration() );
|
configuration = getTestConfiguration();
|
||||||
|
proxy.setConfiguration( configuration );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testExceptions()
|
public void testExceptions()
|
||||||
|
@ -70,7 +73,7 @@ public class LegacyProxyManagerTest
|
||||||
File file = proxy.get( "/commons-logging/jars/commons-logging-1.0.jar" );
|
File file = proxy.get( "/commons-logging/jars/commons-logging-1.0.jar" );
|
||||||
assertTrue( "File must be downloaded: " + file.getAbsolutePath(), file.exists() );
|
assertTrue( "File must be downloaded: " + file.getAbsolutePath(), file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
|
|
||||||
//test cache
|
//test cache
|
||||||
proxy.get( "/commons-logging/jars/commons-logging-1.0.jar" );
|
proxy.get( "/commons-logging/jars/commons-logging-1.0.jar" );
|
||||||
|
@ -89,11 +92,11 @@ public class LegacyProxyManagerTest
|
||||||
public void testArtifactChecksum()
|
public void testArtifactChecksum()
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
//force the downlod from the remote repository, use getRemoteFile()
|
//force the downlod from the remote repository, use getAlways()
|
||||||
File file = proxy.getRemoteFile( "/commons-logging/jars/commons-logging-1.0.jar.md5" );
|
File file = proxy.getAlways( "/commons-logging/jars/commons-logging-1.0.jar.md5" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNonArtifactWithNoChecksum()
|
public void testNonArtifactWithNoChecksum()
|
||||||
|
@ -102,7 +105,7 @@ public class LegacyProxyManagerTest
|
||||||
File file = proxy.get( "/not-standard/repository/file.txt" );
|
File file = proxy.get( "/not-standard/repository/file.txt" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNonArtifactWithMD5Checksum()
|
public void testNonArtifactWithMD5Checksum()
|
||||||
|
@ -111,7 +114,7 @@ public class LegacyProxyManagerTest
|
||||||
File file = proxy.get( "/checksumed-md5/repository/file.txt" );
|
File file = proxy.get( "/checksumed-md5/repository/file.txt" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNonArtifactWithSHA1Checksum()
|
public void testNonArtifactWithSHA1Checksum()
|
||||||
|
@ -120,7 +123,7 @@ public class LegacyProxyManagerTest
|
||||||
File file = proxy.get( "/checksumed-sha1/repository/file.txt" );
|
File file = proxy.get( "/checksumed-sha1/repository/file.txt" );
|
||||||
assertTrue( "File must be downloaded.", file.exists() );
|
assertTrue( "File must be downloaded.", file.exists() );
|
||||||
assertTrue( "Downloaded file should be present in the cache.",
|
assertTrue( "Downloaded file should be present in the cache.",
|
||||||
file.getAbsolutePath().startsWith( proxy.getConfiguration().getRepositoryCachePath() ) );
|
file.getAbsolutePath().startsWith( configuration.getRepositoryCachePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void tearDown()
|
protected void tearDown()
|
||||||
|
@ -134,7 +137,7 @@ public class LegacyProxyManagerTest
|
||||||
private ProxyConfiguration getTestConfiguration()
|
private ProxyConfiguration getTestConfiguration()
|
||||||
throws ComponentLookupException
|
throws ComponentLookupException
|
||||||
{
|
{
|
||||||
ProxyConfiguration config = (ProxyConfiguration) container.lookup( ProxyConfiguration.ROLE );
|
ProxyConfiguration config = new ProxyConfiguration();
|
||||||
|
|
||||||
config.setRepositoryCachePath( getTestFile( "target/m1-proxy-cache" ).getAbsolutePath() );
|
config.setRepositoryCachePath( getTestFile( "target/m1-proxy-cache" ).getAbsolutePath() );
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class ProxyConfigurationTest
|
||||||
{
|
{
|
||||||
super.setUp();
|
super.setUp();
|
||||||
|
|
||||||
config = (ProxyConfiguration) container.lookup( ProxyConfiguration.ROLE );
|
config = new ProxyConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testRepositoryCache()
|
public void testRepositoryCache()
|
||||||
|
|
Loading…
Reference in New Issue