You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2010/12/30 09:27:39 UTC
svn commit: r1053819 - in /archiva/sandbox/populate-jcr-repo: ./ pom.xml
src/main/java/org/apache/archiva/metadata/repository/jcr/ExportRepoApp.java
src/main/java/org/apache/archiva/metadata/repository/jcr/PopulateRepoApp.java
Author: brett
Date: Thu Dec 30 08:27:38 2010
New Revision: 1053819
URL: http://svn.apache.org/viewvc?rev=1053819&view=rev
Log:
ability to export a repo for testing purposes
Added:
archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/ExportRepoApp.java
- copied, changed from r1053806, archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/QueryRepoApp.java
Modified:
archiva/sandbox/populate-jcr-repo/ (props changed)
archiva/sandbox/populate-jcr-repo/pom.xml
archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/PopulateRepoApp.java
Propchange: archiva/sandbox/populate-jcr-repo/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Dec 30 08:27:38 2010
@@ -1,3 +1,5 @@
target
+artifacts.xml
+artifacts.xml.gz
*.iml
jcr
Modified: archiva/sandbox/populate-jcr-repo/pom.xml
URL: http://svn.apache.org/viewvc/archiva/sandbox/populate-jcr-repo/pom.xml?rev=1053819&r1=1053818&r2=1053819&view=diff
==============================================================================
--- archiva/sandbox/populate-jcr-repo/pom.xml (original)
+++ archiva/sandbox/populate-jcr-repo/pom.xml Thu Dec 30 08:27:38 2010
@@ -32,6 +32,11 @@
<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.0</version>
@@ -42,5 +47,10 @@
<version>1.5.8</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.archiva</groupId>
+ <artifactId>npanday-support</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
</dependencies>
</project>
Copied: archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/ExportRepoApp.java (from r1053806, archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/QueryRepoApp.java)
URL: http://svn.apache.org/viewvc/archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/ExportRepoApp.java?p2=archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/ExportRepoApp.java&p1=archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/QueryRepoApp.java&r1=1053806&r2=1053819&rev=1053819&view=diff
==============================================================================
--- archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/QueryRepoApp.java (original)
+++ archiva/sandbox/populate-jcr-repo/src/main/java/org/apache/archiva/metadata/repository/jcr/ExportRepoApp.java Thu Dec 30 08:27:38 2010
@@ -20,25 +20,23 @@ package org.apache.archiva.metadata.repo
*/
import org.apache.archiva.metadata.model.MetadataFacetFactory;
-import org.apache.jackrabbit.commons.JcrUtils;
import org.apache.jackrabbit.core.TransientRepository;
import org.apache.jackrabbit.core.config.RepositoryConfig;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.util.Collections;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.jcr.query.Query;
-import javax.jcr.query.QueryResult;
-import javax.jcr.query.Row;
/**
* Hello world!
*/
-public class QueryRepoApp
+public class ExportRepoApp
{
public static void main( String[] args )
- throws RepositoryException
+ throws RepositoryException, IOException
{
RepositoryConfig config = RepositoryConfig.create( "src/main/repository.xml", "jcr" );
Repository repository = new TransientRepository( config );
@@ -50,34 +48,8 @@ public class QueryRepoApp
{
Session session = jcrMetadataRepository.getJcrSession();
- System.out.println( "querying" );
- long time = System.currentTimeMillis();
-
- String q = "SELECT size FROM [archiva:artifact] AS artifact";
-
- Query query = session.getWorkspace().getQueryManager().createQuery( q, Query.JCR_SQL2 );
-
- QueryResult queryResult = query.execute();
- System.out.println( "query in " + ( System.currentTimeMillis() - time ) + "ms" );
-
- time = System.currentTimeMillis();
-
- long totalSize = 0, totalJars = 0, totalArtifacts = 0;
- for ( Row row : JcrUtils.getRows( queryResult ) )
- {
- if ( row.getPath().startsWith( "/repositories/internal/content/" ) )
- {
- totalSize += row.getValue( "size" ).getLong();
- if ( row.getNode().getName().endsWith( ".jar" ) )
- {
- totalJars++;
- }
- totalArtifacts++;
- }
- }
- System.out.println(
- totalArtifacts + " artifacts, " + totalSize + " bytes, " + totalJars + " jars (count in " +
- ( System.currentTimeMillis() - time ) + "ms)" );
+ session.exportSystemView( "/repositories/internal/content/org/apache/archiva", new FileOutputStream(
+ "artifacts.xml" ), false, false );
}
finally
{
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=1053819&r1=1053818&r2=1053819&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 Thu Dec 30 08:27:38 2010
@@ -3,6 +3,12 @@ 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.repository.MetadataRepositoryException;
+import org.apache.archiva.metadata.repository.storage.maven2.ArtifactMappingProvider;
+import org.apache.archiva.metadata.repository.storage.maven2.DefaultArtifactMappingProvider;
+import org.apache.archiva.metadata.repository.storage.maven2.Maven2RepositoryPathTranslator;
+import org.apache.archiva.metadata.repository.storage.maven2.MavenArtifactFacet;
+import org.apache.archiva.metadata.repository.storage.maven2.MavenArtifactFacetFactory;
+import org.apache.archiva.plugins.npanday.NPandayArtifactMappingProvider;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.NotFileFilter;
@@ -11,9 +17,12 @@ import org.apache.jackrabbit.core.Transi
import org.apache.jackrabbit.core.config.RepositoryConfig;
import java.io.File;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
+import java.util.List;
+import java.util.Map;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
@@ -30,11 +39,18 @@ public class PopulateRepoApp
RepositoryConfig config = RepositoryConfig.create( "src/main/repository.xml", "jcr" );
Repository repository = new TransientRepository( config );
- JcrMetadataRepository jcrMetadataRepository = new JcrMetadataRepository(
- Collections.<String, MetadataFacetFactory>emptyMap(), repository );
+ 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() );
+ List<ArtifactMappingProvider> artifactMappingProviders = Arrays.asList( new DefaultArtifactMappingProvider(),
+ new NPandayArtifactMappingProvider() );
+ Maven2RepositoryPathTranslator translator = new Maven2RepositoryPathTranslator( artifactMappingProviders );
+
try
{
File basedir;
@@ -50,35 +66,25 @@ public class PopulateRepoApp
IOFileFilter dirFilter = new NotFileFilter( new WildcardFileFilter( ".index*" ) );
IOFileFilter fileFilter = new NotFileFilter( new WildcardFileFilter(
new String[]{"*.asc", "*.md5", "*.sha1", "maven-metadata*.xml"} ) );
- Collection<File> files = FileUtils.listFiles( basedir, fileFilter, dirFilter );
+ Collection<File> files = FileUtils.listFiles( new File( basedir, "org/apache/archiva" ), fileFilter, dirFilter );
+
+ int index = basedir.getAbsolutePath().length() + 1;
int count = 0, total = files.size();
for ( File f : files )
{
- ArtifactMetadata artifact = new ArtifactMetadata();
- artifact.setId( f.getName() );
- artifact.setWhenGathered( new Date() );
+ String path = f.getAbsolutePath().substring( index );
- File projectVersion = f.getParentFile();
- File project = projectVersion.getParentFile();
- File namespace = project.getParentFile();
- String ns = namespace.getName();
- while ( !namespace.getParentFile().equals( basedir ) )
- {
- namespace = namespace.getParentFile();
- ns = namespace.getName() + "." + ns;
- }
+ ArtifactMetadata artifact = translator.getArtifactForPath( REPO_ID, path );
+ artifact.setWhenGathered( new Date() );
- artifact.setNamespace( ns );
- artifact.setProject( project.getName() );
- artifact.setRepositoryId( REPO_ID );
artifact.setFileLastModified( f.lastModified() );
- artifact.setVersion( projectVersion.getName() );
- artifact.setProjectVersion( projectVersion.getName() );
artifact.setSize( f.length() );
- jcrMetadataRepository.updateArtifact( REPO_ID, ns, artifact.getProject(), artifact.getProjectVersion(),
- artifact );
+ // skipping checksums for speed
+
+ jcrMetadataRepository.updateArtifact( REPO_ID, artifact.getNamespace(), artifact.getProject(),
+ artifact.getProjectVersion(), artifact );
if ( ++count % 500 == 0 )
{