Author: brett
Date: Sat Mar 26 11:13:50 2011
New Revision: 1085693

URL: http://svn.apache.org/viewvc?rev=1085693&view=rev
Log:
make some changes to the sandbox repository metadata population app to help 
assess the efficiency of several variants

Modified:
    archiva/sandbox/populate-jcr-repo/pom.xml
    
archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/PopulateRepoApp.java
    archiva/sandbox/populate-jcr-repo/src/main/repository.xml

Modified: archiva/sandbox/populate-jcr-repo/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/populate-jcr-repo/pom.xml?rev=1085693&r1=1085692&r2=1085693&view=diff
==============================================================================
--- archiva/sandbox/populate-jcr-repo/pom.xml (original)
+++ archiva/sandbox/populate-jcr-repo/pom.xml Sat Mar 26 11:13:50 2011
@@ -25,13 +25,18 @@
     </dependency>
     <dependency>
       <groupId>org.apache.archiva</groupId>
+      <artifactId>metadata-repository-file</artifactId>
+      <version>1.4-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.archiva</groupId>
       <artifactId>maven2-repository</artifactId>
       <version>1.4-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.jackrabbit</groupId>
       <artifactId>jackrabbit-core</artifactId>
-      <version>2.2.1</version>
+      <version>2.2.5</version>
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
@@ -54,5 +59,11 @@
       <artifactId>npanday-support</artifactId>
       <version>1.4-SNAPSHOT</version>
     </dependency>
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <version>1.3.153</version>
+      <scope>runtime</scope>
+    </dependency>
   </dependencies>
 </project>

Modified: 
archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/PopulateRepoApp.java
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/PopulateRepoApp.java?rev=1085693&r1=1085692&r2=1085693&view=diff
==============================================================================
--- 
archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/PopulateRepoApp.java
 (original)
+++ 
archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/PopulateRepoApp.java
 Sat Mar 26 11:13:50 2011
@@ -3,7 +3,9 @@ package org.apache.archiva.metadata.repo
 import org.apache.archiva.metadata.model.ArtifactMetadata;
 import org.apache.archiva.metadata.model.MetadataFacetFactory;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.repository.MetadataRepository;
 import org.apache.archiva.metadata.repository.MetadataRepositoryException;
+import org.apache.archiva.metadata.repository.file.FileMetadataRepository;
 import 
org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
 import 
org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
 import 
org.apache.archiva.metadata.repository.storage.maven2.Maven2RepositoryPathTranslator;
@@ -16,6 +18,7 @@ import org.apache.commons.io.filefilter.
 import org.apache.commons.io.filefilter.WildcardFileFilter;
 import org.apache.jackrabbit.core.TransientRepository;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.codehaus.plexus.spring.PlexusClassPathXmlApplicationContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -46,20 +49,15 @@ public class PopulateRepoApp
         throws RepositoryException, MetadataRepositoryException, 
RepositoryStorageMetadataNotFoundException,
         RepositoryStorageMetadataInvalidException
     {
-        RepositoryConfig config = RepositoryConfig.create( 
"src/main/repository.xml", "jcr" );
-        Repository repository = new TransientRepository( config );
-
         MavenArtifactFacetFactory factory = new MavenArtifactFacetFactory();
 
         Map<String, MetadataFacetFactory> metadataFacetFactories =
             Collections.<String, MetadataFacetFactory>singletonMap( 
MavenArtifactFacet.FACET_ID, factory );
-        JcrMetadataRepository jcrMetadataRepository = new 
JcrMetadataRepository( metadataFacetFactories, repository );
-
-        JcrMetadataRepository.initialize( 
jcrMetadataRepository.getJcrSession() );
 
         ConfigurableApplicationContext applicationContext = new 
PlexusClassPathXmlApplicationContext(
             CONFIG_LOCATIONS );
 
+        MetadataRepository metadataRepository = null;
         try
         {
             File basedir;
@@ -77,14 +75,17 @@ public class PopulateRepoApp
                 "archivaConfiguration" );
             archivaConfig.addManagedRepo( REPO_ID, basedir );
 
+            metadataRepository = createJcrMetadataRepository( 
metadataFacetFactories );
+//            metadataRepository = createFileMetadataRepository( 
metadataFacetFactories, archivaConfig );
+
             Maven2RepositoryPathTranslator translator = 
