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/14 00:55:55 UTC

svn commit: r356653 - in /maven/repository-manager/trunk/maven-repository-reports-standard/src: main/java/org/apache/maven/repository/reporting/ main/resources/META-INF/plexus/ test/java/org/apache/maven/repository/reporting/ test/repository/groupId/ar...

Author: epunzalan
Date: Tue Dec 13 15:55:33 2005
New Revision: 356653

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

Validation of artifact physical location against its pom and the pom inside its package

Added:
    maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom   (with props)
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt   (with props)
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/main/resources/META-INF/plexus/components.xml
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom
    maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom

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=356653&r1=356652&r2=356653&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 Tue Dec 13 15:55:33 2005
@@ -129,12 +129,12 @@
         if ( !repository.getProtocol().equals( "file" ) )
         {
             isLocal = false;
-            repositoryUrl = repository.getUrl();
+            repositoryUrl = repository.getUrl() + "/";
             filename = metadata.getRemoteFilename();
         }
         else
         {
-            repositoryUrl = repository.getBasedir();
+            repositoryUrl = repository.getBasedir() + "/";
             filename = metadata.getLocalFilename( repository );
         }
 

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java Tue Dec 13 15:55:33 2005
@@ -0,0 +1,276 @@
+package org.apache.maven.repository.reporting;
+
+/* 
+ * Copyright 2001-2005 The Apache Software Foundation. 
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ */
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.URL;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.codehaus.plexus.util.FileUtils;
+
+/**
+ * Validate the location of the artifact based on the values indicated
+ * in its pom (both the pom packaged with the artifact & the pom in the
+ * file system).
+ */
+public class LocationArtifactReportProcessor
+    implements ArtifactReportProcessor
+{
+    private boolean isLocal = true;
+
+    private InputStream is;
+
+    /**
+     * Check whether the artifact is in its proper location. The location of the artifact
+     * is validated first against the groupId, artifactId and versionId in the specified model
+     * object (pom in the file system). Then unpack the artifact (jar file) and get the model (pom) 
+     * included in the package. If a model exists inside the package, then check if the artifact's 
+     * location is valid based on the location specified in the pom. Check if the both the location
+     * specified in the file system pom and in the pom included in the package is the same.
+     * 
+     * @param model Represents the pom in the file system.
+     * @param artifact 
+     * @param reporter
+     * @param repository
+     */
+    public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter,
+                                ArtifactRepository repository )
+    {
+        boolean fsPomLocation = false, pkgPomLocation = false;
+        String repositoryUrl = "", modelArtifactLocation = "";
+
+        if ( !repository.getProtocol().equals( "file" ) )
+        {
+            isLocal = false;
+            repositoryUrl = repository.getUrl();
+        }
+        else
+        {
+            repositoryUrl = repository.getBasedir();
+        }
+
+        //check if the artifact is located in its proper location based on the info
+        //specified in the model object/pom
+        modelArtifactLocation = repositoryUrl + model.getGroupId() + "/" + model.getArtifactId() + "/"
+            + model.getVersion() + "/" + model.getArtifactId() + "-" + model.getVersion() + "." + model.getPackaging();
+        fsPomLocation = validateArtifactLocation( modelArtifactLocation );
+
+        //get the location of the artifact itself
+        String artifactLocation = repositoryUrl + artifact.getGroupId() + "/" + artifact.getArtifactId() + "/"
+            + artifact.getVersion() + "/" + artifact.getArtifactId() + "-" + artifact.getVersion() + "."
+            + artifact.getType();
+
+        //unpack the artifact (using the groupId, artifactId & version specified in the artifact object itself
+        //check if the pom is included in the package
+        Model extractedModel = unpackArtifact( artifactLocation, artifact.getGroupId(), artifact.getArtifactId(),
+                                               artifact.getVersion() );
+
+        if ( extractedModel != null )
+        {
+
+            String pkgPomArtifactLocation = repositoryUrl + extractedModel.getGroupId() + "/"
+                + extractedModel.getArtifactId() + "/" + extractedModel.getVersion() + "/"
+                + extractedModel.getArtifactId() + "-" + extractedModel.getVersion() + "."
+                + extractedModel.getPackaging();
+            pkgPomLocation = validateArtifactLocation( pkgPomArtifactLocation );
+
+            //check the conditions
+            if ( fsPomLocation == true && pkgPomLocation == true )
+            {
+                reporter.addSuccess( artifact );
+
+            }
+            else if ( fsPomLocation == false && pkgPomLocation == true )
+            {
+                reporter
+                    .addFailure( artifact,
+                                 "The artifact is out of place. It does not match the specified location in the file system pom." );
+
+            }
+            else if ( fsPomLocation == true && pkgPomLocation == false )
+            {
+                reporter
+                    .addFailure( artifact,
+                                 "The artifact is out of place. It does not match the specified location in the packaged pom." );
+
+            }
+            else if ( fsPomLocation == false && pkgPomLocation == false )
+            {
+                reporter.addFailure( artifact, "The artifact is out of place." );
+            }
+
+        }
+        else
+        {
+
+            if ( fsPomLocation )
+            {
+                reporter.addSuccess( artifact );
+
+            }
+            else
+            {
+                reporter.addFailure( artifact, "The artifact is out of place." );
+            }
+        }
+    }
+
+    /**
+     * Validate the if the artifact exists in the specified location.
+     * 
+     * @param filename
+     * @return
+     */
+    private boolean validateArtifactLocation( String filename )
+    {
+        try
+        {
+            if ( isLocal )
+            {
+                is = new FileInputStream( filename );
+            }
+            else
+            {
+                URL url = new URL( filename );
+                is = url.openStream();
+            }
+
+            is.close();
+        }
+        catch ( Exception e )
+        {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Extract the contents of the artifact/jar file.
+     * 
+     * @param filename
+     * @param groupId
+     * @param artifactId
+     * @param version
+     */
+    private Model unpackArtifact( String filename, String groupId, String artifactId, String version )
+    {
+        String basedir = "";
+        Model modelObj = null;
+
+        basedir = System.getProperty( "basedir" );
+        File f = new File( basedir + "/" + "temp" );
+        boolean b = f.mkdirs();
+
+        try
+        {
+            JarFile jar = new JarFile( filename );
+
+            try
+            {
+                //Get the entry and its input stream.
+                JarEntry entry = jar.getJarEntry( "META-INF/maven/" + groupId + "/" + artifactId + "/pom.xml" );
+
+                // If the entry is not null, extract it.
+                if ( entry != null )
+                {
+                    InputStream entryStream = jar.getInputStream( entry );
+
+                    try
+                    {
+
+                        //Create the output file (clobbering the file if it exists).
+                        FileOutputStream file = new FileOutputStream( basedir + "/temp/pom.xml" );
+
+                        try
+                        {
+                            byte[] buffer = new byte[1024];
+                            int bytesRead;
+
+                            while ( ( bytesRead = entryStream.read( buffer ) ) != -1 )
+                            {
+                                file.write( buffer, 0, bytesRead );
+                            }
+
+                        }
+                        finally
+                        {
+                            file.close();
+                        }
+                        InputStream inputStream = new FileInputStream( basedir + "/temp/pom.xml" );
+                        Reader isReader = new InputStreamReader( inputStream );
+
+                        try
+                        {
+                            MavenXpp3Reader pomReader = new MavenXpp3Reader();
+                            modelObj = pomReader.read( isReader );
+                        }
+                        finally
+                        {
+                            isReader.close();
+                            inputStream.close();
+                        }
+
+                    }
+                    finally
+                    {
+                        entryStream.close();
+                    }
+                }
+                else
+                {
+                    return modelObj;
+                }
+
+            }
+            finally
+            {
+                jar.close();
+            }
+
+        }
+        catch ( Exception e )
+        {
+            return modelObj;
+
+        }
+        finally
+        {
+            try
+            {
+                FileUtils.deleteDirectory( new File( basedir + "/temp" ) );
+            }
+            catch ( IOException ie )
+            {
+                return modelObj;
+            }
+        }
+        return modelObj;
+    }
+
+}

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/LocationArtifactReportProcessor.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml?rev=356653&r1=356652&r2=356653&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/resources/META-INF/plexus/components.xml Tue Dec 13 15:55:33 2005
@@ -19,7 +19,7 @@
     </component>
     <component>
     	<role>org.apache.maven.repository.reporting.ArtifactReportProcessor</role>
-    	<role-hint>default</role-hint>
+    	<role-hint>checksum</role-hint>
     	<implementation>org.apache.maven.repository.reporting.ChecksumArtifactReporter</implementation>
     	<instantiation-strategy>per-lookup</instantiation-strategy>
     </component>
@@ -29,5 +29,11 @@
     	<implementation>org.apache.maven.repository.reporting.ChecksumArtifactReporter</implementation>
     	<instantiation-strategy>per-lookup</instantiation-strategy>
     </component>
+    <component>
+    	<role>org.apache.maven.repository.reporting.ArtifactReportProcessor</role>
+    	<role-hint>artifact-location</role-hint>
+    	<implementation>org.apache.maven.repository.reporting.LocationArtifactReportProcessor</implementation>
+    	<instantiation-strategy>per-lookup</instantiation-strategy>
+    </component>    
   </components>
 </component-set>

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java?rev=356653&r1=356652&r2=356653&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractRepositoryReportsTestCase.java Tue Dec 13 15:55:33 2005
@@ -35,6 +35,20 @@
      */
     protected ArtifactRepository repository;
 
+    protected static final String remoteRepoUrl = "http://public.planetmirror.com/pub/maven2/";
+
+    protected static final String remoteArtifactGroup = "HTTPClient";
+
+    protected static final String remoteArtifactId = "HTTPClient";
+
+    protected static final String remoteArtifactVersion = "0.3-3";
+
+    protected static final String remoteArtifactScope = "compile";
+
+    protected static final String remoteArtifactType = "jar";
+
+    protected static final String remoteRepoId = "remote-repo";
+    
     protected void setUp()
         throws Exception
     {
@@ -45,7 +59,7 @@
         ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" );
 
         repository =
-            factory.createArtifactRepository( "test", repositoryDirectory.toURL().toString(), layout, null, null );
+            factory.createArtifactRepository( "repository", repositoryDirectory.toURL().toString(), layout, null, null );
     }
 
 }

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=356653&r1=356652&r2=356653&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 Tue Dec 13 15:55:33 2005
@@ -45,20 +45,6 @@
 
     private MetadataReportProcessor metadataReportProcessor;
 
