You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ep...@apache.org on 2005/12/09 03:18:46 UTC

svn commit: r355319 - in /maven/repository-manager/trunk/maven-repository-reports-standard/src: main/java/org/apache/maven/repository/reporting/ test/java/org/apache/maven/repository/reporting/

Author: epunzalan
Date: Thu Dec  8 18:18:36 2005
New Revision: 355319

URL: http://svn.apache.org/viewcvs?rev=355319&view=rev
Log:
PR: MRM-17
Submitted by: Maria Odea Ching

Additional unit tests

Modified:
    maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java?rev=355319&r1=355318&r2=355319&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java Thu Dec  8 18:18:36 2005
@@ -34,10 +34,7 @@
 
 /**
  * This class reports invalid and mismatched checksums of artifacts and metadata files. 
- * It validates MD5 and SHA-1 chacksums.
- * 
- * @TODO 
- *  - Validate using remote repository.
+ * It validates MD5 and SHA-1 checksums.
  */
 public class ChecksumArtifactReporter
     implements ArtifactReportProcessor, MetadataReportProcessor
@@ -60,9 +57,9 @@
     public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter,
                                 ArtifactRepository repository )
     {
-        System.out.println( " " );
-        System.out
-            .println( "===================================== +++++  PROCESS ARTIFACT +++++ ====================================" );
+        //System.out.println( " " );
+        //System.out
+        //   .println( "===================================== +++++  PROCESS ARTIFACT +++++ ====================================" );
 
         String artifactUrl = "";
         String repositoryUrl = "";
@@ -96,6 +93,10 @@
                 reporter.addFailure( artifact, "MD5 checksum does not match." );
             }
         }
+        else
+        {
+            reporter.addFailure( artifact, "MD5 checksum file does not exist." );
+        }
 
         if ( sha1Exists )
         {
@@ -108,6 +109,10 @@
                 reporter.addFailure( artifact, "SHA-1 checksum does not match." );
             }
         }
+        else
+        {
+            reporter.addFailure( artifact, "SHA-1 checksum file does not exist." );
+        }
     }
 
     /**
@@ -116,9 +121,9 @@
      */
     public void processMetadata( RepositoryMetadata metadata, ArtifactRepository repository, ArtifactReporter reporter )
     {
-        System.out.println( " " );
-        System.out
-            .println( "====================================== +++++  PROCESS METADATA +++++ ==============================" );
+        // System.out.println( " " );
+        // System.out
+        //   .println( "====================================== +++++  PROCESS METADATA +++++ ==============================" );
 
         String metadataUrl = "", repositoryUrl = "", filename = "";
         if ( !repository.getProtocol().equals( "file" ) )
@@ -133,20 +138,20 @@
             filename = metadata.getLocalFilename( repository );
         }
 
-        //version metadata
         if ( metadata.storedInArtifactVersionDirectory() == true && metadata.storedInGroupDirectory() == false )
         {
+            //version metadata
             metadataUrl = repositoryUrl + metadata.getGroupId() + "/" + metadata.getArtifactId() + "/"
                 + metadata.getBaseVersion() + "/";
-            //group metadata
         }
         else if ( metadata.storedInArtifactVersionDirectory() == false && metadata.storedInGroupDirectory() == true )
         {
+            //group metadata
             metadataUrl = repositoryUrl + metadata.getGroupId() + "/";
-            //artifact metadata
         }
         else
         {
+            //artifact metadata
             metadataUrl = repositoryUrl + metadata.getGroupId() + "/" + metadata.getArtifactId() + "/";
         }
 
@@ -168,6 +173,10 @@
                 reporter.addFailure( metadata, "MD5 checksum does not match." );
             }
         }
+        else
+        {
+            reporter.addFailure( metadata, "MD5 checksum file does not exist." );
+        }
 
         if ( sha1Exists )
         {
@@ -180,6 +189,10 @@
                 reporter.addFailure( metadata, "SHA-1 checksum does not match." );
             }
         }
+        else
+        {
+            reporter.addFailure( metadata, "SHA-1 checksum file does not exist." );
+        }
 
     }
 
@@ -281,10 +294,10 @@
                 isr.close();
 
                 String chk2Str = new String( chars );
