Author: brett
Date: Sat Sep  9 00:05:03 2006
New Revision: 441751

URL: http://svn.apache.org/viewvc?view=rev&rev=441751
Log:
[MRM-77] hadle some edge cases in reports

Modified:
    
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessor.java
    
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessor.java
    
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessorTest.java
    
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessorTest.java

Modified: 
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessor.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessor.java?view=diff&rev=441751&r1=441750&r2=441751
==============================================================================
--- 
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessor.java
 (original)
+++ 
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessor.java
 Sat Sep  9 00:05:03 2006
@@ -197,17 +197,21 @@
         RepositoryQueryLayer repositoryQueryLayer =
             repositoryQueryLayerFactory.createRepositoryQueryLayer( repository 
);
 
-        Snapshot snapshot = 
metadata.getMetadata().getVersioning().getSnapshot();
+        Versioning versioning = metadata.getMetadata().getVersioning();
+        if ( versioning != null )
+        {
+            Snapshot snapshot = versioning.getSnapshot();
 
-        String version = StringUtils.replace( metadata.getBaseVersion(), 
Artifact.SNAPSHOT_VERSION,
-                                              snapshot.getTimestamp() + "-" + 
snapshot.getBuildNumber() );
-        Artifact artifact =
-            artifactFactory.createProjectArtifact( metadata.getGroupId(), 
metadata.getArtifactId(), version );
-        artifact.isSnapshot(); // trigger baseVersion correction
+            String version = StringUtils.replace( metadata.getBaseVersion(), 
Artifact.SNAPSHOT_VERSION,
+                                                  snapshot.getTimestamp() + 
"-" + snapshot.getBuildNumber() );
+            Artifact artifact =
+                artifactFactory.createProjectArtifact( metadata.getGroupId(), 
metadata.getArtifactId(), version );
+            artifact.isSnapshot(); // trigger baseVersion correction
 
-        if ( !repositoryQueryLayer.containsArtifact( artifact ) )
-        {
-            reporter.addFailure( metadata, "Snapshot artifact " + version + " 
does not exist." );
+            if ( !repositoryQueryLayer.containsArtifact( artifact ) )
+            {
+                reporter.addFailure( metadata, "Snapshot artifact " + version 
+ " does not exist." );
+            }
         }
     }
 

Modified: 
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessor.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessor.java?view=diff&rev=441751&r1=441750&r2=441751
==============================================================================
--- 
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessor.java
 (original)
+++ 
maven/archiva/trunk/archiva-reports-standard/src/main/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessor.java
 Sat Sep  9 00:05:03 2006
@@ -82,6 +82,15 @@
                 {
                     Artifact artifact = createArtifact( dependency );
 
+                    // TODO: handle ranges properly. We should instead be 
mapping out all the artifacts in the
+                    // repository and mapping out the graph
+
+                    if ( artifact.getVersion() == null )
+                    {
+                        // it was a range, for now presume it exists
+                        continue;
+                    }
+
                     if ( !repositoryQueryLayer.containsArtifact( artifact ) )
                     {
                         String reason = MessageFormat.format(
@@ -118,8 +127,14 @@
     private Artifact createArtifact( Dependency dependency )
         throws InvalidVersionSpecificationException
     {
-        return artifactFactory.createDependencyArtifact( 
dependency.getGroupId(), dependency.getArtifactId(),
-                                                         
VersionRange.createFromVersionSpec( dependency.getVersion() ),
+        VersionRange spec = VersionRange.createFromVersionSpec( 
dependency.getVersion() );
+
+        if ( spec == null )
+        {
+            throw new InvalidVersionSpecificationException( "Dependency 
version was null" );
+        }
+
+        return artifactFactory.createDependencyArtifact( 
dependency.getGroupId(), dependency.getArtifactId(), spec,
                                                          dependency.getType(), 
dependency.getClassifier(),
                                                          dependency.getScope() 
);
     }

Modified: 
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessorTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessorTest.java?view=diff&rev=441751&r1=441750&r2=441751
==============================================================================
--- 
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessorTest.java
 (original)
+++ 
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/BadMetadataReportProcessorTest.java
 Sat Sep  9 00:05:03 2006
@@ -99,6 +99,26 @@
         assertFalse( "check no more failures", failures.hasNext() );
     }
 
+    public void testSnapshotMetadataMissingVersioning()
+    {
+        Artifact artifact =
+            artifactFactory.createBuildArtifact( "groupId", 
"snapshot-artifact", "1.0-alpha-1-SNAPSHOT", "type" );
+
+        RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( 
artifact );
+
+        badMetadataReportProcessor.processMetadata( metadata, repository, 
reporter );
+
+        Iterator failures = reporter.getMetadataIterator();
+        assertTrue( "check there is a failure", failures.hasNext() );
+        MetadataResults results = (MetadataResults) failures.next();
+        failures = results.getFailures().iterator();
+        assertTrue( "check there is a failure", failures.hasNext() );
+        assertMetadata( metadata, results );
+        Result result = (Result) failures.next();
+        assertEquals( "check reason", "Missing lastUpdated element inside the 
metadata.", result.getReason() );
+        assertFalse( "check no more failures", failures.hasNext() );
+    }
+
     public void testMetadataValidVersions()
     {
         Artifact artifact = artifactFactory.createBuildArtifact( "groupId", 
"artifactId", "1.0-alpha-1", "type" );

Modified: 
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessorTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessorTest.java?view=diff&rev=441751&r1=441750&r2=441751
==============================================================================
--- 
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessorTest.java
 (original)
+++ 
maven/archiva/trunk/archiva-reports-standard/src/test/java/org/apache/maven/archiva/reporting/DependencyArtifactReportProcessorTest.java
 Sat Sep  9 00:05:03 2006
@@ -241,6 +241,37 @@
         assertEquals( getDependencyVersionInvalidMessage( dependency, "[" ), 
result.getReason() );
     }
 
+    public void testValidArtifactWithInvalidDependencyVersionRange()
+    {
+        Artifact artifact = createValidArtifact();
+
+        Dependency dependency = createDependency( VALID_GROUP_ID, 
VALID_ARTIFACT_ID, "[1.0,)" );
+        model.addDependency( dependency );
+
+        processor.processArtifact( artifact, model, reporter );
+        assertEquals( 0, reporter.getNumFailures() );
+        assertEquals( 0, reporter.getNumWarnings() );
+    }
+
+    public void testValidArtifactWithMissingDependencyVersion()
+    {
+        Artifact artifact = createValidArtifact();
+
+        Dependency dependency = createDependency( VALID_GROUP_ID, 
VALID_ARTIFACT_ID, null );
+        model.addDependency( dependency );
+
+        processor.processArtifact( artifact, model, reporter );
+        assertEquals( 1, reporter.getNumFailures() );
+        assertEquals( 0, reporter.getNumWarnings() );
+
+        Iterator failures = reporter.getArtifactIterator();
+        ArtifactResults results = (ArtifactResults) failures.next();
+        assertFalse( failures.hasNext() );
+        failures = results.getFailures().iterator();
+        Result result = (Result) failures.next();
+        assertEquals( getDependencyVersionInvalidMessage( dependency, null ), 
result.getReason() );
+    }
+
     private String getDependencyVersionInvalidMessage( Dependency dependency, 
String version )
     {
         return "Artifact's dependency " + getDependencyString( dependency ) + 
" contains an invalid version " + version;


Reply via email to