-    private static final String remoteRepoUrl = "http://public.planetmirror.com/pub/maven2/";
-
-    private static final String remoteArtifactGroup = "HTTPClient";
-
-    private static final String remoteArtifactId = "HTTPClient";
-
-    private static final String remoteArtifactVersion = "0.3-3";
-
-    private static final String remoteArtifactScope = "compile";
-
-    private static final String remoteArtifactType = "jar";
-
-    private static final String remoteRepoId = "remote-repo";
-
     public ChecksumArtifactReporterTest()
     {
 
@@ -68,7 +54,7 @@
         throws Exception
     {
         super.setUp();
-        artifactReportProcessor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "default" );
+        artifactReportProcessor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "checksum" );
         metadataReportProcessor = (MetadataReportProcessor) lookup( MetadataReportProcessor.ROLE, "checksum-metadata" );
     }
 
@@ -107,18 +93,10 @@
             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.getArtifactSuccessIterator();
-            int ctr = 0;
-            while ( iter.hasNext() )
-            {
-                ArtifactResult result = (ArtifactResult) iter.next();
-                ctr++;
-            }
-            //System.out.println( "ARTIFACT Number of success --- " + ctr );
+            assertTrue( reporter.getSuccesses() == 2 );
+            //System.out.println( "1 - SUCCESS ---> " + reporter.getSuccesses() );
 
         }
         catch ( Exception e )
