You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2007/08/06 10:22:36 UTC

svn commit: r563064 - in /maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src: main/java/org/apache/maven/archiva/consumers/core/repository/ test/java/org/apache/maven/archiva/consumers/core/repository/ test/resources/org/apac...

Author: oching
Date: Mon Aug  6 01:22:35 2007
New Revision: 563064

URL: http://svn.apache.org/viewvc?view=rev&rev=563064
Log:
[MRM-294]
- Changed DefaultCleanupReleasedSnapshots to CleanupReleasedSnapshotsRepositoryPurge
- Removed unneeded fields in RepositoryPurgeConsumer
- Added constructor for DaysOldRepositoryPurge, RetentionCountRepositoryPurge and CleanupReleasedSnapshotsRepositoryPurge
- Updated test classes and test resources


Added:
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
Removed:
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DefaultCleanupReleasedSnapshots.java
Modified:
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml
    maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java Mon Aug  6 01:22:35 2007
@@ -19,7 +19,6 @@
 * under the License.
 */
 
-import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.model.ArchivaRepository;
 import org.apache.maven.archiva.model.ArchivaArtifact;
 import org.apache.maven.archiva.repository.layout.FilenameParts;
@@ -28,29 +27,33 @@
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.database.ArchivaDatabaseException;
 import org.apache.maven.archiva.database.ArtifactDAO;
-import org.apache.maven.archiva.indexer.RepositoryContentIndex;
 import org.apache.maven.archiva.indexer.RepositoryIndexException;
-import org.apache.maven.archiva.indexer.filecontent.FileContentRecord;
 import org.apache.commons.lang.StringUtils;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
 
 import java.io.File;
 import java.io.FilenameFilter;
-import java.util.ArrayList;
-import java.util.List;
 
 /**
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
+ * @version
  */
 public abstract class AbstractRepositoryPurge
     implements RepositoryPurge
 {
-    private ArchivaRepository repository;
+    protected ArchivaRepository repository;
 
-    private BidirectionalRepositoryLayout layout;
+    protected BidirectionalRepositoryLayout layout;
 
-    private RepositoryContentIndex index;
+    protected ArtifactDAO artifactDao;
 
-    private ArtifactDAO artifactDao;
+    public AbstractRepositoryPurge( ArchivaRepository repository,
+                                   BidirectionalRepositoryLayout layout, ArtifactDAO artifactDao )
+    {
+        this.repository = repository;
+        this.layout = layout;
+        this.artifactDao = artifactDao;    
+    }
 
     /**
      * Get all files from the directory that matches the specified filename.
@@ -60,23 +63,14 @@
      * @return
      */
     protected File[] getFiles( File dir, String filename )
-        throws RepositoryPurgeException
     {
         FilenameFilter filter = new ArtifactFilenameFilter( filename );
 
-        if ( !dir.isDirectory() )
-        {
-            System.out.println( "File is not a directory." );
-        }
-
         File[] files = dir.listFiles( filter );
 
         return files;
     }
 
-    public abstract void process( String path, Configuration configuration )
-        throws RepositoryPurgeException;
-
     /**
      * Purge the repo. Update db and index of removed artifacts.
      *
@@ -84,49 +78,43 @@
      * @throws RepositoryIndexException
      */
     protected void purge( File[] artifactFiles )
-        throws RepositoryIndexException
     {
-        List records = new ArrayList();
-                
         for ( int i = 0; i < artifactFiles.length; i++ )
         {
             artifactFiles[i].delete();
 
-            String[] artifactPathParts = artifactFiles[i].getAbsolutePath().split( getRepository().getUrl().getPath() );
+            String[] artifactPathParts = artifactFiles[i].getAbsolutePath().split( repository.getUrl().getPath() );
             String artifactPath = artifactPathParts[artifactPathParts.length - 1];
             if ( !artifactPath.toUpperCase().endsWith( "SHA1" ) && !artifactPath.toUpperCase().endsWith( "MD5" ) )
             {
-                updateDatabase( artifactPath );
-            }
+                // intended to be swallowed
+                // continue updating the database for all artifacts
+                try
+                {
+                    updateDatabase( artifactPath );
+                }
+                catch ( ArchivaDatabaseException ae )
+                {
+                    //@todo determine logging to be used
+                }
+                catch ( LayoutException le )
+                {
 
-            FileContentRecord record = new FileContentRecord();
-            record.setRepositoryId( this.repository.getId() );
-            record.setFilename( artifactPath );
-            records.add( record );
+                }
+            }
         }
-
-        //index.deleteRecords( records );
     }
 
     private void updateDatabase( String path )
