]> source.dussan.org Git - archiva.git/commitdiff
- Updated repository purge tests to reflect the changes made in r592297 as suggested...
authorMaria Odea B. Ching <oching@apache.org>
Thu, 8 Nov 2007 09:03:44 +0000 (09:03 +0000)
committerMaria Odea B. Ching <oching@apache.org>
Thu, 8 Nov 2007 09:03:44 +0000 (09:03 +0000)
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@593081 13f79535-47bb-0310-9956-ffa450edef68

archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java
archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java
archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java
archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java
archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/stubs/LuceneRepositoryContentIndexFactoryStub.java
archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/stubs/LuceneRepositoryContentIndexStub.java

index d4aabc7cf16d3b3ef30cc763abee1613890cc9be..f5aaf21ad79f748b3d2db351469eb50e2b1c39c0 100644 (file)
@@ -95,60 +95,63 @@ public abstract class AbstractRepositoryPurge
      * @throws RepositoryIndexException
      */
     protected void purge( Set<ArtifactReference> references )
-    {
-        List<LuceneRepositoryContentRecord> fileContentRecords = new ArrayList<LuceneRepositoryContentRecord>();
-        List<LuceneRepositoryContentRecord> hashcodeRecords = new ArrayList<LuceneRepositoryContentRecord>();
-        List<LuceneRepositoryContentRecord> bytecodeRecords = new ArrayList<LuceneRepositoryContentRecord>();
-
-        for ( ArtifactReference reference : references )
+    {        
+        if( references != null && !references.isEmpty() )
         {
-            File artifactFile = repository.toFile( reference );
-
-            ArchivaArtifact artifact =
-                new ArchivaArtifact( reference.getGroupId(), reference.getArtifactId(), reference.getVersion(),
-                                     reference.getClassifier(), reference.getType() );
-
-            FileContentRecord fileContentRecord = new FileContentRecord();
-            fileContentRecord.setFilename( repository.toPath( artifact ) );
-            fileContentRecords.add( fileContentRecord );
-
-            HashcodesRecord hashcodesRecord = new HashcodesRecord();
-            hashcodesRecord.setArtifact( artifact );
-            hashcodeRecords.add( hashcodesRecord );
-
-            BytecodeRecord bytecodeRecord = new BytecodeRecord();
-            bytecodeRecord.setArtifact( artifact );
-            bytecodeRecords.add( bytecodeRecord );
-
-            // TODO: this needs to be logged
-            artifactFile.delete();
-            purgeSupportFiles( artifactFile );
-
-            // intended to be swallowed
-            // continue updating the database for all artifacts
-            try
-            {
-                String artifactPath = toRelativePath( artifactFile );
-                updateDatabase( artifactPath );
+            List<LuceneRepositoryContentRecord> fileContentRecords = new ArrayList<LuceneRepositoryContentRecord>();
+            List<LuceneRepositoryContentRecord> hashcodeRecords = new ArrayList<LuceneRepositoryContentRecord>();
+            List<LuceneRepositoryContentRecord> bytecodeRecords = new ArrayList<LuceneRepositoryContentRecord>();
+            
+            for ( ArtifactReference reference : references )
+            {   
+                File artifactFile = repository.toFile( reference );
+                
+                ArchivaArtifact artifact =
+                    new ArchivaArtifact( reference.getGroupId(), reference.getArtifactId(), reference.getVersion(),
+                                         reference.getClassifier(), reference.getType() );
+    
+                FileContentRecord fileContentRecord = new FileContentRecord();
+                fileContentRecord.setFilename( repository.toPath( artifact ) );
+                fileContentRecords.add( fileContentRecord );
+    
+                HashcodesRecord hashcodesRecord = new HashcodesRecord();
+                hashcodesRecord.setArtifact( artifact );
+                hashcodeRecords.add( hashcodesRecord );
+    
+                BytecodeRecord bytecodeRecord = new BytecodeRecord();
+                bytecodeRecord.setArtifact( artifact );
+                bytecodeRecords.add( bytecodeRecord );
+    
+                // TODO: this needs to be logged
+                artifactFile.delete();
+                purgeSupportFiles( artifactFile );
+    
+                // intended to be swallowed
+                // continue updating the database for all artifacts
+                try
+                {
+                    String artifactPath = toRelativePath( artifactFile );
+                    updateDatabase( artifactPath );
+                }
+                catch ( ArchivaDatabaseException ae )
+                {
+                    // TODO: determine logging to be used
+                }
+                catch ( LayoutException le )
+                {
+                    // Ignore
+                }
             }
-            catch ( ArchivaDatabaseException ae )
+    
+            try
             {
-                // TODO: determine logging to be used
+                updateIndices( fileContentRecords, hashcodeRecords, bytecodeRecords );
             }
-            catch ( LayoutException le )
+            catch ( RepositoryIndexException e )
             {
                 // Ignore
             }
         }
-
-        try
-        {
-            updateIndices( fileContentRecords, hashcodeRecords, bytecodeRecords );
-        }
-        catch ( RepositoryIndexException e )
-        {
-            // Ignore
-        }
     }
 
     /**
@@ -196,18 +199,18 @@ public abstract class AbstractRepositoryPurge
 
         // TODO [MRM-37]: re-run the database consumers to clean up
     }
-
+    
     private void updateIndices( List<LuceneRepositoryContentRecord> fileContentRecords,
                                 List<LuceneRepositoryContentRecord> hashcodeRecords,
                                 List<LuceneRepositoryContentRecord> bytecodeRecords )
         throws RepositoryIndexException
-    {
+    {        
         RepositoryContentIndex index = indices.get( "filecontent" );
         index.deleteRecords( fileContentRecords );
-
+        
         index = indices.get( "hashcodes" );
         index.deleteRecords( hashcodeRecords );
-
+        
         index = indices.get( "bytecode" );
         index.deleteRecords( bytecodeRecords );
     }
index aa5242f2bba09f9cc860aa7056acc210459519a9..6dece0fe61a20ab50775f88ab6bdcdb32e4b0d6c 100644 (file)
@@ -235,4 +235,9 @@ public class RepositoryPurgeConsumer
         // we need to check all files for deletion, especially if not modified
         return true;
     }
+    
+    public void setRepositoryContentIndexFactory( RepositoryContentIndexFactory indexFactory )
+    {
+        this.indexFactory = indexFactory;
+    }
 }
index 21a3882f1f64ecc3c6692a176bf0480ed16e4a5a..bdc6c34af64bd4d8c070d530931f520d42a78c62 100644 (file)
@@ -55,7 +55,7 @@ public abstract class AbstractRepositoryPurgeTest
 
     public static final int TEST_DAYS_OLDER = 30;
 
-    public static final String PATH_TO_BY_DAYS_OLD_ARTIFACT = "org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar";
+    public static final String PATH_TO_BY_DAYS_OLD_ARTIFACT = "org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar";
 
     public static final String PATH_TO_BY_DAYS_OLD_METADATA_DRIVEN_ARTIFACT = "org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar";
 
index 90c4b56f71c8b57f47c76cdbc0b8b20f7ba0d684..5468e8bc1db9152632f50d5f2e7a20c09b4787a7 100644 (file)
@@ -40,13 +40,7 @@ public class DaysOldRepositoryPurgeTest
     protected void setUp()
         throws Exception
     {
-        super.setUp();
-
-        map = new HashMap<String, RepositoryContentIndex>();
-        map.put( "filecontent", new LuceneRepositoryContentIndexStub() );
-        map.put( "hashcodes", new LuceneRepositoryContentIndexStub() );
-        map.put( "bytecode", new LuceneRepositoryContentIndexStub() );        
-        
+        super.setUp();        
     }
 
     private void setLastModified( String dirPath )
@@ -62,9 +56,14 @@ public class DaysOldRepositoryPurgeTest
     public void testByLastModified()
         throws Exception
     {        
+        map = new HashMap<String, RepositoryContentIndex>();
+        map.put( "filecontent", new LuceneRepositoryContentIndexStub( 2 ) );
+        map.put( "hashcodes", new LuceneRepositoryContentIndexStub( 2 ) );
+        map.put( "bytecode", new LuceneRepositoryContentIndexStub( 2 ) );        
+        
         repoPurge =
             new DaysOldRepositoryPurge( getRepository(), dao, getRepoConfiguration().getDaysOlder(), 
-                            1, map );
+                            getRepoConfiguration().getRetentionCount(), map );
         
         populateDbForTestByLastModified();
 
@@ -75,18 +74,38 @@ public class DaysOldRepositoryPurgeTest
         setLastModified( projectRoot + "/2.2-SNAPSHOT/" );
 
         repoPurge.process( PATH_TO_BY_DAYS_OLD_ARTIFACT );
-
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1" );
+        
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.md5" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.sha1" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.md5" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.sha1" );
+        
+        // shouldn't be deleted because even if older than 30 days (because retention count = 2)
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.md5" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.sha1" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.md5" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.sha1" );
+        
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1" );
     }
 
     public void testMetadataDrivenSnapshots()
         throws Exception
     {
+        map = new HashMap<String, RepositoryContentIndex>();
+        map.put( "filecontent", new LuceneRepositoryContentIndexStub(2) );
+        map.put( "hashcodes", new LuceneRepositoryContentIndexStub(2) );
+        map.put( "bytecode", new LuceneRepositoryContentIndexStub(2) );    
+        
         repoPurge =
             new DaysOldRepositoryPurge( getRepository(), dao, getRepoConfiguration().getDaysOlder(), 
                             getRepoConfiguration().getRetentionCount(), map );
@@ -138,6 +157,8 @@ public class DaysOldRepositoryPurgeTest
         throws Exception
     {
         List<String> versions = new ArrayList<String>();
+        versions.add( "2.2-20061118.060401-2" );
+        versions.add( "2.2-20070513.034619-5" );
         versions.add( "2.2-SNAPSHOT" );
 
         populateDb( "org.apache.maven.plugins", "maven-install-plugin", versions );
index f89cce1790cd09d45977275090ea1377905d0f86..9775c552a1a6c2da704e91b6075032e1493fedd9 100644 (file)
@@ -24,7 +24,9 @@ import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
+import org.apache.maven.archiva.consumers.core.repository.stubs.LuceneRepositoryContentIndexFactoryStub;
 import org.apache.maven.archiva.database.ArchivaDatabaseException;
+import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory;
 import org.custommonkey.xmlunit.XMLAssert;
 
 import java.io.File;
@@ -53,6 +55,11 @@ public class RepositoryPurgeConsumerTest
         KnownRepositoryContentConsumer repoPurgeConsumer = (KnownRepositoryContentConsumer) lookup(
             KnownRepositoryContentConsumer.class, "repo-purge-consumer-by-retention-count" );
 
+        LuceneRepositoryContentIndexFactoryStub indexFactory = new LuceneRepositoryContentIndexFactoryStub();
+        indexFactory.setExpectedRecordsSize( 2 );
+        
+        ( (RepositoryPurgeConsumer) repoPurgeConsumer ).setRepositoryContentIndexFactory( indexFactory ); 
+              
         populateDbForRetentionCountTest();
 
         ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration();
@@ -117,6 +124,11 @@ public class RepositoryPurgeConsumerTest
         KnownRepositoryContentConsumer repoPurgeConsumer = (KnownRepositoryContentConsumer) lookup(
             KnownRepositoryContentConsumer.class, "repo-purge-consumer-by-days-old" );
 
+        LuceneRepositoryContentIndexFactoryStub indexFactory = new LuceneRepositoryContentIndexFactoryStub();
+        indexFactory.setExpectedRecordsSize( 2 );
+        
+        ( (RepositoryPurgeConsumer) repoPurgeConsumer ).setRepositoryContentIndexFactory( indexFactory ); 
+        
         ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration();
         repoConfiguration.setDaysOlder( TEST_DAYS_OLDER );
         addRepoToConfiguration( "days-old", repoConfiguration );
@@ -130,12 +142,27 @@ public class RepositoryPurgeConsumerTest
 
         repoPurgeConsumer.processFile( PATH_TO_BY_DAYS_OLD_ARTIFACT );
 
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5" );
-        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.md5" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar.sha1" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.md5" );
+        assertDeleted( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.pom.sha1" );
+        
+        // shouldn't be deleted because even if older than 30 days (because retention count = 2)
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.md5" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.jar.sha1" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.md5" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.sha1" );
+        
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.md5" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.jar.sha1" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.md5" );
+        assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-SNAPSHOT.pom.sha1" );
     }
 
     /**
index b8e009c026d32fefb0ef9f42b2fb03e64046b662..b9af53359a41168d0e44817c13040496ff349996 100644 (file)
@@ -42,9 +42,9 @@ public class RetentionCountRepositoryPurgeTest
         super.setUp();
 
         Map<String, RepositoryContentIndex> map = new HashMap<String, RepositoryContentIndex>();
-        map.put( "filecontent", new LuceneRepositoryContentIndexStub() );
-        map.put( "hashcodes", new LuceneRepositoryContentIndexStub() );
-        map.put( "bytecode", new LuceneRepositoryContentIndexStub() );
+        map.put( "filecontent", new LuceneRepositoryContentIndexStub( 2 ) );
+        map.put( "hashcodes", new LuceneRepositoryContentIndexStub( 2 ) );
+        map.put( "bytecode", new LuceneRepositoryContentIndexStub( 2 ) );
         
         repoPurge = new RetentionCountRepositoryPurge( getRepository(), dao,
                                                        getRepoConfiguration().getRetentionCount(), map );
index fce937f99e1f048a76718bacdee22e943b5efd5c..f1958abe96ad3589d7d6d8ed59390ad4d2e836cd 100644 (file)
@@ -33,22 +33,28 @@ public class LuceneRepositoryContentIndexFactoryStub
     implements RepositoryContentIndexFactory
 {
 
+    private int expectedRecordsSize = 0;
+    
     public RepositoryContentIndex createBytecodeIndex( ManagedRepositoryConfiguration repository )
     {        
         // TODO Auto-generated method stub
-        return new LuceneRepositoryContentIndexStub();
+        return new LuceneRepositoryContentIndexStub( expectedRecordsSize );
     }
 
     public RepositoryContentIndex createFileContentIndex( ManagedRepositoryConfiguration repository )
     {
         // TODO Auto-generated method stub
-        return new LuceneRepositoryContentIndexStub();
+        return new LuceneRepositoryContentIndexStub( expectedRecordsSize );
     }
 
     public RepositoryContentIndex createHashcodeIndex( ManagedRepositoryConfiguration repository )
     {
         // TODO Auto-generated method stub
-        return new LuceneRepositoryContentIndexStub();
+        return new LuceneRepositoryContentIndexStub( expectedRecordsSize );
+    }    
+    
+    public void setExpectedRecordsSize( int size )
+    {
+        expectedRecordsSize = size;
     }
-
 }
index ad9c69de0de45dadecbfb2f919021a20ae4b6363..bd891e17b998efe18cd0d79033e6e9378c514c08 100644 (file)
@@ -41,15 +41,22 @@ import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord;
 public class LuceneRepositoryContentIndexStub
     implements RepositoryContentIndex
 {
-
+    private int expectedRecordsSize;
+    
+    public LuceneRepositoryContentIndexStub()
+    {
+        
+    }
+    
+    public LuceneRepositoryContentIndexStub( int size )
+    {
+        expectedRecordsSize = size;
+    }
+    
     public void deleteRecords( Collection records )
         throws RepositoryIndexException
-    {
-        // TODO Auto-generated method stub
-        if( records.size() != 0 )
-        {
-            Assert.assertEquals( 2, records.size() );
-        }
+    {         
+        Assert.assertEquals( expectedRecordsSize, records.size() );        
     }
 
     public boolean exists()