aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/archiva-base/archiva-proxy
diff options
context:
space:
mode:
authorNicolas De Loof <nicolas@apache.org>2008-07-09 14:00:22 +0000
committerNicolas De Loof <nicolas@apache.org>2008-07-09 14:00:22 +0000
commit15b6ddae0ba7e3feb160982a264fdad985648147 (patch)
treea22da0366dd2a4e933ed4e98cac026cebe11c54f /archiva-modules/archiva-base/archiva-proxy
parenta693bc6872a96e7d09b27e172bfa28571dc3cfbe (diff)
downloadarchiva-15b6ddae0ba7e3feb160982a264fdad985648147.tar.gz
archiva-15b6ddae0ba7e3feb160982a264fdad985648147.zip
MRM-869
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@675174 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules/archiva-base/archiva-proxy')
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java39
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java20
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java21
-rw-r--r--archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java2
4 files changed, 43 insertions, 39 deletions
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java b/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
index 398734973..c2937fe3e 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
+++ b/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
@@ -88,7 +88,7 @@ public class DefaultRepositoryProxyConnectors
implements RepositoryProxyConnectors, RegistryListener, Initializable
{
private Logger log = LoggerFactory.getLogger( DefaultRepositoryProxyConnectors.class );
-
+
/**
* @plexus.requirement
*/
@@ -169,7 +169,7 @@ public class DefaultRepositoryProxyConnectors
try
{
File downloadedFile =
- transferFile( connector, targetRepository, targetPath, localFile, requestProperties );
+ transferFile( connector, targetRepository, targetPath, repository, localFile, requestProperties );
if ( fileExists( downloadedFile ) )
{
@@ -230,7 +230,7 @@ public class DefaultRepositoryProxyConnectors
try
{
- transferFile( connector, targetRepository, targetPath, localRepoFile, requestProperties );
+ transferFile( connector, targetRepository, targetPath, repository, localRepoFile, requestProperties );
if ( hasBeenUpdated( localRepoFile, originalMetadataTimestamp ) )
{
@@ -348,7 +348,7 @@ public class DefaultRepositoryProxyConnectors
long originalMetadataTimestamp = getLastModified( localRepoFile );
try
{
- transferFile( connector, targetRepository, targetPath, localRepoFile, requestProperties );
+ transferFile( connector, targetRepository, targetPath, repository, localRepoFile, requestProperties );
if ( hasBeenUpdated( localRepoFile, originalMetadataTimestamp ) )
{
@@ -487,6 +487,7 @@ public class DefaultRepositoryProxyConnectors
* @param connector the connector configuration to use.
* @param remoteRepository the remote repository get the resource from.
* @param remotePath the path in the remote repository to the resource to get.
+ * @param repository the managed repository that will hold the file
* @param localFile the local file to place the downloaded resource into
* @param requestProperties the request properties to utilize for policy handling.
* @return the local file that was downloaded, or null if not downloaded.
@@ -496,7 +497,7 @@ public class DefaultRepositoryProxyConnectors
* @throws ProxyException if transfer was unsuccessful.
*/
private File transferFile( ProxyConnector connector, RemoteRepositoryContent remoteRepository, String remotePath,
- File localFile, Properties requestProperties )
+ ManagedRepositoryContent repository, File localFile, Properties requestProperties )
throws ProxyException, NotModifiedException
{
String url = remoteRepository.getURL().getUrl();
@@ -560,10 +561,10 @@ public class DefaultRepositoryProxyConnectors
boolean connected = connectToRepository( connector, wagon, remoteRepository );
if ( connected )
{
- localFile = transferSimpleFile( wagon, remoteRepository, remotePath, localFile );
+ localFile = transferSimpleFile( wagon, remoteRepository, remotePath, repository, localFile );
- transferChecksum( wagon, remoteRepository, remotePath, localFile, ".sha1" );
- transferChecksum( wagon, remoteRepository, remotePath, localFile, ".md5" );
+ transferChecksum( wagon, remoteRepository, remotePath, repository, localFile, ".sha1" );
+ transferChecksum( wagon, remoteRepository, remotePath, repository, localFile, ".md5" );
}
}
catch ( NotFoundException e )
@@ -627,12 +628,13 @@ public class DefaultRepositoryProxyConnectors
* @param wagon the wagon instance (should already be connected) to use.
* @param remoteRepository the remote repository to transfer from.
* @param remotePath the remote path to the resource to get.
+ * @param repository the managed repository that will hold the file
* @param localFile the local file that should contain the downloaded contents
* @param type the type of checksum to transfer (example: ".md5" or ".sha1")
* @throws ProxyException if copying the downloaded file into place did not succeed.
*/
private void transferChecksum( Wagon wagon, RemoteRepositoryContent remoteRepository, String remotePath,
- File localFile, String type )
+ ManagedRepositoryContent repository, File localFile, String type )
throws ProxyException
{
String url = remoteRepository.getURL().getUrl() + remotePath;
@@ -646,7 +648,7 @@ public class DefaultRepositoryProxyConnectors
try
{
File hashFile = new File( localFile.getAbsolutePath() + type );
- transferSimpleFile( wagon, remoteRepository, remotePath + type, hashFile );
+ transferSimpleFile( wagon, remoteRepository, remotePath + type, repository, hashFile );
log.debug( "Checksum" + type + " Downloaded: " + hashFile );
}
catch ( NotFoundException e )
@@ -675,13 +677,14 @@ public class DefaultRepositoryProxyConnectors
* @param wagon the wagon instance to use.
* @param remoteRepository the remote repository to use
* @param remotePath the remote path to attempt to get
+ * @param repository the managed repository that will hold the file
* @param localFile the local file to save to
* @return The local file that was transfered.
* @throws ProxyException if there was a problem moving the downloaded file into place.
* @throws WagonException if there was a problem tranfering the file.
*/
private File transferSimpleFile( Wagon wagon, RemoteRepositoryContent remoteRepository, String remotePath,
- File localFile )
+ ManagedRepositoryContent repository, File localFile )
throws ProxyException
{
assert ( remotePath != null );
@@ -691,9 +694,8 @@ public class DefaultRepositoryProxyConnectors
try
{
- localFile.getParentFile().mkdirs();
- temp = File.createTempFile(localFile.getName() + ".", null, localFile.getParentFile());
-
+ temp = File.createTempFile(localFile.getName() + ".", null, new File( repository.getRepoRoot() ));
+
boolean success = false;
if ( !localFile.exists() )
@@ -849,6 +851,7 @@ public class DefaultRepositoryProxyConnectors
throw new ProxyException( "Unable to overwrite existing target file: " + target.getAbsolutePath() );
}
+ target.getParentFile().mkdirs();
if ( !temp.renameTo( target ) )
{
log.warn( "Unable to rename tmp file to its final name... resorting to copy command." );
@@ -1004,15 +1007,15 @@ public class DefaultRepositoryProxyConnectors
{
/* do nothing */
}
-
+
private void logProcess( String managedRepoId, String resource, String event )
{
-
+
}
-
+
private void logRejection( String managedRepoId, String remoteRepoId, String resource, String reason )
{
-
+
}
private void initConnectorsAndNetworkProxies()
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
index db4a91dc2..e71ea65b0 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
@@ -88,7 +88,7 @@ public abstract class AbstractProxyTestCase
protected static final String REPOPATH_LEGACY_MANAGED = "src/test/repositories/legacy-managed";
protected static final String REPOPATH_LEGACY_MANAGED_TARGET = "target/test-repository/legacy-managed";
-
+
protected static final ArgumentsMatcher customWagonGetIfNewerMatcher = new ArgumentsMatcher() {
public boolean matches(Object[] expected, Object[] actual) {
@@ -103,10 +103,10 @@ public abstract class AbstractProxyTestCase
return ArrayUtils.toString(arguments);
}
};
-
+
protected static final ArgumentsMatcher customWagonGetMatcher = new ArgumentsMatcher() {
- public boolean matches(Object[] expected, Object[] actual)
+ public boolean matches(Object[] expected, Object[] actual)
{
if (expected.length == 2 && actual.length == 2)
{
@@ -114,23 +114,23 @@ public abstract class AbstractProxyTestCase
{
return true;
}
-
+
if (expected[0] == null)
{
return actual[0] == null;
}
-
+
if (actual[0] == null)
{
return expected[0] == null;
}
-
+
return expected[0].equals(actual[0]);
}
return false;
}
- public String toString(Object[] arguments)
+ public String toString(Object[] arguments)
{
return ArrayUtils.toString(arguments);
}
@@ -540,6 +540,9 @@ public abstract class AbstractProxyTestCase
FileUtils.deleteDirectory( destDir );
}
+ // Make the destination dir.
+ destDir.mkdirs();
+
// Test the source dir.
if ( !sourceDir.exists() )
{
@@ -555,9 +558,6 @@ public abstract class AbstractProxyTestCase
fail( "Unable to setup testable managed repository, source is not a directory: " + sourceDir );
}
- // Make the destination dir.
- destDir.mkdirs();
-
// Copy directory structure.
copyDirectoryStructure( sourceDir, destDir );
}
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
index 70aec32fc..119211d6c 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
@@ -63,11 +63,11 @@ public class CacheFailuresTransferTest
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES );
saveConnector( ID_DEFAULT_MANAGED, "badproxied2", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES );
-
+
wagonMock.get( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) );
-
+
wagonMockControl.setMatcher(customWagonGetMatcher);
-
+
wagonMockControl.setThrowable( new ResourceDoesNotExistException( "resource does not exist." ), 2 );
wagonMockControl.replay();
@@ -75,11 +75,11 @@ public class CacheFailuresTransferTest
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
wagonMockControl.verify();
-
- // Second attempt to download same artifact use cache
+
+ // Second attempt to download same artifact use cache
wagonMockControl.reset();
wagonMockControl.replay();
- downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
+ downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
wagonMockControl.verify();
assertNotDownloaded( downloadedFile );
@@ -108,7 +108,7 @@ public class CacheFailuresTransferTest
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
wagonMock.get( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) );
-
+
wagonMockControl.setMatcher(customWagonGetMatcher);
wagonMockControl.setThrowable( new ResourceDoesNotExistException( "resource does not exist." ), 2 );
@@ -118,15 +118,15 @@ public class CacheFailuresTransferTest
wagonMockControl.verify();
- // Second attempt to download same artifact DOES NOT use cache
+ // Second attempt to download same artifact DOES NOT use cache
wagonMockControl.reset();
wagonMock.get( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) );
-
+
wagonMockControl.setMatcher(customWagonGetMatcher);
wagonMockControl.setThrowable( new ResourceDoesNotExistException( "resource does not exist." ), 2 );
wagonMockControl.replay();
- downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
+ downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
wagonMockControl.verify();
@@ -138,6 +138,7 @@ public class CacheFailuresTransferTest
throws Exception
{
String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar";
+ setupTestableManagedRepository( path );
File expectedFile = new File( managedDefaultDir, path );
ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java
index c0c60a720..4b96766c7 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java
@@ -551,7 +551,7 @@ public class ErrorHandlingTest
private File createExpectedTempFile( File expectedFile )
{
- return new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ).getAbsoluteFile();
+ return new File( managedDefaultDir, expectedFile.getName() + ".tmp" ).getAbsoluteFile();
}
private void confirmSingleFailure( String path, String id )