+        throws ArchivaDatabaseException, LayoutException
     {
-        try
-        {
-            ArchivaArtifact artifact = layout.toArtifact( path );
-            ArchivaArtifact queriedArtifact = artifactDao.getArtifact( artifact.getGroupId(), artifact.getArtifactId(),
-                                                                       artifact.getVersion(), artifact.getClassifier(),
-                                                                       artifact.getType() );
-                        
-            artifactDao.deleteArtifact( queriedArtifact );
-        }
-        catch ( ArchivaDatabaseException ae )
-        {
 
-        }
-        catch ( LayoutException le )
-        {
+        ArchivaArtifact artifact = layout.toArtifact( path );
+        ArchivaArtifact queriedArtifact = artifactDao.getArtifact( artifact.getGroupId(), artifact.getArtifactId(),
+                                                                   artifact.getVersion(), artifact.getClassifier(),
+                                                                   artifact.getType() );
 
-        }
+        artifactDao.deleteArtifact( queriedArtifact );
     }
 
     /**
@@ -145,36 +133,6 @@
         FilenameParts parts = RepositoryLayoutUtils.splitFilename( pathParts[pathParts.length - 1], null );
 
         return parts;
-    }
-
-    public void setRepository( ArchivaRepository repository )
-    {
-        this.repository = repository;
-    }
-
-    public void setLayout( BidirectionalRepositoryLayout layout )
-    {
-        this.layout = layout;
-    }
-
-    public void setIndex( RepositoryContentIndex index )
-    {
-        this.index = index;
-    }
-
-    public void setArtifactDao( ArtifactDAO artifactDao )
-    {
-        this.artifactDao = artifactDao;
-    }
-
-    protected ArchivaRepository getRepository()
-    {
-        return repository;
-    }
-
-    protected BidirectionalRepositoryLayout getLayout()
-    {
-        return layout;
     }
 
 }

Added: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java?view=auto&rev=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java (added)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java Mon Aug  6 01:22:35 2007
@@ -0,0 +1,193 @@
+package org.apache.maven.archiva.consumers.core.repository;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader;
+import org.apache.maven.archiva.repository.metadata.RepositoryMetadataWriter;
+import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException;
+import org.apache.maven.archiva.repository.layout.FilenameParts;
+import org.apache.maven.archiva.repository.layout.LayoutException;
+import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.common.utils.VersionUtil;
+import org.apache.maven.archiva.common.utils.VersionComparator;
+import org.apache.maven.archiva.indexer.RepositoryIndexException;
+import org.apache.maven.archiva.model.ArchivaRepositoryMetadata;
+import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.database.ArtifactDAO;
+import org.apache.commons.io.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Collections;
+import java.util.Date;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/**
+ * M2 implementation for cleaning up the released snapshots.
+ *
+ * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
+ * @version
+ */
+public class CleanupReleasedSnapshotsRepositoryPurge
+    extends AbstractRepositoryPurge
+{
+    public static final String SNAPSHOT = "-SNAPSHOT";
+
+    private RepositoryMetadataReader metadataReader;
+
+    public CleanupReleasedSnapshotsRepositoryPurge( ArchivaRepository repository, BidirectionalRepositoryLayout layout,
+                                                    ArtifactDAO artifactDao )
+    {
+        super( repository, layout, artifactDao );
+        metadataReader = new RepositoryMetadataReader();        
+    }
+
+    public void process( String path )
+        throws RepositoryPurgeException
+    {
+        try
+        {
+            File artifactFile = new File( repository.getUrl().getPath(), path );
+
+            if ( !artifactFile.exists() )
+            {
+                return;
+            }
+
+            FilenameParts parts = getFilenameParts( path );
+
+            if ( VersionUtil.isSnapshot( parts.version ) )
+            {
+                // version
+                File versionDir = artifactFile.getParentFile();
+
+                // artifactID - scan for other versions
+                File artifactIdDir = versionDir.getParentFile();
+
+                boolean updated = false;
+
+                List versions = getVersionsInDir( artifactIdDir );
+                Collections.sort( versions, VersionComparator.getInstance() );
+                for ( int j = 0; j < versions.size(); j++ )
+                {
+                    String version = (String) versions.get( j );
+
+                    if ( VersionComparator.getInstance().compare( version, versionDir.getName() ) > 0 )
+                    {
+                        purge( versionDir.listFiles() );
+
+                        FileUtils.deleteDirectory( versionDir );
+
+                        updated = true;
+
+                        break;
+                    }
+                }
+
+                if ( updated )
+                {
+                    updateMetadata( artifactIdDir );
+                }
+            }
+        }
+        catch ( LayoutException le )
+        {
+            throw new RepositoryPurgeException( le.getMessage() );
+        }
+        catch ( IOException ie )
+        {
+            throw new RepositoryPurgeException( ie.getMessage() );
+        }
+    }
+
+    private void updateMetadata( File artifactIdDir )
+        throws RepositoryPurgeException
+    {
+
+        File[] metadataFiles = getFiles( artifactIdDir, "maven-metadata" );
+        List availableVersions = getVersionsInDir( artifactIdDir );
+
+        Collections.sort( availableVersions );
+
+        String latestReleased = getLatestReleased( availableVersions );
+        for ( int i = 0; i < metadataFiles.length; i++ )
+        {
+            if ( !( metadataFiles[i].getName().toUpperCase() ).endsWith( "SHA1" ) &&
+                !( metadataFiles[i].getName().toUpperCase() ).endsWith( "MD5" ) )
+            {
+                try
+                {
+                    Date lastUpdated = new Date();
+                    ArchivaRepositoryMetadata metadata = metadataReader.read( metadataFiles[i] );
+                    metadata.setAvailableVersions( availableVersions );
+                    metadata.setLatestVersion( (String) availableVersions.get( availableVersions.size() - 1 ) );
+                    metadata.setReleasedVersion( latestReleased );
+                    metadata.setLastUpdatedTimestamp( lastUpdated );
+                    metadata.setLastUpdated( Long.toString( lastUpdated.getTime() ) );
+
+                    RepositoryMetadataWriter.write( metadata, metadataFiles[i] );
+                }
+                catch ( RepositoryMetadataException rme )
+                {
+                    // continue updating other metadata files even if there is an exception
+                    // @todo log to console
+                }
+            }
+        }
+    }
+
+    private String getLatestReleased( List availableVersions )
+    {
+        List reversedOrder = new ArrayList( availableVersions );
+        Collections.reverse( reversedOrder );
+        String latestReleased = "";
+
+        for ( Iterator iter = reversedOrder.iterator(); iter.hasNext(); )
+        {
+            String version = (String) iter.next();
+            if ( !VersionUtil.getBaseVersion( version ).endsWith( SNAPSHOT ) )
+            {
+                latestReleased = version;
+                return latestReleased;
+            }
+        }
+
+        return latestReleased;
+    }
+
+    private List getVersionsInDir( File artifactIdDir )
+    {
+        String[] versionsAndMore = artifactIdDir.list();
+        List versions = new ArrayList();
+        for ( int j = 0; j < versionsAndMore.length; j++ )
+        {
+            if ( VersionUtil.isVersion( versionsAndMore[j] ) )
+            {
+                versions.add( versionsAndMore[j] );
+            }
+        }
+
+        return versions;
+    }
+}

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java Mon Aug  6 01:22:35 2007
@@ -21,31 +21,43 @@
 
 import org.apache.maven.archiva.repository.layout.FilenameParts;
 import org.apache.maven.archiva.repository.layout.LayoutException;
