]> source.dussan.org Git - archiva.git/commitdiff
[MRM-790]
authorMaria Odea B. Ching <oching@apache.org>
Thu, 29 May 2008 09:48:50 +0000 (09:48 +0000)
committerMaria Odea B. Ching <oching@apache.org>
Thu, 29 May 2008 09:48:50 +0000 (09:48 +0000)
-added check specifically for remote metadata checksum files
-added test case

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@661273 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-base/archiva-checksum/src/main/java/org/apache/archiva/checksum/ChecksummedFile.java
archiva-modules/archiva-base/archiva-checksum/src/test/java/org/apache/archiva/checksum/ChecksummedFileTest.java
archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml [new file with mode: 0644]
archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.md5 [new file with mode: 0644]
archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.sha1 [new file with mode: 0644]

index d93ec53a3a537f3e880e945d10ce2b81e8916899..6b56571216f6edf50c3e9acc9f7541232b41f7dc 100644 (file)
@@ -292,6 +292,15 @@ public class ChecksummedFile
 
     private boolean isValidChecksumPattern( String filename, String path )
     {
+        // check if it is a remote metadata file
+        Pattern pattern = Pattern.compile( "maven-metadata-\\S*.xml" );
+        Matcher m = pattern.matcher( path );
+        if( m.matches() )
+        {
+            return filename.endsWith( path ) || ( "-".equals( filename ) ) 
+                || filename.endsWith( "maven-metadata.xml" );
+        }
+        
         return filename.endsWith( path ) || ( "-".equals( filename ) );
     }
 
index 733ffb7d3563d9dd3978344d803dd50f0bc441af..16377079b4abc179f65df5608248d93e7554a02d 100644 (file)
@@ -36,9 +36,13 @@ public class ChecksummedFileTest
 {
     /**  SHA1 checksum from www.ibiblio.org/maven2, incuding file path */
     private static final String SERVLETAPI_SHA1 = "bcc82975c0f9c681fcb01cc38504c992553e93ba";
+    
+    private static final String REMOTE_METADATA_SHA1 = "da39a3ee5e6b4b0d3255bfef95601890afd80709";
+    
+    private static final String REMOTE_METADATA_MD5 = "d41d8cd98f00b204e9800998ecf8427e";
 
     private File createTestableJar( String filename )
-        throws IOException
+        throws IOException 
     {
         File srcFile = getTestResource( filename );
         File destFile = new File( getTestOutputDir(), srcFile.getName() );
@@ -223,4 +227,43 @@ public class ChecksummedFileTest
         assertEquals( "Checksum doesn't match", SERVLETAPI_SHA1, s );
     }
 
+    public void testRemoteMetadataChecksumFilePathSha1()
+        throws IOException
+    {
+        String expected = REMOTE_METADATA_SHA1 + "  /home/test/repository/examples/metadata/maven-metadata.xml";
+        File testfile = getTestResource( "examples/metadata/maven-metadata-remote.xml" );
+        ChecksummedFile checksummedFile = new ChecksummedFile( testfile );
+        
+        try 
+        {
+            String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.SHA1,
+                "maven-metadata-remote.xml" );            
+            assertEquals( "Checksum doesn't match", REMOTE_METADATA_SHA1, s );
+        }
+        catch ( IOException e )
+        {   
+            e.printStackTrace();
+            fail( "IOException should not occur." );
+        }
+    }
+    
+    public void testRemoteMetadataChecksumFilePathMd5()
+        throws IOException
+    {
+        String expected = REMOTE_METADATA_MD5 + "  ./examples/metadata/maven-metadata.xml";
+        File testfile = getTestResource( "examples/metadata/maven-metadata-remote.xml" );
+        ChecksummedFile checksummedFile = new ChecksummedFile( testfile );
+        
+        try
+        {
+            String s = checksummedFile.parseChecksum( expected, ChecksumAlgorithm.MD5,
+                "maven-metadata-remote.xml" );     
+            assertEquals( "Checksum doesn't match", REMOTE_METADATA_MD5, s );
+        }
+        catch ( IOException e )
+        {   
+            e.printStackTrace();
+            fail( "IOException should not occur." );
+        }
+    }
 }
diff --git a/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml b/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.md5 b/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.md5
new file mode 100644 (file)
index 0000000..8f9a626
--- /dev/null
@@ -0,0 +1 @@
+d41d8cd98f00b204e9800998ecf8427e  ./examples/metadata/maven-metadata.xml
\ No newline at end of file
diff --git a/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.sha1 b/archiva-modules/archiva-base/archiva-checksum/src/test/resources/examples/metadata/maven-metadata-remote.xml.sha1
new file mode 100644 (file)
index 0000000..e87d165
--- /dev/null
@@ -0,0 +1 @@
+da39a3ee5e6b4b0d3255bfef95601890afd80709  /home/test/repository/examples/metadata/maven-metadata.xml
\ No newline at end of file