-                System.out.println( "-----" + algo + " Checksum value (CHK1 - created checksum for jar file) ::::: "
-                    + byteArrayToHexStr( chk1 ) );
-                System.out.println( "-----" + algo + " Checksum value (CHK2 - content of CHECKSUM file) ::::: "
-                    + chk2Str );
+                //System.out.println( "-----" + algo + " Checksum value (CHK1 - created checksum for jar file) ::::: "
+                //   + byteArrayToHexStr( chk1 ) );
+                // System.out.println( "-----" + algo + " Checksum value (CHK2 - content of CHECKSUM file) ::::: "
+                //     + chk2Str );
 
                 if ( chk2Str.toUpperCase().equals( byteArrayToHexStr( chk1 ).toUpperCase() ) )
                 {
@@ -300,7 +313,7 @@
         }
         catch ( Exception e )
         {
-            e.printStackTrace();
+            //e.printStackTrace();
             return valid;
         }
     }

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java?rev=355319&r1=355318&r2=355319&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java Thu Dec  8 18:18:36 2005
@@ -35,9 +35,6 @@
 import org.codehaus.plexus.util.FileUtils;
 
 /**
- * @TODO
- *  - Create more valid and invalid artifacts & metadata files for further testing.
- *
  * This class creates the artifact and metadata files used for testing the ChecksumArtifactReporter.
  * It is extended by ChecksumArtifactReporterTest class.
  */
@@ -115,6 +112,8 @@
         if ( type.equals( "VALID" ) )
         {
             writeMetadataFile( "checksumTest/validArtifact/1.0/", metadataChecksumFilename, "xml", true );
+            writeMetadataFile( "checksumTest/validArtifact/", metadataChecksumFilename, "xml", true );
+            writeMetadataFile( "checksumTest/", metadataChecksumFilename, "xml", true );
 
         }
         else if ( type.equals( "INVALID" ) )