+import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.common.utils.VersionUtil;
 import org.apache.maven.archiva.configuration.RepositoryConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.indexer.RepositoryIndexException;
+import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.database.ArtifactDAO;
 
 import java.util.Calendar;
 import java.util.GregorianCalendar;
 import java.io.File;
 
 /**
+ * Purge repository for snapshots older than the specified days in the repository configuration.
+ *
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- * @plexus.component role="org.apache.maven.archiva.consumers.core.repository.RepositoryPurge"
- * role-hint="days-old"
- * instantiation-strategy="per-lookup"
+ * @version
  */
 public class DaysOldRepositoryPurge
     extends AbstractRepositoryPurge
-{
+{       
+    private RepositoryConfiguration repoConfig;
 
-    public void process( String path, Configuration configuration )
+    public DaysOldRepositoryPurge( ArchivaRepository repository,
+                                   BidirectionalRepositoryLayout layout, ArtifactDAO artifactDao,
+                                   RepositoryConfiguration repoConfig)
+    {
+        super( repository, layout, artifactDao );
+        this.repoConfig = repoConfig;
+    }
+
+    public void process( String path )
         throws RepositoryPurgeException
     {
         try
         {
-            File artifactFile = new File( getRepository().getUrl().getPath(), path );
+            File artifactFile = new File( repository.getUrl().getPath(), path );
 
             if( !artifactFile.exists() )
             {
@@ -56,9 +68,7 @@
 
             if ( VersionUtil.isSnapshot( parts.version ) )
             {
-                RepositoryConfiguration repoConfig = configuration.findRepositoryById( getRepository().getId() );
-
-                Calendar olderThanThisDate = new GregorianCalendar();
+                Calendar olderThanThisDate = Calendar.getInstance();
                 olderThanThisDate.add( Calendar.DATE, ( -1 * repoConfig.getDaysOlder() ) );
 
                 if ( artifactFile.lastModified() < olderThanThisDate.getTimeInMillis() )
@@ -74,10 +84,6 @@
         catch ( LayoutException le )
         {
             throw new RepositoryPurgeException( le.getMessage() );
-        }
-        catch ( RepositoryIndexException re )
-        {
-            throw new RepositoryPurgeException( re.getMessage() );
         }
     }
     

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurge.java Mon Aug  6 01:22:35 2007
@@ -37,37 +37,8 @@
      * Perform checking on artifact for repository purge
      *
      * @param path          path to the scanned artifact
-     * @param configuration the configuration for the repository currently being scanned
      */
-    public void process( String path, Configuration configuration )
+    public void process( String path )
         throws RepositoryPurgeException;
-
-    /**
-     * Set the repository to be purged
-     *
-     * @param repository
-     */
-    public void setRepository( ArchivaRepository repository );
-
-    /**
-     * Set the layout of the repository to be purged
-     *
-     * @param layout
-     */
-    public void setLayout( BidirectionalRepositoryLayout layout );
-
-    /**
-     * Set the index of the repository 
-     *
-     * @param index
-     */
-    public void setIndex( RepositoryContentIndex index );
-
-    /**
-     * Set the artifact dao used for updating the database of the changes in the repo
-     *
-     * @param artifactDao
-     */
-    public void setArtifactDao( ArtifactDAO artifactDao );
-
+    
 }

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java Mon Aug  6 01:22:35 2007
@@ -74,14 +74,9 @@
     private BidirectionalRepositoryLayoutFactory layoutFactory;
 
     /**
-     * @plexus.requirement role-hint="lucene"
-     */
-    private RepositoryContentIndexFactory indexFactory;
-
-    /**
      * @plexus.requirement role-hint="jdo"
      */
-    private ArchivaDAO dao;   
+    private ArchivaDAO dao;
 
     /**
      * @plexus.requirement
@@ -90,16 +85,12 @@
 
     private ArchivaRepository repository;
 
-    private BidirectionalRepositoryLayout repositoryLayout;
-
     private List includes = new ArrayList();
 
     private List propertyNameTriggers = new ArrayList();
 
     private RepositoryPurge repoPurge;
 
-    private RepositoryContentIndex index;    
-
     private RepositoryPurge cleanUp;
 
     public String getId()
@@ -130,17 +121,18 @@
     public void beginScan( ArchivaRepository repository )
         throws ConsumerException
     {
+        BidirectionalRepositoryLayout repositoryLayout = null;
+
         if ( !repository.isManaged() )
         {
             throw new ConsumerException( "Consumer requires managed repository." );
         }
 
         this.repository = repository;
-        this.index = indexFactory.createFileContentIndex( repository );
 
         try
         {
-            this.repositoryLayout = layoutFactory.getLayout( this.repository.getLayoutType() );
+            repositoryLayout = layoutFactory.getLayout( repository.getLayoutType() );
         }
         catch ( LayoutException e )
         {
@@ -148,27 +140,18 @@
                 "Unable to initialize consumer due to unknown repository layout: " + e.getMessage(), e );
         }
 
-        // @todo handle better injection of RepositoryPurge
         RepositoryConfiguration repoConfig = configuration.getConfiguration().findRepositoryById( repository.getId() );
         if ( repoConfig.getDaysOlder() != 0 )
         {
-            repoPurge = new DaysOldRepositoryPurge();
+            repoPurge = new DaysOldRepositoryPurge( repository, repositoryLayout, dao.getArtifactDAO(), repoConfig );
         }
         else
         {
-            repoPurge = new RetentionCountRepositoryPurge();
+            repoPurge =
+                new RetentionCountRepositoryPurge( repository, repositoryLayout, dao.getArtifactDAO(), repoConfig );
         }
-        
-        repoPurge.setLayout( repositoryLayout );
-        repoPurge.setRepository( repository );
-        repoPurge.setIndex( index );
-        repoPurge.setArtifactDao( dao.getArtifactDAO() );
-
-        cleanUp = new DefaultCleanupReleasedSnapshots();
-        cleanUp.setRepository( repository );
-        cleanUp.setLayout( repositoryLayout );
-        cleanUp.setArtifactDao( dao.getArtifactDAO() );
-        cleanUp.setIndex( index );
+
+        cleanUp = new CleanupReleasedSnapshotsRepositoryPurge( repository, repositoryLayout, dao.getArtifactDAO() );
     }
 
     public void processFile( String path )
@@ -176,13 +159,14 @@
     {
         try
         {
-            RepositoryConfiguration repoConfig = configuration.getConfiguration().findRepositoryById( repository.getId() );
-            if( repoConfig.isDeleteReleasedSnapshots() )
+            RepositoryConfiguration repoConfig =
+                configuration.getConfiguration().findRepositoryById( repository.getId() );
+            if ( repoConfig.isDeleteReleasedSnapshots() )
             {
-                cleanUp.process( path, configuration.getConfiguration() );
+                cleanUp.process( path );
             }
 
-            repoPurge.process( path, configuration.getConfiguration() );
+            repoPurge.process( path );
         }
         catch ( RepositoryPurgeException rpe )
         {

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java Mon Aug  6 01:22:35 2007
@@ -23,8 +23,11 @@
 import org.apache.maven.archiva.configuration.RepositoryConfiguration;
 import org.apache.maven.archiva.repository.layout.FilenameParts;
 import org.apache.maven.archiva.repository.layout.LayoutException;
+import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.common.utils.VersionUtil;
 import org.apache.maven.archiva.indexer.RepositoryIndexException;
+import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.database.ArtifactDAO;
 
 import java.io.File;
 import java.util.List;
@@ -33,20 +36,30 @@
 import java.util.Collections;
 
 /**
+ * Purge the repository by retention count. Retain only the specified number of snapshots.
+ *
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- * @plexus.component role="org.apache.maven.archiva.consumers.core.repository.RepositoryPurge"
- * role-hint="retention-count"
- * instantiation-strategy="per-lookup"
+ * @version
  */
 public class RetentionCountRepositoryPurge
     extends AbstractRepositoryPurge
 {
-    public void process( String path, Configuration configuration )
+    private RepositoryConfiguration repoConfig;
+
+    public RetentionCountRepositoryPurge( ArchivaRepository repository,
+                                          BidirectionalRepositoryLayout layout, ArtifactDAO artifactDao,
+                                          RepositoryConfiguration repoConfig )
+    {
+        super( repository, layout, artifactDao );
+        this.repoConfig = repoConfig;
+    }
+
+    public void process( String path )
         throws RepositoryPurgeException
     {
         try
         {               
-            File artifactFile = new File( getRepository().getUrl().getPath(), path );
+            File artifactFile = new File( repository.getUrl().getPath(), path );
 
             if( !artifactFile.exists() )
             {
@@ -56,8 +69,7 @@
             FilenameParts parts = getFilenameParts( path );
 
             if ( VersionUtil.isSnapshot( parts.version ) )
-            {
-                RepositoryConfiguration repoConfig = configuration.findRepositoryById( getRepository().getId() );                
+            {                                 
                 File parentDir = artifactFile.getParentFile();
 
                 if ( parentDir.isDirectory() )
@@ -86,10 +98,6 @@
         catch ( LayoutException le )
         {
             throw new RepositoryPurgeException( le.getMessage() );
-        }
-        catch ( RepositoryIndexException re )
-        {
-            throw new RepositoryPurgeException( re.getMessage() );
         }
     }
 

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java Mon Aug  6 01:22:35 2007
@@ -58,7 +58,7 @@
 
     public static final int TEST_DAYS_OLDER = 30;
 
-    private Configuration config;
+    private RepositoryConfiguration config;
 
     private ArchivaRepository repo;
 
@@ -136,38 +136,20 @@
         dao = (ArtifactDAO) lookup( ArtifactDAO.class.getName(), "jdo" );
     }
 
-    public void lookupRepositoryPurge( String role )
-        throws Exception
-    {
-        repoPurge = (RepositoryPurge) lookup( RepositoryPurge.class.getName(), role );
-
-        repoPurge.setArtifactDao( dao );
-
-        repoPurge.setRepository( getRepository() );
-
-        repoPurge.setLayout( getLayout() );
-    }
-
-    public Configuration getRepoConfiguration()
+    public RepositoryConfiguration getRepoConfiguration()
     {
         if ( config == null )
         {
-            config = new Configuration();
+            config = new RepositoryConfiguration();
         }
 
-        RepositoryConfiguration repoConfig = new RepositoryConfiguration();
-        repoConfig.setId( TEST_REPO_ID );
-        repoConfig.setName( TEST_REPO_NAME );
-        repoConfig.setDaysOlder( TEST_DAYS_OLDER );
-        repoConfig.setUrl( TEST_REPO_URL );
-        repoConfig.setReleases( true );
-        repoConfig.setSnapshots( true );
-        repoConfig.setRetentionCount( TEST_RETENTION_COUNT );
-
-        List repos = new ArrayList();
-        repos.add( repoConfig );
-
-        config.setRepositories( repos );
+        config.setId( TEST_REPO_ID );
+        config.setName( TEST_REPO_NAME );
+        config.setDaysOlder( TEST_DAYS_OLDER );
+        config.setUrl( TEST_REPO_URL );
+        config.setReleases( true );
+        config.setSnapshots( true );
+        config.setRetentionCount( TEST_RETENTION_COUNT );
 
         return config;
     }

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java Mon Aug  6 01:22:35 2007
@@ -35,7 +35,7 @@
     {
         super.setUp();
 
-        lookupRepositoryPurge( "days-old" );
+        repoPurge = new DaysOldRepositoryPurge( getRepository(), getLayout(), dao, getRepoConfiguration() );
     }
 
     private void setLastModified()
@@ -52,21 +52,11 @@
     public void testIfAJarIsFound()
         throws Exception
     {
-        // Create it
-        ArchivaArtifact artifact =
-            dao.createArtifact( "org.apache.maven.plugins", "maven-install-plugin", "2.2-SNAPSHOT", "", "jar" );
-        assertNotNull( artifact );
-
-        artifact.getModel().setLastModified( new Date() );
-        artifact.getModel().setOrigin( "test" );
-
-        // Save it.
-        ArchivaArtifact savedArtifact = dao.saveArtifact( artifact );
-        assertNotNull( savedArtifact );
-
+        populateDb();
+        
         setLastModified();
 
-        repoPurge.process( PATH_TO_BY_DAYS_OLD_ARTIFACT, getRepoConfiguration() );
+        repoPurge.process( PATH_TO_BY_DAYS_OLD_ARTIFACT );
 
         assertTrue( true );
 
@@ -89,5 +79,30 @@
     {
         super.tearDown();
         repoPurge = null;
+    }
+
+    private void populateDb()
+        throws Exception
+    {
+        // Create it
+        ArchivaArtifact artifact =
+            dao.createArtifact( "org.apache.maven.plugins", "maven-install-plugin", "2.2-SNAPSHOT", "", "jar" );
+        assertNotNull( artifact );
+
+        artifact.getModel().setLastModified( new Date() );
+        artifact.getModel().setOrigin( "test" );
+
+        // Save it.
+        ArchivaArtifact savedArtifact = dao.saveArtifact( artifact );
+        assertNotNull( savedArtifact );
+
+        //POM
+        artifact =
+            dao.createArtifact( "org.apache.maven.plugins", "maven-install-plugin", "2.2-SNAPSHOT", "", "pom" );
+        assertNotNull( artifact );
+        artifact.getModel().setLastModified( new Date() );
+        artifact.getModel().setOrigin( "test" );
+        savedArtifact = dao.saveArtifact( artifact );
+        assertNotNull( savedArtifact );
     }
 }

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java Mon Aug  6 01:22:35 2007
@@ -44,7 +44,7 @@
     {
         super.setUp();
 
-        lookupRepositoryPurge( "retention-count" );
+        repoPurge = new RetentionCountRepositoryPurge( getRepository(), getLayout(), dao, getRepoConfiguration() );
     }
 
     /**
@@ -55,6 +55,134 @@
     public void testIfAJarWasFound()
         throws Exception
     {
+        populateIfJarWasFoundDb();
+
+        repoPurge.process( PATH_TO_BY_RETENTION_COUNT_ARTIFACT );
+
+        // assert if removed from repo
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.md5" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.sha1" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.md5" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.sha1" ).exists() );
+
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.md5" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.sha1" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.md5" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.sha1" ).exists() );
+
+        // assert if not removed from repo
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.sha1" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.sha1" ).exists() );
+
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.sha1" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.sha1" ).exists() );
+    }
+
+    /**
+     * Test if the artifact to be processed is a pom
+     *
+     * @throws Exception
+     */
+    public void testIfAPomWasFound()
+        throws Exception
+    {
+        populateIfPomWasFoundDb();
+
+        repoPurge.process( PATH_TO_BY_RETENTION_COUNT_POM );
+
+        // assert if removed from repo
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.md5" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.sha1" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.md5" ).exists() );
+        assertFalse( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.sha1" ).exists() );
+
+        // assert if not removed from repo
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.sha1" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.sha1" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.sha1" ).exists() );
+
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.sha1" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.sha1" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.md5" ).exists() );
+        assertTrue( new File(
+            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.sha1" ).exists() );
+    }
+
+    public void populateIfJarWasFoundDb()
+        throws Exception
+    {
         // Create it
         ArchivaArtifact artifact =
             dao.createArtifact( "org.jruby.plugins", "jruby-rake-plugin", "1.0RC1-20070504.153317-1", "", "jar" );
@@ -129,70 +257,9 @@
         artifact.getModel().setOrigin( "test" );
         savedArtifact = dao.saveArtifact( artifact );
         assertNotNull( savedArtifact );
-
-        repoPurge.process( PATH_TO_BY_RETENTION_COUNT_ARTIFACT, getRepoConfiguration() );
-
-        // assert if removed from repo
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.md5" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar.sha1" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.md5" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.pom.sha1" ).exists() );
-
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.md5" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.jar.sha1" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.md5" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.160758-2.pom.sha1" ).exists() );
-
-        // assert if not removed from repo
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.jar.sha1" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070505.090015-3.pom.sha1" ).exists() );
-
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.jar.sha1" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070506.090132-4.pom.sha1" ).exists() );
     }
 
-    /**
-     * Test if the artifact to be processed is a pom
-     *
-     * @throws Exception
-     */
-    public void testIfAPomWasFound()
+    public void populateIfPomWasFoundDb()
         throws Exception
     {
         // Create it
@@ -244,60 +311,5 @@
         artifact.getModel().setOrigin( "test" );
         savedArtifact = dao.saveArtifact( artifact );
         assertNotNull( savedArtifact );
-
-        repoPurge.process( PATH_TO_BY_RETENTION_COUNT_POM, getRepoConfiguration() );
-
-        // assert if removed from repo
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.md5" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.jar.sha1" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.md5" ).exists() );
-        assertFalse( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070427.065136-1.pom.sha1" ).exists() );
-
-        // assert if not removed from repo
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.pom.sha1" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3.jar.sha1" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070615.105019-3-sources.jar.sha1" ).exists() );
-
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom.sha1" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.jar.sha1" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.md5" ).exists() );
-        assertTrue( new File(
-            "target/test-classes/test-repo/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2-sources.jar.sha1" ).exists() );
     }
 }

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.xml Mon Aug  6 01:22:35 2007
@@ -20,91 +20,7 @@
 
 <component-set>
   <components>
-
-    <!-- DaysOldRepositoryPurge -->
-    <component>
-      <role>org.apache.maven.archiva.consumers.core.repository.RepositoryPurge</role>
-      <role-hint>days-old</role-hint>
-      <implementation>org.apache.maven.archiva.consumers.core.repository.DaysOldRepositoryPurge</implementation>
-      <!--requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.ArchivaDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.indexer.RepositoryContentIndexFactory</role>
-          <role-hint>lucene</role-hint>
-        </requirement>
-      </requirements-->
-    </component>
-
-    <!-- LuceneRepositoryContentIndexFactory -->
-    <component>
-      <role>org.apache.maven.archiva.indexer.RepositoryContentIndexFactory</role>
-      <role-hint>lucene</role-hint>
-      <implementation>org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
-          <role-hint></role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <!-- ArchivaConfiguration -->
-    <component>
-      <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
-      <role-hint>test-configuration</role-hint>
-      <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
-      <requirements>
-        <requirement>
-          <role>org.codehaus.plexus.registry.Registry</role>
-          <role-hint>configured</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-    <component>
-      <role>org.codehaus.plexus.registry.Registry</role>
-      <role-hint>configured</role-hint>
-      <implementation>org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry</implementation>
-      <configuration>
-        <properties>
-          <system/>
-          <xml fileName="${basedir}/src/test/conf/repository-manager.xml"
-               config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
-        </properties>
-      </configuration>
-    </component>
-
-    <!-- ArchivaDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.ArchivaDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoArchivaDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.database.ArtifactDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.database.ProjectModelDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.database.RepositoryDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
+    
     <!-- JdoAccess -->
     <component>
       <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
@@ -118,58 +34,6 @@
       </requirements>
     </component>
 
-    <!-- ArtifactDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.ArtifactDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoArtifactDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <!-- ProjectModelDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.ProjectModelDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoProjectModelDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <!-- RepositoryDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.RepositoryDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoRepositoryDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <!-- RepositoryProblemDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoRepositoryProblemDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
     <!-- JDO Factory -->
     <component>
       <role>org.codehaus.plexus.jdo.JdoFactory</role>
@@ -186,38 +50,6 @@
             <name>javax.jdo.PersistenceManagerFactoryClass</name>
             <value>org.jpox.PersistenceManagerFactoryImpl</value>
           </property>
-          <!--property>
-            <name>org.jpox.transactionIsolation</name>
-            <value>READ_COMMITTED</value>
-          </property>
-          <property>
-            <name>org.jpox.poid.transactionIsolation</name>
-            <value>READ_COMMITTED</value>
-          </property>
-          <property>
-            <name>org.jpox.autoCreateSchema</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>javax.jdo.option.RetainValues</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>javax.jdo.option.RestoreValues</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>org.jpox.validateTables</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>org.jpox.validateColumns</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>org.jpox.validateConstraints</name>
-            <value>true</value>
-          </property-->
         </otherProperties>
       </configuration>
     </component>

Modified: maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml?view=diff&rev=563064&r1=563063&r2=563064
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml (original)
+++ maven/archiva/trunk/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.xml Mon Aug  6 01:22:35 2007
@@ -19,91 +19,7 @@
   -->
 
 <component-set>
-  <components>   
-
-    <!-- RetentionCountRepositoryPurge -->
-    <component>
-      <role>org.apache.maven.archiva.consumers.core.repository.RepositoryPurge</role>
-      <role-hint>retention-count</role-hint>
-      <implementation>org.apache.maven.archiva.consumers.core.repository.RetentionCountRepositoryPurge</implementation>
-      <!--requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.ArchivaDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.indexer.RepositoryContentIndexFactory</role>
-          <role-hint>lucene</role-hint>
-        </requirement>
-      </requirements-->
-    </component>
-
-    <!-- LuceneRepositoryContentIndexFactory -->
-    <component>
-      <role>org.apache.maven.archiva.indexer.RepositoryContentIndexFactory</role>
-      <role-hint>lucene</role-hint>
-      <implementation>org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
-          <role-hint></role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <!-- ArchivaConfiguration -->
-    <component>
-      <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
-      <role-hint>test-configuration</role-hint>
-      <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
-      <requirements>
-        <requirement>
-          <role>org.codehaus.plexus.registry.Registry</role>
-          <role-hint>configured</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-    <component>
-      <role>org.codehaus.plexus.registry.Registry</role>
-      <role-hint>configured</role-hint>
-      <implementation>org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry</implementation>
-      <configuration>
-        <properties>
-          <system/>
-          <xml fileName="${basedir}/src/test/conf/repository-manager.xml"
-               config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
-        </properties>
-      </configuration>
-    </component>
-
-    <!-- ArchivaDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.ArchivaDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoArchivaDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.database.ArtifactDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.database.ProjectModelDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.database.RepositoryDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
-          <role-hint>jdo</role-hint>
-        </requirement>
-      </requirements>
-    </component>
+  <components>
 
     <!-- JdoAccess -->
     <component>
@@ -118,58 +34,6 @@
       </requirements>
     </component>
 
-    <!-- ArtifactDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.ArtifactDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoArtifactDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <!-- ProjectModelDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.ProjectModelDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoProjectModelDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <!-- RepositoryDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.RepositoryDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoRepositoryDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <!-- RepositoryProblemDAO -->
-    <component>
-      <role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
-      <role-hint>jdo</role-hint>
-      <implementation>org.apache.maven.archiva.database.jdo.JdoRepositoryProblemDAO</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
-          <role-hint>archiva</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
     <!-- JDO Factory -->
     <component>
       <role>org.codehaus.plexus.jdo.JdoFactory</role>
@@ -185,38 +49,6 @@
           <property>
             <name>javax.jdo.PersistenceManagerFactoryClass</name>
             <value>org.jpox.PersistenceManagerFactoryImpl</value>
-          </property>
-          <property>
-            <name>org.jpox.transactionIsolation</name>
-            <value>READ_COMMITTED</value>
-          </property>
-          <property>
-            <name>org.jpox.poid.transactionIsolation</name>
-            <value>READ_COMMITTED</value>
-          </property>
-          <property>
-            <name>org.jpox.autoCreateSchema</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>javax.jdo.option.RetainValues</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>javax.jdo.option.RestoreValues</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>org.jpox.validateTables</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>org.jpox.validateColumns</name>
-            <value>true</value>
-          </property>
-          <property>
-            <name>org.jpox.validateConstraints</name>
-            <value>true</value>
           </property>
         </otherProperties>
       </configuration>