@@ -139,20 +117,10 @@
             VersionRange version = VersionRange.createFromVersion( "1.0" );
             Artifact artifact = new DefaultArtifact( "checksumTest", "invalidArtifact", 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( "ARTIFACT Number of failures --- " + ctr );
-
+            assertTrue( reporter.getFailures() == 2 );
+            //System.out.println( "2 - FAILURES ---> " + reporter.getFailures() );
         }
         catch ( Exception e )
         {
@@ -170,34 +138,26 @@
         try
         {
             ArtifactHandler handler = new DefaultArtifactHandler( "jar" );
-            ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/"
-                + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() );
             VersionRange version = VersionRange.createFromVersion( "1.0" );
             Artifact artifact = new DefaultArtifact( "checksumTest", "validArtifact", version, "compile", "jar", "",
                                                      handler );
 
-        //Version level metadata
+            //Version level metadata
             RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
-            metadataReportProcessor.processMetadata( metadata, repository, reporter );            
-            
-       //Artifact level metadata
+            metadataReportProcessor.processMetadata( metadata, repository, reporter );
+
+            //Artifact level metadata
             metadata = new ArtifactRepositoryMetadata( artifact );
             metadataReportProcessor.processMetadata( metadata, repository, reporter );
-            
-            
-       //Group level metadata
-            metadata = new GroupRepositoryMetadata( "checksumTest" );
 
+            //Group level metadata
+            metadata = new GroupRepositoryMetadata( "checksumTest" );
             metadataReportProcessor.processMetadata( metadata, repository, reporter );
+
             Iterator iter = reporter.getRepositoryMetadataSuccessIterator();
-            int ctr = 0;
-            while ( iter.hasNext() )
-            {
-                RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
-                ctr++;
-            }
-            //System.out.println( "METADATA Number of success --- " + ctr );
-            
+            //System.out.println( "3 - META SUCCESS ---> " + iter.hasNext() );
+            assertTrue( "check if there is a success", iter.hasNext() );
+
         }
         catch ( Exception e )
         {
@@ -215,8 +175,6 @@
         try
         {
             ArtifactHandler handler = new DefaultArtifactHandler( "jar" );
-            ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/"
-                + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() );
             VersionRange version = VersionRange.createFromVersion( "1.0" );
             Artifact artifact = new DefaultArtifact( "checksumTest", "invalidArtifact", version, "compile", "jar", "",
                                                      handler );
@@ -224,14 +182,11 @@
             RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
             metadataReportProcessor.processMetadata( metadata, repository, reporter );
 
+            //System.out.println("reporter.getFailures() ---> " + reporter.getFailures());
+
             Iterator iter = reporter.getRepositoryMetadataFailureIterator();
-            int ctr = 0;
-            while ( iter.hasNext() )
-            {
-                RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
-                ctr++;
-            }
-            //System.out.println( "METADATA Number of failures --- " + ctr );
+            //System.out.println( "4 - META FAILURE ---> " + iter.hasNext() );
+            assertTrue( "check if there is a failure", iter.hasNext() );
 
         }
         catch ( Exception e )
