You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2007/08/18 15:37:48 UTC

svn commit: r567269 [2/4] - in /maven/archiva/branches/MRM-462: archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/ archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ a...

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ValidateChecksumConsumer.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ValidateChecksumConsumer.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ValidateChecksumConsumer.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ValidateChecksumConsumer.java Sat Aug 18 06:37:43 2007
@@ -22,7 +22,6 @@
 import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
 import org.apache.maven.archiva.consumers.ConsumerException;
 import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
 import org.apache.maven.archiva.model.ArchivaRepository;
 import org.codehaus.plexus.digest.ChecksumFile;
 import org.codehaus.plexus.digest.Digester;
@@ -38,16 +37,16 @@
 import java.util.List;
 
 /**
- * ValidateChecksumConsumer - validate the provided checksum against the file it represents. 
+ * ValidateChecksumConsumer - validate the provided checksum against the file it represents.
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
- * 
  * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
- *                   role-hint="validate-checksum"
- *                   instantiation-strategy="per-lookup"
+ * role-hint="validate-checksum"
+ * instantiation-strategy="per-lookup"
  */
-public class ValidateChecksumConsumer extends AbstractMonitoredConsumer
+public class ValidateChecksumConsumer
+    extends AbstractMonitoredConsumer
     implements KnownRepositoryContentConsumer, Initializable
 {
     private static final String NOT_VALID_CHECKSUM = "checksum-not-valid";
@@ -99,13 +98,9 @@
         return false;
     }
 
-    public void beginScan( ArchivaRepository repository ) throws ConsumerException
+    public void beginScan( ArchivaRepository repository )
+        throws ConsumerException
     {
-        if ( !repository.isManaged() )
-        {
-            throw new ConsumerException( "Consumer requires managed repository." );
-        }
-
         this.repository = repository;
         this.repositoryDir = new File( repository.getUrl().getPath() );
     }
@@ -125,7 +120,8 @@
         return this.includes;
     }
 
-    public void processFile( String path ) throws ConsumerException
+    public void processFile( String path )
+        throws ConsumerException
     {
         File checksumFile = new File( this.repositoryDir, path );
         try
@@ -141,7 +137,8 @@
         }
         catch ( DigesterException e )
         {
-            triggerConsumerError( CHECKSUM_DIGESTER_FAILURE, "Digester failure during checksum validation on " + checksumFile );
+            triggerConsumerError( CHECKSUM_DIGESTER_FAILURE,
+                                  "Digester failure during checksum validation on " + checksumFile );
         }
         catch ( IOException e )
         {
@@ -149,7 +146,8 @@
         }
     }
 