(Maven2RepositoryPathTranslator) applicationContext.getBean(
                 "repositoryPathTranslator#maven2" );
 
             Maven2RepositoryStorage storage = (Maven2RepositoryStorage) 
applicationContext.getBean(
                 "repositoryStorage#maven2" );
 
-            File dir = basedir;
-//            File dir = new File( basedir, "org/apache/archiva" );
+//            File dir = basedir;
+            File dir = new File( basedir, "org/apache/archiva" );
 
             IOFileFilter dirFilter = new NotFileFilter( new 
WildcardFileFilter( new String[]{".index*", ".archiva"} ) );
             IOFileFilter fileFilter = new NotFileFilter( new 
WildcardFileFilter(
@@ -114,29 +115,52 @@ public class PopulateRepoApp
                                                                    
artifact.getProject(),
                                                                    
artifact.getProjectVersion() );
 
-                    jcrMetadataRepository.updateProjectVersion( REPO_ID, 
artifact.getNamespace(), artifact.getProject(),
-                                                                metadata );
+                    metadataRepository.updateProjectVersion( REPO_ID, 
artifact.getNamespace(), artifact.getProject(),
+                                                             metadata );
                 }
                 catch ( Exception e )
                 {
                     log.warn( "Unable to read POM, skipping: " + 
e.getMessage() );
                 }
 
-                jcrMetadataRepository.updateArtifact( REPO_ID, 
artifact.getNamespace(), artifact.getProject(),
-                                                      
artifact.getProjectVersion(), artifact );
+                metadataRepository.updateArtifact( REPO_ID, 
artifact.getNamespace(), artifact.getProject(),
+                                                   
artifact.getProjectVersion(), artifact );
 
                 if ( ++count % 500 == 0 )
                 {
                     System.out.println( "saving " + ( count * 100 / total ) + 
"%" );
-                    jcrMetadataRepository.save();
+                    metadataRepository.save();
                 }
             }
-            jcrMetadataRepository.save();
+            metadataRepository.save();
         }
         finally
         {
-            jcrMetadataRepository.close();
+            if ( metadataRepository != null )
+            {
+                metadataRepository.close();
+            }
             applicationContext.close();
         }
     }
+
+    private static MetadataRepository createJcrMetadataRepository(
+        Map<String, MetadataFacetFactory> metadataFacetFactories )
+        throws RepositoryException
+    {
+        RepositoryConfig config = RepositoryConfig.create( 
"src/main/repository.xml", "jcr" );
+        Repository repository = new TransientRepository( config );
+
+        JcrMetadataRepository jcrMetadataRepository = new 
JcrMetadataRepository( metadataFacetFactories, repository );
+
+        JcrMetadataRepository.initialize( 
jcrMetadataRepository.getJcrSession() );
+        return jcrMetadataRepository;
+    }
+
+    private static MetadataRepository createFileMetadataRepository(
+        Map<String, MetadataFacetFactory> metadataFacetFactories, 
ArchivaConfiguration archivaConfig )
+        throws RepositoryException
+    {
+        return new FileMetadataRepository( metadataFacetFactories, 
archivaConfig );
+    }
 }

Modified: archiva/sandbox/populate-jcr-repo/src/main/repository.xml
URL: 
http://svn.apache.org/viewvc/archiva/sandbox/populate-jcr-repo/src/main/repository.xml?rev=1085693&r1=1085692&r2=1085693&view=diff
==============================================================================
--- archiva/sandbox/populate-jcr-repo/src/main/repository.xml (original)
+++ archiva/sandbox/populate-jcr-repo/src/main/repository.xml Sat Mar 26 
11:13:50 2011
@@ -34,7 +34,8 @@
     <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
       <param name="path" value="${wsp.home}"/>
     </FileSystem>
-    <PersistenceManager 
class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
+    <PersistenceManager 
class="org.apache.jackrabbit.core.persistence.bundle.H2PersistenceManager"/>
+    <!--<PersistenceManager 
class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>-->
     <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
       <param name="path" value="${wsp.home}/index"/>
     </SearchIndex>
@@ -43,6 +44,7 @@
     <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
       <param name="path" value="${rep.home}/version"/>
     </FileSystem>
-    <PersistenceManager 
class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>
+    <PersistenceManager 
class="org.apache.jackrabbit.core.persistence.bundle.H2PersistenceManager"/>
+    <!--<PersistenceManager 
class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"/>-->
   </Versioning>
 </Repository>


Reply via email to