@@ -253,14 +208,12 @@
                                                                        new DefaultRepositoryLayout() );
 
         artifactReportProcessor.processArtifact( null, artifact, reporter, repository );
-        Iterator iter = reporter.getArtifactSuccessIterator();
-        int ctr = 0;
-        while ( iter.hasNext() )
-        {
-            ArtifactResult result = (ArtifactResult) iter.next();
-            ctr++;
-        }
-        //System.out.println( "[REMOTE] ARTIFACT Number of success --- " + ctr );
+        if ( reporter.getFailures() == 2 )
+            assertTrue( reporter.getFailures() == 2 );
+
+        if ( reporter.getSuccesses() == 2 )
+            assertTrue( reporter.getSuccesses() == 2 );
+
     }
 
     /**
@@ -277,19 +230,18 @@
                                                      remoteArtifactScope, remoteArtifactType, "", handler );
             ArtifactRepository repository = new DefaultArtifactRepository( remoteRepoId, remoteRepoUrl,
                                                                            new DefaultRepositoryLayout() );
-       
+
             RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
 
             metadataReportProcessor.processMetadata( metadata, repository, reporter );
             Iterator iter = reporter.getRepositoryMetadataFailureIterator();
-            int ctr = 0;
-            while ( iter.hasNext() )
-            {
-                RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
-                ctr++;
-            }
-            //System.out.println( "[REMOTE] METADATA in version directory, Number of sucess --- " + ctr );
-      
+            if ( iter.hasNext() )
+                assertTrue( "check if there is a failure", iter.hasNext() );
+
+            iter = reporter.getRepositoryMetadataSuccessIterator();
+            if ( iter.hasNext() )
+                assertTrue( "check if there is a success", iter.hasNext() );
+
         }
         catch ( Exception e )
         {
@@ -302,63 +254,50 @@
      */
     public void testDeleteChecksumFiles()
     {
-        //System.out.println("TESTDELETE CHECKSUM FILES....." + deleteChecksumFiles("jar"));
-        
-        assertTrue( 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");   
-        
+    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 );
-           
+            //System.out.println( "5 - ART FAILURE ---> " + reporter.getFailures() );
+            assertTrue( reporter.getFailures() == 2 );
+
             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 );