@@ -135,8 +134,8 @@
      */
     private boolean writeChecksumFile( String relativePath, String filename, String type, boolean isValid )
     {
-        System.out.println( " " );
-        System.out.println( "========================= ARTIFACT CHECKSUM ==================================" );
+        //System.out.println( " " );
+        //System.out.println( "========================= ARTIFACT CHECKSUM ==================================" );
 
         //Initialize variables for creating jar files
         FileOutputStream f = null;
@@ -145,9 +144,6 @@
         try
         {
             String dirs = filename.replace( '-', '/' );
-            //String[] split1 = repoUrl.split( "file:/" );
-            //split1[1] = split1[1] + "/";
-
             //create the group level directory of the artifact    
             File dirFiles = new File( repoUrl + relativePath + dirs );
 
@@ -175,8 +171,8 @@
                 //Create md5 and sha-1 checksum files..
                 byte[] md5chk = createChecksum( repoUrl + relativePath + dirs + "/" + filename + "." + type, "MD5" );
                 byte[] sha1chk = createChecksum( repoUrl + relativePath + dirs + "/" + filename + "." + type, "SHA-1" );
-                System.out.println( "----- CREATED MD5 checksum ::: " + byteArrayToHexStr( md5chk ) );
-                System.out.println( "----- CREATED SHA-1 checksum ::: " + byteArrayToHexStr( sha1chk ) );
+                //System.out.println( "----- CREATED MD5 checksum ::: " + byteArrayToHexStr( md5chk ) );
+                //System.out.println( "----- CREATED SHA-1 checksum ::: " + byteArrayToHexStr( sha1chk ) );
 
                 File file = null;
 
@@ -222,22 +218,21 @@
      */
     private boolean writeMetadataFile( String relativePath, String filename, String type, boolean isValid )
     {
-        System.out.println( " " );
-        System.out.println( "========================= METADATA CHECKSUM ==================================" );
+        // System.out.println( " " );
+        // System.out.println( "========================= METADATA CHECKSUM ==================================" );
         try
         {
             //create checksum for the metadata file..
             String repoUrl = repository.getBasedir();
             String url = repository.getBasedir() + "/" + filename + "." + type;
 
-            //boolean copied = copyFile( url, repoUrl + relativePath + filename + "." + type );
             FileUtils.copyFile( new File( url ), new File( repoUrl + relativePath + filename + "." + type ) );
 
             //Create md5 and sha-1 checksum files..
             byte[] md5chk = createChecksum( repoUrl + relativePath + filename + "." + type, "MD5" );
             byte[] sha1chk = createChecksum( repoUrl + relativePath + filename + "." + type, "SHA-1" );
-            System.out.println( "----- CREATED MD5 checksum ::: " + byteArrayToHexStr( md5chk ) );
-            System.out.println( "----- CREATED SHA-1 checksum ::: " + byteArrayToHexStr( sha1chk ) );
+            //System.out.println( "----- CREATED MD5 checksum ::: " + byteArrayToHexStr( md5chk ) );
+            //System.out.println( "----- CREATED SHA-1 checksum ::: " + byteArrayToHexStr( sha1chk ) );
 
             File file = null;
 
@@ -372,6 +367,51 @@
             ioe.printStackTrace();
         }
 
+        return b;
+    }
+
+    private boolean deleteFile( String filename )
+    {
+        File f = new File( filename );
+        return f.delete();
+    }
+
+    /**
+     * 
+     * @return
+     */
+    protected boolean deleteChecksumFiles( String type )
+    {
+
+        boolean b = true;
+
+        //delete valid checksum files of artifacts created
+        for ( int i = 0; i < validArtifactChecksumJars.length; i++ )
+        {
+            b = deleteFile( repository.getBasedir() + "checksumTest/" + validArtifactChecksumJars[i].replace( '-', '/' )
+                + "/" + validArtifactChecksumJars[i] + "." + type + ".md5" );
+            if ( b == false )
+                return b;
+
+            b = deleteFile( repository.getBasedir() + "checksumTest/" + validArtifactChecksumJars[i].replace( '-', '/' )
+                + "/" + validArtifactChecksumJars[i] + "." + type + ".sha1" );
+            if ( b == false )
+                return b;
+        }
+
+        //delete valid checksum files of metadata file
+        for ( int i = 0; i < validArtifactChecksumJars.length; i++ )
+        {
+            b = deleteFile( repository.getBasedir() + "checksumTest/" + validArtifactChecksumJars[i].replace( '-', '/' )
+                + "/" + metadataChecksumFilename + ".xml.md5" );
+            if ( b == false )
+                return b;
+
+            b = deleteFile( repository.getBasedir() + "checksumTest/" + validArtifactChecksumJars[i].replace( '-', '/' )
+                + "/" + metadataChecksumFilename + ".xml.sha1" );
+            if ( b == false )
+                return b;
+        }
         return b;
     }
 

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java?rev=355319&r1=355318&r2=355319&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java Thu Dec  8 18:18:36 2005
@@ -26,15 +26,13 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.GroupRepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
 import org.apache.maven.artifact.versioning.VersionRange;
 
-/**
- * @TODO 
- *  - Test with multiple success and multiple failures
- *  - Test using remote repository
- * 
+/** 
  * This class tests the ChecksumArtifactReporter. 
  * It extends the AbstractChecksumArtifactReporterTest class.
  */
@@ -72,19 +70,12 @@
         super.setUp();
         artifactReportProcessor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "default" );
         metadataReportProcessor = (MetadataReportProcessor) lookup( MetadataReportProcessor.ROLE, "checksum-metadata" );
-
-        // boolean b = createChecksumFile( "VALID" );
-        // b = createChecksumFile( "INVALID" );
-        // b = createMetadataFile( "VALID" );
-        // b = createMetadataFile( "INVALID" );
     }
 
     public void tearDown()
         throws Exception
     {
         super.tearDown();
-        //String[] split = super.repository.getUrl().split("file:/");
-        //boolean b = deleteTestDirectory(new File(split[1] + "checksumTest") );
     }
 
     /**
@@ -96,6 +87,9 @@
         assertTrue( createChecksumFile( "INVALID" ) );
     }
 
+    /**
+     * Test creation of metadata file together with its checksums.
+     */
     public void testCreateMetadataFile()
     {
         assertTrue( createMetadataFile( "VALID" ) );
@@ -124,7 +118,7 @@
                 ArtifactResult result = (ArtifactResult) iter.next();
                 ctr++;
             }
-            System.out.println( "ARTIFACT Number of success --- " + ctr );
+            //System.out.println( "ARTIFACT Number of success --- " + ctr );
 
         }
         catch ( Exception e )
@@ -157,7 +151,7 @@
                 ArtifactResult result = (ArtifactResult) iter.next();
                 ctr++;
             }
-            System.out.println( "ARTIFACT Number of failures --- " + ctr );
+            //System.out.println( "ARTIFACT Number of failures --- " + ctr );
 
         }
         catch ( Exception e )
@@ -182,9 +176,19 @@
             Artifact artifact = new DefaultArtifact( "checksumTest", "validArtifact", version, "compile", "jar", "",
                                                      handler );
 
+        //Version level metadata
             RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
+            metadataReportProcessor.processMetadata( metadata, repository, reporter );            
+            
+       //Artifact level metadata
+            metadata = new ArtifactRepositoryMetadata( artifact );
             metadataReportProcessor.processMetadata( metadata, repository, reporter );
