You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jd...@apache.org on 2009/02/17 23:43:45 UTC

svn commit: r745282 - in /archiva/branches/archiva-with-new-repoapi/archiva-modules: archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/ archiva-base/archiva-consumers/archiva-core-consumers/src/...

Author: jdumay
Date: Tue Feb 17 22:43:44 2009
New Revision: 745282

URL: http://svn.apache.org/viewvc?rev=745282&view=rev
Log:
Added legacy repository support. ManagedRepositoryContent now uses the Repository interface.

Added:
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/LegacyRepositoryManager.java
Removed:
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/DefaultRepository.java
Modified:
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyRepositoryManager.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/MutableResourceContext.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/RepositoryManagerException.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/pom.xml
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/pom.xml
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/DefaultRepositoryFactory.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/resources/META-INF/spring-context.xml
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/main/java/org/apache/archiva/web/servlet/RepositoryServlet.java
    archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/test/java/org/apache/archiva/web/servlet/AbstractRepositoryServletTestCase.java

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/MetadataUpdaterConsumer.java Tue Feb 17 22:43:44 2009
@@ -129,7 +129,7 @@
         try
         {
             this.repository = repositoryFactory.getManagedRepositoryContent( repoConfig.getId() );
-            this.repositoryDir = new File( repository.getRepoRoot() );
+            this.repositoryDir = repository.getLocalPath();
             this.scanStartTimestamp = System.currentTimeMillis();
         }
         catch ( RepositoryNotFoundException e )

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java Tue Feb 17 22:43:44 2009
@@ -65,9 +65,9 @@
     protected String toRelativePath( File artifactFile )
     {
         String artifactPath = artifactFile.getAbsolutePath();
-        if ( artifactPath.startsWith( repository.getRepoRoot() ) )
+        if ( artifactPath.startsWith( repository.getLocalPath().getAbsolutePath() ) )
         {
-            artifactPath = artifactPath.substring( repository.getRepoRoot().length() );
+            artifactPath = artifactPath.substring( repository.getLocalPath().getAbsolutePath().length() );
         }
 
         return artifactPath;

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/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/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java Tue Feb 17 22:43:44 2009
@@ -92,7 +92,7 @@
     {
         try
         {
-            File artifactFile = new File( repository.getRepoRoot(), path );
+            File artifactFile = new File( repository.getLocalPath(), path );
 
             if ( !artifactFile.exists() )
             {

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/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/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java Tue Feb 17 22:43:44 2009
@@ -68,7 +68,7 @@
     {
         try
         {
-            File artifactFile = new File( repository.getRepoRoot(), path );
+            File artifactFile = new File( repository.getLocalPath(), path );
 
             if ( !artifactFile.exists() )
             {

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/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/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java Tue Feb 17 22:43:44 2009
@@ -55,7 +55,7 @@
     {
         try
         {
-            File artifactFile = new File( repository.getRepoRoot(), path );
+            File artifactFile = new File( repository.getLocalPath(), path );
 
             if ( !artifactFile.exists() )
             {

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java Tue Feb 17 22:43:44 2009
@@ -143,7 +143,7 @@
         try
         {
             this.repository = repositoryFactory.getManagedRepositoryContent( repo.getId() );
-            this.repositoryDir = new File( repository.getRepoRoot() );
+            this.repositoryDir = repository.getLocalPath();
             this.whenGathered = whenGathered;
         }
         catch(RepositoryException e)

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveArtifactConsumer.java Tue Feb 17 22:43:44 2009
@@ -99,7 +99,7 @@
             ManagedRepositoryContent repositoryContent =
                 repositoryFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() );
 
-            File file = new File( repositoryContent.getRepoRoot(), repositoryContent.toPath( artifact ) );
+            File file = new File( repositoryContent.getLocalPath(), repositoryContent.toPath( artifact ) );
 
             if( !file.exists() )
             {                    

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/DatabaseCleanupRemoveProjectConsumer.java Tue Feb 17 22:43:44 2009
@@ -104,7 +104,7 @@
             ManagedRepositoryContent repositoryContent =
                 repositoryFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() );
 
-            File file = new File( repositoryContent.getRepoRoot(), repositoryContent.toPath( artifact ) );
+            File file = new File( repositoryContent.getLocalPath(), repositoryContent.toPath( artifact ) );
 
             if ( !file.exists() )
             {

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/LuceneCleanupRemoveIndexedConsumer.java Tue Feb 17 22:43:44 2009
@@ -87,7 +87,7 @@
             ManagedRepositoryContent repoContent =
                 repoFactory.getManagedRepositoryContent( artifact.getModel().getRepositoryId() );
 
-            File file = new File( repoContent.getRepoRoot(), repoContent.toPath( artifact ) );
+            File file = new File( repoContent.getLocalPath(), repoContent.toPath( artifact ) );
             
             if( !file.exists() )
             {   

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java Tue Feb 17 22:43:44 2009
@@ -210,7 +210,7 @@
         File workingDir = createWorkingDirectory(repository);
         try
         {
-            File localFile = new File( repository.getRepoRoot(), path );
+            File localFile = new File( repository.getLocalPath(), path );
 
             // no update policies for these paths
             if ( localFile.exists() )
@@ -279,7 +279,7 @@
         File workingDir = createWorkingDirectory(repository);
         try
         {
-            File localFile = new File(repository.getRepoRoot(), logicalPath);
+            File localFile = new File(repository.getLocalPath(), logicalPath);
 
             Properties requestProperties = new Properties();
             requestProperties.setProperty( "filetype", "metadata" );
@@ -384,7 +384,7 @@
                                   String targetPath )
     {
         String repoPath = metadataTools.getRepositorySpecificName( targetRepository, targetPath );
-        return new File( repository.getRepoRoot(), repoPath );
+        return new File( repository.getLocalPath(), repoPath );
     }
 
     /**
@@ -861,7 +861,7 @@
         //TODO: This is ugly - lets actually clean this up when we get the new repository api
         try
         {
-            File tmpDir = File.createTempFile(".workingdirectory", null, new File(repository.getRepoRoot()));
+            File tmpDir = File.createTempFile(".workingdirectory", null, repository.getLocalPath());
             tmpDir.delete();
             tmpDir.mkdirs();
             return tmpDir;

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java Tue Feb 17 22:43:44 2009
@@ -127,7 +127,7 @@
         StringBuffer sb = new StringBuffer();
 
         sb.append( "ProxyConnector[\n" );
-        sb.append( "  source: [managed] " ).append( this.sourceRepository.getRepoRoot() ).append( "\n" );
+        sb.append( "  source: [managed] " ).append( this.sourceRepository.getLocalPath() ).append( "\n" );
         sb.append( "  target: [remote] " ).append( this.targetRepository.getRepository().getUrl() ).append( "\n" );
         sb.append( "  proxyId:" ).append( this.proxyId ).append( "\n" );
 

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyRepositoryManager.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyRepositoryManager.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyRepositoryManager.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyRepositoryManager.java Tue Feb 17 22:43:44 2009
@@ -35,8 +35,6 @@
 import org.apache.archiva.repository.api.ResourceContext;
 import org.apache.archiva.repository.api.Status;
 import org.apache.archiva.repository.api.SystemRepositoryManager;
-import org.apache.maven.archiva.configuration.ConfigurationEvent;
-import org.apache.maven.archiva.configuration.ConfigurationListener;
 import org.apache.maven.archiva.model.ArtifactReference;
 import org.apache.maven.archiva.policies.ProxyDownloadException;
 import org.apache.maven.archiva.repository.ManagedRepositoryContent;
@@ -96,12 +94,14 @@
 
     public List<Status> stat(ResourceContext context)
     {
+        final MutableResourceContext resourceContext = new MutableResourceContext(context);
+
         //Return the stat() result from the system repository if we are simply getting a collection
 
         ManagedRepositoryContent managedRepository = null;
         try
         {
-            managedRepository = repositoryFactory.getManagedRepositoryContent(context.getRepositoryId());
+            managedRepository = repositoryFactory.getManagedRepositoryContent(resourceContext.getRepositoryId());
         }
         catch (RepositoryNotFoundException e)
         {
@@ -116,13 +116,13 @@
         boolean isCollection = false;
         try
         {
-            this.repositoryRequest.toArtifactReference(context.getLogicalPath());
+            this.repositoryRequest.toArtifactReference(resourceContext.getLogicalPath());
         }
         catch (LayoutException e)
         {
             try
             {
-                repositoryRequest.toNativePath(context.getLogicalPath(), managedRepository);
+                repositoryRequest.toNativePath(resourceContext.getLogicalPath(), managedRepository);
             }
             catch (LayoutException ex)
             {
@@ -135,7 +135,7 @@
             return repositoryManager.stat(context);
         }
 
-        final Status status = doProxy(managedRepository, context);
+        final Status status = doProxy(managedRepository, resourceContext);
         if (status != null)
         {
             return Arrays.asList(status);
@@ -148,10 +148,11 @@
         return repositoryManager.write(context, is);
     }
 
-    private Status doProxy( ManagedRepositoryContent managedRepository, ResourceContext context )
+    private Status doProxy( ManagedRepositoryContent managedRepository, MutableResourceContext context )
         throws RepositoryManagerException
     {
-        File resourceFile = new File( managedRepository.getRepoRoot(), context.getLogicalPath() );
+        File resourceFile = new File( managedRepository.getLocalPath(), context.getLogicalPath() );
+        final boolean previouslyExisted = resourceFile.exists();
         
         // At this point the incoming request can either be in default or
         // legacy layout format.
@@ -166,7 +167,11 @@
         }
         catch ( LayoutException e )
         {
-            return Status.fromFile(resourceFile);
+            if (previouslyExisted)
+            {
+                return Status.fromFile(resourceFile);
+            }
+            return null;
         }
 
         // Attempt to fetch the resource from any defined proxy.
@@ -180,7 +185,7 @@
         return status;
     }
 
-    private Status fetchContentFromProxies( ManagedRepositoryContent managedRepository, ResourceContext context )
+    private Status fetchContentFromProxies( ManagedRepositoryContent managedRepository, MutableResourceContext context )
         throws RepositoryManagerException
     {
         if ( repositoryRequest.isSupportFile( context.getLogicalPath() ) )
@@ -214,9 +219,7 @@
                 applyServerSideRelocation( managedRepository, artifact );
 
                 File proxiedFile = repositoryProxyConnectors.fetchFromProxies( managedRepository, artifact );
-
-                MutableResourceContext resourceContext = new MutableResourceContext(context);
-                resourceContext.setLogicalPath(managedRepository.toPath( artifact ));
+                context.setLogicalPath(managedRepository.toPath( artifact ));
 
                 if (proxiedFile != null)
                 {
@@ -233,7 +236,7 @@
             throw new RepositoryManagerException(e.getMessage(), e);
         }
 
-        File resourceFile = new File(managedRepository.getRepoRoot(), context.getLogicalPath());
+        File resourceFile = new File(managedRepository.getLocalPath(), context.getLogicalPath());
         if (resourceFile.exists())
         {
             return Status.fromFile(resourceFile);

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/main/resources/META-INF/spring-context.xml Tue Feb 17 22:43:44 2009
@@ -28,7 +28,7 @@
       value="org.apache.maven.archiva.proxy.WagonFactory" />
   </bean>
 
-  <bean id="proxyRepositoryManager" class="org.apache.maven.archiva.proxy.ProxyRepositoryManager">
+  <bean id="proxyRepositoryManager" class="org.apache.maven.archiva.proxy.ProxyRepositoryManager" lazy-init="true">
       <constructor-arg ref="systemRepositoryManager"/>
       <constructor-arg ref="repositoryProxyConnectors"/>
       <constructor-arg ref="repositoryContentFactory"/>

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java Tue Feb 17 22:43:44 2009
@@ -466,7 +466,7 @@
         managedDefaultRepository = createRepository( ID_DEFAULT_MANAGED, "Default Managed Repository", repoPath,
                                                      "default" );
 
-        managedDefaultDir = new File( managedDefaultRepository.getRepoRoot() );
+        managedDefaultDir = managedDefaultRepository.getLocalPath();
 
         ManagedRepositoryConfiguration repoConfig = managedDefaultRepository.getRepository();
 
@@ -480,7 +480,7 @@
         managedLegacyRepository = createRepository( ID_LEGACY_MANAGED, "Legacy Managed Repository",
                                                     REPOPATH_LEGACY_MANAGED_TARGET, "legacy" );
 
-        managedLegacyDir = new File( managedLegacyRepository.getRepoRoot() );
+        managedLegacyDir = managedLegacyRepository.getLocalPath();
 
         repoConfig = managedLegacyRepository.getRepository();
 

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java Tue Feb 17 22:43:44 2009
@@ -165,7 +165,7 @@
         // Configure Connector (usually done within archiva.xml configuration)
         addConnector();
 
-        File expectedFile = new File( new File( managedDefaultRepository.getRepoRoot() ), path );
+        File expectedFile = new File( managedDefaultRepository.getLocalPath(), path );
         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
 
         // Attempt the proxy fetch.

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/MutableResourceContext.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/MutableResourceContext.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/MutableResourceContext.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/MutableResourceContext.java Tue Feb 17 22:43:44 2009
@@ -51,7 +51,7 @@
         {
             return repositoryId;
         }
-        return repositoryId;
+        return context.getRepositoryId();
     }
 
     /**

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/RepositoryManagerException.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/RepositoryManagerException.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/RepositoryManagerException.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-api/src/main/java/org/apache/archiva/repository/api/RepositoryManagerException.java Tue Feb 17 22:43:44 2009
@@ -33,4 +33,9 @@
     {
         super(message, cause);
     }
+
+    public RepositoryManagerException(Throwable cause)
+    {
+        super(cause.getMessage(), cause);
+    }
 }

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/pom.xml
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/pom.xml?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/pom.xml (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/pom.xml Tue Feb 17 22:43:44 2009
@@ -30,6 +30,10 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.archiva</groupId>
+      <artifactId>archiva-repository-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.archiva</groupId>
       <artifactId>archiva-xml-tools</artifactId>
     </dependency>
     <dependency>

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/ManagedRepositoryContent.java Tue Feb 17 22:43:44 2009
@@ -28,6 +28,7 @@
 
 import java.io.File;
 import java.util.Set;
+import org.apache.archiva.repository.api.Repository;
 
 /**
  * ManagedRepositoryContent interface for interacting with a managed repository in an abstract way, 
@@ -35,7 +36,7 @@
  *
  * @version $Id$
  */
-public interface ManagedRepositoryContent
+public interface ManagedRepositoryContent extends Repository
 {
     /**
      * Delete from the managed repository all files / directories associated with the
@@ -49,19 +50,6 @@
 
     /**
      * <p>
-     * Convenience method to get the repository id.
-     * </p>
-     * 
-     * <p>
-     * Equivalent to calling <code>.getRepository().getId()</code>
-     * </p>
-     * 
-     * @return the repository id.
-     */
-    public String getId();
-
-    /**
-     * <p>
      * Gather up the list of related artifacts to the ArtifactReference provided.
      * This typically inclues the pom files, and those things with 
      * classifiers (such as doc, source code, test libs, etc...)
@@ -78,20 +66,7 @@
      */
     public Set<ArtifactReference> getRelatedArtifacts( ArtifactReference reference )
         throws ContentNotFoundException, LayoutException;
-
-    /**
-     * <p>
-     * Convenience method to get the repository (on disk) root directory.
-     * </p>
-     * 
-     * <p>
-     * Equivalent to calling <code>.getRepository().getLocation()</code>
-     * </p>
-     * 
-     * @return the repository (on disk) root directory.
-     */
-    public String getRepoRoot();
-
+    
     /**
      * Get the repository configuration associated with this
      * repository content.

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java Tue Feb 17 22:43:44 2009
@@ -63,7 +63,7 @@
         throws ContentNotFoundException
     {
         String path = toMetadataPath( reference );
-        File projectPath = new File( getRepoRoot(), path );
+        File projectPath = new File( getLocalPath(), path );
         
         File projectDir = projectPath.getParentFile();
         if( projectDir.exists() && projectDir.isDirectory() )
@@ -83,6 +83,11 @@
         }
     }
 
+    public String getName()
+    {
+        return repository.getName();
+    }
+
     public String getId()
     {
         return repository.getId();
@@ -137,9 +142,9 @@
         return foundArtifacts;
     }
 
-    public String getRepoRoot()
+    public File getLocalPath()
     {
-        return repository.getLocation();
+        return new File(repository.getLocation());
     }
 
     public ManagedRepositoryConfiguration getRepository()

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java Tue Feb 17 22:43:44 2009
@@ -192,9 +192,9 @@
         return foundArtifacts;
     }
 
-    public String getRepoRoot()
+    public File getLocalPath()
     {
-        return repository.getLocation();
+        return new File(repository.getLocation());
     }
 
     public ManagedRepositoryConfiguration getRepository()
@@ -202,6 +202,11 @@
         return repository;
     }
 
+    public String getName()
+    {
+        return repository.getName();
+    }
+
     public Set<String> getVersions( ProjectReference reference )
         throws ContentNotFoundException
     {

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java Tue Feb 17 22:43:44 2009
@@ -179,7 +179,7 @@
             return false;
         }
 
-        String pathParts[] = StringUtils.splitPreserveAllTokens( requestedPath, '/' );
+        String pathParts[] = StringUtils.split( requestedPath, '/' );
         return pathParts.length == 3;
     }
 

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java Tue Feb 17 22:43:44 2009
@@ -350,7 +350,7 @@
                                                         ProjectReference reference, String proxyId )
     {
         String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) );
-        File metadataFile = new File( managedRepository.getRepoRoot(), metadataPath );
+        File metadataFile = new File( managedRepository.getLocalPath(), metadataPath );
         
         if ( !metadataFile.exists() || !metadataFile.isFile() )
         {
@@ -375,7 +375,7 @@
                                                         String logicalResource, String proxyId )
     {
         String metadataPath = getRepositorySpecificName( proxyId, logicalResource );
-        File metadataFile = new File( managedRepository.getRepoRoot(), metadataPath );
+        File metadataFile = new File( managedRepository.getLocalPath(), metadataPath );
         
         if ( !metadataFile.exists() || !metadataFile.isFile() )
         {
@@ -400,7 +400,7 @@
                                                         VersionedReference reference, String proxyId )
     {
         String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) );
-        File metadataFile = new File( managedRepository.getRepoRoot(), metadataPath );
+        File metadataFile = new File( managedRepository.getLocalPath(), metadataPath );
         
         if ( !metadataFile.exists() || !metadataFile.isFile() )
         {
@@ -423,7 +423,7 @@
     
     public void updateMetadata( ManagedRepositoryContent managedRepository, String logicalResource) throws RepositoryMetadataException
     {
-        final File metadataFile = new File(managedRepository.getRepoRoot(), logicalResource);
+        final File metadataFile = new File(managedRepository.getLocalPath(), logicalResource);
         ArchivaRepositoryMetadata metadata = null;
         
         //Gather and merge all metadata available
@@ -492,7 +492,7 @@
     private List<ArchivaRepositoryMetadata> getMetadatasForManagedRepository( ManagedRepositoryContent managedRepository, String logicalResource )
     {
         List<ArchivaRepositoryMetadata> metadatas = new ArrayList<ArchivaRepositoryMetadata>();
-        File file = new File(managedRepository.getRepoRoot(), logicalResource);
+        File file = new File(managedRepository.getLocalPath(), logicalResource);
         if (file.exists())
         {
             try
@@ -547,7 +547,7 @@
     public void updateMetadata( ManagedRepositoryContent managedRepository, ProjectReference reference )
         throws LayoutException, RepositoryMetadataException, IOException, ContentNotFoundException
     {
-        File metadataFile = new File( managedRepository.getRepoRoot(), toPath( reference ) );
+        File metadataFile = new File( managedRepository.getLocalPath(), toPath( reference ) );
 
         long lastUpdated = getExistingLastUpdated( metadataFile );
 
@@ -750,7 +750,7 @@
     public void updateMetadata( ManagedRepositoryContent managedRepository, VersionedReference reference )
         throws LayoutException, RepositoryMetadataException, IOException, ContentNotFoundException
     {
-        File metadataFile = new File( managedRepository.getRepoRoot(), toPath( reference ) );
+        File metadataFile = new File( managedRepository.getLocalPath(), toPath( reference ) );
 
         long lastUpdated = getExistingLastUpdated( metadataFile );
 
@@ -912,7 +912,7 @@
             path = path.substring( 0, idx );
         }
 
-        File repoDir = new File( managedRepository.getRepoRoot(), path );
+        final File repoDir = new File( managedRepository.getLocalPath(), path );
 
         if ( !repoDir.exists() )
         {
@@ -926,7 +926,7 @@
                 + repoDir.getAbsolutePath() );
         }
 
-        File repoFiles[] = repoDir.listFiles();
+        final File repoFiles[] = repoDir.listFiles();
         for ( int i = 0; i < repoFiles.length; i++ )
         {
             if ( repoFiles[i].isDirectory() )
@@ -935,7 +935,7 @@
                 continue;
             }
 
-            String relativePath = PathUtil.getRelative( managedRepository.getRepoRoot(), repoFiles[i] );
+            String relativePath = PathUtil.getRelative( managedRepository.getLocalPath().getAbsolutePath(), repoFiles[i] );
 
             if ( filetypes.matchesArtifactPattern( relativePath ) )
             {

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/MetadataToolsTest.java Tue Feb 17 22:43:44 2009
@@ -347,7 +347,7 @@
                                  ProjectReference reference )
         throws LayoutException, IOException, SAXException, ParserConfigurationException
     {
-        File metadataFile = new File( repository.getRepoRoot(), tools.toPath( reference ) );
+        File metadataFile = new File( repository.getLocalPath(), tools.toPath( reference ) );
         String actualMetadata = FileUtils.readFileToString( metadataFile, null );
 
         DetailedDiff detailedDiff = new DetailedDiff( new Diff( expectedMetadata, actualMetadata ) );
@@ -362,7 +362,7 @@
                                  VersionedReference reference )
         throws LayoutException, IOException, SAXException, ParserConfigurationException
     {
-        File metadataFile = new File( repository.getRepoRoot(), tools.toPath( reference ) );
+        File metadataFile = new File( repository.getLocalPath(), tools.toPath( reference ) );
         String actualMetadata = FileUtils.readFileToString( metadataFile, null );
 
         DetailedDiff detailedDiff = new DetailedDiff( new Diff( expectedMetadata, actualMetadata ) );
@@ -536,7 +536,7 @@
 
         File srcRepoDir = new File( "src/test/repositories/metadata-repository" );
         File srcDir = new File( srcRepoDir, path );
-        File destDir = new File( repo.getRepoRoot(), path );
+        File destDir = new File( repo.getLocalPath(), path );
 
         assertTrue( "Source Dir exists: " + srcDir, srcDir.exists() );
         destDir.mkdirs();

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/pom.xml
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/pom.xml?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/pom.xml (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/pom.xml Tue Feb 17 22:43:44 2009
@@ -27,6 +27,10 @@
   <dependencies>
       <dependency>
           <groupId>org.apache.archiva</groupId>
+          <artifactId>archiva-repository-layer</artifactId>
+      </dependency>
+      <dependency>
+          <groupId>org.apache.archiva</groupId>
           <artifactId>archiva-repository-api</artifactId>
       </dependency>
       <dependency>

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/DefaultRepositoryFactory.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/DefaultRepositoryFactory.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/DefaultRepositoryFactory.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/DefaultRepositoryFactory.java Tue Feb 17 22:43:44 2009
@@ -19,31 +19,29 @@
  * under the License.
  */
 
-import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.archiva.repository.api.Repository;
 import org.apache.archiva.repository.api.RepositoryFactory;
-import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.repository.ManagedRepositoryContent;
+import org.apache.maven.archiva.repository.RepositoryContentFactory;
 
 public class DefaultRepositoryFactory implements RepositoryFactory
 {
-    private final ArchivaConfiguration archivaConfiguration;
+    private final RepositoryContentFactory repositoryContentFactory;
 
-    public DefaultRepositoryFactory(ArchivaConfiguration archivaConfiguration)
+    public DefaultRepositoryFactory(RepositoryContentFactory repositoryContentFactory)
     {
-        this.archivaConfiguration = archivaConfiguration;
+        this.repositoryContentFactory = repositoryContentFactory;
     }
 
     public Map<String, Repository> getRepositories()
     {
+        final Map<String, ManagedRepositoryContent> contentMap = repositoryContentFactory.getManagedContentMap();
         final HashMap<String, Repository> repositories = new HashMap<String, Repository>();
-        for (final ManagedRepositoryConfiguration configuration : archivaConfiguration.getConfiguration().getManagedRepositories())
+        for (final String repositoryId : contentMap.keySet())
         {
-            final DefaultRepository repository = new DefaultRepository(configuration.getId(), configuration.getName(), new File(configuration.getLocation()));
-            repositories.put(configuration.getId(), repository);
-            repository.getLocalPath().mkdirs();
+            repositories.put(repositoryId, contentMap.get(repositoryId));
         }
         return repositories;
     }

Added: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/LegacyRepositoryManager.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/LegacyRepositoryManager.java?rev=745282&view=auto
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/LegacyRepositoryManager.java (added)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/java/org/apache/archiva/repository/LegacyRepositoryManager.java Tue Feb 17 22:43:44 2009
@@ -0,0 +1,109 @@
+package org.apache.archiva.repository;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.List;
+import org.apache.archiva.repository.api.MutableResourceContext;
+import org.apache.archiva.repository.api.RepositoryManager;
+import org.apache.archiva.repository.api.RepositoryManagerException;
+import org.apache.archiva.repository.api.RepositoryManagerWeight;
+import org.apache.archiva.repository.api.ResourceContext;
+import org.apache.archiva.repository.api.Status;
+import org.apache.archiva.repository.api.SystemRepositoryManager;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.repository.ManagedRepositoryContent;
+import org.apache.maven.archiva.repository.RepositoryContentFactory;
+import org.apache.maven.archiva.repository.RepositoryException;
+import org.apache.maven.archiva.repository.content.ManagedLegacyRepositoryContent;
+import org.apache.maven.archiva.repository.content.RepositoryRequest;
+import org.apache.maven.archiva.repository.layout.LayoutException;
+
+@RepositoryManagerWeight(8000)
+public class LegacyRepositoryManager implements RepositoryManager
+{
+    private final ArchivaConfiguration archivaConfiguration;
+    private final SystemRepositoryManager systemRepositoryManager;
+    private final RepositoryContentFactory repositoryFactory;
+    private final RepositoryRequest repositoryRequest;
+
+    public LegacyRepositoryManager(ArchivaConfiguration archivaConfiguration,
+            SystemRepositoryManager systemRepositoryManager,
+            RepositoryContentFactory repositoryFactory,
+            RepositoryRequest repositoryRequest)
+    {
+        this.archivaConfiguration = archivaConfiguration;
+        this.systemRepositoryManager = systemRepositoryManager;
+        this.repositoryFactory = repositoryFactory;
+        this.repositoryRequest = repositoryRequest;
+    }
+
+    public ResourceContext handles(ResourceContext context)
+    {
+        final ManagedRepositoryContent repositoryContent = getManagedRepositoryContent(context);
+        if (repositoryContent != null)
+        {
+            if (isLegacyRepository(repositoryContent) || repositoryRequest.isLegacy(context.getLogicalPath()))
+            {
+                final MutableResourceContext resourceContext = new MutableResourceContext(context);
+
+                try
+                {
+                    final String nativePath = repositoryRequest.toNativePath(resourceContext.getLogicalPath(), repositoryContent);
+                    resourceContext.setLogicalPath(nativePath);
+                    return resourceContext;
+                }
+                catch (LayoutException e)
+                {
+                    return null;
+                }
+            }
+        }
+        return null;
+    }
+
+    public boolean read(ResourceContext context, OutputStream os)
+    {
+        return systemRepositoryManager.read(context, os);
+    }
+
+    public boolean write(ResourceContext context, InputStream is)
+    {
+        return systemRepositoryManager.write(context, is);
+    }
+
+    public List<Status> stat(ResourceContext context)
+    {
+        if (!(context instanceof MutableResourceContext))
+        {
+            throw new RepositoryManagerException("handles() should have returned a MutableResourceContext");
+        }
+
+        return systemRepositoryManager.stat(context);
+    }
+
+    public boolean exists(String repositoryId)
+    {
+        return systemRepositoryManager.exists(repositoryId);
+    }
+
+    private ManagedRepositoryContent getManagedRepositoryContent(ResourceContext context)
+    {
+        try
+        {
+            return repositoryFactory.getManagedRepositoryContent(context.getRepositoryId());
+        }
+        catch (RepositoryException e)
+        {
+            return null;
+        }
+    }
+    
+    private boolean isLegacyRepository(ManagedRepositoryContent repositoryContent)
+    {
+        if (repositoryContent instanceof ManagedLegacyRepositoryContent)
+        {
+            return true;
+        }
+        return false;
+    }
+}

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/resources/META-INF/spring-context.xml?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/resources/META-INF/spring-context.xml (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-base/archiva-repository/src/main/resources/META-INF/spring-context.xml Tue Feb 17 22:43:44 2009
@@ -3,24 +3,32 @@
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 
-       <bean name="repositoryFactory" class="org.apache.archiva.repository.DefaultRepositoryFactory">
+       <bean name="repositoryFactory" class="org.apache.archiva.repository.DefaultRepositoryFactory" lazy-init="true">
+           <constructor-arg ref="repositoryContentFactory"/>
+       </bean>
+
+       <bean name="legacyRepositoryManager" class="org.apache.archiva.repository.LegacyRepositoryManager" lazy-init="true">
            <constructor-arg ref="archivaConfiguration"/>
+           <constructor-arg ref="systemRepositoryManager"/>
+           <constructor-arg ref="repositoryContentFactory"/>
+           <constructor-arg ref="repositoryRequest"/>
        </bean>
+
        <bean name="systemRepositoryManager" class="org.apache.archiva.repository.DefaultRepositoryManager" lazy-init="true">
            <constructor-arg ref="repositoryFactory"/>
        </bean>
 
-       <bean name="groupRepositoryManager" class="org.apache.archiva.repository.GroupRepositoryManager">
+       <bean name="groupRepositoryManager" class="org.apache.archiva.repository.GroupRepositoryManager" lazy-init="true">
            <constructor-arg ref="archivaConfiguration"/>
            <constructor-arg ref="proxyRepositoryManager"/>
            <constructor-arg ref="systemRepositoryManager"/>
        </bean>
 
-       <bean name="repositoryManagerFactory" class="org.apache.archiva.repository.DefaultRepositoryManagerFactory"/>
-       <bean name="preRepositoryInterceptorFactory" class="org.apache.archiva.repository.DefaultRepositoryInterceptorFactory">
+       <bean name="repositoryManagerFactory" class="org.apache.archiva.repository.DefaultRepositoryManagerFactory" lazy-init="true"/>
+       <bean name="preRepositoryInterceptorFactory" class="org.apache.archiva.repository.DefaultRepositoryInterceptorFactory" lazy-init="true">
            <constructor-arg value="org.apache.archiva.repository.api.interceptor.PreRepositoryInterceptor"/>
        </bean>
-       <bean name="postRepositoryInterceptorFactory" class="org.apache.archiva.repository.DefaultRepositoryInterceptorFactory">
+       <bean name="postRepositoryInterceptorFactory" class="org.apache.archiva.repository.DefaultRepositoryInterceptorFactory" lazy-init="true">
            <constructor-arg value="org.apache.archiva.repository.api.interceptor.PostRepositoryInterceptor"/>
        </bean>
 </beans>
\ No newline at end of file

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/main/java/org/apache/archiva/web/servlet/RepositoryServlet.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/main/java/org/apache/archiva/web/servlet/RepositoryServlet.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/main/java/org/apache/archiva/web/servlet/RepositoryServlet.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/main/java/org/apache/archiva/web/servlet/RepositoryServlet.java Tue Feb 17 22:43:44 2009
@@ -173,6 +173,7 @@
         if ("PUT".equals(req.getMethod()))
         {
             repositoryManager.write(context, req.getInputStream());
+            resp.setStatus(HttpServletResponse.SC_CREATED);
             return;
         }
 

Modified: archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/test/java/org/apache/archiva/web/servlet/AbstractRepositoryServletTestCase.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/test/java/org/apache/archiva/web/servlet/AbstractRepositoryServletTestCase.java?rev=745282&r1=745281&r2=745282&view=diff
==============================================================================
--- archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/test/java/org/apache/archiva/web/servlet/AbstractRepositoryServletTestCase.java (original)
+++ archiva/branches/archiva-with-new-repoapi/archiva-modules/archiva-web/archiva-repository-servlet/src/test/java/org/apache/archiva/web/servlet/AbstractRepositoryServletTestCase.java Tue Feb 17 22:43:44 2009
@@ -148,6 +148,8 @@
     protected void setUp()
         throws Exception
     {
+        super.setUp();
+
         String appserverBase = getTestFile( "target/appserver-base" ).getAbsolutePath();
         System.setProperty( "appserver.base", appserverBase );
 
@@ -155,8 +157,6 @@
         File testConfDest = new File( appserverBase, "conf/archiva.xml" );
         FileUtils.copyFile( testConf, testConfDest );
 
-        super.setUp();
-
         archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class );
         repoRootInternal = new File( appserverBase, "data/repositories/internal" );
         Configuration config = archivaConfiguration.getConfiguration();
@@ -166,15 +166,14 @@
 
         CacheManager.getInstance().removeCache( "url-failures-cache" );
 
-        HttpUnitOptions.setExceptionsThrownOnErrorStatus( false );                
-
-        sr = new ServletRunner( getTestFile( "src/test/resources/WEB-INF/web.xml" ) );
+        HttpUnitOptions.setExceptionsThrownOnErrorStatus( false );
 
         final Hashtable<String, String> params = new Hashtable<String, String>();
         params.put(RepositoryServlet.REPOSITORY_MANAGER_FACTORY, "repositoryManagerFactory");
         params.put(RepositoryServlet.PREREPOSITORY_INTERCEPTOR_FACTORY, "preRepositoryInterceptorFactory");
         params.put(RepositoryServlet.POSTREPOSITORY_INTERCEPTOR_FACTORY, "postRepositoryInterceptorFactory");
 
+        sr = new ServletRunner( getTestFile( "src/test/resources/WEB-INF/web.xml" ) );
         sr.registerServlet( "/repository/*", RepositoryServlet.class.getName(), params );
         sc = sr.newClient();
     }