+            Iterator iter = reporter.getRepositoryMetadataFailureIterator();
+            //System.out.println( "5 - META FAILURE ---> " + iter.hasNext() );
+            assertTrue( "check if there is a failure", iter.hasNext() );
+
         }
         catch ( Exception e )
         {
             e.printStackTrace();
-        }        
-        
+        }
+
         b = deleteTestDirectory( new File( repository.getBasedir() + "checksumTest" ) );
     }
 }

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom?rev=356653&r1=356652&r2=356653&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-1/artifactId-1.0-alpha-1.pom Tue Dec 13 15:55:33 2005
@@ -0,0 +1,6 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>groupId</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.0-alpha-1</version>
+</project>

Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom?rev=356653&r1=356652&r2=356653&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/groupId/artifactId/1.0-alpha-2/artifactId-1.0-alpha-2.pom Tue Dec 13 15:55:33 2005
@@ -0,0 +1,6 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>groupId</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.0-alpha-2</version>
+</project>

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom Tue Dec 13 15:55:33 2005
@@ -0,0 +1,31 @@
+<project>
+  <parent>
+    <artifactId>maven</artifactId>
+    <groupId>org.apache.maven</groupId>
+    <version>2.1</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>maven-archiver</artifactId>
+  <name>Maven Archiver</name>
+  <version>2.1</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-project</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-archiver</artifactId>
+      <version>1.0-alpha-3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/maven-archiver-2.0.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt Tue Dec 13 15:55:33 2005
@@ -0,0 +1,4 @@
+- The artifact location does not match the location specified in the file system, but
+	matches the location specified in the pom included in the package.
+- The groupId, artifactId and version of the pom in the file system does not match 
+	the groupId, artifactId and version of the pom included in the package.

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-archiver/2.0/note.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom Tue Dec 13 15:55:33 2005
@@ -0,0 +1,86 @@
+<project>
+  <parent>
+    <artifactId>maven</artifactId>
+    <groupId>org.apache.maven</groupId>
+    <version>2.0</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-model</artifactId>
+  <name>Maven Model</name>
+  <version>2.0</version>
+  <description>Maven Model</description>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.modello</groupId>
+        <artifactId>modello-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>xpp3-writer</goal>
+              <goal>java</goal>
+              <goal>xpp3-reader</goal>
+              <goal>xsd</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <version>4.0.0</version>
+          <model>maven.mdo</model>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <profiles>
+    <profile>
+      <id>all-models</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.modello</groupId>
+            <artifactId>modello-maven-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>v3</id>
+                <goals>
+                  <goal>xpp3-writer</goal>
+                  <goal>java</goal>
+                  <goal>xpp3-reader</goal>
+                  <goal>xsd</goal>
+                </goals>
+                <configuration>
+                  <version>3.0.0</version>
+                  <packageWithVersion>true</packageWithVersion>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <artifactId>maven-jar-plugin</artifactId>
+            <executions>
+              <execution>
+                <phase>package</phase>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+                <configuration>
+                  <classifier>all</classifier>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+  </dependencies>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/maven-model-2.0.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt Tue Dec 13 15:55:33 2005
@@ -0,0 +1,3 @@
+- The artifact is located in the proper location.
+- The groupId, artifactId and version of the pom in the file system matches 
+	the groupId, artifactId and version of the pom included in the package.

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-model/2.0/note.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom Tue Dec 13 15:55:33 2005
@@ -0,0 +1,15 @@
+<project>
+  <parent>
+    <artifactId>maven</artifactId>
+    <groupId>org.apache.maven</groupId>
+    <version>2.1</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-monitor</artifactId>
+  <name>Maven Monitor</name>
+  <version>2.1</version>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/maven-monitor-2.1.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt Tue Dec 13 15:55:33 2005
@@ -0,0 +1,4 @@
+- The artifact location matches the location specified in the file system, but
+	does not match the location specified in the pom included in the package.
+- The groupId, artifactId and version of the pom in the file system does not match 
+	the groupId, artifactId and version of the pom included in the package.

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-monitor/2.1/note.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom Tue Dec 13 15:55:33 2005
@@ -0,0 +1,52 @@
+<project>
+  <parent>
+    <artifactId>maven</artifactId>
+    <groupId>org.apache.maven</groupId>
+    <version>2.0</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>maven-project</artifactId>
+  <name>Maven Project Builder</name>
+  <version>2.0</version>
+  <description>This library is used to not only read Maven project object model files, but to assemble inheritence
+    and to retrieve remote models as required.</description>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-test</artifactId>
+      <version>2.0</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-profile</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact-manager</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-container-default</artifactId>
+    </dependency>
+  </dependencies>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/maven-project-2.1.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt?rev=356653&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt (added)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt Tue Dec 13 15:55:33 2005
@@ -0,0 +1,4 @@
+- The artifact location does not match both the location specified in the file system pom
+	and in the pom included in the package.
+- The groupId, artifactId and version of the pom in the file system does not match 
+	the groupId, artifactId and version of the pom included in the package.

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/repository/org.apache.maven/maven-project/2.1/note.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"