You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2011/11/02 23:33:10 UTC
svn commit: r1196845 - in /archiva/trunk/archiva-modules:
archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/
archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/
Author: olamy
Date: Wed Nov 2 22:33:09 2011
New Revision: 1196845
URL: http://svn.apache.org/viewvc?rev=1196845&view=rev
Log:
[MRM-815] aggregate indices for repository groups.
pack index for download.
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultIndexMerger.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMerger.java
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultIndexMerger.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultIndexMerger.java?rev=1196845&r1=1196844&r2=1196845&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultIndexMerger.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/DefaultIndexMerger.java Wed Nov 2 22:33:09 2011
@@ -27,6 +27,8 @@ import org.apache.archiva.common.plexusb
import org.apache.maven.index.NexusIndexer;
import org.apache.maven.index.context.IndexingContext;
import org.apache.maven.index.context.UnsupportedExistingLuceneIndexException;
+import org.apache.maven.index.packer.IndexPacker;
+import org.apache.maven.index.packer.IndexPackingRequest;
import org.springframework.stereotype.Service;
import java.io.File;
@@ -49,15 +51,18 @@ public class DefaultIndexMerger
private NexusIndexer indexer;
+ private IndexPacker indexPacker;
+
@javax.inject.Inject
public DefaultIndexMerger( PlexusSisuBridge plexusSisuBridge, MavenIndexerUtils mavenIndexerUtils )
throws PlexusSisuBridgeException
{
this.indexer = plexusSisuBridge.lookup( NexusIndexer.class );
this.mavenIndexerUtils = mavenIndexerUtils;
+ indexPacker = plexusSisuBridge.lookup( IndexPacker.class, "default" );
}
- public File buildMergedIndex( Collection<String> repositoriesIds )
+ public File buildMergedIndex( Collection<String> repositoriesIds, boolean packIndex )
throws IndexMergerException
{
File tempRepoFile = Files.createTempDir();
@@ -67,9 +72,10 @@ public class DefaultIndexMerger
try
{
+ File indexLocation = new File( tempRepoFile, ".indexer" );
IndexingContext indexingContext =
- indexer.addIndexingContext( tempRepoId, tempRepoId, tempRepoFile, new File( tempRepoFile, ".indexer" ),
- null, null, mavenIndexerUtils.getAllIndexCreators() );
+ indexer.addIndexingContext( tempRepoId, tempRepoId, tempRepoFile, indexLocation, null, null,
+ mavenIndexerUtils.getAllIndexCreators() );
for ( String repoId : repositoriesIds )
{
@@ -80,6 +86,13 @@ public class DefaultIndexMerger
}
}
+ indexingContext.optimize();
+
+ if ( packIndex )
+ {
+ IndexPackingRequest request = new IndexPackingRequest( indexingContext, indexLocation );
+ indexPacker.packIndex( request );
+ }
return indexingContext.getIndexDirectoryFile();
}
catch ( IOException e )
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMerger.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMerger.java?rev=1196845&r1=1196844&r2=1196845&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMerger.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/merger/IndexMerger.java Wed Nov 2 22:33:09 2011
@@ -29,9 +29,10 @@ public interface IndexMerger
{
/**
* @param repositoriesIds repositories Ids to merge content
+ * @param packIndex will generate a downloadable index
* @return a temporary directory with a merge index (directory marked deleteOnExit)
* @throws IndexMergerException
*/
- File buildMergedIndex( Collection<String> repositoriesIds )
+ File buildMergedIndex( Collection<String> repositoriesIds, boolean packIndex )
throws IndexMergerException;
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java?rev=1196845&r1=1196844&r2=1196845&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java Wed Nov 2 22:33:09 2011
@@ -1033,7 +1033,7 @@ public class ArchivaDavResourceFactory
}
}
// remove last /
- String pathInfo = StringUtils.removeEnd( request.getPathInfo(), "/" );
+ String pathInfo = StringUtils.removeEnd( request.getPathInfo(), "/" );
if ( StringUtils.endsWith( path, ".indexer" ) )
{
try
@@ -1063,7 +1063,7 @@ public class ArchivaDavResourceFactory
}
}
- File mergedRepoDir = indexMerger.buildMergedIndex( authzRepos );
+ File mergedRepoDir = indexMerger.buildMergedIndex( authzRepos, true );
mergedRepositoryContents.add( mergedRepoDir );
}