You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/10/09 00:07:50 UTC

svn commit: r582987 [2/3] - in /maven/archiva/trunk: archiva-base/archiva-consumers/archiva-consumer-api/ archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/ archiva-base/archiva-consumers/archiva-core-...

Modified: maven/archiva/trunk/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java Mon Oct  8 15:07:39 2007
@@ -19,7 +19,6 @@
  * under the License.
  */
 
-import org.apache.commons.lang.StringUtils;
 import org.apache.lucene.search.Hits;
 import org.apache.lucene.search.MatchAllDocsQuery;
 import org.apache.lucene.search.Query;
@@ -29,7 +28,6 @@
 import org.apache.maven.archiva.indexer.MockConfiguration;
 import org.apache.maven.archiva.indexer.RepositoryContentIndex;
 import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory;
-import org.apache.maven.archiva.model.ArchivaRepository;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -62,10 +60,7 @@
 
         assertTrue( "Default Test Repository should exist.", repoDir.exists() && repoDir.isDirectory() );
 
-        String repoUri = "file://" + StringUtils.replace( repoDir.getAbsolutePath(), "\\", "/" );
-
-        ArchivaRepository repository =
-            new ArchivaRepository( TEST_DEFAULT_REPO_ID, TEST_DEFAULT_REPOSITORY_NAME, repoUri );
+        ManagedRepositoryConfiguration repository = createRepository( TEST_DEFAULT_REPO_ID, TEST_DEFAULT_REPOSITORY_NAME, repoDir );
 
         File indexLocation = new File( "target/index-crossrepo-" + getName() + "/" );
 
@@ -167,5 +162,14 @@
         assertEquals( "Repository Hits", repoCount, results.getRepositories().size() );
 
         assertEquals( "Search Result Hits", hitCount, results.getHits().size() );
+    }
+    
+    protected ManagedRepositoryConfiguration createRepository( String id, String name, File location )
+    {
+        ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration();
+        repo.setId( id );
+        repo.setName( name );
+        repo.setLocation( location.getAbsolutePath() );
+        return repo;
     }
 }

Modified: maven/archiva/trunk/archiva-base/archiva-model/src/main/mdo/archiva-base.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-model/src/main/mdo/archiva-base.xml?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-model/src/main/mdo/archiva-base.xml (original)
+++ maven/archiva/trunk/archiva-base/archiva-model/src/main/mdo/archiva-base.xml Mon Oct  8 15:07:39 2007
@@ -25,7 +25,7 @@
         This object is not serialized to the Database.
       </description>
       <fields>
-        <!-- Note: these are only managed repositories. This should be reviewed as to whether they are still needed -->
+        <!-- Note: these are only managed repositories. This should be reviewed as to whether they are still needed
         <field>
           <name>repositories</name>
           <version>1.0.0+</version>
@@ -34,6 +34,7 @@
             <multiplicity>*</multiplicity>
           </association>
         </field>
+         -->
         <field>
           <name>artifacts</name>
           <version>1.0.0+</version>
@@ -93,7 +94,7 @@
          |_| \_\___| .__/ \___/|___/_|\__\___/|_|   \__, |
                    |_|                              |___/
       -->
-
+    <!-- 
     <class stash.storable="true"
            jpox.table="REPOSITORIES"
            jpox.not-persisted-fields="modelEncoding">
@@ -205,6 +206,7 @@
         </codeSegment>
       </codeSegments>
     </class>
+     -->
 
     <!-- _______________________________________________________________
            _         _   _  __            _
@@ -2287,129 +2289,6 @@
           <version>1.0.0+</version>
           <code><![CDATA[
     private static final long serialVersionUID = -7113629916828442780L;
-          ]]></code>
-        </codeSegment>
-        <codeSegment>
-          <version>1.0.0+</version>
-          <code><![CDATA[
-    private transient long startTimestamp;
-    
-    public void triggerStart()
-    {
-        startTimestamp = System.currentTimeMillis();
-    }
-
-    public void triggerFinished()
-    {
-        long finished = System.currentTimeMillis();
-        setDuration( finished - startTimestamp );
-        setWhenGathered( new java.util.Date( finished ) );
-    }
-
-    public void increaseFileCount()
-    {
-        this.totalFileCount++;
-    }
-
-    public void increaseNewFileCount()
-    {
-        this.newFileCount++;
-    }
-
-    private transient java.util.List knownConsumers;
-    
-    private transient java.util.List invalidConsumers;
-    
-    public void setKnownConsumers( java.util.List consumers )
-    {
-        knownConsumers = consumers;
-    }
-    
-    public void setInvalidConsumers( java.util.List consumers )
-    {
-        invalidConsumers = consumers;
-    }
-
-    private static boolean isEmpty( java.util.Collection coll )
-    {
-        if ( coll == null )
-        {
-            return true;
-        }
-
-        return coll.isEmpty();
-    }
-
-    public String toDump( ArchivaRepository repo )
-    {
-        java.text.SimpleDateFormat df = new java.text.SimpleDateFormat();
-        StringBuffer buf = new StringBuffer();
-
-        buf.append( "\n.\\ Scan of " ).append( this.getRepositoryId() );
-        buf.append( " \\.__________________________________________" );
-
-        buf.append( "\n  Repository URL    : " ).append( repo.getUrl() );
-        buf.append( "\n  Repository Name   : " ).append( repo.getModel().getName() );
-        buf.append( "\n  Repository Layout : " ).append( repo.getModel().getLayoutName() );
-
-        buf.append( "\n  Known Consumers   : " );
-        if ( !isEmpty( knownConsumers ) )
-        {
-            buf.append( "(" ).append( knownConsumers.size() ).append( " configured)" );
-            for ( java.util.Iterator iter = knownConsumers.iterator(); iter.hasNext(); )
-            {
-                String id = (String) iter.next();
-                buf.append( "\n                      " ).append( id );
-            }
-        }
-        else
-        {
-            buf.append( "<none>" );
-        }
-
-        buf.append( "\n  Invalid Consumers : " );
-        if ( !isEmpty( invalidConsumers ) )
-        {
-            buf.append( "(" ).append( invalidConsumers.size() ).append( " configured)" );
-            for ( java.util.Iterator iter = invalidConsumers.iterator(); iter.hasNext(); )
-            {
-                String id = (String) iter.next();
-                buf.append( "\n                      " ).append( id );
-            }
-        }
-        else
-        {
-            buf.append( "<none>" );
-        }
-
-        buf.append( "\n  Duration          : " );
-        buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( this.getDuration() ) );
-        buf.append( "\n  When Gathered     : " );
-        if ( this.getWhenGathered() == null )
-        {
-            buf.append( "<null>" );
-        }
-        else
-        {
-            buf.append( df.format( this.getWhenGathered() ) );
-        }
-            
-        buf.append( "\n  Total File Count  : " ).append( this.getTotalFileCount() );
-        
-        long averageMsPerFile = 0;
-        
-        if ( this.totalFileCount != 0 )
-        {
-            averageMsPerFile = ( this.getDuration() / this.getTotalFileCount() );
-        }
-        
-        buf.append( "\n  Avg Time Per File : " );
-        buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( averageMsPerFile ) );
-        buf.append( "\n______________________________________________________________" );
-
-        return buf.toString();
-    }
-            
           ]]></code>
         </codeSegment>
       </codeSegments>

Modified: maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java Mon Oct  8 15:07:39 2007
@@ -28,15 +28,14 @@
 import org.apache.maven.archiva.configuration.NetworkProxyConfiguration;
 import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
 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.RepositoryURL;
 import org.apache.maven.archiva.model.VersionedReference;
 import org.apache.maven.archiva.policies.DownloadPolicy;
 import org.apache.maven.archiva.policies.PostDownloadPolicy;
 import org.apache.maven.archiva.policies.PreDownloadPolicy;
 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;
@@ -132,7 +131,7 @@
      *         could not be) fetched.
      * @throws ProxyException if there was a problem fetching the artifact.
      */