+            
+            
+       //Group level metadata
+            metadata = new GroupRepositoryMetadata( "checksumTest" );
 
+            metadataReportProcessor.processMetadata( metadata, repository, reporter );
             Iterator iter = reporter.getRepositoryMetadataSuccessIterator();
             int ctr = 0;
             while ( iter.hasNext() )
@@ -192,8 +196,8 @@
                 RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
                 ctr++;
             }
-            System.out.println( "REPORT METADATA Number of success --- " + ctr );
-
+            //System.out.println( "METADATA Number of success --- " + ctr );
+            
         }
         catch ( Exception e )
         {
@@ -227,7 +231,7 @@
                 RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
                 ctr++;
             }
-            System.out.println( "REPORT METADATA Number of failures --- " + ctr );
+            //System.out.println( "METADATA Number of failures --- " + ctr );
 
         }
         catch ( Exception e )
@@ -256,7 +260,7 @@
             ArtifactResult result = (ArtifactResult) iter.next();
             ctr++;
         }
-        System.out.println( "[REMOTE] ARTIFACT Number of success --- " + ctr );
+        //System.out.println( "[REMOTE] ARTIFACT Number of success --- " + ctr );
     }
 
     /**
@@ -273,6 +277,7 @@
                                                      remoteArtifactScope, remoteArtifactType, "", handler );
             ArtifactRepository repository = new DefaultArtifactRepository( remoteRepoId, remoteRepoUrl,
                                                                            new DefaultRepositoryLayout() );
+       
             RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
 
             metadataReportProcessor.processMetadata( metadata, repository, reporter );
@@ -283,8 +288,8 @@
                 RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
                 ctr++;
             }
-            System.out.println( "[REMOTE] REPORT METADATA Number of sucess --- " + ctr );
-
+            //System.out.println( "[REMOTE] METADATA in version directory, Number of sucess --- " + ctr );
+      
         }
         catch ( Exception e )
         {
@@ -295,10 +300,65 @@
     /**
      * Test deletion of the test directories created.
      */
-    public void testDeleteTestDirectory()
+    public void testDeleteChecksumFiles()
     {
-        String[] split = super.repository.getUrl().split( "file:/" );
-        assertTrue( deleteTestDirectory( new File( split[1] + "checksumTest" ) ) );
+        //System.out.println("TESTDELETE CHECKSUM FILES....." + deleteChecksumFiles("jar"));
+        
+        assertTrue( deleteChecksumFiles("jar"));
+    }
+    
+    /**
+     * Test deletion of the test directories created.
+     */
+    public void testDeleteTestDirectory()
+    {   
+        assertTrue( deleteTestDirectory( new File( repository.getBasedir() + "checksumTest" ) ) );
     }
 
+    /**
+     * Test the conditional when the checksum files of the artifact & metadata do not exist.
+     */
+    public void testChecksumFilesDoNotExist(){
+        createChecksumFile("VALID");
+        createMetadataFile("VALID");
+        boolean b = deleteChecksumFiles("jar");   
+        
+        try
+        {
+            ArtifactHandler handler = new DefaultArtifactHandler( "jar" );
+            VersionRange version = VersionRange.createFromVersion( "1.0" );
+            Artifact artifact = new DefaultArtifact( "checksumTest", "validArtifact", version, "compile", "jar", "",
+                                                     handler );
+            ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/"
+                + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() );
+
+            artifactReportProcessor.processArtifact( null, artifact, reporter, repository );
+            Iterator iter = reporter.getArtifactFailureIterator();
+            int ctr = 0;
+            while ( iter.hasNext() )
+            {
+                ArtifactResult result = (ArtifactResult) iter.next();
+                ctr++;
+            }
+            //System.out.println( "[FILE DOES NOT EXIST] ARTIFACT Number of failures --- " + ctr );
+           
+            RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
+            metadataReportProcessor.processMetadata( metadata, repository, reporter );
+
+            iter = reporter.getRepositoryMetadataFailureIterator();
+            ctr = 0;
+            while ( iter.hasNext() )
+            {
+                RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
+                ctr++;
+            }
+            //System.out.println( "[FILE DOES NOT EXIST] METADATA Number of failures --- " + ctr );
+        }
+        catch ( Exception e )
+        {
+            e.printStackTrace();
+        }        
+        
+        b = deleteTestDirectory( new File( repository.getBasedir() + "checksumTest" ) );
+    }
 }