You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2008/04/12 05:50:13 UTC

svn commit: r647369 - in /archiva/sandbox/archiva-checksum/src: main/java/org/apache/archiva/checksum/ test/java/org/apache/archiva/checksum/

Author: joakime
Date: Fri Apr 11 20:50:09 2008
New Revision: 647369

URL: http://svn.apache.org/viewvc?rev=647369&view=rev
Log:
* Fixed name of HashTest to ChecksumFileTest
* Changed ChecksumFile from utility class to instantiated class.
* Changed my email address to apache.org version.


Added:
    archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java
      - copied, changed from r647368, archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/HashTest.java
Removed:
    archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/HashTest.java
Modified:
    archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java
    archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java
    archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumFile.java
    archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java
    archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumFileTest.java

Modified: archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java?rev=647369&r1=647368&r2=647369&view=diff
==============================================================================
--- archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java (original)
+++ archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/Checksum.java Fri Apr 11 20:50:09 2008
@@ -32,7 +32,7 @@
 /**
  * Checksum - simple checksum hashing routines. 
  *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
  */
 public class Checksum

Modified: archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java?rev=647369&r1=647368&r2=647369&view=diff
==============================================================================
--- archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java (original)
+++ archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumAlgorithm.java Fri Apr 11 20:50:09 2008
@@ -26,7 +26,7 @@
 /**
  * Enumeration of available ChecksumAlgorithm techniques.
  *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
  */
 public enum ChecksumAlgorithm {

Modified: archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumFile.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumFile.java?rev=647369&r1=647368&r2=647369&view=diff
==============================================================================
--- archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumFile.java (original)
+++ archiva/sandbox/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksumFile.java Fri Apr 11 20:50:09 2008
@@ -49,22 +49,32 @@
  *   <dd>The file that is being referenced in the checksum file.</dd>
  * </dl>
  *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
  */
 public class ChecksumFile
 {
     private Logger log = LoggerFactory.getLogger( ChecksumFile.class );
+    
+    private final File referenceFile;
+    
+    /**
+     * Construct a ChecksumFile object.
+     * 
+     * @param referenceFile
+     */
+    public ChecksumFile(final File referenceFile) {
+        this.referenceFile = referenceFile;
+    }
 
     /**
-     * Using a given checksum.
+     * Calculate the checksum based on a given checksum.
      * 
-     * @param checksumAlgorithm the hash to use.
-     * @param referenceFile the file to calculate the checksum for.
+     * @param checksumAlgorithm the algorithm to use.
      * @return the checksum string for the file.
      * @throws IOException if unable to calculate the checksum.
      */
-    public String calculateChecksum( ChecksumAlgorithm checksumAlgorithm, File referenceFile )
+    public String calculateChecksum( ChecksumAlgorithm checksumAlgorithm )
         throws IOException
     {
         FileInputStream fis = null;
@@ -83,17 +93,16 @@
 
     /**
      * Creates a checksum file of the provided referenceFile.
-     * 
-     * @param referenceFile the file to checksum.
      * @param checksumAlgorithm the hash to use.
+     * 
      * @return the checksum File that was created.
      * @throws IOException if there was a problem either reading the referenceFile, or writing the checksum file.
      */
-    public File createChecksum( File referenceFile, ChecksumAlgorithm checksumAlgorithm )
+    public File createChecksum( ChecksumAlgorithm checksumAlgorithm )
         throws IOException
     {
         File checksumFile = new File( referenceFile.getAbsolutePath() + "." + checksumAlgorithm.getExt() );
-        String checksum = calculateChecksum( checksumAlgorithm, referenceFile );
+        String checksum = calculateChecksum( checksumAlgorithm );
         FileUtils.writeStringToFile( checksumFile, checksum + "  " + referenceFile.getName() );
         return checksumFile;
     }
@@ -102,10 +111,9 @@
      * Get the checksum file for the reference file and hash.
      * 
      * @param checksumAlgorithm the hash that we are interested in.
-     * @param referenceFile the reference file to work with.
      * @return the checksum file to return
      */
-    public File getChecksumFile( ChecksumAlgorithm checksumAlgorithm, File referenceFile )
+    public File getChecksumFile( ChecksumAlgorithm checksumAlgorithm )
     {
         return new File( referenceFile.getAbsolutePath() + "." + checksumAlgorithm.getExt() );
     }
@@ -149,7 +157,7 @@
         String rawChecksum = FileUtils.readFileToString( checksumFile );
         String expectedChecksum = parseChecksum( rawChecksum, checksumAlgorithm, referenceFile.getName() );
 
-        String actualChecksum = calculateChecksum( checksumAlgorithm, referenceFile );
+        String actualChecksum = calculateChecksum( checksumAlgorithm );
 
         return StringUtils.equalsIgnoreCase( expectedChecksum, actualChecksum );
     }
@@ -158,48 +166,47 @@
      * Of any checksum files present, validate that the reference file conforms
      * the to the checksum.   
      * 
-     * @param hashes the hashes to check for.
-     * @param referenceFile the reference file to cehck.
+     * @param algorithms the hashes to check for.
      * @return true if the checksums report that the the reference file is valid.
      * @throws IOException if unable to validate the checksums.
      */
-    public boolean isValidChecksums( ChecksumAlgorithm hashes[], File referenceFile )
+    public boolean isValidChecksums( ChecksumAlgorithm algorithms[] )
         throws IOException
     {
         FileInputStream fis = null;
         try
         {
-            List<Checksum> hashers = new ArrayList<Checksum>();
-            // Create hasher for each hash.
-            for ( ChecksumAlgorithm checksumAlgorithm : hashes )
+            List<Checksum> checksums = new ArrayList<Checksum>();
+            // Create checksum object for each algorithm.
+            for ( ChecksumAlgorithm checksumAlgorithm : algorithms )
             {
-                File checksumFile = getChecksumFile( checksumAlgorithm, referenceFile );
+                File checksumFile = getChecksumFile( checksumAlgorithm );
 
-                // Only add hasher if checksum file exists.
+                // Only add algorithm if checksum file exists.
                 if ( checksumFile.exists() )
                 {
-                    hashers.add( new Checksum( checksumAlgorithm ) );
+                    checksums.add( new Checksum( checksumAlgorithm ) );
                 }
             }
 
-            // Any hashers?
-            if ( hashers.isEmpty() )
+            // Any checksums?
+            if ( checksums.isEmpty() )
             {
-                // No hashers, no checksum files, default to is valid.
+                // No checksum objects, no checksum files, default to is valid.
                 return true;
             }
 
-            // Parse file once, for all hashers.
+            // Parse file once, for all checksums.
             fis = new FileInputStream( referenceFile );
-            Checksum.update( hashers, fis );
+            Checksum.update( checksums, fis );
 
             boolean valid = true;
 
-            // check the hash files
-            for ( Checksum checksum : hashers )
+            // check the checksum files
+            for ( Checksum checksum : checksums )
             {
                 ChecksumAlgorithm checksumAlgorithm = checksum.getAlgorithm();
-                File checksumFile = getChecksumFile( checksumAlgorithm, referenceFile );
+                File checksumFile = getChecksumFile( checksumAlgorithm );
 
                 String rawChecksum = FileUtils.readFileToString( checksumFile );
                 String expectedChecksum = parseChecksum( rawChecksum, checksumAlgorithm, referenceFile.getName() );
@@ -221,32 +228,31 @@
     /**
      * Fix or create checksum files for the reference file.
      * 
-     * @param hashes the hashes to check for.
-     * @param referenceFile the reference file to check against.
+     * @param algorithms the hashes to check for.
      * @return true if checksums were created successfully.
      */
-    public boolean fixChecksums( ChecksumAlgorithm hashes[], File referenceFile )
+    public boolean fixChecksums( ChecksumAlgorithm algorithms[] )
     {
-        List<Checksum> hashers = new ArrayList<Checksum>();
-        // Create hasher for each hash.
-        for ( ChecksumAlgorithm checksumAlgorithm : hashes )
+        List<Checksum> checksums = new ArrayList<Checksum>();
+        // Create checksum object for each algorithm.
+        for ( ChecksumAlgorithm checksumAlgorithm : algorithms )
         {
-            hashers.add( new Checksum( checksumAlgorithm ) );
+            checksums.add( new Checksum( checksumAlgorithm ) );
         }
 
-        // Any hashers?
-        if ( hashers.isEmpty() )
+        // Any checksums?
+        if ( checksums.isEmpty() )
         {
-            // No hashers, no checksum files, default to is valid.
+            // No checksum objects, no checksum files, default to is valid.
             return true;
         }
 
         FileInputStream fis = null;
         try
         {
-            // Parse file once, for all hashers.
+            // Parse file once, for all checksums.
             fis = new FileInputStream( referenceFile );
-            Checksum.update( hashers, fis );
+            Checksum.update( checksums, fis );
         }
         catch ( IOException e )
         {
@@ -261,12 +267,12 @@
         boolean valid = true;
 
         // check the hash files
-        for ( Checksum checksum : hashers )
+        for ( Checksum checksum : checksums )
         {
             ChecksumAlgorithm checksumAlgorithm = checksum.getAlgorithm();
             try
             {
-                File checksumFile = getChecksumFile( checksumAlgorithm, referenceFile );
+                File checksumFile = getChecksumFile( checksumAlgorithm );
                 String actualChecksum = checksum.getChecksum();
 
                 if ( checksumFile.exists() )

Modified: archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java?rev=647369&r1=647368&r2=647369&view=diff
==============================================================================
--- archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java (original)
+++ archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/AbstractChecksumTestCase.java Fri Apr 11 20:50:09 2008
@@ -26,7 +26,7 @@
 /**
  * AbstractChecksumTestCase
  *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
  */
 public abstract class AbstractChecksumTestCase

Copied: archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java (from r647368, archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/HashTest.java)
URL: http://svn.apache.org/viewvc/archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java?p2=archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java&p1=archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/HashTest.java&r1=647368&r2=647369&rev=647369&view=diff
==============================================================================
--- archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/HashTest.java (original)
+++ archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumAlgorithmTest.java Fri Apr 11 20:50:09 2008
@@ -24,12 +24,12 @@
 import junit.framework.TestCase;
 
 /**
- * HashTest
+ * ChecksumAlgorithmTest
  *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
  */
-public class HashTest
+public class ChecksumAlgorithmTest
     extends TestCase
 {
     public void testGetHashByExtensionSha1()

Modified: archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumFileTest.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumFileTest.java?rev=647369&r1=647368&r2=647369&view=diff
==============================================================================
--- archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumFileTest.java (original)
+++ archiva/sandbox/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksumFileTest.java Fri Apr 11 20:50:09 2008
@@ -28,7 +28,7 @@
 /**
  * ChecksumFileTest
  *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
  */
 public class ChecksumFileTest
@@ -40,20 +40,20 @@
     public void testCalculateChecksumSha1()
         throws IOException
     {
-        ChecksumFile checksumFile = new ChecksumFile();
         File testfile = getTestResource( "examples/redback-authz-open.jar" );
+        ChecksumFile checksumFile = new ChecksumFile( testfile );
         String expectedChecksum = "2bb14b388973351b0a4dfe11d171965f59cc61a1";
-        String actualChecksum = checksumFile.calculateChecksum( ChecksumAlgorithm.SHA1, testfile );
+        String actualChecksum = checksumFile.calculateChecksum( ChecksumAlgorithm.SHA1 );
         assertEquals( expectedChecksum, actualChecksum );
     }
 
     public void testCalculateChecksumMd5()
         throws IOException
     {
-        ChecksumFile checksumFile = new ChecksumFile();
         File testfile = getTestResource( "examples/redback-authz-open.jar" );
+        ChecksumFile checksumFile = new ChecksumFile( testfile );
         String expectedChecksum = "f42047fe2e177ac04d0df7aa44d408be";
-        String actualChecksum = checksumFile.calculateChecksum( ChecksumAlgorithm.MD5, testfile );
+        String actualChecksum = checksumFile.calculateChecksum( ChecksumAlgorithm.MD5 );
         assertEquals( expectedChecksum, actualChecksum );
     }
 
@@ -63,8 +63,10 @@
         String expected = SERVLETAPI_SHA1
             + "  /home/projects/maven/repository-staging/to-ibiblio/maven2/servletapi/servletapi/2.4/servletapi-2.4.pom";
 
-        ChecksumFile checksumFile = new ChecksumFile();
-        String s = checksumFile.parseChecksum( expected, ChecksumAlgorithm.SHA1, "servletapi/servletapi/2.4/servletapi-2.4.pom" );
+        File testfile = getTestResource( "examples/redback-authz-open.jar" );
+        ChecksumFile checksumFile = new ChecksumFile( testfile );
+        String s = checksumFile.parseChecksum( expected, ChecksumAlgorithm.SHA1,
+                                               "servletapi/servletapi/2.4/servletapi-2.4.pom" );
         assertEquals( "Checksum doesn't match", SERVLETAPI_SHA1, s );
 
     }
@@ -73,8 +75,10 @@
         throws IOException
     {
         String expected = SERVLETAPI_SHA1 + "  -";
-        ChecksumFile checksumFile = new ChecksumFile();
-        String s = checksumFile.parseChecksum( expected, ChecksumAlgorithm.SHA1, "servletapi/servletapi/2.4/servletapi-2.4.pom" );
+        File testfile = getTestResource( "examples/redback-authz-open.jar" );
+        ChecksumFile checksumFile = new ChecksumFile( testfile );
+        String s = checksumFile.parseChecksum( expected, ChecksumAlgorithm.SHA1,
+                                               "servletapi/servletapi/2.4/servletapi-2.4.pom" );
         assertEquals( "Checksum doesn't match", SERVLETAPI_SHA1, s );
     }
 
@@ -82,24 +86,26 @@
         throws IOException
     {
         String expected = "SHA1(-)=" + SERVLETAPI_SHA1;
-        ChecksumFile checksumFile = new ChecksumFile();
-        String s = checksumFile.parseChecksum( expected, ChecksumAlgorithm.SHA1, "servletapi/servletapi/2.4/servletapi-2.4.pom" );
+        File testfile = getTestResource( "examples/redback-authz-open.jar" );
+        ChecksumFile checksumFile = new ChecksumFile( testfile );
+        String s = checksumFile.parseChecksum( expected, ChecksumAlgorithm.SHA1,
+                                               "servletapi/servletapi/2.4/servletapi-2.4.pom" );
         assertEquals( "Checksum doesn't match", SERVLETAPI_SHA1, s );
     }
 
     public void testGetChecksumFile()
     {
-        ChecksumFile checksumFile = new ChecksumFile();
-        assertEquals( "test.jar.sha1", checksumFile.getChecksumFile( ChecksumAlgorithm.SHA1, new File( "test.jar" ) ).getName() );
+        ChecksumFile checksumFile = new ChecksumFile( new File("test.jar") );
+        assertEquals( "test.jar.sha1", checksumFile.getChecksumFile( ChecksumAlgorithm.SHA1 ).getName() );
     }
 
     public void testCreateChecksum()
         throws IOException
     {
         File testableJar = createTestableJar( "examples/redback-authz-open.jar" );
-        ChecksumFile checksumFile = new ChecksumFile();
-        checksumFile.createChecksum( testableJar, ChecksumAlgorithm.SHA1 );
-        File hashFile = checksumFile.getChecksumFile( ChecksumAlgorithm.SHA1, testableJar );
+        ChecksumFile checksumFile = new ChecksumFile( testableJar );
+        checksumFile.createChecksum( ChecksumAlgorithm.SHA1 );
+        File hashFile = checksumFile.getChecksumFile( ChecksumAlgorithm.SHA1 );
         assertTrue( "ChecksumAlgorithm file should exist.", hashFile.exists() );
         String hashContents = FileUtils.readFileToString( hashFile );
         hashContents = StringUtils.trim( hashContents );