-    public File fetchFromProxies( ArchivaRepository repository, ArtifactReference artifact )
+    public File fetchFromProxies( ManagedRepositoryConfiguration repository, ArtifactReference artifact )
         throws ProxyException
     {
         File localFile = toLocalFile( repository, artifact );
@@ -141,9 +140,9 @@
         requestProperties.setProperty( "version", artifact.getVersion() );
 
         List<ProxyConnector> connectors = getProxyConnectors( repository );
-        for( ProxyConnector connector: connectors )
+        for ( ProxyConnector connector : connectors )
         {
-            ArchivaRepository targetRepository = connector.getTargetRepository();
+            RemoteRepositoryConfiguration targetRepository = connector.getTargetRepository();
             String targetPath = getLayout( targetRepository ).toPath( artifact );
 
             File downloadedFile = transferFile( connector, targetRepository, targetPath, localFile, requestProperties );
@@ -163,7 +162,7 @@
      *
      * @return the (local) metadata file that was fetched/merged/updated, or null if no metadata file exists.
      */
-    public File fetchFromProxies( ArchivaRepository repository, VersionedReference metadata )
+    public File fetchFromProxies( ManagedRepositoryConfiguration repository, VersionedReference metadata )
         throws ProxyException
     {
         File localFile = toLocalFile( repository, metadata );
@@ -172,9 +171,9 @@
         boolean hasFetched = false;
 
         List<ProxyConnector> connectors = getProxyConnectors( repository );
-        for( ProxyConnector connector: connectors )
+        for ( ProxyConnector connector : connectors )
         {
-            ArchivaRepository targetRepository = connector.getTargetRepository();
+            RemoteRepositoryConfiguration targetRepository = connector.getTargetRepository();
             String targetPath = metadataTools.toPath( metadata );
 
             File localRepoFile = toLocalRepoFile( repository, targetRepository, targetPath );
@@ -226,7 +225,7 @@
      *
      * @return the (local) metadata file that was fetched/merged/updated, or null if no metadata file exists.
      */
-    public File fetchFromProxies( ArchivaRepository repository, ProjectReference metadata )
+    public File fetchFromProxies( ManagedRepositoryConfiguration repository, ProjectReference metadata )
         throws ProxyException
     {
         File localFile = toLocalFile( repository, metadata );
@@ -235,9 +234,9 @@
         boolean hasFetched = false;
 
         List<ProxyConnector> connectors = getProxyConnectors( repository );
-        for( ProxyConnector connector: connectors )
+        for ( ProxyConnector connector : connectors )
         {
-            ArchivaRepository targetRepository = connector.getTargetRepository();
+            RemoteRepositoryConfiguration targetRepository = connector.getTargetRepository();
             String targetPath = metadataTools.toPath( metadata );
 
             File localRepoFile = toLocalRepoFile( repository, targetRepository, targetPath );
@@ -284,16 +283,17 @@
         return null;
     }
 
-    private File toLocalRepoFile( ArchivaRepository repository, ArchivaRepository targetRepository, String targetPath )
+    private File toLocalRepoFile( ManagedRepositoryConfiguration repository,
+                                  RemoteRepositoryConfiguration targetRepository, String targetPath )
     {
         String repoPath = metadataTools.getRepositorySpecificName( targetRepository, targetPath );
-        return new File( repository.getUrl().getPath(), repoPath );
+        return new File( repository.getLocation(), repoPath );
     }
 
     /**
-     * Test if the provided ArchivaRepository has any proxies configured for it.
+     * Test if the provided ManagedRepositoryConfiguration has any proxies configured for it.
      */
-    public boolean hasProxies( ArchivaRepository repository )
+    public boolean hasProxies( ManagedRepositoryConfiguration repository )
     {
         synchronized ( this.proxyConnectorMap )
         {
@@ -301,26 +301,26 @@
         }
     }
 
-    private File toLocalFile( ArchivaRepository repository, ArtifactReference artifact )
+    private File toLocalFile( ManagedRepositoryConfiguration repository, ArtifactReference artifact )
         throws ProxyException
     {
         BidirectionalRepositoryLayout sourceLayout = getLayout( repository );
         String sourcePath = sourceLayout.toPath( artifact );
-        return new File( repository.getUrl().getPath(), sourcePath );
+        return new File( repository.getLocation(), sourcePath );
     }
 
-    private File toLocalFile( ArchivaRepository repository, ProjectReference metadata )
+    private File toLocalFile( ManagedRepositoryConfiguration repository, ProjectReference metadata )
         throws ProxyException
     {
         String sourcePath = metadataTools.toPath( metadata );
-        return new File( repository.getUrl().getPath(), sourcePath );
+        return new File( repository.getLocation(), sourcePath );
     }
 
-    private File toLocalFile( ArchivaRepository repository, VersionedReference metadata )
+    private File toLocalFile( ManagedRepositoryConfiguration repository, VersionedReference metadata )
         throws ProxyException
     {
         String sourcePath = metadataTools.toPath( metadata );
-        return new File( repository.getUrl().getPath(), sourcePath );
+        return new File( repository.getLocation(), sourcePath );
     }
 
     /**
@@ -331,17 +331,43 @@
      * @throws ProxyException if there was a problem obtaining the layout from the repository (usually due to a bad
      *                        configuration of the repository)
      */
-    private BidirectionalRepositoryLayout getLayout( ArchivaRepository repository )
+    private BidirectionalRepositoryLayout getLayout( ManagedRepositoryConfiguration repository )
         throws ProxyException
     {
         try
         {
-            return layoutFactory.getLayout( repository.getLayoutType() );
+            return layoutFactory.getLayout( repository.getLayout() );
         }
         catch ( LayoutException e )
         {
-            throw new ProxyException( "Unable to proxy due to bad repository layout definition [" + repository.getId()
-                + "] had a layout defined as [" + repository.getLayoutType() + "] : " + e.getMessage(), e );
+            throw new ProxyException(
+                                      "Unable to proxy due to bad managed repository layout definition ["
+                                          + repository.getId() + "] had a layout defined as [" + repository.getLayout()
+                                          + "] : " + e.getMessage(), e );
+        }
+    }
+    
+    /**
+     * Get the layout for the repository.
+     *
+     * @param repository the repository to get the layout from.
+     * @return the layout
+     * @throws ProxyException if there was a problem obtaining the layout from the repository (usually due to a bad
+     *                        configuration of the repository)
+     */
+    private BidirectionalRepositoryLayout getLayout( RemoteRepositoryConfiguration repository )
+        throws ProxyException
+    {
+        try
+        {
+            return layoutFactory.getLayout( repository.getLayout() );
+        }
+        catch ( LayoutException e )
+        {
+            throw new ProxyException(
+                                      "Unable to proxy due to bad remote repository layout definition ["
+                                          + repository.getId() + "] had a layout defined as [" + repository.getLayout()
+                                          + "] : " + e.getMessage(), e );
         }
     }
 
@@ -382,11 +408,11 @@
      * @return the local file that was downloaded, or null if not downloaded.
      * @throws ProxyException if transfer was unsuccessful.
      */
-    private File transferFile( ProxyConnector connector, ArchivaRepository remoteRepository, String remotePath,
-                               File localFile, Properties requestProperties )
+    private File transferFile( ProxyConnector connector, RemoteRepositoryConfiguration remoteRepository,
+                               String remotePath, File localFile, Properties requestProperties )
         throws ProxyException
     {
-        String url = remoteRepository.getUrl().toString() + remotePath;
+        String url = remoteRepository.getUrl() + remotePath;
         requestProperties.setProperty( "url", url );
 
         // Is a whitelist defined?
@@ -423,7 +449,8 @@
         Wagon wagon = null;
         try
         {
-            String protocol = remoteRepository.getUrl().getProtocol();
+            RepositoryURL repoUrl = new RepositoryURL( remoteRepository.getUrl() );
+            String protocol = repoUrl.getProtocol();
             wagon = (Wagon) wagons.get( protocol );
             if ( wagon == null )
             {
@@ -497,11 +524,11 @@
      * @param type             the type of checksum to transfer (example: ".md5" or ".sha1")
      * @throws ProxyException if copying the downloaded file into place did not succeed.
      */
-    private void transferChecksum( Wagon wagon, ArchivaRepository remoteRepository, String remotePath, File localFile,
-                                   String type )
+    private void transferChecksum( Wagon wagon, RemoteRepositoryConfiguration remoteRepository, String remotePath,
+                                   File localFile, String type )
         throws ProxyException
     {
-        String url = remoteRepository.getUrl().toString() + remotePath;
+        String url = remoteRepository.getUrl() + remotePath;
 
         // Transfer checksum does not use the policy. 
         if ( urlFailureCache.hasFailedBefore( url + type ) )
@@ -537,7 +564,8 @@
      * @throws ProxyException if there was a problem moving the downloaded file into place.
      * @throws WagonException if there was a problem tranfering the file.
      */
-    private File transferSimpleFile( Wagon wagon, ArchivaRepository remoteRepository, String remotePath, File localFile )
+    private File transferSimpleFile( Wagon wagon, RemoteRepositoryConfiguration remoteRepository, String remotePath,
+                                     File localFile )
         throws ProxyException, WagonException
     {
         assert ( remotePath != null );
@@ -612,9 +640,10 @@
      * @param localFile the local file (utilized by the {@link DownloadPolicy#applyPolicy(String,Properties,File)})
      * @return true if all of the policies passed, false if a policy failed.
      */
-    private boolean applyPolicies( Map<String, ? extends DownloadPolicy> policies, Map<String, String> settings, Properties request, File localFile )
+    private boolean applyPolicies( Map<String, ? extends DownloadPolicy> policies, Map<String, String> settings,
+                                   Properties request, File localFile )
     {
-        for( Entry<String, ? extends DownloadPolicy> entry: policies.entrySet() )
+        for ( Entry<String, ? extends DownloadPolicy> entry : policies.entrySet() )
         {
             String key = (String) entry.getKey();
             DownloadPolicy policy = entry.getValue();
@@ -674,7 +703,8 @@
      * @param remoteRepository the remote repository to connect to.
      * @return true if the connection was successful. false if not connected.
      */
-    private boolean connectToRepository( ProxyConnector connector, Wagon wagon, ArchivaRepository remoteRepository )
+    private boolean connectToRepository( ProxyConnector connector, Wagon wagon,
+                                         RemoteRepositoryConfiguration remoteRepository )
     {
         boolean connected = false;
 
@@ -691,7 +721,7 @@
             String password = remoteRepository.getPassword();
             if ( username != null && password != null )
             {
-                getLogger().info(
+                getLogger().debug(
                                   "Using username " + username + " to connect to remote repository "
                                       + remoteRepository.getUrl() );
                 authInfo = new AuthenticationInfo();
@@ -700,7 +730,7 @@
             }
             else
             {
-                getLogger().info( "No authentication for remote repository needed" );
+                getLogger().debug( "No authentication for remote repository needed" );
             }
 
             Repository wagonRepository = new Repository( remoteRepository.getId(), remoteRepository.getUrl().toString() );
@@ -742,7 +772,7 @@
             return false;
         }
 
-        for( String pattern: patterns )
+        for ( String pattern : patterns )
         {
             if ( SelectorUtils.matchPath( pattern, path, false ) )
             {
@@ -756,7 +786,7 @@
     /**
      * TODO: Ensure that list is correctly ordered based on configuration. See MRM-477
      */
-    public List<ProxyConnector> getProxyConnectors( ArchivaRepository repository )
+    public List<ProxyConnector> getProxyConnectors( ManagedRepositoryConfiguration repository )
     {
         synchronized ( this.proxyConnectorMap )
         {
@@ -765,6 +795,8 @@
             {
                 return Collections.EMPTY_LIST;
             }
+            
+            Collections.sort( ret, ProxyConnectorOrderComparator.getInstance() );
             return ret;
         }
     }
@@ -792,8 +824,9 @@
             ProxyConnectorOrderComparator proxyOrderSorter = new ProxyConnectorOrderComparator();
             this.proxyConnectorMap.clear();
 
-            List<ProxyConnectorConfiguration> proxyConfigs = archivaConfiguration.getConfiguration().getProxyConnectors();
-            for( ProxyConnectorConfiguration proxyConfig: proxyConfigs )
+            List<ProxyConnectorConfiguration> proxyConfigs = archivaConfiguration.getConfiguration()
+                .getProxyConnectors();
+            for ( ProxyConnectorConfiguration proxyConfig : proxyConfigs )
             {
                 String key = proxyConfig.getSourceRepoId();
 
@@ -831,23 +864,23 @@
 
                 // Add the connector.
                 connectors.add( connector );
-                
+
                 // Ensure the list is sorted.
                 Collections.sort( connectors, proxyOrderSorter );
 
                 // Set the key to the list of connectors.
                 this.proxyConnectorMap.put( key, connectors );
             }
-            
-            
+
         }
 
         synchronized ( this.networkProxyMap )
         {
             this.networkProxyMap.clear();
 
-            List<NetworkProxyConfiguration> networkProxies = archivaConfiguration.getConfiguration().getNetworkProxies();
-            for( NetworkProxyConfiguration networkProxyConfig: networkProxies )
+            List<NetworkProxyConfiguration> networkProxies = archivaConfiguration.getConfiguration()
+                .getNetworkProxies();
+            for ( NetworkProxyConfiguration networkProxyConfig : networkProxies )
             {
                 String key = networkProxyConfig.getId();
 
@@ -864,24 +897,14 @@
         }
     }
 
-    private ArchivaRepository getRemoteRepository( String repoId )
+    private RemoteRepositoryConfiguration getRemoteRepository( String repoId )
     {
-        RemoteRepositoryConfiguration repoConfig = archivaConfiguration.getConfiguration()
-            .findRemoteRepositoryById( repoId );
-
-        ArchivaRepository repo = new ArchivaRepository( repoConfig.getId(), repoConfig.getName(), repoConfig.getUrl() );
-        repo.getModel().setLayoutName( repoConfig.getLayout() );
-        repo.setUsername( repoConfig.getUsername() );
-        repo.setPassword( repoConfig.getPassword() );
-        return repo;
+        return archivaConfiguration.getConfiguration().findRemoteRepositoryById( repoId );
     }
 
-    private ArchivaRepository getManagedRepository( String repoId )
+    private ManagedRepositoryConfiguration getManagedRepository( String repoId )
     {
-        ManagedRepositoryConfiguration repoConfig = archivaConfiguration.getConfiguration()
-            .findManagedRepositoryById( repoId );
-
-        return ArchivaConfigurationAdaptor.toArchivaRepository( repoConfig );
+        return archivaConfiguration.getConfiguration().findManagedRepositoryById( repoId );
     }
 
     public void initialize()

Modified: maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java Mon Oct  8 15:07:39 2007
@@ -19,7 +19,8 @@
  * under the License.
  */
 
-import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
 import org.apache.maven.archiva.repository.connector.RepositoryConnector;
 
 import java.util.Iterator;
@@ -35,9 +36,9 @@
 public class ProxyConnector
     implements RepositoryConnector
 {
-    private ArchivaRepository sourceRepository;
+    private ManagedRepositoryConfiguration sourceRepository;
 
-    private ArchivaRepository targetRepository;
+    private RemoteRepositoryConfiguration targetRepository;
 
     private List<String> blacklist;
 
@@ -59,22 +60,22 @@
         this.blacklist = blacklist;
     }
 
-    public ArchivaRepository getSourceRepository()
+    public ManagedRepositoryConfiguration getSourceRepository()
     {
         return sourceRepository;
     }
 
-    public void setSourceRepository( ArchivaRepository sourceRepository )
+    public void setSourceRepository( ManagedRepositoryConfiguration sourceRepository )
     {
         this.sourceRepository = sourceRepository;
     }
 
-    public ArchivaRepository getTargetRepository()
+    public RemoteRepositoryConfiguration getTargetRepository()
     {
         return targetRepository;
     }
 
-    public void setTargetRepository( ArchivaRepository targetRepository )
+    public void setTargetRepository( RemoteRepositoryConfiguration targetRepository )
     {
         this.targetRepository = targetRepository;
     }

Modified: maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/RepositoryProxyConnectors.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/RepositoryProxyConnectors.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/RepositoryProxyConnectors.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/RepositoryProxyConnectors.java Mon Oct  8 15:07:39 2007
@@ -19,7 +19,7 @@
  * under the License.
  */
 
-import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.model.ArtifactReference;
 import org.apache.maven.archiva.model.ProjectReference;
 import org.apache.maven.archiva.model.VersionedReference;
@@ -47,7 +47,7 @@
      * @return true if the fetch operation succeeded in obtaining content, false if no content was obtained.
      * @throws ProxyException if there was a problem fetching the content from the target repositories.
      */
-    public File fetchFromProxies( ArchivaRepository repository, ArtifactReference artifact )
+    public File fetchFromProxies( ManagedRepositoryConfiguration repository, ArtifactReference artifact )
         throws ProxyException;
     
     /**
@@ -62,7 +62,7 @@
      * @return true if the fetch operation succeeded in obtaining content, false if no content was obtained.
      * @throws ProxyException if there was a problem fetching the content from the target repositories.
      */
-    public File fetchFromProxies( ArchivaRepository repository, VersionedReference metadata )
+    public File fetchFromProxies( ManagedRepositoryConfiguration repository, VersionedReference metadata )
         throws ProxyException;
     
     /**
@@ -77,7 +77,7 @@
      * @return true if the fetch operation succeeded in obtaining content, false if no content was obtained.
      * @throws ProxyException if there was a problem fetching the content from the target repositories.
      */
-    public File fetchFromProxies( ArchivaRepository repository, ProjectReference metadata )
+    public File fetchFromProxies( ManagedRepositoryConfiguration repository, ProjectReference metadata )
         throws ProxyException;
 
     /**
@@ -86,7 +86,7 @@
      * @param repository the source repository to look for.
      * @return the List of {@link ProxyConnector} objects.
      */
-    public List<ProxyConnector> getProxyConnectors( ArchivaRepository repository );
+    public List<ProxyConnector> getProxyConnectors( ManagedRepositoryConfiguration repository );
 
     /**
      * Tests to see if the provided repository is a source repository for
@@ -96,5 +96,5 @@
      * @return true if there are proxy connectors that use the provided 
      *   repository as a source repository.
      */
-    public boolean hasProxies( ArchivaRepository repository );
+    public boolean hasProxies( ManagedRepositoryConfiguration repository );
 }

Modified: maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java Mon Oct  8 15:07:39 2007
@@ -20,14 +20,16 @@
  */
 
 import org.apache.commons.io.FileUtils;
-import org.apache.maven.archiva.common.utils.PathUtil;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
 import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
 import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.ArchivaRepository;
 import org.apache.maven.archiva.model.ArtifactReference;
+import org.apache.maven.archiva.policies.CachedFailuresPolicy;
+import org.apache.maven.archiva.policies.ChecksumPolicy;
+import org.apache.maven.archiva.policies.ReleasesPolicy;
+import org.apache.maven.archiva.policies.SnapshotsPolicy;
 import org.apache.maven.archiva.policies.urlcache.UrlFailureCache;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayoutFactory;
@@ -93,11 +95,11 @@
 
     protected RepositoryProxyConnectors proxyHandler;
 
-    protected ArchivaRepository managedDefaultRepository;
+    protected ManagedRepositoryConfiguration managedDefaultRepository;
 
     protected File managedDefaultDir;
 
-    protected ArchivaRepository managedLegacyRepository;
+    protected ManagedRepositoryConfiguration managedLegacyRepository;
 
     protected File managedLegacyDir;
 
@@ -246,40 +248,25 @@
         return ref;
     }
 
-    protected ArchivaRepository createManagedLegacyRepository()
+    protected ManagedRepositoryConfiguration createManagedLegacyRepository()
     {
-        return createRepository( "src/test/repositories/legacy-managed", "testManagedLegacyRepo",
-                                 "Test Managed (Legacy) Repository", "legacy" );
+        return createRepository( "testManagedLegacyRepo", "Test Managed (Legacy) Repository",
+                                 "src/test/repositories/legacy-managed", "legacy" );
     }
 
-    protected ArchivaRepository createProxiedLegacyRepository()
+    protected ManagedRepositoryConfiguration createProxiedLegacyRepository()
     {
-        return createRepository( "src/test/repositories/legacy-proxied", "testProxiedLegacyRepo",
-                                 "Test Proxied (Legacy) Repository", "legacy" );
+        return createRepository( "testProxiedLegacyRepo", "Test Proxied (Legacy) Repository",
+                                 "src/test/repositories/legacy-proxied", "legacy" );
     }
 
-    protected ManagedRepositoryConfiguration createRepoConfig( ArchivaRepository repo )
+    protected ManagedRepositoryConfiguration createRepository( String id, String name, String path, String layout )
     {
-        return createRepoConfig( repo.getId(), repo.getName(), repo.getUrl().toString(), repo.getLayoutType() );
-    }
-
-    protected ManagedRepositoryConfiguration createRepoConfig( String id, String name, String path, String layout )
-    {
-        ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration();
-
-        repoConfig.setId( id );
-        repoConfig.setName( name );
-
-        repoConfig.setLocation( path );
-        repoConfig.setLayout( layout );
-
-        return repoConfig;
-    }
-
-    protected ArchivaRepository createRepository( String id, String name, String path, String layout )
-    {
-        ArchivaRepository repo = new ArchivaRepository( id, name, PathUtil.toUrl( path ) );
-        repo.getModel().setLayoutName( layout );
+        ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration();
+        repo.setId( id );
+        repo.setName( name );
+        repo.setLocation( path );
+        repo.setLayout( layout );
 
         return repo;
     }
@@ -320,6 +307,12 @@
             }
         }
     }
+    
+    protected void saveConnector( String sourceRepoId, String targetRepoId )
+    {
+        saveConnector( sourceRepoId, targetRepoId, ChecksumPolicy.IGNORED, ReleasesPolicy.IGNORED,
+                       SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED );
+    }
 
     protected void saveConnector( String sourceRepoId, String targetRepoId, String checksumPolicy, String releasePolicy,
                                   String snapshotPolicy, String cacheFailuresPolicy )
@@ -356,24 +349,33 @@
 
         repoConfig.setLocation( path );
 
+        int count = config.getConfiguration().getManagedRepositories().size();
         config.getConfiguration().addManagedRepository( repoConfig );
 
-        config.triggerChange( "repository", "" );
+        String prefix = "managedRepositories.managedRepository(" + count + ")";
+        config.triggerChange( prefix + ".id", repoConfig.getId() );
+        config.triggerChange( prefix + ".name", repoConfig.getName() );
+        config.triggerChange( prefix + ".location", repoConfig.getLocation() );
+        config.triggerChange( prefix + ".layout", repoConfig.getLayout() );
     }
 
-    protected void saveRemoteRepositoryConfig( String id, String name, String path, String layout )
+    protected void saveRemoteRepositoryConfig( String id, String name, String url, String layout )
     {
         RemoteRepositoryConfiguration repoConfig = new RemoteRepositoryConfiguration();
 
         repoConfig.setId( id );
         repoConfig.setName( name );
         repoConfig.setLayout( layout );
+        repoConfig.setUrl( url );
 
-        repoConfig.setUrl( path );
-
+        int count = config.getConfiguration().getRemoteRepositories().size();
         config.getConfiguration().addRemoteRepository( repoConfig );
 
-        config.triggerChange( "repository", "" );
+        String prefix = "remoteRepositories.remoteRepository(" + count + ")";
+        config.triggerChange( prefix + ".id", repoConfig.getId() );
+        config.triggerChange( prefix + ".name", repoConfig.getName() );
+        config.triggerChange( prefix + ".url", repoConfig.getUrl() );
+        config.triggerChange( prefix + ".layout", repoConfig.getLayout() );
     }
 
     protected File saveTargetedRepositoryConfig( String id, String originalPath, String targetPath, String layout )
@@ -388,6 +390,7 @@
         return repoLocation;
     }
 
+    @Override
     protected void setUp()
         throws Exception
     {
@@ -405,9 +408,9 @@
         managedDefaultRepository =
             createRepository( ID_DEFAULT_MANAGED, "Default Managed Repository", repoPath, "default" );
 
-        managedDefaultDir = new File( managedDefaultRepository.getUrl().getPath() );
+        managedDefaultDir = new File( managedDefaultRepository.getLocation() );
 
-        ManagedRepositoryConfiguration repoConfig = createRepoConfig( managedDefaultRepository );
+        ManagedRepositoryConfiguration repoConfig = managedDefaultRepository;
 
         config.getConfiguration().addManagedRepository( repoConfig );
 
@@ -419,9 +422,9 @@
         managedLegacyRepository = createRepository( ID_LEGACY_MANAGED, "Legacy Managed Repository",
                                                     REPOPATH_LEGACY_MANAGED_TARGET, "legacy" );
 
-        managedLegacyDir = new File( managedLegacyRepository.getUrl().getPath() );
+        managedLegacyDir = new File( managedLegacyRepository.getLocation() );
 
-        repoConfig = createRepoConfig( managedLegacyRepository );
+        repoConfig = managedLegacyRepository;
 
         config.getConfiguration().addManagedRepository( repoConfig );
 
@@ -484,7 +487,7 @@
         {
             // This is just a warning.
             System.err.println(
-                "Skipping setup of testable managed repsoitory, source dir does not exist: " + sourceDir );
+                "[WARN] Skipping setup of testable managed repository, source dir does not exist: " + sourceDir );
             return;
         }
 

Modified: maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java Mon Oct  8 15:07:39 2007
@@ -44,7 +44,7 @@
         throws Exception
     {
         String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar";
-        File expectedFile = new File( managedDefaultDir, path );
+        File expectedFile = new File( managedDefaultDir.getAbsoluteFile(), path );
         ArtifactReference artifact = createArtifactReference( "default", path );
 
         expectedFile.delete();
@@ -78,7 +78,7 @@
         throws Exception
     {
         String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar";
-        File expectedFile = new File( managedDefaultDir, path );
+        File expectedFile = new File( managedDefaultDir.getAbsoluteFile(), path );
         ArtifactReference artifact = createArtifactReference( "default", path );
 
         expectedFile.delete();

Modified: maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java Mon Oct  8 15:07:39 2007
@@ -286,10 +286,8 @@
         wagonMockControl.replay();
 
         // Configure Connector (usually done within archiva.xml configuration)
-        saveConnector( ID_DEFAULT_MANAGED, "badproxied", ChecksumPolicy.FIX, ReleasesPolicy.IGNORED,
-                       SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED );
-        saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.IGNORED,
-                       SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED );
+        saveConnector( ID_DEFAULT_MANAGED, "badproxied" );
+        saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
 
         // Attempt the proxy fetch.
         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -307,7 +305,7 @@
         String path = "org/apache/maven/test/get-in-second-proxy/1.0/get-in-second-proxy-1.0.jar";
         setupTestableManagedRepository( path );
 
-        File expectedFile = new File( managedDefaultDir, path );
+        File expectedFile = new File( managedDefaultDir.getAbsoluteFile(), path );
         ArtifactReference artifact = createArtifactReference( "default", path );
 
         expectedFile.delete();
@@ -318,15 +316,14 @@
         saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", "test://dead.machine.com/repo/", "default" );
 
         // Configure Connector (usually done within archiva.xml configuration)
-        saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, ReleasesPolicy.IGNORED,
-                       SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED );
-        saveConnector( ID_DEFAULT_MANAGED, "badproxied2", ChecksumPolicy.FIX, ReleasesPolicy.IGNORED,
-                       SnapshotsPolicy.IGNORED, CachedFailuresPolicy.IGNORED );
+        saveConnector( ID_DEFAULT_MANAGED, "badproxied1" );
+        saveConnector( ID_DEFAULT_MANAGED, "badproxied2" );
 
-        wagonMock.getIfNewer( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ), 0 );
+        File tmpFile = new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" );
+        wagonMock.getIfNewer( path, tmpFile, 0 );
         wagonMockControl.setThrowable( new TransferFailedException( "transfer failed" ) );
 
-        wagonMock.getIfNewer( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ), 0 );
+        wagonMock.getIfNewer( path, tmpFile, 0 );
         wagonMockControl.setThrowable( new TransferFailedException( "transfer failed" ) );
 
         wagonMockControl.replay();

Modified: maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonDelegate.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonDelegate.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonDelegate.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/WagonDelegate.java Mon Oct  8 15:07:39 2007
@@ -61,7 +61,7 @@
     public boolean getIfNewer( String resourceName, File destination, long timestamp )
         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
     {
-        getLogger().debug( ".getIfNewer(" + resourceName + ", " + destination + ", " + timestamp + ")" );
+        getLogger().info( ".getIfNewer(" + resourceName + ", " + destination + ", " + timestamp + ")" );
 
         boolean result = delegate.getIfNewer( resourceName, destination, timestamp );
         createIfMissing( destination );

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java Mon Oct  8 15:07:39 2007
@@ -19,7 +19,8 @@
  * under the License.
  */
 
-import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
 
 import java.util.List;
 
@@ -31,11 +32,11 @@
  */
 public interface RepositoryConnector
 {
-    public ArchivaRepository getSourceRepository();
+    public ManagedRepositoryConfiguration getSourceRepository();
 
-    public ArchivaRepository getTargetRepository();
+    public RemoteRepositoryConfiguration getTargetRepository();
 
-    public List getBlacklist();
+    public List<String> getBlacklist();
     
-    public List getWhitelist();
+    public List<String> getWhitelist();
 }

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java Mon Oct  8 15:07:39 2007
@@ -24,8 +24,9 @@
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ConfigurationNames;
 import org.apache.maven.archiva.configuration.FileTypes;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
-import org.apache.maven.archiva.model.ArchivaRepository;
+import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
 import org.apache.maven.archiva.model.ArchivaRepositoryMetadata;
 import org.apache.maven.archiva.model.ArtifactReference;
 import org.apache.maven.archiva.model.ProjectReference;
@@ -116,7 +117,7 @@
      * @return the Set of available versions, based on the project reference.
      * @throws LayoutException
      */
-    public Set<String> gatherAvailableVersions( ArchivaRepository managedRepository, ProjectReference reference )
+    public Set<String> gatherAvailableVersions( ManagedRepositoryConfiguration managedRepository, ProjectReference reference )
         throws LayoutException, IOException
     {
         String path = toPath( reference );
@@ -127,7 +128,7 @@
             path = path.substring( 0, idx );
         }
 
-        File repoDir = new File( managedRepository.getUrl().getPath(), path );
+        File repoDir = new File( managedRepository.getLocation(), path );
 
         if ( !repoDir.exists() )
         {
@@ -169,7 +170,7 @@
         return foundVersions;
     }
 
-    private boolean hasArtifact( ArchivaRepository managedRepository, VersionedReference reference )
+    private boolean hasArtifact( ManagedRepositoryConfiguration managedRepository, VersionedReference reference )
         throws LayoutException
     {
         try
@@ -192,10 +193,10 @@
      * @throws IOException     if the versioned reference is invalid (example: doesn't exist, or isn't a directory)
      * @throws LayoutException
      */
-    public ArtifactReference getFirstArtifact( ArchivaRepository managedRepository, VersionedReference reference )
+    public ArtifactReference getFirstArtifact( ManagedRepositoryConfiguration managedRepository, VersionedReference reference )
         throws LayoutException, IOException
     {
-        BidirectionalRepositoryLayout layout = layoutFactory.getLayout( managedRepository.getLayoutType() );
+        BidirectionalRepositoryLayout layout = layoutFactory.getLayout( managedRepository.getLayout() );
         String path = toPath( reference );
 
         int idx = path.lastIndexOf( '/' );
@@ -204,7 +205,7 @@
             path = path.substring( 0, idx );
         }
 
-        File repoDir = new File( managedRepository.getUrl().getPath(), path );
+        File repoDir = new File( managedRepository.getLocation(), path );
 
         if ( !repoDir.exists() )
         {
@@ -227,7 +228,7 @@
                 continue;
             }
 
-            String relativePath = PathUtil.getRelative( managedRepository.getUrl().getPath(), repoFiles[i] );
+            String relativePath = PathUtil.getRelative( managedRepository.getLocation(), repoFiles[i] );
 
             if ( matchesArtifactPattern( relativePath ) )
             {
@@ -247,10 +248,10 @@
      * @return the Set of snapshot artifact versions found.
      * @throws LayoutException
      */
-    public Set<String> gatherSnapshotVersions( ArchivaRepository managedRepository, VersionedReference reference )
+    public Set<String> gatherSnapshotVersions( ManagedRepositoryConfiguration managedRepository, VersionedReference reference )
         throws LayoutException, IOException
     {
-        BidirectionalRepositoryLayout layout = layoutFactory.getLayout( managedRepository.getLayoutType() );
+        BidirectionalRepositoryLayout layout = layoutFactory.getLayout( managedRepository.getLayout() );
         String path = toPath( reference );
 
         int idx = path.lastIndexOf( '/' );
@@ -259,7 +260,7 @@
             path = path.substring( 0, idx );
         }
 
-        File repoDir = new File( managedRepository.getUrl().getPath(), path );
+        File repoDir = new File( managedRepository.getLocation(), path );
 
         if ( !repoDir.exists() )
         {
@@ -285,7 +286,7 @@
                 continue;
             }
 
-            String relativePath = PathUtil.getRelative( managedRepository.getUrl().getPath(), repoFiles[i] );
+            String relativePath = PathUtil.getRelative( managedRepository.getLocation(), repoFiles[i] );
 
             if ( matchesArtifactPattern( relativePath ) )
             {
@@ -490,7 +491,7 @@
      * @param path       the path to the metadata.xml file to adjust the name of.
      * @return the newly adjusted path reference to the repository specific metadata path.
      */
-    public String getRepositorySpecificName( ArchivaRepository repository, String path )
+    public String getRepositorySpecificName( RemoteRepositoryConfiguration repository, String path )
     {
         return getRepositorySpecificName( repository.getId(), path );
     }
@@ -528,11 +529,11 @@
         configuration.addChangeListener( this );
     }
 
-    public ArchivaRepositoryMetadata readProxyMetadata( ArchivaRepository managedRepository, ProjectReference reference,
+    public ArchivaRepositoryMetadata readProxyMetadata( ManagedRepositoryConfiguration managedRepository, ProjectReference reference,
                                                         String proxyId )
     {
         String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) );
-        File metadataFile = new File( managedRepository.getUrl().getPath(), metadataPath );
+        File metadataFile = new File( managedRepository.getLocation(), metadataPath );
 
         try
         {
@@ -547,11 +548,11 @@
         }
     }
 
-    public ArchivaRepositoryMetadata readProxyMetadata( ArchivaRepository managedRepository,
+    public ArchivaRepositoryMetadata readProxyMetadata( ManagedRepositoryConfiguration managedRepository,
                                                         VersionedReference reference, String proxyId )
     {
         String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) );
-        File metadataFile = new File( managedRepository.getUrl().getPath(), metadataPath );
+        File metadataFile = new File( managedRepository.getLocation(), metadataPath );
 
         try
         {
@@ -579,12 +580,12 @@
      * @throws RepositoryMetadataException
      * @throws IOException
      */
-    public void updateMetadata( ArchivaRepository managedRepository, ProjectReference reference )
+    public void updateMetadata( ManagedRepositoryConfiguration managedRepository, ProjectReference reference )
         throws LayoutException, RepositoryMetadataException, IOException
     {
         Comparator<String> comparator = VersionComparator.getInstance();
 
-        File metadataFile = new File( managedRepository.getUrl().getPath(), toPath( reference ) );
+        File metadataFile = new File( managedRepository.getLocation(), toPath( reference ) );
 
         ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata();
         metadata.setGroupId( reference.getGroupId() );
@@ -660,11 +661,11 @@
      * @throws RepositoryMetadataException
      * @throws IOException
      */
-    public void updateMetadata( ArchivaRepository managedRepository, VersionedReference reference )
+    public void updateMetadata( ManagedRepositoryConfiguration managedRepository, VersionedReference reference )
         throws LayoutException, RepositoryMetadataException, IOException
     {
-        BidirectionalRepositoryLayout layout = layoutFactory.getLayout( managedRepository.getLayoutType() );
-        File metadataFile = new File( managedRepository.getUrl().getPath(), toPath( reference ) );
+        BidirectionalRepositoryLayout layout = layoutFactory.getLayout( managedRepository.getLayout() );
+        File metadataFile = new File( managedRepository.getLocation(), toPath( reference ) );
 
         ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata();
         metadata.setGroupId( reference.getGroupId() );
@@ -730,7 +731,7 @@
                     throw new IOException( "Not snapshot artifact found to reference in " + reference );
                 }
 
-                File artifactFile = new File( managedRepository.getUrl().getPath(), layout.toPath( artifact ) );
+                File artifactFile = new File( managedRepository.getLocation(), layout.toPath( artifact ) );
 
                 if ( artifactFile.exists() )
                 {

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolverFactory.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolverFactory.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolverFactory.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolverFactory.java Mon Oct  8 15:07:39 2007
@@ -23,15 +23,13 @@
 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.model.ArchivaRepository;
-import org.apache.maven.archiva.repository.ArchivaConfigurationAdaptor;
 import org.apache.maven.archiva.repository.RepositoryException;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayoutFactory;
 import org.apache.maven.archiva.repository.layout.LayoutException;
 import org.apache.maven.archiva.repository.project.resolvers.NopProjectResolver;
 import org.apache.maven.archiva.repository.project.resolvers.ProjectModelResolverStack;
-import org.apache.maven.archiva.repository.project.resolvers.RepositoryProjectResolver;
+import org.apache.maven.archiva.repository.project.resolvers.ManagedRepositoryProjectResolver;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
@@ -98,20 +96,20 @@
         archivaConfiguration.addChangeListener( this );
     }
 
-    private RepositoryProjectResolver toResolver( ArchivaRepository repo )
+    private ManagedRepositoryProjectResolver toResolver( ManagedRepositoryConfiguration repo )
         throws RepositoryException
     {
         try
         {
-            BidirectionalRepositoryLayout layout = layoutFactory.getLayout( repo.getLayoutType() );
+            BidirectionalRepositoryLayout layout = layoutFactory.getLayout( repo.getLayout() );
             ProjectModelReader reader = project400Reader;
 
-            if ( StringUtils.equals( "legacy", repo.getLayoutType() ) )
+            if ( StringUtils.equals( "legacy", repo.getLayout() ) )
             {
                 reader = project300Reader;
             }
 
-            RepositoryProjectResolver resolver = new RepositoryProjectResolver( repo, reader, layout );
+            ManagedRepositoryProjectResolver resolver = new ManagedRepositoryProjectResolver( repo, reader, layout );
             return resolver;
         }
         catch ( LayoutException e )
@@ -129,12 +127,11 @@
 
             List<ManagedRepositoryConfiguration> list =
                 archivaConfiguration.getConfiguration().getManagedRepositories();
-            for ( ManagedRepositoryConfiguration repositoryConfiguration : list )
+            for ( ManagedRepositoryConfiguration repo : list )
             {
-                ArchivaRepository repo = ArchivaConfigurationAdaptor.toArchivaRepository( repositoryConfiguration );
                 try
                 {
-                    RepositoryProjectResolver resolver = toResolver( repo );
+                    ManagedRepositoryProjectResolver resolver = toResolver( repo );
 
                     // Add filesystem based resolver.
                     this.currentResolverStack.addProjectModelResolver( resolver );

Copied: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ManagedRepositoryProjectResolver.java (from r582882, maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/RepositoryProjectResolver.java)
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ManagedRepositoryProjectResolver.java?p2=maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ManagedRepositoryProjectResolver.java&p1=maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/RepositoryProjectResolver.java&r1=582882&r2=582987&rev=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/RepositoryProjectResolver.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ManagedRepositoryProjectResolver.java Mon Oct  8 15:07:39 2007
@@ -19,9 +19,9 @@
  * under the License.
  */
 
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.model.ArchivaArtifact;
 import org.apache.maven.archiva.model.ArchivaProjectModel;
-import org.apache.maven.archiva.model.ArchivaRepository;
 import org.apache.maven.archiva.model.VersionedReference;
 import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
 import org.apache.maven.archiva.repository.project.ProjectModelException;
@@ -31,21 +31,21 @@
 import java.io.File;
 
 /**
- * Resolve Project from filesystem. 
+ * Resolve Project from managed repository. 
  *
  * @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
  * @version $Id$
  */
-public class RepositoryProjectResolver
+public class ManagedRepositoryProjectResolver
     implements ProjectModelResolver, FilesystemBasedResolver
 {
-    private ArchivaRepository repository;
+    private ManagedRepositoryConfiguration repository;
 
     private ProjectModelReader reader;
 
     private BidirectionalRepositoryLayout layout;
 
-    public RepositoryProjectResolver( ArchivaRepository repository, ProjectModelReader reader,
+    public ManagedRepositoryProjectResolver( ManagedRepositoryConfiguration repository, ProjectModelReader reader,
                                       BidirectionalRepositoryLayout layout )
     {
         this.repository = repository;
@@ -60,7 +60,7 @@
             .getVersion(), "", "pom" );
 
         String path = layout.toPath( artifact );
-        File repoFile = new File( this.repository.getUrl().getPath(), path );
+        File repoFile = new File( this.repository.getLocation(), path );
 
         return reader.read( repoFile );
     }

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/DefaultRepositoryScanner.java Mon Oct  8 15:07:39 2007
@@ -19,12 +19,12 @@
  * under the License.
  */
 
-import org.apache.commons.collections.Closure;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.maven.archiva.configuration.FileTypes;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
+import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
 import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
-import org.apache.maven.archiva.model.ArchivaRepository;
-import org.apache.maven.archiva.model.RepositoryContentStatistics;
 import org.apache.maven.archiva.repository.RepositoryException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.DirectoryWalker;
@@ -54,19 +54,20 @@
      */
     private RepositoryContentConsumers consumerUtil;
 
-    public RepositoryContentStatistics scan( ArchivaRepository repository, long changesSince )
+    public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, long changesSince )
         throws RepositoryException
     {
-        List knownContentConsumers = consumerUtil.getSelectedKnownConsumers();
-        List invalidContentConsumers = consumerUtil.getSelectedInvalidConsumers();
-        List ignoredPatterns = filetypes.getFileTypePatterns( FileTypes.IGNORED );
+        List<KnownRepositoryContentConsumer> knownContentConsumers = consumerUtil.getSelectedKnownConsumers();
+        List<InvalidRepositoryContentConsumer> invalidContentConsumers = consumerUtil.getSelectedInvalidConsumers();
+        List<String> ignoredPatterns = filetypes.getFileTypePatterns( FileTypes.IGNORED );
 
         return scan( repository, knownContentConsumers, invalidContentConsumers, ignoredPatterns, changesSince );
     }
 
-    public RepositoryContentStatistics scan( ArchivaRepository repository, List knownContentConsumers,
-                                             List invalidContentConsumers, List ignoredContentPatterns,
-                                             long changesSince )
+    public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository,
+                                          List<KnownRepositoryContentConsumer> knownContentConsumers,
+                                          List<InvalidRepositoryContentConsumer> invalidContentConsumers,
+                                          List<String> ignoredContentPatterns, long changesSince )
         throws RepositoryException
     {
         if ( repository == null )
@@ -74,29 +75,24 @@
             throw new IllegalArgumentException( "Unable to operate on a null repository." );
         }
 
-        if ( !"file".equals( repository.getUrl().getProtocol() ) )
-        {
-            throw new UnsupportedOperationException( "Only filesystem repositories are supported." );
-        }
-
-        File repositoryBase = new File( repository.getUrl().getPath() );
+        File repositoryBase = new File( repository.getLocation() );
 
         if ( !repositoryBase.exists() )
         {
-            throw new UnsupportedOperationException(
-                "Unable to scan a repository, directory " + repositoryBase.getAbsolutePath() + " does not exist." );
+            throw new UnsupportedOperationException( "Unable to scan a repository, directory "
+                + repositoryBase.getAbsolutePath() + " does not exist." );
         }
 
         if ( !repositoryBase.isDirectory() )
         {
-            throw new UnsupportedOperationException(
-                "Unable to scan a repository, path " + repositoryBase.getAbsolutePath() + " is not a directory." );
+            throw new UnsupportedOperationException( "Unable to scan a repository, path "
+                + repositoryBase.getAbsolutePath() + " is not a directory." );
         }
 
         // Setup Includes / Excludes.
 
-        List allExcludes = new ArrayList();
-        List allIncludes = new ArrayList();
+        List<String> allExcludes = new ArrayList<String>();
+        List<String> allIncludes = new ArrayList<String>();
 
         if ( CollectionUtils.isNotEmpty( ignoredContentPatterns ) )
         {
@@ -115,8 +111,8 @@
         dirWalker.setExcludes( allExcludes );
 
         // Setup the Scan Instance
-        RepositoryScannerInstance scannerInstance =
-            new RepositoryScannerInstance( repository, knownContentConsumers, invalidContentConsumers, getLogger() );
+        RepositoryScannerInstance scannerInstance = new RepositoryScannerInstance( repository, knownContentConsumers,
+                                                                                   invalidContentConsumers, getLogger() );
         scannerInstance.setOnlyModifiedAfterTimestamp( changesSince );
 
         dirWalker.addDirectoryWalkListener( scannerInstance );
@@ -124,38 +120,21 @@
         // Execute scan.
         dirWalker.scan();
 
-        RepositoryContentStatistics stats = scannerInstance.getStatistics();
-
-        ConsumerIdClosure consumerIdList;
-
-        consumerIdList = new ConsumerIdClosure();
-        CollectionUtils.forAllDo( knownContentConsumers, consumerIdList );
-        stats.setKnownConsumers( consumerIdList.getList() );
+        RepositoryScanStatistics stats = scannerInstance.getStatistics();
 
-        consumerIdList = new ConsumerIdClosure();
-        CollectionUtils.forAllDo( invalidContentConsumers, consumerIdList );
-        stats.setInvalidConsumers( consumerIdList.getList() );
+        stats.setKnownConsumers( gatherIds( knownContentConsumers ) );
+        stats.setInvalidConsumers( gatherIds( invalidContentConsumers ) );
 
         return stats;
     }
 
-    class ConsumerIdClosure
-        implements Closure
+    private List<String> gatherIds( List<? extends RepositoryContentConsumer> consumers )
     {
-        private List list = new ArrayList();
-
-        public void execute( Object input )
-        {
-            if ( input instanceof RepositoryContentConsumer )
-            {
-                RepositoryContentConsumer consumer = (RepositoryContentConsumer) input;
-                list.add( consumer.getId() );
-            }
-        }
-
-        public List getList()
+        List<String> ids = new ArrayList<String>();
+        for ( RepositoryContentConsumer consumer : consumers )
         {
-            return list;
+            ids.add( consumer.getId() );
         }
+        return ids;
     }
 }

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java?rev=582987&r1=582986&r2=582987&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java Mon Oct  8 15:07:39 2007
@@ -21,23 +21,17 @@
 
 import org.apache.commons.collections.Closure;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Predicate;
 import org.apache.commons.collections.functors.IfClosure;
-import org.apache.commons.collections.functors.OrPredicate;
 import org.apache.maven.archiva.common.utils.BaseFile;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration;
 import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer;
 import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
-import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
-import org.apache.maven.archiva.consumers.functors.PermanentConsumerPredicate;
-import org.apache.maven.archiva.model.ArchivaRepository;
 import org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure;
 import org.apache.maven.archiva.repository.scanner.functors.ConsumerWantsFilePredicate;
 import org.apache.maven.archiva.repository.scanner.functors.TriggerBeginScanClosure;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -55,7 +49,6 @@
  */
 public class RepositoryContentConsumers
     extends AbstractLogEnabled
-    implements Initializable
 {
     /**
      * @plexus.requirement
@@ -72,122 +65,82 @@
      */
     private List<InvalidRepositoryContentConsumer> availableInvalidConsumers;
 
-    private Predicate selectedKnownPredicate;
-
-    private Predicate selectedInvalidPredicate;
-
-    class SelectedKnownRepoConsumersPredicate
-        implements Predicate
+    public List<String> getSelectedKnownConsumerIds()
     {
-        public boolean evaluate( Object object )
-        {
-            boolean satisfies = false;
-
-            if ( object instanceof KnownRepositoryContentConsumer )
-            {
-                KnownRepositoryContentConsumer known = (KnownRepositoryContentConsumer) object;
-                RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration()
-                    .getRepositoryScanning();
-
-                return scanning.getKnownContentConsumers().contains( known.getId() );
-            }
-
-            return satisfies;
-        }
+        RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration().getRepositoryScanning();
+        return scanning.getKnownContentConsumers();
     }
 
-    class SelectedInvalidRepoConsumersPredicate
-        implements Predicate
+    public List<String> getSelectedInvalidConsumerIds()
     {
-        public boolean evaluate( Object object )
-        {
-            boolean satisfies = false;
-
-            if ( object instanceof InvalidRepositoryContentConsumer )
-            {
-                InvalidRepositoryContentConsumer invalid = (InvalidRepositoryContentConsumer) object;
-                RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration()
-                    .getRepositoryScanning();
-
-                return scanning.getInvalidContentConsumers().contains( invalid.getId() );
-            }
-
-            return satisfies;
-        }
+        RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration().getRepositoryScanning();
+        return scanning.getInvalidContentConsumers();
     }
 
-    class RepoConsumerToMapClosure
-        implements Closure
+    public Map<String, KnownRepositoryContentConsumer> getSelectedKnownConsumersMap()
     {
-        private Map map = new HashMap();
+        Map<String, KnownRepositoryContentConsumer> consumerMap = new HashMap<String, KnownRepositoryContentConsumer>();
+
+        List<String> knownSelected = getSelectedKnownConsumerIds();
 
-        public void execute( Object input )
+        for ( KnownRepositoryContentConsumer consumer : availableKnownConsumers )
         {
-            if ( input instanceof RepositoryContentConsumer )
+            if ( knownSelected.contains( consumer.getId() ) || consumer.isPermanent() )
             {
-                RepositoryContentConsumer consumer = (RepositoryContentConsumer) input;
-                map.put( consumer.getId(), consumer );
+                consumerMap.put( consumer.getId(), consumer );
             }
         }
 
-        public Map getMap()
-        {
-            return map;
-        }
+        return consumerMap;
     }
 
-    public void initialize()
-        throws InitializationException
+    public Map<String, InvalidRepositoryContentConsumer> getSelectedInvalidConsumersMap()
     {
-        Predicate permanentConsumers = new PermanentConsumerPredicate();
+        Map<String, InvalidRepositoryContentConsumer> consumerMap = new HashMap<String, InvalidRepositoryContentConsumer>();
 
-        this.selectedKnownPredicate = new OrPredicate( permanentConsumers, new SelectedKnownRepoConsumersPredicate() );
-        this.selectedInvalidPredicate = new OrPredicate( permanentConsumers,
-                                                         new SelectedInvalidRepoConsumersPredicate() );
-    }
+        List<String> invalidSelected = getSelectedInvalidConsumerIds();
 
-    public List getSelectedKnownConsumerIds()
-    {
-        RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration().getRepositoryScanning();
-        return scanning.getKnownContentConsumers();
-    }
+        for ( InvalidRepositoryContentConsumer consumer : availableInvalidConsumers )
+        {
+            if ( invalidSelected.contains( consumer.getId() ) || consumer.isPermanent() )
+            {
+                consumerMap.put( consumer.getId(), consumer );
+            }
+        }
 
-    public List getSelectedInvalidConsumerIds()
-    {
-        RepositoryScanningConfiguration scanning = archivaConfiguration.getConfiguration().getRepositoryScanning();
-        return scanning.getInvalidContentConsumers();
+        return consumerMap;
     }
 
-    public Map getSelectedKnownConsumersMap()
+    public List<KnownRepositoryContentConsumer> getSelectedKnownConsumers()
     {
-        RepoConsumerToMapClosure consumerMapClosure = new RepoConsumerToMapClosure();
-        Closure ifclosure = IfClosure.getInstance( selectedKnownPredicate, consumerMapClosure );
-        CollectionUtils.forAllDo( availableKnownConsumers, ifclosure );
+        List<KnownRepositoryContentConsumer> ret = new ArrayList<KnownRepositoryContentConsumer>();
 
-        return consumerMapClosure.getMap();
-    }
+        List<String> knownSelected = getSelectedInvalidConsumerIds();
 
-    public Map getSelectedInvalidConsumersMap()
-    {
-        RepoConsumerToMapClosure consumerMapClosure = new RepoConsumerToMapClosure();
-        Closure ifclosure = IfClosure.getInstance( selectedInvalidPredicate, consumerMapClosure );
-        CollectionUtils.forAllDo( availableInvalidConsumers, ifclosure );
+        for ( KnownRepositoryContentConsumer consumer : availableKnownConsumers )
+        {
+            if ( knownSelected.contains( consumer.getId() ) || consumer.isPermanent() )
+            {
+                ret.add( consumer );
+            }
+        }
 
-        return consumerMapClosure.getMap();
+        return ret;
     }
 
-    public List getSelectedKnownConsumers()
+    public List<InvalidRepositoryContentConsumer> getSelectedInvalidConsumers()
     {
-        List ret = new ArrayList();
-        ret.addAll( CollectionUtils.select( availableKnownConsumers, selectedKnownPredicate ) );
+        List<InvalidRepositoryContentConsumer> ret = new ArrayList<InvalidRepositoryContentConsumer>();
 
-        return ret;
-    }
+        List<String> invalidSelected = getSelectedInvalidConsumerIds();
 
-    public List getSelectedInvalidConsumers()
-    {
-        List ret = new ArrayList();
-        ret.addAll( CollectionUtils.select( availableInvalidConsumers, selectedInvalidPredicate ) );
+        for ( InvalidRepositoryContentConsumer consumer : availableInvalidConsumers )
+        {
+            if ( invalidSelected.contains( consumer.getId() ) || consumer.isPermanent() )
+            {
+                ret.add( consumer );
+            }
+        }
 
         return ret;
     }
@@ -212,7 +165,7 @@
         this.availableInvalidConsumers = availableInvalidConsumers;
     }
 
-    public void executeConsumers( ArchivaRepository repository, File localFile )
+    public void executeConsumers( ManagedRepositoryConfiguration repository, File localFile )
     {
         // Run the repository consumers
         try
@@ -224,7 +177,7 @@
 
             // yuck. In case you can't read this, it says
             // "process the file if the consumer has it in the includes list, and not in the excludes list"
-            BaseFile baseFile = new BaseFile( repository.getUrl().getPath(), localFile );
+            BaseFile baseFile = new BaseFile( repository.getLocation(), localFile );
             ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate();
             predicate.setBasefile( baseFile );
             ConsumerProcessFileClosure closure = new ConsumerProcessFileClosure( getLogger() );
@@ -242,10 +195,10 @@
         }
         finally
         {
-/* TODO: This is never called by the repository scanner instance, so not calling here either - but it probably should be?
-            CollectionUtils.forAllDo( availableKnownConsumers, triggerCompleteScan );
-            CollectionUtils.forAllDo( availableInvalidConsumers, triggerCompleteScan );
-*/
+            /* TODO: This is never called by the repository scanner instance, so not calling here either - but it probably should be?
+                        CollectionUtils.forAllDo( availableKnownConsumers, triggerCompleteScan );
+                        CollectionUtils.forAllDo( availableInvalidConsumers, triggerCompleteScan );
+            */
         }
     }
 

Added: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java?rev=582987&view=auto
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java (added)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java Mon Oct  8 15:07:39 2007
@@ -0,0 +1,144 @@
+package org.apache.maven.archiva.repository.scanner;
+
+/*
+ * 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.commons.collections.CollectionUtils;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.model.RepositoryContentStatistics;
+
+import java.util.List;
+
+/**
+ * RepositoryScanStatistics - extension to the RepositoryContentStatistics model.
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ */
+public class RepositoryScanStatistics
+    extends RepositoryContentStatistics
+{
+    private transient List<String> knownConsumers;
+
+    private transient List<String> invalidConsumers;
+
+    private transient long startTimestamp;
+
+    public void triggerStart()
+    {
+        startTimestamp = System.currentTimeMillis();
+    }
+
+    public void triggerFinished()
+    {
+        long finished = System.currentTimeMillis();
+        setDuration( finished - startTimestamp );
+        setWhenGathered( new java.util.Date( finished ) );
+    }
+
+    public void increaseFileCount()
+    {
+        long count = getTotalFileCount();
+        setTotalFileCount( ++count );
+    }
+
+    public void increaseNewFileCount()
+    {
+        long count = getNewFileCount();
+        setNewFileCount( ++count );
+    }
+
+    public void setKnownConsumers( List<String> consumers )
+    {
+        knownConsumers = consumers;
+    }
+
+    public void setInvalidConsumers( List<String> consumers )
+    {
+        invalidConsumers = consumers;
+    }
+
+    public String toDump( ManagedRepositoryConfiguration repo )
+    {
+        java.text.SimpleDateFormat df = new java.text.SimpleDateFormat();
+        StringBuffer buf = new StringBuffer();
+
+        buf.append( "\n.\\ Scan of " ).append( this.getRepositoryId() );
+        buf.append( " \\.__________________________________________" );
+
+        buf.append( "\n  Repository Dir    : " ).append( repo.getLocation() );
+        buf.append( "\n  Repository Name   : " ).append( repo.getName() );
+        buf.append( "\n  Repository Layout : " ).append( repo.getLayout() );
+
+        buf.append( "\n  Known Consumers   : " );
+        if ( CollectionUtils.isNotEmpty( knownConsumers ) )
+        {
+            buf.append( "(" ).append( knownConsumers.size() ).append( " configured)" );
+            for ( String id : knownConsumers )
+            {
+                buf.append( "\n                      " ).append( id );
+            }
+        }
+        else
+        {
+            buf.append( "<none>" );
+        }
+
+        buf.append( "\n  Invalid Consumers : " );
+        if ( CollectionUtils.isNotEmpty( invalidConsumers ) )
+        {
+            buf.append( "(" ).append( invalidConsumers.size() ).append( " configured)" );
+            for ( String id : invalidConsumers )
+            {
+                buf.append( "\n                      " ).append( id );
+            }
+        }
+        else
+        {
+            buf.append( "<none>" );
+        }
+
+        buf.append( "\n  Duration          : " );
+        buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( this.getDuration() ) );
+        buf.append( "\n  When Gathered     : " );
+        if ( this.getWhenGathered() == null )
+        {
+            buf.append( "<null>" );
+        }
+        else
+        {
+            buf.append( df.format( this.getWhenGathered() ) );
+        }
+
+        buf.append( "\n  Total File Count  : " ).append( this.getTotalFileCount() );
+
+        long averageMsPerFile = 0;
+
+        if ( getTotalFileCount() != 0 )
+        {
+            averageMsPerFile = ( this.getDuration() / this.getTotalFileCount() );
+        }
+
+        buf.append( "\n  Avg Time Per File : " );
+        buf.append( org.apache.maven.archiva.common.utils.DateUtil.getDuration( averageMsPerFile ) );
+        buf.append( "\n______________________________________________________________" );
+
+        return buf.toString();
+    }
+}

Propchange: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScanStatistics.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain