Author: brett
Date: Tue Feb 16 12:44:12 2010
New Revision: 910504

URL: http://svn.apache.org/viewvc?rev=910504&view=rev
Log:
[MRM-1282] move the content into the repository data directory

Modified:
    
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/pom.xml
    
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java

Modified: 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java?rev=910504&r1=910503&r2=910504&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
 Tue Feb 16 12:44:12 2010
@@ -63,6 +63,7 @@
 
     List<ArtifactMetadata> getArtifactsByDateRange( String repoId, Date 
startTime, Date endTime );
 
+    // TODO: remove from API, just use configuration
     Collection<String> getRepositories();
 
     List<ArtifactMetadata> getArtifactsByChecksum( String repoId, String 
checksum );

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/pom.xml?rev=910504&r1=910503&r2=910504&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/pom.xml
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/pom.xml
 Tue Feb 16 12:44:12 2010
@@ -30,6 +30,10 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.archiva</groupId>
+      <artifactId>archiva-configuration</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.archiva</groupId>
       <artifactId>metadata-repository-api</artifactId>
     </dependency>
     <dependency>

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java?rev=910504&r1=910503&r2=910504&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
 Tue Feb 16 12:44:12 2010
@@ -27,7 +27,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -54,6 +53,7 @@
 import org.apache.archiva.metadata.repository.MetadataRepository;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,16 +64,14 @@
     implements MetadataRepository
 {
     /**
-     * TODO: this isn't suitable for production use
-     *
-     * @plexus.configuration
+     * @plexus.requirement 
role="org.apache.archiva.metadata.model.MetadataFacetFactory"
      */
-    private File directory = new File( System.getProperty( "user.home" ), 
".archiva-metadata" );
+    private Map<String, MetadataFacetFactory> metadataFacetFactories;
 
     /**
-     * @plexus.requirement 
role="org.apache.archiva.metadata.model.MetadataFacetFactory"
+     * @plexus.requirement
      */
-    private Map<String, MetadataFacetFactory> metadataFacetFactories;
+    private ArchivaConfiguration configuration;
 
     private static final Logger log = LoggerFactory.getLogger( 
FileMetadataRepository.class );
 
@@ -85,6 +83,19 @@
 
     private static final String METADATA_KEY = "metadata";
 
+    private File getBaseDirectory( String repoId )
+    {
+        // TODO: should be configurable, like the index
+        String basedir = 
configuration.getConfiguration().getManagedRepositoriesAsMap().get( repoId 
).getLocation();
+        File dir = new File( basedir, ".archiva" );
+        return dir;
+    }
+
+    private File getDirectory( String repoId )
+    {
+        return new File( getBaseDirectory( repoId ), "content" );
+    }
+
     public void updateProject( String repoId, ProjectMetadata project )
     {
         updateProject( repoId, project.getNamespace(), project.getId() );
@@ -97,7 +108,7 @@
 
         try
         {
-            File namespaceDirectory = new File( this.directory, repoId + "/" + 
namespace );
+            File namespaceDirectory = new File( getDirectory( repoId ), 
namespace );
             Properties properties = new Properties();
             properties.setProperty( "namespace", namespace );
             properties.setProperty( "id", id );
@@ -116,7 +127,7 @@
         updateProject( repoId, namespace, projectId );
 
         File directory =
-            new File( this.directory, repoId + "/" + namespace + "/" + 
projectId + "/" + versionMetadata.getId() );
+            new File( getDirectory( repoId ), namespace + "/" + projectId + 
"/" + versionMetadata.getId() );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
         // remove properties that are not references or artifacts
@@ -207,7 +218,7 @@
     public void updateProjectReference( String repoId, String namespace, 
String projectId, String projectVersion,
                                         ProjectVersionReference reference )
     {
-        File directory = new File( this.directory, repoId + "/" + namespace + 
"/" + projectId + "/" + projectVersion );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
projectId + "/" + projectVersion );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
         int i = Integer.valueOf( properties.getProperty( 
"ref:lastReferenceNum", "-1" ) ) + 1;
@@ -232,7 +243,7 @@
     {
         try
         {
-            File namespaceDirectory = new File( this.directory, repoId + "/" + 
namespace );
+            File namespaceDirectory = new File( getDirectory( repoId ), 
namespace );
             Properties properties = new Properties();
             properties.setProperty( "namespace", namespace );
             writeProperties( properties, namespaceDirectory, 
NAMESPACE_METADATA_KEY );
@@ -395,7 +406,7 @@
     {
         Map<String, ArtifactMetadata> artifacts = new HashMap<String, 
ArtifactMetadata>();
 
-        File directory = new File( this.directory, repoId + "/" + namespace + 
"/" + projectId + "/" + projectVersion );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
projectId + "/" + projectVersion );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
 
@@ -452,8 +463,7 @@
 
     public Collection<String> getRepositories()
     {
-        String[] repoIds = this.directory.list();
-        return repoIds != null ? Arrays.asList( repoIds ) : 
Collections.<String>emptyList();
+        return 
configuration.getConfiguration().getManagedRepositoriesAsMap().keySet();
     }
 
     public List<ArtifactMetadata> getArtifactsByChecksum( String repositoryId, 
String checksum )
@@ -471,9 +481,9 @@
         return artifacts;
     }
 
-    public void deleteArtifact( String repositoryId, String namespace, String 
project, String version, String id )
+    public void deleteArtifact( String repoId, String namespace, String 
project, String version, String id )
     {
-        File directory = new File( this.directory, repositoryId + "/" + 
namespace + "/" + project + "/" + version );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
project + "/" + version );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
 
@@ -497,11 +507,9 @@
 
     public void deleteRepository( String repoId )
     {
-        File directory = new File( this.directory, repoId );
-
         try
         {
-            FileUtils.deleteDirectory( directory );
+            FileUtils.deleteDirectory( getDirectory( repoId ) );
         }
         catch ( IOException e )
         {
@@ -533,9 +541,9 @@
         }
     }
 
-    private File getMetadataDirectory( String repositoryId, String facetId )
+    private File getMetadataDirectory( String repoId, String facetId )
     {
-        return new File( this.directory, repositoryId + "/.meta/" + facetId );
+        return new File( getBaseDirectory( repoId ), "facets/" + facetId );
     }
 
     private String join( Collection<String> ids )
@@ -564,7 +572,7 @@
     public void updateArtifact( String repoId, String namespace, String 
projectId, String projectVersion,
                                 ArtifactMetadata artifact )
     {
-        File directory = new File( this.directory, repoId + "/" + namespace + 
"/" + projectId + "/" + projectVersion );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
projectId + "/" + projectVersion );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
 
@@ -631,7 +639,7 @@
 
     public ProjectMetadata getProject( String repoId, String namespace, String 
projectId )
     {
-        File directory = new File( this.directory, repoId + "/" + namespace + 
"/" + projectId );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
projectId );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
 
@@ -644,7 +652,7 @@
     public ProjectVersionMetadata getProjectVersion( String repoId, String 
namespace, String projectId,
                                                      String projectVersion )
     {
-        File directory = new File( this.directory, repoId + "/" + namespace + 
"/" + projectId + "/" + projectVersion );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
projectId + "/" + projectVersion );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
         String id = properties.getProperty( "id" );
@@ -809,7 +817,7 @@
     public Collection<String> getArtifactVersions( String repoId, String 
namespace, String projectId,
                                                    String projectVersion )
     {
-        File directory = new File( this.directory, repoId + "/" + namespace + 
"/" + projectId + "/" + projectVersion );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
projectId + "/" + projectVersion );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
 
@@ -828,7 +836,7 @@
     public Collection<ProjectVersionReference> getProjectReferences( String 
repoId, String namespace, String projectId,
                                                                      String 
projectVersion )
     {
-        File directory = new File( this.directory, repoId + "/" + namespace + 
"/" + projectId + "/" + projectVersion );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
projectId + "/" + projectVersion );
 
         Properties properties = readOrCreateProperties( directory, 
PROJECT_VERSION_METADATA_KEY );
         int numberOfRefs = Integer.valueOf( properties.getProperty( 
"ref:lastReferenceNum", "-1" ) ) + 1;
@@ -855,7 +863,7 @@
     public Collection<String> getNamespaces( String repoId, String 
baseNamespace )
     {
         List<String> allNamespaces = new ArrayList<String>();
-        File directory = new File( this.directory, repoId );
+        File directory = getDirectory( repoId );
         File[] files = directory.listFiles();
         if ( files != null )
         {
@@ -891,7 +899,7 @@
     public Collection<String> getProjects( String repoId, String namespace )
     {
         List<String> projects = new ArrayList<String>();
-        File directory = new File( this.directory, repoId + "/" + namespace );
+        File directory = new File( getDirectory( repoId ), namespace );
         File[] files = directory.listFiles();
         if ( files != null )
         {
@@ -909,7 +917,7 @@
     public Collection<String> getProjectVersions( String repoId, String 
namespace, String projectId )
     {
         List<String> projectVersions = new ArrayList<String>();
-        File directory = new File( this.directory, repoId + "/" + namespace + 
"/" + projectId );
+        File directory = new File( getDirectory( repoId ), namespace + "/" + 
projectId );
         File[] files = directory.listFiles();
         if ( files != null )
         {
@@ -939,13 +947,13 @@
         }
     }
 
-    public void setDirectory( File directory )
+    public void setMetadataFacetFactories( Map<String, MetadataFacetFactory> 
metadataFacetFactories )
     {
-        this.directory = directory;
+        this.metadataFacetFactories = metadataFacetFactories;
     }
 
-    public void setMetadataFacetFactories( Map<String, MetadataFacetFactory> 
metadataFacetFactories )
+    public void setConfiguration( ArchivaConfiguration configuration )
     {
-        this.metadataFacetFactories = metadataFacetFactories;
+        this.configuration = configuration;
     }
 }

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java?rev=910504&r1=910503&r2=910504&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
 Tue Feb 16 12:44:12 2010
@@ -37,7 +37,11 @@
 import org.apache.archiva.metadata.model.ProjectMetadata;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
 import org.apache.commons.io.FileUtils;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+import org.easymock.MockControl;
 
 /**
  * @todo should this be a generic MetadataRepository implementation test?
@@ -77,9 +81,17 @@
         super.setUp();
 
         repository = new FileMetadataRepository();
-        File directory = getTestFile( "target/test-repository" );
+        File directory = getTestFile( "target/test-repositories" );
         FileUtils.deleteDirectory( directory );
-        repository.setDirectory( directory );
+
+        MockControl control = MockControl.createControl( 
ArchivaConfiguration.class );
+        ArchivaConfiguration config = (ArchivaConfiguration) control.getMock();
+        Configuration configData = new Configuration();
+        configData.addManagedRepository( createManagedRepository( 
TEST_REPO_ID, directory ) );
+        configData.addManagedRepository( createManagedRepository( OTHER_REPO, 
directory ) );
+        control.expectAndDefaultReturn( config.getConfiguration(), configData 
);
+        control.replay();
+        repository.setConfiguration( config );
 
         Map<String, MetadataFacetFactory> factories = new HashMap<String, 
MetadataFacetFactory>();
         factories.put( TEST_FACET_ID, new MetadataFacetFactory()
@@ -111,6 +123,14 @@
         repository.setMetadataFacetFactories( factories );
     }
 
+    private static ManagedRepositoryConfiguration createManagedRepository( 
String repoId, File directory )
+    {
+        ManagedRepositoryConfiguration managedRepository = new 
ManagedRepositoryConfiguration();
+        managedRepository.setId( repoId );
+        managedRepository.setLocation( new File( directory, repoId 
).getAbsolutePath() );
+        return managedRepository;
+    }
+
     public void testRootNamespaceWithNoMetadataRepository()
     {
         Collection<String> namespaces = repository.getRootNamespaces( 
TEST_REPO_ID );
@@ -330,19 +350,6 @@
                                                       TEST_PROJECT_VERSION ) );
     }
 
-    public void testRepositories()
-    {
-        repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( 
TEST_VALUE ) );
-        repository.addMetadataFacet( OTHER_REPO, new TestMetadataFacet( 
TEST_VALUE ) );
-
-        assertEquals( Arrays.asList( OTHER_REPO, TEST_REPO_ID ), 
repository.getRepositories() );
-    }
-
-    public void testRepositoriesWhenEmpty()
-    {
-        assertTrue( repository.getRepositories().isEmpty() );
-    }
-
     public void testGetArtifactsByDateRangeOpen()
     {
         repository.updateNamespace( TEST_REPO_ID, TEST_NAMESPACE );


Reply via email to