Author: jzurbano
Date: Mon Oct 12 04:29:06 2009
New Revision: 824220

URL: http://svn.apache.org/viewvc?rev=824220&view=rev
Log:
[MRM-1246] - MetadataUpdaterConsumer didn't run during a repository scan after 
deleting a version of an artifact.
- added unit test for updating metadata
- added unit test sample artifacts
- applied the submitted patch

Submitted by: Gwen Harold Autencio


Added:
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/maven-metadata.xml
   (with props)
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.jar
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.pom
   (with props)
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/maven-metadata.xml
   (with props)
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.jar
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.pom
   (with props)
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/maven-metadata.xml
   (with props)
Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java?rev=824220&r1=824219&r2=824220&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/ConsumerWantsFilePredicate.java
 Mon Oct 12 04:29:06 2009
@@ -19,14 +19,15 @@
  * under the License.
  */
 
+import java.io.File;
+import java.util.List;
+
 import org.apache.commons.collections.Predicate;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.maven.archiva.common.utils.BaseFile;
 import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
 import org.codehaus.plexus.util.SelectorUtils;
 
-import java.util.List;
-
 /**
  * ConsumerWantsFilePredicate 
  *
@@ -62,8 +63,19 @@
                     // Timestamp finished points to the last successful scan, 
not this current one.
                     if ( basefile.lastModified() < changesSince )
                     {
-                        // Skip file as no change has occured.
-                        satisfies = false;
+                        // MRM-1246
+                        // compares the lastModified of the version-level 
(basefile) and the project-level (parent) metadata
+                        File parent = basefile.getParentFile().getParentFile();
+                           
+                        if ( parent.lastModified() > basefile.lastModified() )
+                        {
+                            satisfies = true;
+                        }
+                        else 
+                        {
+                            // Skip file as no change has occurred.
+                            satisfies = false;   
+                        }
                     }
                 }
             }

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java?rev=824220&r1=824219&r2=824220&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java
 Mon Oct 12 04:29:06 2009
@@ -130,6 +130,30 @@
 //        }
 //    }
 
+    public void testUpdateProjectNonExistingVersion()
+        throws Exception
+    {
+        ManagedRepositoryContent testRepo = createTestRepoContent();
+        ProjectReference reference = new ProjectReference();
+        reference.setGroupId( "org.apache.archiva.metadata.tests" );
+        reference.setArtifactId( "missing_artifact" );
+
+        prepTestRepo( testRepo, reference );
+        
+        // check metadata prior to update -- should contain the non-existing 
artifact version
+        assertProjectMetadata( testRepo, reference, "missing_artifact", new 
String[] {
+            "1.0-SNAPSHOT",
+            "1.1-SNAPSHOT",
+            "1.2-SNAPSHOT" }, "1.2-SNAPSHOT" , null );
+
+        tools.updateMetadata( testRepo, reference );
+        
+        // metadata should not contain the non-existing artifact version -- 
1.1-SNAPSHOT
+        assertProjectMetadata( testRepo, reference, "missing_artifact", new 
String[] {
+            "1.0-SNAPSHOT",
+            "1.2-SNAPSHOT" }, "1.2-SNAPSHOT" , null );
+    }
+
     public void testUpdateProjectMissingMultipleVersions()
         throws Exception
     {
@@ -422,6 +446,40 @@
         assertMetadata( buf.toString(), testRepo, reference );
     }
 
+    private void assertProjectMetadata( ManagedRepositoryContent testRepo, 
ProjectReference reference, String artifactId,
+                                        String[] expectedVersions, String 
latestVersion, String releaseVersion )
+        throws Exception
+    {
+        StringBuilder buf = new StringBuilder();
+        buf.append( "<metadata>\n" );
+        buf.append( "  <groupId>" ).append( reference.getGroupId() ).append( 
"</groupId>\n" );
+        buf.append( "  <artifactId>" ).append( reference.getArtifactId() 
).append( "</artifactId>\n" );
+        
+        if ( expectedVersions != null )
+        {
+            buf.append( "  <versioning>\n" );
+            if ( latestVersion != null )
+            {
+                buf.append( "    <latest>" ).append( latestVersion ).append( 
"</latest>\n" );
+            }
+            if ( releaseVersion != null )
+            {
+                buf.append( "    <release>" ).append( releaseVersion ).append( 
"</release>\n" );
+            }
+
+            buf.append( "    <versions>\n" );
+            for ( int i = 0; i < expectedVersions.length; i++ )
+            {
+                buf.append( "      <version>" ).append( expectedVersions[i] 
).append( "</version>\n" );
+            }
+            buf.append( "    </versions>\n" );
+            buf.append( "  </versioning>\n" );
+        }
+        buf.append( "</metadata>" );
+
+        assertMetadata( buf.toString(), testRepo, reference );
+    }
+
     private void assertUpdatedReleaseVersionMetadata( String artifactId, 
String version )
         throws Exception
     {

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java?rev=824220&r1=824219&r2=824220&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerTest.java
 Mon Oct 12 04:29:06 2009
@@ -140,7 +140,7 @@
         assertNotNull( "Stats should not be null.", stats );
         assertEquals( "Stats.totalFileCount", 4, stats.getTotalFileCount() );
         assertEquals( "Stats.newFileCount", 3, stats.getNewFileCount() );
-        assertEquals( "Processed Count", 2, consumer.getProcessCount() );
+        assertEquals( "Processed Count", 3, consumer.getProcessCount() );
         assertEquals( "Processed Count (of invalid items)", 1, 
badconsumer.getProcessCount() );
     }
 

Added: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/maven-metadata.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/maven-metadata.xml?rev=824220&view=auto
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/maven-metadata.xml
 (added)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/maven-metadata.xml
 Mon Oct 12 04:29:06 2009
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<metadata>
+  <groupId>org.apache.archiva.metadata.tests</groupId>
+  <artifactId>missing_artifact</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <buildNumber>1</buildNumber>
+      <timestamp>20091007.132409</timestamp>
+    </snapshot>
+  </versioning>
+</metadata>

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.jar
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.jar?rev=824220&view=auto
==============================================================================
    (empty)

Added: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.pom
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.pom?rev=824220&view=auto
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.pom
 (added)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.pom
 Mon Oct 12 04:29:06 2009
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.archiva.metadata.tests</groupId>
+  <artifactId>missing_artifact</artifactId>
+  <version>1.0-SNAPSHOT</version>
+</project>
\ No newline at end of file

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.0-SNAPSHOT/missing_artifact-1.0-20091007.132409-1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/maven-metadata.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/maven-metadata.xml?rev=824220&view=auto
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/maven-metadata.xml
 (added)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/maven-metadata.xml
 Mon Oct 12 04:29:06 2009
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?><metadata>
+  <groupId>org.apache.archiva.metadata.tests</groupId>
+  <artifactId>missing_artifact</artifactId>
+  <version>1.2-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <timestamp>20091011.133751</timestamp>
+      <buildNumber>1</buildNumber>
+    </snapshot>
+  </versioning>
+</metadata>

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.jar
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.jar?rev=824220&view=auto
==============================================================================
    (empty)

Added: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.pom
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.pom?rev=824220&view=auto
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.pom
 (added)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.pom
 Mon Oct 12 04:29:06 2009
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.archiva.metadata.tests</groupId>
+  <artifactId>missing_artifact</artifactId>
+  <version>1.2-SNAPSHOT</version>
+</project>
\ No newline at end of file

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/1.2-SNAPSHOT/missing_artifact-1.2-20091011.133751-1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/maven-metadata.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/maven-metadata.xml?rev=824220&view=auto
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/maven-metadata.xml
 (added)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/maven-metadata.xml
 Mon Oct 12 04:29:06 2009
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?><metadata>
+  <groupId>org.apache.archiva.metadata.tests</groupId>
+  <artifactId>missing_artifact</artifactId>
+  <versioning>
+    <latest>1.2-SNAPSHOT</latest>
+    <versions>
+      <version>1.0-SNAPSHOT</version>
+      <version>1.1-SNAPSHOT</version>
+      <version>1.2-SNAPSHOT</version>
+    </versions>
+  </versioning>
+</metadata>

Propchange: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/test/repositories/metadata-repository/org/apache/archiva/metadata/tests/missing_artifact/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to