-    public void initialize() throws InitializationException
+    public void initialize()
+        throws InitializationException
     {
         for ( Iterator itDigesters = digesterList.iterator(); itDigesters.hasNext(); )
         {

Modified: maven/archiva/branches/MRM-462/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/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java Sat Aug 18 06:37:43 2007
@@ -19,35 +19,31 @@
  * 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.commons.io.FileUtils;
 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.common.utils.VersionUtil;
 import org.apache.maven.archiva.database.ArtifactDAO;
-import org.apache.commons.io.FileUtils;
+import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.model.ArchivaRepositoryMetadata;
+import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
+import org.apache.maven.archiva.repository.layout.FilenameParts;
+import org.apache.maven.archiva.repository.layout.LayoutException;
+import org.apache.maven.archiva.repository.metadata.RepositoryMetadataException;
+import org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader;
+import org.apache.maven.archiva.repository.metadata.RepositoryMetadataWriter;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.List;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
-import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 
 /**
  * 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
@@ -60,7 +56,7 @@
                                                     ArtifactDAO artifactDao )
     {
         super( repository, layout, artifactDao );
-        metadataReader = new RepositoryMetadataReader();        
+        metadataReader = new RepositoryMetadataReader();
     }
 
     public void process( String path )

Modified: maven/archiva/branches/MRM-462/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/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java Sat Aug 18 06:37:43 2007
@@ -19,37 +19,31 @@
 * under the License.
 */
 
-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 org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
+import org.apache.maven.archiva.repository.layout.FilenameParts;
+import org.apache.maven.archiva.repository.layout.LayoutException;
 
-import java.util.Calendar;
-import java.util.GregorianCalendar;
 import java.io.File;
+import java.util.Calendar;
 
 /**
  * Purge repository for snapshots older than the specified days in the repository configuration.
  *
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- * @version
  */
 public class DaysOldRepositoryPurge
     extends AbstractRepositoryPurge
-{       
-    private RepositoryConfiguration repoConfig;
+{
+    private int daysOlder;
 
-    public DaysOldRepositoryPurge( ArchivaRepository repository,
-                                   BidirectionalRepositoryLayout layout, ArtifactDAO artifactDao,
-                                   RepositoryConfiguration repoConfig)
+    public DaysOldRepositoryPurge( ArchivaRepository repository, BidirectionalRepositoryLayout layout,
+                                   ArtifactDAO artifactDao, int daysOlder )
     {
         super( repository, layout, artifactDao );
-        this.repoConfig = repoConfig;
+        this.daysOlder = daysOlder;
     }
 
     public void process( String path )
@@ -59,7 +53,7 @@
         {
             File artifactFile = new File( repository.getUrl().getPath(), path );
 
-            if( !artifactFile.exists() )
+            if ( !artifactFile.exists() )
             {
                 return;
             }
@@ -69,7 +63,7 @@
             if ( VersionUtil.isSnapshot( parts.version ) )
             {
                 Calendar olderThanThisDate = Calendar.getInstance();
-                olderThanThisDate.add( Calendar.DATE, ( -1 * repoConfig.getDaysOlder() ) );
+                olderThanThisDate.add( Calendar.DATE, ( -1 * daysOlder ) );
 
                 if ( artifactFile.lastModified() < olderThanThisDate.getTimeInMillis() )
                 {
@@ -86,5 +80,5 @@
             throw new RepositoryPurgeException( le.getMessage() );
         }
     }
-    
+
 }

Modified: maven/archiva/branches/MRM-462/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/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java Sat Aug 18 06:37:43 2007
@@ -19,26 +19,24 @@
  * under the License.
  */
 
-import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.consumers.ConsumerException;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.FileTypes;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
+import org.apache.maven.archiva.consumers.ConsumerException;
+import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
+import org.apache.maven.archiva.database.ArchivaDAO;
 import org.apache.maven.archiva.model.ArchivaRepository;
-import org.apache.maven.archiva.repository.layout.LayoutException;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayoutFactory;
-import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.FileTypes;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
-import org.apache.maven.archiva.database.ArchivaDAO;
-import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory;
-import org.apache.maven.archiva.indexer.RepositoryContentIndex;
-import org.codehaus.plexus.registry.RegistryListener;
-import org.codehaus.plexus.registry.Registry;
+import org.apache.maven.archiva.repository.layout.LayoutException;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.registry.Registry;
+import org.codehaus.plexus.registry.RegistryListener;
 
-import java.util.List;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Consumer for removing old snapshots in the repository based on the criteria
@@ -83,8 +81,6 @@
      */
     private FileTypes filetypes;
 
-    private ArchivaRepository repository;
-
     private List includes = new ArrayList();
 
     private List propertyNameTriggers = new ArrayList();
@@ -93,6 +89,8 @@
 
     private RepositoryPurge cleanUp;
 
+    private boolean deleteReleasedSnapshots;
+
     public String getId()
     {
         return this.id;
@@ -121,15 +119,7 @@
     public void beginScan( ArchivaRepository repository )
         throws ConsumerException
     {
-        BidirectionalRepositoryLayout repositoryLayout = null;
-
-        if ( !repository.isManaged() )
-        {
-            throw new ConsumerException( "Consumer requires managed repository." );
-        }
-
-        this.repository = repository;
-
+        BidirectionalRepositoryLayout repositoryLayout;
         try
         {
             repositoryLayout = layoutFactory.getLayout( repository.getLayoutType() );
@@ -140,18 +130,23 @@
                 "Unable to initialize consumer due to unknown repository layout: " + e.getMessage(), e );
         }
 
-        RepositoryConfiguration repoConfig = configuration.getConfiguration().findRepositoryById( repository.getId() );
+        ManagedRepositoryConfiguration repoConfig =
+            configuration.getConfiguration().findManagedRepositoryById( repository.getId() );
+
         if ( repoConfig.getDaysOlder() != 0 )
         {
-            repoPurge = new DaysOldRepositoryPurge( repository, repositoryLayout, dao.getArtifactDAO(), repoConfig );
+            repoPurge = new DaysOldRepositoryPurge( repository, repositoryLayout, dao.getArtifactDAO(),
+                                                    repoConfig.getDaysOlder() );
         }
         else
         {
-            repoPurge =
-                new RetentionCountRepositoryPurge( repository, repositoryLayout, dao.getArtifactDAO(), repoConfig );
+            repoPurge = new RetentionCountRepositoryPurge( repository, repositoryLayout, dao.getArtifactDAO(),
+                                                           repoConfig.getRetentionCount() );
         }
 
         cleanUp = new CleanupReleasedSnapshotsRepositoryPurge( repository, repositoryLayout, dao.getArtifactDAO() );
+
+        deleteReleasedSnapshots = repoConfig.isDeleteReleasedSnapshots();
     }
 
     public void processFile( String path )
@@ -159,9 +154,7 @@
     {
         try
         {
-            RepositoryConfiguration repoConfig =
-                configuration.getConfiguration().findRepositoryById( repository.getId() );
-            if ( repoConfig.isDeleteReleasedSnapshots() )
+            if ( deleteReleasedSnapshots )
             {
                 cleanUp.process( path );
             }

Modified: maven/archiva/branches/MRM-462/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/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java Sat Aug 18 06:37:43 2007
@@ -19,49 +19,44 @@
 * under the License.
 */
 
-import org.apache.maven.archiva.configuration.Configuration;
-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 org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
+import org.apache.maven.archiva.repository.layout.FilenameParts;
+import org.apache.maven.archiva.repository.layout.LayoutException;
 
 import java.io.File;
-import java.util.List;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * Purge the repository by retention count. Retain only the specified number of snapshots.
  *
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- * @version
  */
 public class RetentionCountRepositoryPurge
     extends AbstractRepositoryPurge
 {
-    private RepositoryConfiguration repoConfig;
+    private int retentionCount;
 
-    public RetentionCountRepositoryPurge( ArchivaRepository repository,
-                                          BidirectionalRepositoryLayout layout, ArtifactDAO artifactDao,
-                                          RepositoryConfiguration repoConfig )
+    public RetentionCountRepositoryPurge( ArchivaRepository repository, BidirectionalRepositoryLayout layout,
+                                          ArtifactDAO artifactDao, int retentionCount )
     {
         super( repository, layout, artifactDao );
-        this.repoConfig = repoConfig;
+        this.retentionCount = retentionCount;
     }
 
     public void process( String path )
         throws RepositoryPurgeException
     {
         try
-        {               
+        {
             File artifactFile = new File( repository.getUrl().getPath(), path );
 
-            if( !artifactFile.exists() )
+            if ( !artifactFile.exists() )
             {
                 return;
             }
@@ -69,7 +64,7 @@
             FilenameParts parts = getFilenameParts( path );
 
             if ( VersionUtil.isSnapshot( parts.version ) )
-            {                                 
+            {
                 File parentDir = artifactFile.getParentFile();
 
                 if ( parentDir.isDirectory() )
@@ -78,13 +73,13 @@
                     List uniqueVersionFilenames = getUniqueVersions( files );
                     Collections.sort( uniqueVersionFilenames );
 
-                    if ( uniqueVersionFilenames.size() > repoConfig.getRetentionCount() )
+                    if ( uniqueVersionFilenames.size() > retentionCount )
                     {
                         int count = uniqueVersionFilenames.size();
                         for ( Iterator iter = uniqueVersionFilenames.iterator(); iter.hasNext(); )
                         {
                             String filename = (String) iter.next();
-                            if ( count > repoConfig.getRetentionCount() )
+                            if ( count > retentionCount )
                             {
                                 File[] artifactFiles = getFiles( parentDir, filename );
                                 purge( artifactFiles );

Modified: maven/archiva/branches/MRM-462/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/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java Sat Aug 18 06:37:43 2007
@@ -19,46 +19,43 @@
 * under the License.
 */
 
-import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
-import org.codehaus.plexus.jdo.JdoFactory;
-import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.common.utils.PathUtil;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.database.ArtifactDAO;
 import org.apache.maven.archiva.model.ArchivaRepository;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
-import org.apache.maven.archiva.repository.layout.LayoutException;
 import org.apache.maven.archiva.repository.layout.DefaultBidirectionalRepositoryLayout;
-import org.apache.maven.archiva.database.ArchivaDAO;
-import org.apache.maven.archiva.database.ArtifactDAO;
+import org.apache.maven.archiva.repository.layout.LayoutException;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
+import org.codehaus.plexus.jdo.JdoFactory;
 import org.jpox.SchemaTool;
 
-import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.PersistenceManager;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Properties;
+import javax.jdo.PersistenceManagerFactory;
+import java.io.File;
+import java.net.URL;
 import java.util.Iterator;
 import java.util.Map;
-import java.net.URL;
-import java.io.File;
+import java.util.Properties;
 
 /**
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  */
-public class AbstractRepositoryPurgeTest
+public abstract class AbstractRepositoryPurgeTest
     extends PlexusTestCase
 {
     public static final String TEST_REPO_ID = "test-repo";
 
     public static final String TEST_REPO_NAME = "Test Repository";
 
-    public static final String TEST_REPO_URL = "file://" + getBasedir() + "/target/test-classes/test-repo/";
+    public static final String TEST_REPO_URL = getBasedir() + "/target/test-classes/test-repo/";
 
     public static final int TEST_RETENTION_COUNT = 2;
 
     public static final int TEST_DAYS_OLDER = 30;
 
-    private RepositoryConfiguration config;
+    private ManagedRepositoryConfiguration config;
 
     private ArchivaRepository repo;
 
@@ -136,17 +133,17 @@
         dao = (ArtifactDAO) lookup( ArtifactDAO.class.getName(), "jdo" );
     }
 
-    public RepositoryConfiguration getRepoConfiguration()
+    public ManagedRepositoryConfiguration getRepoConfiguration()
     {
         if ( config == null )
         {
-            config = new RepositoryConfiguration();
+            config = new ManagedRepositoryConfiguration();
         }
 
         config.setId( TEST_REPO_ID );
         config.setName( TEST_REPO_NAME );
         config.setDaysOlder( TEST_DAYS_OLDER );
-        config.setUrl( TEST_REPO_URL );
+        config.setLocation( TEST_REPO_URL );
         config.setReleases( true );
         config.setSnapshots( true );
         config.setRetentionCount( TEST_RETENTION_COUNT );
@@ -158,7 +155,7 @@
     {
         if ( repo == null )
         {
-            repo = new ArchivaRepository( TEST_REPO_ID, TEST_REPO_NAME, TEST_REPO_URL );
+            repo = new ArchivaRepository( TEST_REPO_ID, TEST_REPO_NAME, PathUtil.toUrl( TEST_REPO_URL ) );
         }
 
         return repo;

Modified: maven/archiva/branches/MRM-462/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/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java Sat Aug 18 06:37:43 2007
@@ -1,24 +1,9 @@
 package org.apache.maven.archiva.consumers.core.repository;
 
-import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
-import org.codehaus.plexus.jdo.JdoFactory;
-import org.apache.maven.archiva.configuration.Configuration;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
-import org.apache.maven.archiva.model.ArchivaRepository;
-import org.apache.maven.archiva.model.ArchivaArtifactModel;
 import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.database.ArtifactDAO;
-import org.apache.maven.archiva.database.ArchivaDAO;
-import org.apache.maven.archiva.database.jdo.JdoAccess;
-
-import javax.jdo.JDOFatalUserException;
-import javax.jdo.JDOHelper;
-import javax.jdo.spi.JDOImplHelper;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Date;
+
 import java.io.File;
+import java.util.Date;
 
 
 /**
@@ -35,7 +20,8 @@
     {
         super.setUp();
 
-        repoPurge = new DaysOldRepositoryPurge( getRepository(), getLayout(), dao, getRepoConfiguration() );
+        repoPurge =
+            new DaysOldRepositoryPurge( getRepository(), getLayout(), dao, getRepoConfiguration().getDaysOlder() );
     }
 
     private void setLastModified()
@@ -53,7 +39,7 @@
         throws Exception
     {
         populateDb();
-        
+
         setLastModified();
 
         repoPurge.process( PATH_TO_BY_DAYS_OLD_ARTIFACT );
@@ -97,8 +83,7 @@
         assertNotNull( savedArtifact );
 
         //POM
-        artifact =
-            dao.createArtifact( "org.apache.maven.plugins", "maven-install-plugin", "2.2-SNAPSHOT", "", "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" );

Modified: maven/archiva/branches/MRM-462/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/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java Sat Aug 18 06:37:43 2007
@@ -44,7 +44,8 @@
     {
         super.setUp();
 
-        repoPurge = new RetentionCountRepositoryPurge( getRepository(), getLayout(), dao, getRepoConfiguration() );
+        repoPurge = new RetentionCountRepositoryPurge( getRepository(), getLayout(), dao,
+                                                       getRepoConfiguration().getRetentionCount() );
     }
 
     /**

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java Sat Aug 18 06:37:43 2007
@@ -49,10 +49,9 @@
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
- * 
  * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
- *                   role-hint="update-db-artifact"
- *                   instantiation-strategy="per-lookup"
+ * role-hint="update-db-artifact"
+ * instantiation-strategy="per-lookup"
  */
 public class ArtifactUpdateDatabaseConsumer
     extends AbstractMonitoredConsumer
@@ -140,11 +139,6 @@
     public void beginScan( ArchivaRepository repository )
         throws ConsumerException
     {
-        if ( !repository.isManaged() )
-        {
-            throw new ConsumerException( "Consumer requires managed repository." );
-        }
-
         this.repository = repository;
         this.repositoryDir = new File( repository.getUrl().getPath() );
 
@@ -180,7 +174,8 @@
             }
             catch ( DigesterException e )
             {
-                triggerConsumerWarning( CHECKSUM_CALCULATION, "Unable to calculate the MD5 checksum: " + e.getMessage() );
+                triggerConsumerWarning( CHECKSUM_CALCULATION,
+                                        "Unable to calculate the MD5 checksum: " + e.getMessage() );
             }
 
             try
@@ -189,8 +184,8 @@
             }
             catch ( DigesterException e )
             {
-                triggerConsumerWarning( CHECKSUM_CALCULATION, "Unable to calculate the SHA1 checksum: "
-                    + e.getMessage() );
+                triggerConsumerWarning( CHECKSUM_CALCULATION,
+                                        "Unable to calculate the SHA1 checksum: " + e.getMessage() );
             }
 
             artifact.getModel().setLastModified( new Date( artifactFile.lastModified() ) );
@@ -207,11 +202,11 @@
 
     /**
      * Get a Live Artifact from a Path.
-     * 
+     * <p/>
      * Will resolve the artifact details from the path, and then return a database live version
      * of that artifact.  Suitable for modification and saving (without the need to check for
      * existance in database prior to save.)
-     * 
+     *
      * @param path the path to work from.
      * @return the artifact that is suitable for database saving.
      */
@@ -231,8 +226,8 @@
         }
         catch ( LayoutException e )
         {
-            triggerConsumerError( TYPE_NOT_ARTIFACT, "Path " + path + " cannot be converted to artifact: "
-                + e.getMessage() );
+            triggerConsumerError( TYPE_NOT_ARTIFACT,
+                                  "Path " + path + " cannot be converted to artifact: " + e.getMessage() );
             return null;
         }
     }

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java Sat Aug 18 06:37:43 2007
@@ -20,8 +20,10 @@
  */
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.common.utils.VersionUtil;
+import org.apache.maven.archiva.configuration.AbstractRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
 import org.apache.maven.archiva.consumers.ConsumerException;
 import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer;
@@ -31,7 +33,6 @@
 import org.apache.maven.archiva.model.ArchivaArtifact;
 import org.apache.maven.archiva.model.ArchivaProjectModel;
 import org.apache.maven.archiva.model.RepositoryProblem;
-import org.apache.maven.archiva.model.RepositoryURL;
 import org.apache.maven.archiva.reporting.artifact.CorruptArtifactReport;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayoutFactory;
@@ -42,7 +43,6 @@
 import org.apache.maven.archiva.repository.project.ProjectModelFilter;
 import org.apache.maven.archiva.repository.project.ProjectModelReader;
 import org.apache.maven.archiva.repository.project.filters.EffectiveProjectModelFilter;
-import org.apache.maven.archiva.common.utils.VersionUtil;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -146,7 +146,7 @@
         }
 
         File artifactFile = toFile( artifact );
-        RepositoryConfiguration repo = getRepository( artifact );
+        AbstractRepositoryConfiguration repo = getRepository( artifact );
         ProjectModelReader reader = project400Reader;
 
         if ( StringUtils.equals( "legacy", repo.getLayout() ) )
@@ -223,15 +223,15 @@
         }
     }
 
-    private RepositoryConfiguration getRepository( ArchivaArtifact artifact )
+    private ManagedRepositoryConfiguration getRepository( ArchivaArtifact artifact )
     {
         String repoId = artifact.getModel().getRepositoryId();
-        return archivaConfiguration.getConfiguration().findRepositoryById( repoId );
+        return archivaConfiguration.getConfiguration().findManagedRepositoryById( repoId );
     }
 
     private File toFile( ArchivaArtifact artifact )
     {
-        RepositoryConfiguration repoConfig = getRepository( artifact );
+        ManagedRepositoryConfiguration repoConfig = getRepository( artifact );
 
         BidirectionalRepositoryLayout layout = null;
 
@@ -245,9 +245,7 @@
             return null;
         }
 
-        String path = layout.toPath( artifact );
-        RepositoryURL url = new RepositoryURL( repoConfig.getUrl() );
-        return new File( url.getPath(), path );
+        return new File( repoConfig.getLocation(), layout.toPath( artifact ) );
     }
 
     public String getDescription()

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexArtifactConsumer.java Sat Aug 18 06:37:43 2007
@@ -22,7 +22,7 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ConfigurationNames;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
 import org.apache.maven.archiva.consumers.ConsumerException;
 import org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer;
@@ -45,14 +45,13 @@
 import java.util.Map;
 
 /**
- * IndexArtifactConsumer 
+ * IndexArtifactConsumer
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
- * 
  * @plexus.component role="org.apache.maven.archiva.consumers.DatabaseUnprocessedArtifactConsumer"
- *                   role-hint="index-artifact"
- *                   instantiation-strategy="per-lookup"
+ * role-hint="index-artifact"
+ * instantiation-strategy="per-lookup"
  */
 public class IndexArtifactConsumer
     extends AbstractMonitoredConsumer
@@ -129,8 +128,8 @@
         String repoId = artifact.getModel().getRepositoryId();
         if ( StringUtils.isBlank( repoId ) )
         {
-            throw new IllegalStateException( "Unable to process artifact [" + artifact
-                + "] as it has no repository id associated with it." );
+            throw new IllegalStateException(
+                "Unable to process artifact [" + artifact + "] as it has no repository id associated with it." );
         }
 
         return getIndexedRepositoryDetails( repoId );
@@ -158,7 +157,7 @@
 
     public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
     {
-        if ( ConfigurationNames.isRepositories( propertyName ) )
+        if ( ConfigurationNames.isManagedRepositories( propertyName ) )
         {
             initRepositoryMap();
         }
@@ -182,14 +181,10 @@
         {
             this.repositoryMap.clear();
 
-            Iterator it = configuration.getConfiguration().getRepositories().iterator();
+            Iterator it = configuration.getConfiguration().getManagedRepositories().iterator();
             while ( it.hasNext() )
             {
-                RepositoryConfiguration repoconfig = (RepositoryConfiguration) it.next();
-                if ( !repoconfig.isManaged() )
-                {
-                    continue;
-                }
+                ManagedRepositoryConfiguration repoconfig = (ManagedRepositoryConfiguration) it.next();
 
                 ArchivaRepository repository = ArchivaConfigurationAdaptor.toArchivaRepository( repoconfig );
                 IndexedRepositoryDetails pnl = new IndexedRepositoryDetails();

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java Sat Aug 18 06:37:43 2007
@@ -45,14 +45,13 @@
 import java.util.List;
 
 /**
- * IndexContentConsumer - generic full file content indexing consumer. 
+ * IndexContentConsumer - generic full file content indexing consumer.
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
- * 
  * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
- *                   role-hint="index-content"
- *                   instantiation-strategy="per-lookup"
+ * role-hint="index-content"
+ * instantiation-strategy="per-lookup"
  */
 public class IndexContentConsumer
     extends AbstractMonitoredConsumer
@@ -132,11 +131,6 @@
     public void beginScan( ArchivaRepository repository )
         throws ConsumerException
     {
-        if ( !repository.isManaged() )
-        {
-            throw new ConsumerException( "Consumer requires managed repository." );
-        }
-
         this.repository = repository;
         this.repositoryDir = new File( repository.getUrl().getPath() );
         this.index = indexFactory.createFileContentIndex( repository );
@@ -147,8 +141,8 @@
         }
         catch ( LayoutException e )
         {
-            throw new ConsumerException( "Unable to initialize consumer due to unknown repository layout: "
-                + e.getMessage(), e );
+            throw new ConsumerException(
+                "Unable to initialize consumer due to unknown repository layout: " + e.getMessage(), e );
         }
     }
 

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryContentIndexFactory.java Sat Aug 18 06:37:43 2007
@@ -21,7 +21,7 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.indexer.RepositoryContentIndex;
 import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory;
 import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers;
@@ -36,7 +36,6 @@
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
- * 
  * @plexus.component role="org.apache.maven.archiva.indexer.RepositoryContentIndexFactory" role-hint="lucene"
  */
 public class LuceneRepositoryContentIndexFactory
@@ -66,21 +65,17 @@
     }
 
     /**
-     * Obtain the index directory for the provided repository. 
-     * 
+     * Obtain the index directory for the provided repository.
+     *
      * @param repository the repository to obtain the index directory from.
-     * @param indexId the id of the index
+     * @param indexId    the id of the index
      * @return the directory to put the index into.
      */
     private File toIndexDir( ArchivaRepository repository, String indexId )
     {
-        if ( !repository.isManaged() )
-        {
-            throw new IllegalArgumentException( "Only supports managed repositories." );
-        }
-
         // Attempt to get the specified indexDir in the configuration first.
-        RepositoryConfiguration repoConfig = configuration.getConfiguration().findRepositoryById( repository.getId() );
+        ManagedRepositoryConfiguration repoConfig =
+            configuration.getConfiguration().findManagedRepositoryById( repository.getId() );
         File indexDir;
 
         if ( repoConfig == null )

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java Sat Aug 18 06:37:43 2007
@@ -22,7 +22,6 @@
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.Predicate;
 import org.apache.commons.collections.Transformer;
-import org.apache.commons.collections.functors.AndPredicate;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.queryParser.MultiFieldQueryParser;
 import org.apache.lucene.queryParser.ParseException;
@@ -32,9 +31,7 @@
 import org.apache.lucene.search.Searchable;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ConfigurationNames;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
-import org.apache.maven.archiva.configuration.functors.IndexedRepositoryPredicate;
-import org.apache.maven.archiva.configuration.functors.LocalRepositoryPredicate;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.indexer.RepositoryContentIndex;
 import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers;
 import org.apache.maven.archiva.indexer.filecontent.FileContentHandlers;
@@ -53,11 +50,10 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 
 /**
- * DefaultCrossRepositorySearch 
+ * DefaultCrossRepositorySearch
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
@@ -105,7 +101,7 @@
 
         try
         {
-            QueryParser parser = new MultiFieldQueryParser( new String[] { HashcodesKeys.MD5, HashcodesKeys.SHA1 },
+            QueryParser parser = new MultiFieldQueryParser( new String[]{HashcodesKeys.MD5, HashcodesKeys.SHA1},
                                                             new HashcodesHandlers().getAnalyzer() );
             LuceneQuery query = new LuceneQuery( parser.parse( checksum ) );
             SearchResults results = searchAll( query, limits, indexes );
@@ -256,7 +252,7 @@
             }
             catch ( IOException ie )
             {
-                getLogger().error( "Unable to close index searcher: " + ie.getMessage(), ie );    
+                getLogger().error( "Unable to close index searcher: " + ie.getMessage(), ie );
             }
         }
 
@@ -312,7 +308,7 @@
 
     public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
     {
-        if ( ConfigurationNames.isRepositories( propertyName ) )
+        if ( ConfigurationNames.isManagedRepositories( propertyName ) )
         {
             initRepositories();
         }
@@ -329,28 +325,14 @@
         {
             this.localIndexedRepositories.clear();
 
-            Predicate localIndexedRepos = AndPredicate.getInstance( LocalRepositoryPredicate.getInstance(),
-                                                                    IndexedRepositoryPredicate.getInstance() );
-
-            Collection repos = CollectionUtils.select( configuration.getConfiguration().getRepositories(),
-                                                       localIndexedRepos );
-            
-            Transformer toArchivaRepository = new Transformer()
+            List<ManagedRepositoryConfiguration> repos = configuration.getConfiguration().getManagedRepositories();
+            for ( ManagedRepositoryConfiguration repo : repos )
             {
-
-                public Object transform( Object input )
+                if ( repo.isIndexed() )
                 {
-                    if ( input instanceof RepositoryConfiguration )
-                    {
-                        return ArchivaConfigurationAdaptor.toArchivaRepository( (RepositoryConfiguration) input );
-                    }
-                    return input;
+                    localIndexedRepositories.add( ArchivaConfigurationAdaptor.toArchivaRepository( repo ) );
                 }
-            };
-
-            CollectionUtils.transform( repos, toArchivaRepository );
-
-            this.localIndexedRepositories.addAll( repos );
+            }
         }
     }
 

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/AbstractIndexerTestCase.java Sat Aug 18 06:37:43 2007
@@ -23,7 +23,7 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.indexer.lucene.LuceneIndexHandlers;
 import org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentRecord;
 import org.apache.maven.archiva.model.ArchivaArtifact;
@@ -41,7 +41,7 @@
 import java.util.Map;
 
 /**
- * AbstractIndexerTestCase 
+ * AbstractIndexerTestCase
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
@@ -53,6 +53,10 @@
 
     protected LuceneIndexHandlers indexHandlers;
 
+    private static final String TEST_DEFAULT_REPOSITORY_NAME = "Test Default Repository";
+
+    private static final String TEST_DEFAULT_REPO_ID = "testDefaultRepo";
+
     public abstract String getIndexName();
 
     protected void assertRecord( LuceneRepositoryContentRecord expectedRecord, Document luceneDocument )
@@ -78,9 +82,9 @@
     {
         super.setUp();
 
-        RepositoryContentIndexFactory indexFactory = (RepositoryContentIndexFactory) lookup(
-                                                                                             RepositoryContentIndexFactory.class
-                                                                                                 .getName(), "lucene" );
+        RepositoryContentIndexFactory indexFactory =
+            (RepositoryContentIndexFactory) lookup( RepositoryContentIndexFactory.class
+                .getName(), "lucene" );
 
         ArchivaRepository repository = createTestIndex( getIndexName() );
 
@@ -90,7 +94,7 @@
     }
 
     private ArchivaRepository createTestIndex( String indexName )
-        throws Exception, IOException
+        throws Exception
     {
         File repoDir = new File( getBasedir(), "src/test/managed-repository" );
         File testIndexesDir = new File( getBasedir(), "target/test-indexes" );
@@ -104,16 +108,17 @@
 
         String repoUri = "file://" + StringUtils.replace( repoDir.getAbsolutePath(), "\\", "/" );
 
-        ArchivaRepository repository = new ArchivaRepository( "testDefaultRepo", "Test Default Repository", repoUri );
+        ArchivaRepository repository =
+            new ArchivaRepository( TEST_DEFAULT_REPO_ID, TEST_DEFAULT_REPOSITORY_NAME, repoUri );
 
         File indexLocation = new File( testIndexesDir, "/index-" + indexName + "-" + getName() + "/" );
 
         MockConfiguration config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" );
 
-        RepositoryConfiguration repoConfig = new RepositoryConfiguration();
-        repoConfig.setId( repository.getId() );
-        repoConfig.setName( repository.getModel().getName() );
-        repoConfig.setUrl( repository.getModel().getUrl() );
+        ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration();
+        repoConfig.setId( TEST_DEFAULT_REPO_ID );
+        repoConfig.setName( TEST_DEFAULT_REPOSITORY_NAME );
+        repoConfig.setLocation( repoDir.getAbsolutePath() );
         repoConfig.setIndexDir( indexLocation.getAbsolutePath() );
 
         if ( indexLocation.exists() )
@@ -121,7 +126,7 @@
             FileUtils.deleteDirectory( indexLocation );
         }
 
-        config.getConfiguration().addRepository( repoConfig );
+        config.getConfiguration().addManagedRepository( repoConfig );
         return repository;
     }
 
@@ -130,8 +135,8 @@
         Map dumps = new HashMap();
 
         // archiva-common-1.0.jar.txt
-        dumps.put( "archiva-common", createArchivaArtifact( "org.apache.maven.archiva", "archiva-common", "1.0", "",
-                                                            "jar" ) );
+        dumps.put( "archiva-common",
+                   createArchivaArtifact( "org.apache.maven.archiva", "archiva-common", "1.0", "", "jar" ) );
 
         // continuum-webapp-1.0.3-SNAPSHOT.war.txt
         dumps.put( "continuum-webapp", createArchivaArtifact( "org.apache.maven.continuum", "continuum-webapp",
@@ -198,8 +203,8 @@
         return dumpFile;
     }
 
-    private ArchivaArtifact createArchivaArtifact( String groupId, String artifactId, String version,
-                                                   String classifier, String type )
+    private ArchivaArtifact createArchivaArtifact( String groupId, String artifactId, String version, String classifier,
+                                                   String type )
     {
         ArchivaArtifact artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type );
         return artifact;

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java Sat Aug 18 06:37:43 2007
@@ -25,7 +25,7 @@
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.Searcher;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.indexer.MockConfiguration;
 import org.apache.maven.archiva.indexer.RepositoryContentIndex;
 import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory;
@@ -37,7 +37,7 @@
 import java.util.Map;
 
 /**
- * DefaultCrossRepositorySearchTest 
+ * DefaultCrossRepositorySearchTest
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
@@ -45,15 +45,18 @@
 public class DefaultCrossRepositorySearchTest
     extends PlexusTestCase
 {
+    private static final String TEST_DEFAULT_REPOSITORY_NAME = "Test Default Repository";
+
+    private static final String TEST_DEFAULT_REPO_ID = "testDefaultRepo";
 
     protected void setUp()
         throws Exception
     {
         super.setUp();
 
-        RepositoryContentIndexFactory indexFactory = (RepositoryContentIndexFactory) lookup(
-                                                                                             RepositoryContentIndexFactory.class
-                                                                                                 .getName(), "lucene" );
+        RepositoryContentIndexFactory indexFactory =
+            (RepositoryContentIndexFactory) lookup( RepositoryContentIndexFactory.class
+                .getName(), "lucene" );
 
         File repoDir = new File( getBasedir(), "src/test/managed-repository" );
 
@@ -61,16 +64,17 @@
 
         String repoUri = "file://" + StringUtils.replace( repoDir.getAbsolutePath(), "\\", "/" );
 
-        ArchivaRepository repository = new ArchivaRepository( "testDefaultRepo", "Test Default Repository", repoUri );
+        ArchivaRepository repository =
+            new ArchivaRepository( TEST_DEFAULT_REPO_ID, TEST_DEFAULT_REPOSITORY_NAME, repoUri );
 
         File indexLocation = new File( "target/index-crossrepo-" + getName() + "/" );
 
         MockConfiguration config = (MockConfiguration) lookup( ArchivaConfiguration.class.getName(), "mock" );
 
-        RepositoryConfiguration repoConfig = new RepositoryConfiguration();
-        repoConfig.setId( repository.getId() );
-        repoConfig.setName( repository.getModel().getName() );
-        repoConfig.setUrl( repository.getModel().getUrl() );
+        ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration();
+        repoConfig.setId( TEST_DEFAULT_REPO_ID );
+        repoConfig.setName( TEST_DEFAULT_REPOSITORY_NAME );
+        repoConfig.setLocation( repoDir.getAbsolutePath() );
         repoConfig.setIndexDir( indexLocation.getAbsolutePath() );
         repoConfig.setIndexed( true );
 
@@ -79,7 +83,7 @@
             FileUtils.deleteDirectory( indexLocation );
         }
 
-        config.getConfiguration().addRepository( repoConfig );
+        config.getConfiguration().addManagedRepository( repoConfig );
 
         // Create the (empty) indexes.
         RepositoryContentIndex indexHashcode = indexFactory.createHashcodeIndex( repository );
@@ -115,7 +119,8 @@
     private CrossRepositorySearch lookupCrossRepositorySearch()
         throws Exception
     {
-        CrossRepositorySearch search = (CrossRepositorySearch) lookup( CrossRepositorySearch.class.getName(), "default" );
+        CrossRepositorySearch search =
+            (CrossRepositorySearch) lookup( CrossRepositorySearch.class.getName(), "default" );
         assertNotNull( "CrossRepositorySearch:default should not be null.", search );
         return search;
     }

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-model/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-model/pom.xml?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-model/pom.xml (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-model/pom.xml Sat Aug 18 06:37:43 2007
@@ -18,7 +18,8 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <parent>
     <groupId>org.apache.maven.archiva</groupId>
     <artifactId>archiva-base</artifactId>
@@ -89,7 +90,7 @@
         </executions>
       </plugin>
       <plugin>
-       <groupId>org.codehaus.mojo</groupId>
+        <groupId>org.codehaus.mojo</groupId>
         <artifactId>jpox-maven-plugin</artifactId>
         <version>1.1.6</version>
         <dependencies>
@@ -100,44 +101,44 @@
           </dependency>
         </dependencies>
         <executions>
-        <!-- TODO: put this into a profile!
-          <execution>
-            <id>create-ddl</id>
-            <phase>generate-test-resources</phase>
-            <goals>
-              <goal>schema-create</goal>
-            </goals>
-            <configuration>
-              <outputFile>${basedir}/target/classes/org/apache/maven/archiva/model/schema.ddl</outputFile>
-              <toolProperties>
-                <property>
-                  <name>javax.jdo.option.ConnectionDriverName</name>
-                  <value>org.apache.derby.jdbc.EmbeddedDriver</value>
-                </property>
-                <property>
-                  <name>javax.jdo.option.ConnectionURL</name>
-                  <value>jdbc:derby:target/jdo-schema-create;create=true</value>
-                </property>
-                <property>
-                  <name>javax.jdo.option.ConnectionUserName</name>
-                  <value>sa</value>
-                </property>
-                <property>
-                  <name>javax.jdo.option.ConnectionPassword</name>
-                  <value></value>
-                </property>
-                <property>
-                  <name>log4j.configuration</name>
-                  <value>${basedir}/src/test/resources/log4j.xml</value>
-                </property>
-                <property>
-                  <name>org.jpox.autoCreateTables</name>
-                  <value>true</value>
-                </property>
-              </toolProperties>
-            </configuration>
-          </execution>
-             -->
+          <!-- TODO: put this into a profile
+       <execution>
+         <id>create-ddl</id>
+         <phase>generate-test-resources</phase>
+         <goals>
+           <goal>schema-create</goal>
+         </goals>
+         <configuration>
+           <outputFile>${basedir}/target/classes/org/apache/maven/archiva/model/schema.ddl</outputFile>
+           <toolProperties>
+             <property>
+               <name>javax.jdo.option.ConnectionDriverName</name>
+               <value>org.apache.derby.jdbc.EmbeddedDriver</value>
+             </property>
+             <property>
+               <name>javax.jdo.option.ConnectionURL</name>
+               <value>jdbc:derby:target/jdo-schema-create;create=true</value>
+             </property>
+             <property>
+               <name>javax.jdo.option.ConnectionUserName</name>
+               <value>sa</value>
+             </property>
+             <property>
+               <name>javax.jdo.option.ConnectionPassword</name>
+               <value></value>
+             </property>
+             <property>
+               <name>log4j.configuration</name>
+               <value>${basedir}/src/test/resources/log4j.xml</value>
+             </property>
+             <property>
+               <name>org.jpox.autoCreateTables</name>
+               <value>true</value>
+             </property>
+           </toolProperties>
+         </configuration>
+       </execution>
+          -->
           <execution>
             <id>enhance</id>
             <goals>

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaRepository.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaRepository.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaRepository.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaRepository.java Sat Aug 18 06:37:43 2007
@@ -20,7 +20,7 @@
  */
 
 /**
- * ArchivaRepository 
+ * ArchivaRepository
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
@@ -35,10 +35,10 @@
 
     /**
      * Construct a Repository.
-     * 
-     * @param id the unique identifier for this repository.
-     * @param name the name for this repository.
-     * @param url the base URL for this repository (this should point to the top level URL for the entire repository)
+     *
+     * @param id     the unique identifier for this repository.
+     * @param name   the name for this repository.
+     * @param url    the base URL for this repository (this should point to the top level URL for the entire repository)
      * @param layout the layout technique for this repository.
      */
     public ArchivaRepository( String id, String name, String url )
@@ -52,7 +52,7 @@
 
     /**
      * Construct a Repository.
-     * 
+     *
      * @param model the model to use
      */
     public ArchivaRepository( ArchivaRepositoryModel model )
@@ -91,16 +91,6 @@
     public void setBlacklisted( boolean blacklisted )
     {
         this.blacklisted = blacklisted;
-    }
-
-    public boolean isRemote()
-    {
-        return this.url.getProtocol().equals( "file" );
-    }
-
-    public boolean isManaged()
-    {
-        return this.url.getProtocol().equals( "file" );
     }
 
     public String getLayoutType()

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-model/src/main/mdo/archiva-base.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-model/src/main/mdo/archiva-base.xml?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-model/src/main/mdo/archiva-base.xml (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-model/src/main/mdo/archiva-base.xml Sat Aug 18 06:37:43 2007
@@ -15,7 +15,7 @@
   </defaults>
 
   <classes>
-    <class stash.storable="false" 
+    <class stash.storable="false"
            rootElement="true"
            jpox.enabled="false">
       <name>ArchivaAll</name>
@@ -25,6 +25,7 @@
         This object is not serialized to the Database.
       </description>
       <fields>
+        <!-- TODO! check it -->
         <field>
           <name>repositories</name>
           <version>1.0.0+</version>
@@ -121,6 +122,7 @@
             The Name of the repository.
           </description>
         </field>
+        <!-- TODO! check it -->
         <field stash.maxSize="250">
           <name>url</name>
           <identifier>false</identifier>
@@ -527,16 +529,16 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <!-- _______________________________________________________________
-         __  __      _            _       _
-        |  \/  | ___| |_ __ _  __| | __ _| |_ __ _
-        | |\/| |/ _ \ __/ _` |/ _` |/ _` | __/ _` |
-        | |  | |  __/ || (_| | (_| | (_| | || (_| |
-        |_|  |_|\___|\__\__,_|\__,_|\__,_|\__\__,_|
-        
-      -->
-    
+       __  __      _            _       _
+      |  \/  | ___| |_ __ _  __| | __ _| |_ __ _
+      | |\/| |/ _ \ __/ _` |/ _` |/ _` | __/ _` |
+      | |  | |  __/ || (_| | (_| | (_| | || (_| |
+      |_|  |_|\___|\__\__,_|\__,_|\__,_|\__\__,_|
+
+    -->
+
     <class stash.storable="true"
            jpox.use-identifiers-as-primary-key="false"
            jpox.not-persisted-fields="modelEncoding"
@@ -695,21 +697,21 @@
           <code>
             public void updateTimestamp()
             {
-                setLastUpdatedTimestamp( new java.util.Date() );
+            setLastUpdatedTimestamp( new java.util.Date() );
             }
 
             public void setLastUpdatedTimestamp( java.util.Date date )
             {
-                java.util.TimeZone timezone = java.util.TimeZone.getTimeZone( "UTC" );
-                java.text.DateFormat fmt = new java.text.SimpleDateFormat( "yyyyMMddHHmmss" );
-                fmt.setTimeZone( timezone );
-                setLastUpdated( fmt.format( date ) );
+            java.util.TimeZone timezone = java.util.TimeZone.getTimeZone( "UTC" );
+            java.text.DateFormat fmt = new java.text.SimpleDateFormat( "yyyyMMddHHmmss" );
+            fmt.setTimeZone( timezone );
+            setLastUpdated( fmt.format( date ) );
             }
           </code>
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="REPOSITORY_METADATA_SNAPSHOTS">
@@ -724,7 +726,7 @@
           <identifier>false</identifier>
           <required>true</required>
           <description>
-          The unique timestamp for the snapshot version.
+            The unique timestamp for the snapshot version.
           </description>
         </field>
         <field>
@@ -744,16 +746,15 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
-    
-    
+
+
     <!-- _______________________________________________________________
-         ____       __
-        |  _ \ ___ / _| ___ _ __ ___ _ __   ___ ___  ___
-        | |_) / _ \ |_ / _ \ '__/ _ \ '_ \ / __/ _ \/ __|
-        |  _ (  __/  _|  __/ | |  __/ | | | (_|  __/\__ \
-        |_| \_\___|_|  \___|_|  \___|_| |_|\___\___||___/
-     -->
+        ____       __
+       |  _ \ ___ / _| ___ _ __ ___ _ __   ___ ___  ___
+       | |_) / _ \ |_ / _ \ '__/ _ \ '_ \ / __/ _ \/ __|
+       |  _ (  __/  _|  __/ | |  __/ | | | (_|  __/\__ \
+       |_| \_\___|_|  \___|_|  \___|_| |_|\___\___||___/
+    -->
 
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
@@ -818,7 +819,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="VERSIONED_REFERENCE">
@@ -894,7 +895,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="ARTIFACT_REFERENCE">
@@ -1431,7 +1432,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="MAILING_LISTS">
@@ -1489,7 +1490,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="ORGANIZATION">
@@ -1533,7 +1534,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="LICENSES">
@@ -1584,7 +1585,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="ISSUE_MANAGEMENT">
@@ -1617,7 +1618,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class jpox.not-persisted-fields="modelEncoding">
       <name>CiManagement</name>
       <version>1.0.0+</version>
@@ -1648,7 +1649,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding">
       <name>Individual</name>
@@ -1942,7 +1943,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="EXCLUSIONS">
@@ -1973,7 +1974,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="SCM">
@@ -2019,7 +2020,7 @@
         </codeSegment>
       </codeSegments>
     </class>
-    
+
     <class stash.storable="true"
            jpox.not-persisted-fields="modelEncoding"
            jpox.table="PROJECT_REPOSITORIES">
@@ -2119,7 +2120,7 @@
             The repository associated with this path and problem.
           </description>
         </field>
-        <field stash.maxSize="250" 
+        <field stash.maxSize="250"
                jpox.column="REPO_PATH">
           <name>path</name>
           <version>1.0.0+</version>

Modified: maven/archiva/branches/MRM-462/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/MRM-462/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java?view=diff&rev=567269&r1=567268&r2=567269
==============================================================================
--- maven/archiva/branches/MRM-462/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java (original)
+++ maven/archiva/branches/MRM-462/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java Sat Aug 18 06:37:43 2007
@@ -23,15 +23,17 @@
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ConfigurationNames;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.NetworkProxyConfiguration;
 import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
-import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
 import org.apache.maven.archiva.model.ArchivaRepository;
 import org.apache.maven.archiva.model.ArtifactReference;
 import org.apache.maven.archiva.model.ProjectReference;
 import org.apache.maven.archiva.model.VersionedReference;
 import org.apache.maven.archiva.policies.DownloadPolicy;
 import org.apache.maven.archiva.policies.urlcache.UrlFailureCache;
+import org.apache.maven.archiva.repository.ArchivaConfigurationAdaptor;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayoutFactory;
 import org.apache.maven.archiva.repository.layout.LayoutException;
@@ -58,15 +60,14 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 import java.util.Map.Entry;
+import java.util.Properties;
 
 /**
- * DefaultRepositoryProxyConnectors 
+ * DefaultRepositoryProxyConnectors
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
- * 
  * @plexus.component role-hint="default"
  */
 public class DefaultRepositoryProxyConnectors
@@ -110,11 +111,6 @@
     public File fetchFromProxies( ArchivaRepository repository, ArtifactReference artifact )
         throws ProxyException
     {
-        if ( !repository.isManaged() )
-        {
-            throw new ProxyException( "Can only proxy managed repositories." );
-        }
-
         File localFile;
         try
         {
@@ -124,8 +120,8 @@
         }
         catch ( LayoutException e )
         {
-            throw new ProxyException( "Unable to proxy due to bad source repository layout definition: "
-                + e.getMessage(), e );
+            throw new ProxyException(
+                "Unable to proxy due to bad source repository layout definition: " + e.getMessage(), e );
         }
 
         Properties requestProperties = new Properties();
@@ -140,15 +136,15 @@
             ArchivaRepository targetRepository = connector.getTargetRepository();
             try
             {
-                BidirectionalRepositoryLayout targetLayout = layoutFactory.getLayout( targetRepository.getLayoutType() );
+                BidirectionalRepositoryLayout targetLayout =
+                    layoutFactory.getLayout( targetRepository.getLayoutType() );
                 String targetPath = targetLayout.toPath( artifact );
 
-                getLogger().debug(
-                                   "Using target repository: " + targetRepository.getId() + " - layout: "
-                                       + targetRepository.getLayoutType() + " - targetPath: " + targetPath );
+                getLogger().debug( "Using target repository: " + targetRepository.getId() + " - layout: " +
+                    targetRepository.getLayoutType() + " - targetPath: " + targetPath );
 
-                File downloadedFile = transferFile( connector, targetRepository, targetPath, localFile,
-                                                    requestProperties );
+                File downloadedFile =
+                    transferFile( connector, targetRepository, targetPath, localFile, requestProperties );
 
                 if ( fileExists( downloadedFile ) )
                 {
@@ -169,11 +165,6 @@
     public File fetchFromProxies( ArchivaRepository repository, VersionedReference metadata )
         throws ProxyException
     {
-        if ( !repository.isManaged() )
-        {
-            throw new ProxyException( "Can only proxy managed repositories." );
-        }
-
         File localFile;
         try
         {
@@ -183,8 +174,8 @@
         }
         catch ( LayoutException e )
         {
-            throw new ProxyException( "Unable to proxy due to bad source repository layout definition: "
-                + e.getMessage(), e );
+            throw new ProxyException(
+                "Unable to proxy due to bad source repository layout definition: " + e.getMessage(), e );
         }
 
         Properties requestProperties = new Properties();
@@ -197,11 +188,12 @@
             ArchivaRepository targetRepository = connector.getTargetRepository();
             try
             {
-                BidirectionalRepositoryLayout targetLayout = layoutFactory.getLayout( targetRepository.getLayoutType() );
+                BidirectionalRepositoryLayout targetLayout =
+                    layoutFactory.getLayout( targetRepository.getLayoutType() );
                 String targetPath = targetLayout.toPath( metadata );
 
-                File downloadedFile = transferFile( connector, targetRepository, targetPath, localFile,
-                                                    requestProperties );
+                File downloadedFile =
+                    transferFile( connector, targetRepository, targetPath, localFile, requestProperties );
 
                 if ( fileExists( downloadedFile ) )
                 {
@@ -222,11 +214,6 @@
     public File fetchFromProxies( ArchivaRepository repository, ProjectReference metadata )
         throws ProxyException
     {
-        if ( !repository.isManaged() )
-        {
-            throw new ProxyException( "Can only proxy managed repositories." );
-        }
-
         File localFile;
         try
         {
@@ -236,8 +223,8 @@
         }
         catch ( LayoutException e )
         {
-            throw new ProxyException( "Unable to proxy due to bad source repository layout definition: "
-                + e.getMessage(), e );
+            throw new ProxyException(
+                "Unable to proxy due to bad source repository layout definition: " + e.getMessage(), e );
         }
 
         Properties requestProperties = new Properties();
@@ -250,11 +237,12 @@
             ArchivaRepository targetRepository = connector.getTargetRepository();
             try
             {
-                BidirectionalRepositoryLayout targetLayout = layoutFactory.getLayout( targetRepository.getLayoutType() );
+                BidirectionalRepositoryLayout targetLayout =
+                    layoutFactory.getLayout( targetRepository.getLayoutType() );
                 String targetPath = targetLayout.toPath( metadata );
 
-                File downloadedFile = transferFile( connector, targetRepository, targetPath, localFile,
-                                                    requestProperties );
+                File downloadedFile =
+                    transferFile( connector, targetRepository, targetPath, localFile, requestProperties );
 
                 if ( fileExists( downloadedFile ) )
                 {
@@ -294,14 +282,14 @@
 
     /**
      * Perform the transfer of the file.
-     * 
+     *
      * @param connector
      * @param targetRepository
      * @param targetPath
      * @param localFile
      * @param requestProperties
      * @return
-     * @throws ProxyException 
+     * @throws ProxyException
      */
     private File transferFile( ProxyConnector connector, ArchivaRepository targetRepository, String targetPath,
                                File localFile, Properties requestProperties )
@@ -431,7 +419,8 @@
         }
     }
 
-    private File transferSimpleFile( Wagon wagon, ArchivaRepository targetRepository, String targetPath, File localFile )
+    private File transferSimpleFile( Wagon wagon, ArchivaRepository targetRepository, String targetPath,
+                                     File localFile )
         throws ProxyException, WagonException
     {
         // Transfer the file.
@@ -464,8 +453,7 @@
                 if ( !success )
                 {
                     getLogger().debug(
-                                       "Not downloaded, as local file is newer than remote side: "
-                                           + localFile.getAbsolutePath() );
+                        "Not downloaded, as local file is newer than remote side: " + localFile.getAbsolutePath() );
                 }
                 else if ( temp.exists() )
                 {
@@ -563,7 +551,8 @@
 
         try
         {
-            Repository wagonRepository = new Repository( targetRepository.getId(), targetRepository.getUrl().toString() );
+            Repository wagonRepository =
+                new Repository( targetRepository.getId(), targetRepository.getUrl().toString() );
             if ( networkProxy != null )
             {
                 wagon.connect( wagonRepository, networkProxy );
@@ -629,8 +618,10 @@
 
     public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
     {
-        if ( ConfigurationNames.isNetworkProxy( propertyName ) || ConfigurationNames.isRepositories( propertyName )
-            || ConfigurationNames.isProxyConnector( propertyName ) )
+        if ( ConfigurationNames.isNetworkProxy( propertyName ) ||
+            ConfigurationNames.isManagedRepositories( propertyName ) ||
+            ConfigurationNames.isRemoteRepositories( propertyName ) ||
+            ConfigurationNames.isProxyConnector( propertyName ) )
         {
             initConnectorsAndNetworkProxies();
         }
@@ -658,8 +649,8 @@
 
                 // Create connector object.
                 ProxyConnector connector = new ProxyConnector();
-                connector.setSourceRepository( getRepository( proxyConfig.getSourceRepoId() ) );
-                connector.setTargetRepository( getRepository( proxyConfig.getTargetRepoId() ) );
+                connector.setSourceRepository( getManagedRepository( proxyConfig.getSourceRepoId() ) );
+                connector.setTargetRepository( getRemoteRepository( proxyConfig.getTargetRepoId() ) );
                 connector.setProxyId( proxyConfig.getProxyId() );
                 connector.setPolicies( proxyConfig.getPolicies() );
 
@@ -729,17 +720,22 @@
         return collection.size() == 0;
     }
 
-    private ArchivaRepository getRepository( String repoId )
+    private ArchivaRepository getRemoteRepository( String repoId )
     {
-        RepositoryConfiguration repoConfig = archivaConfiguration.getConfiguration().findRepositoryById( repoId );
-        if ( repoConfig == null )
-        {
-            return null;
-        }
+        RemoteRepositoryConfiguration repoConfig =
+            archivaConfiguration.getConfiguration().findRemoteRepositoryById( repoId );
 
         ArchivaRepository repo = new ArchivaRepository( repoConfig.getId(), repoConfig.getName(), repoConfig.getUrl() );
         repo.getModel().setLayoutName( repoConfig.getLayout() );
         return repo;
+    }
+
+    private ArchivaRepository getManagedRepository( String repoId )
+    {
+        ManagedRepositoryConfiguration repoConfig =
+            archivaConfiguration.getConfiguration().findManagedRepositoryById( repoId );
+
+        return ArchivaConfigurationAdaptor.toArchivaRepository( repoConfig );
     }
 
     public void initialize()