Author: epunzalan Date: Wed Feb 8 19:19:34 2006 New Revision: 376168 URL: http://svn.apache.org/viewcvs?rev=376168&view=rev Log: MRM-43
More junit coverage Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/commons-logging/commons-logging/1.0/commons-logging-1.0.jar.md5 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/test/java/org/apache/maven/repository/proxy/DefaultProxyManagerTest.java maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/checksumed-sha1/repository/file.txt.sha1 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=376168&r1=376167&r2=376168&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 Wed Feb 8 19:19:34 2006 @@ -33,8 +33,8 @@ import org.apache.maven.wagon.authorization.AuthorizationException; import org.apache.maven.wagon.observers.ChecksumObserver; import org.codehaus.plexus.logging.AbstractLogEnabled; -import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.FileUtils; import java.io.File; import java.io.FileInputStream; @@ -218,7 +218,7 @@ { tries++; - getLogger().info( "trying " + path + " from " + repository.getId() ); + getLogger().info( "Trying " + path + " from " + repository.getId() + "..."); wagon.get( path, temp ); @@ -238,23 +238,7 @@ } disconnectWagon( wagon ); - if ( !temp.renameTo( target ) ) - { - getLogger().warn( "Unable to rename tmp file to its final name... resorting to copy command." ); - - try - { - FileUtils.copyFile( temp, target ); - } - catch ( IOException e ) - { - throw new ProxyException( "Cannot copy tmp file to its final location", e ); - } - finally - { - temp.delete(); - } - } + copyTempToTarget( temp, target ); return target; } @@ -371,6 +355,7 @@ * @return true when the checksum succeeds and false when the checksum failed. */ private boolean doChecksumCheck( Map checksumMap, String path, Wagon wagon ) + throws ProxyException { releaseChecksums( wagon, checksumMap ); for ( Iterator checksums = checksumMap.keySet().iterator(); checksums.hasNext(); ) @@ -382,7 +367,7 @@ try { - File tempChecksumFile = new File( checksumFile.getAbsolutePath() + "." + checksumExt ); + File tempChecksumFile = new File( checksumFile.getAbsolutePath() + ".tmp" ); wagon.get( checksumPath, tempChecksumFile ); @@ -391,7 +376,15 @@ { remoteChecksum = remoteChecksum.substring( 0, remoteChecksum.indexOf( ' ' ) ); } - return remoteChecksum.toUpperCase().equals( checksum.getActualChecksum().toUpperCase() ); + + boolean checksumCheck = false; + if ( remoteChecksum.toUpperCase().equals( checksum.getActualChecksum().toUpperCase() ) ) + { + copyTempToTarget( tempChecksumFile, checksumFile ); + + checksumCheck = true; + } + return checksumCheck; } catch ( ChecksumFailedException e ) { @@ -399,27 +392,27 @@ } catch ( TransferFailedException e ) { - getLogger().warn( "An error occurred during the download of " + checksumPath + ": " + e.getMessage() ); + getLogger().debug( "An error occurred during the download of " + checksumPath + ": " + e.getMessage(), e ); // do nothing try the next checksum } catch ( ResourceDoesNotExistException e ) { - getLogger().warn( "An error occurred during the download of " + checksumPath + ": " + e.getMessage() ); + getLogger().debug( "An error occurred during the download of " + checksumPath + ": " + e.getMessage(), e ); // do nothing try the next checksum } catch ( AuthorizationException e ) { - getLogger().warn( "An error occurred during the download of " + checksumPath + ": " + e.getMessage() ); + getLogger().debug( "An error occurred during the download of " + checksumPath + ": " + e.getMessage(), e ); // do nothing try the next checksum } catch ( IOException e ) { - getLogger().info( "An error occurred while reading the temporary checksum file." ); + getLogger().debug( "An error occurred while reading the temporary checksum file.", e ); return false; } } - getLogger().info( "Skipping checksum validation for " + path + ": No remote checksums available." ); + getLogger().debug( "Skipping checksum validation for " + path + ": No remote checksums available." ); return true; } @@ -459,6 +452,33 @@ } return text; + } + + private void copyTempToTarget( File temp, File target ) + throws ProxyException + { + if ( target.exists() && !target.delete() ) + { + throw new ProxyException( "Unable to overwrite existing target file: " + target.getAbsolutePath() ); + } + + if ( !temp.renameTo( target ) ) + { + getLogger().warn( "Unable to rename tmp file to its final name... resorting to copy command." ); + + try + { + FileUtils.copyFile( temp, target ); + } + catch ( IOException e ) + { + throw new ProxyException( "Cannot copy tmp file to its final location", e ); + } + finally + { + temp.delete(); + } + } } /** Modified: maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/DefaultProxyManagerTest.java URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/DefaultProxyManagerTest.java?rev=376168&r1=376167&r2=376168&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/DefaultProxyManagerTest.java (original) +++ maven/repository-manager/trunk/maven-repository-proxy/src/test/java/org/apache/maven/repository/proxy/DefaultProxyManagerTest.java Wed Feb 8 19:19:34 2006 @@ -62,22 +62,61 @@ } } - public void testCache() + public void testArtifactDownload() throws Exception { + //test download File file = proxy.get( "/commons-logging/commons-logging/1.0/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/commons-logging/1.0/commons-logging-1.0.jar" ); - file = proxy.get( "/not-standard/repository/file.txt" ); + try + { + file = proxy.get( "/commons-logging/commons-logging/2.0/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/commons-logging/1.0/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() ) ); + } - file = proxy.get( "/checksumed-md5/repository/file.txt" ); + 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() ) ); Modified: maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/checksumed-sha1/repository/file.txt.sha1 URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/checksumed-sha1/repository/file.txt.sha1?rev=376168&r1=376167&r2=376168&view=diff ============================================================================== --- maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/checksumed-sha1/repository/file.txt.sha1 (original) +++ maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/checksumed-sha1/repository/file.txt.sha1 Wed Feb 8 19:19:34 2006 @@ -1 +1 @@ -ABCDE \ No newline at end of file +afb037c2bd96fe1ef1cfd220e82682d088d60d3e \ No newline at end of file Added: maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/commons-logging/commons-logging/1.0/commons-logging-1.0.jar.md5 URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/commons-logging/commons-logging/1.0/commons-logging-1.0.jar.md5?rev=376168&view=auto ============================================================================== --- maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/commons-logging/commons-logging/1.0/commons-logging-1.0.jar.md5 (added) +++ maven/repository-manager/trunk/maven-repository-proxy/src/test/remote-repo1/commons-logging/commons-logging/1.0/commons-logging-1.0.jar.md5 Wed Feb 8 19:19:34 2006 @@ -0,0 +1 @@ +240b26992977c9ad119efb91cb21f8f8 \ No newline at end of file