diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
index 1c02c812b..8692e7c50 100644
--- a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
+++ b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
@@ -648,6 +648,15 @@
false
+
+ skipPackedIndexCreation
+ 1.0.0+
+ boolean
+
+ True to not generate packed index (note you won't be able to export your index.
+
+ false
+
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ManagedRepository.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ManagedRepository.java
index a1bbbc1ab..a34469e52 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ManagedRepository.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ManagedRepository.java
@@ -70,6 +70,11 @@ public class ManagedRepository
private boolean resetStats;
+ /**
+ * @since 1.4-M3
+ */
+ private boolean skipPackedIndexCreation;
+
public ManagedRepository()
{
// no op
@@ -96,17 +101,17 @@ public ManagedRepository( String id, String name, String location, String layout
}
/**
- *
* @since 1.4-M3
*/
public ManagedRepository( String id, String name, String location, String layout, boolean snapshots,
boolean releases, boolean blockRedeployments, String cronExpression, String indexDir,
boolean scanned, int daysOlder, int retentionCount, boolean deleteReleasedSnapshots,
- boolean stageRepoNeeded, String description )
+ boolean stageRepoNeeded, String description, boolean skipPackedIndexCreation )
{
this( id, name, location, layout, snapshots, releases, blockRedeployments, cronExpression, indexDir, scanned,
daysOlder, retentionCount, deleteReleasedSnapshots, stageRepoNeeded );
setDescription( description );
+ setSkipPackedIndexCreation( skipPackedIndexCreation );
}
public String getCronExpression()
@@ -237,6 +242,16 @@ public void setResetStats( boolean resetStats )
this.resetStats = resetStats;
}
+ public boolean isSkipPackedIndexCreation()
+ {
+ return skipPackedIndexCreation;
+ }
+
+ public void setSkipPackedIndexCreation( boolean skipPackedIndexCreation )
+ {
+ this.skipPackedIndexCreation = skipPackedIndexCreation;
+ }
+
@Override
public String toString()
{
@@ -255,6 +270,7 @@ public String toString()
sb.append( ", deleteReleasedSnapshots=" ).append( deleteReleasedSnapshots );
sb.append( ", stageRepoNeeded=" ).append( stageRepoNeeded );
sb.append( ", resetStats=" ).append( resetStats );
+ sb.append( ", skipPackedIndexCreation=" ).append( skipPackedIndexCreation );
sb.append( '}' );
return sb.toString();
}
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
index 30d74f704..144f86aa3 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
@@ -72,7 +72,7 @@
*
* @author Olivier Lamy
*/
-@Service ( "managedRepositoryAdmin#default" )
+@Service ("managedRepositoryAdmin#default")
public class DefaultManagedRepositoryAdmin
extends AbstractRepositoryAdmin
implements ManagedRepositoryAdmin
@@ -83,7 +83,7 @@ public class DefaultManagedRepositoryAdmin
public static final String STAGE_REPO_ID_END = "-stage";
@Inject
- @Named ( value = "archivaTaskScheduler#repository" )
+ @Named (value = "archivaTaskScheduler#repository")
private RepositoryArchivaTaskScheduler repositoryTaskScheduler;
@Inject
@@ -171,6 +171,7 @@ public List getManagedRepositories()
repoConfig.getIndexDir(), repoConfig.isScanned(), repoConfig.getDaysOlder(),
repoConfig.getRetentionCount(), repoConfig.isDeleteReleasedSnapshots(), false );
repo.setDescription( repoConfig.getDescription() );
+ repo.setSkipPackedIndexCreation( repoConfig.isSkipPackedIndexCreation() );
managedRepos.add( repo );
}
@@ -219,7 +220,8 @@ public Boolean addManagedRepository( ManagedRepository managedRepository, boolea
managedRepository.getCronExpression(), managedRepository.getIndexDirectory(),
managedRepository.getDaysOlder(), managedRepository.getRetentionCount(),
managedRepository.isDeleteReleasedSnapshots(), managedRepository.getDescription(),
- auditInformation, getArchivaConfiguration().getConfiguration() ) != null;
+ managedRepository.isSkipPackedIndexCreation(), auditInformation,
+ getArchivaConfiguration().getConfiguration() ) != null;
createIndexContext( managedRepository );
return res;
@@ -232,6 +234,7 @@ private ManagedRepositoryConfiguration addManagedRepository( String repoId, Stri
boolean stageRepoNeeded, String cronExpression,
String indexDir, int daysOlder, int retentionCount,
boolean deteleReleasedSnapshots, String description,
+ boolean skipPackedIndexCreation,
AuditInformation auditInformation,
Configuration config )
throws RepositoryAdminException
@@ -253,6 +256,7 @@ private ManagedRepositoryConfiguration addManagedRepository( String repoId, Stri
repository.setDeleteReleasedSnapshots( deteleReleasedSnapshots );
repository.setIndexDir( indexDir );
repository.setDescription( description );
+ repository.setSkipPackedIndexCreation( skipPackedIndexCreation );
try
{
@@ -482,7 +486,8 @@ public Boolean updateManagedRepository( ManagedRepository managedRepository, boo
managedRepository.getCronExpression(), managedRepository.getIndexDirectory(),
managedRepository.getDaysOlder(), managedRepository.getRetentionCount(),
managedRepository.isDeleteReleasedSnapshots(), managedRepository.getDescription(),
- auditInformation, getArchivaConfiguration().getConfiguration() );
+ managedRepository.isSkipPackedIndexCreation(), auditInformation,
+ getArchivaConfiguration().getConfiguration() );
// Save the repository configuration.
RepositorySession repositorySession = getRepositorySessionFactory().createSession();
@@ -635,6 +640,7 @@ private ManagedRepositoryConfiguration getStageRepoConfig( ManagedRepositoryConf
stagingRepository.setRetentionCount( repository.getRetentionCount() );
stagingRepository.setScanned( repository.isScanned() );
stagingRepository.setSnapshots( repository.isSnapshots() );
+ stagingRepository.setSkipPackedIndexCreation( repository.isSkipPackedIndexCreation() );
// do not duplicate description
//stagingRepository.getDescription("")
return stagingRepository;
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java
index b1fa302ef..746a57f8b 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java
@@ -157,6 +157,8 @@ public void updateDeleteManagedRepo()
repo.setLocation( repoLocation );
repo.setCronExpression( "0 0 * * * ?" );
+ repo.setSkipPackedIndexCreation( true );
+
managedRepositoryAdmin.updateManagedRepository( repo, false, getFakeAuditInformation(), false );
repo = managedRepositoryAdmin.getManagedRepository( repoId );
@@ -165,6 +167,7 @@ public void updateDeleteManagedRepo()
assertEquals( new File( repoLocation ).getCanonicalPath(), new File( repo.getLocation() ).getCanonicalPath() );
assertTrue( new File( repoLocation ).exists() );
assertEquals( description, repo.getDescription() );
+ assertTrue( repo.isSkipPackedIndexCreation() );
assertTemplateRoleExists( repoId );
diff --git a/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
index 89705e7e8..3e21b5b23 100644
--- a/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
+++ b/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
@@ -236,17 +236,23 @@ private void finishIndexingTask( ArtifactIndexingTask indexingTask, ManagedRepos
context.optimize();
- File managedRepository = new File( repository.getLocation() );
- String indexDirectory = repository.getIndexDirectory();
- final File indexLocation = StringUtils.isBlank( indexDirectory )
- ? new File( managedRepository, ".indexer" )
- : new File( indexDirectory );
- IndexPackingRequest request = new IndexPackingRequest( context, indexLocation );
- indexPacker.packIndex( request );
- context.updateTimestamp( true );
-
- log.debug( "Index file packaged at '{}'.", indexLocation.getPath() );
+ if ( repository.isSkipPackedIndexCreation() )
+ {
+ File managedRepository = new File( repository.getLocation() );
+ String indexDirectory = repository.getIndexDirectory();
+ final File indexLocation = StringUtils.isBlank( indexDirectory )
+ ? new File( managedRepository, ".indexer" )
+ : new File( indexDirectory );
+ IndexPackingRequest request = new IndexPackingRequest( context, indexLocation );
+ indexPacker.packIndex( request );
+ context.updateTimestamp( true );
+ log.debug( "Index file packaged at '{}'.", indexLocation.getPath() );
+ }
+ else
+ {
+ log.debug( "skip packed index creation" );
+ }
}
catch ( IOException e )
{
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java
index 38102a439..93059b1a9 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java
@@ -295,7 +295,7 @@ protected ManagedRepository getTestManagedRepository()
{
String location = new File( FileUtil.getBasedir(), "target/test-repo" ).getAbsolutePath();
return new ManagedRepository( "TEST", "test", location, "default", true, true, false, "2 * * * * ?", null,
- false, 2, 3, true, false, "my nice repo" );
+ false, 2, 3, true, false, "my nice repo", false );
}