Author: brett
Date: Thu Oct 15 03:41:57 2009
New Revision: 825382
URL: http://svn.apache.org/viewvc?rev=825382&view=rev
Log:
[MRM-1259] only index content that is listed in indexable-content configuration
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java?rev=825382&r1=825381&r2=825382&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
Thu Oct 15 03:41:57 2009
@@ -22,10 +22,13 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.ConfigurationNames;
+import org.apache.maven.archiva.configuration.FileTypes;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
@@ -34,6 +37,10 @@
import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
import org.apache.maven.archiva.scheduled.tasks.ArtifactIndexingTask;
import org.apache.maven.archiva.scheduled.tasks.TaskCreator;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.registry.Registry;
+import org.codehaus.plexus.registry.RegistryListener;
import org.codehaus.plexus.taskqueue.TaskQueueException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,10 +52,14 @@
*/
public class NexusIndexerConsumer
extends AbstractMonitoredConsumer
- implements KnownRepositoryContentConsumer
+ implements KnownRepositoryContentConsumer, RegistryListener, Initializable
{
private static final Logger log = LoggerFactory.getLogger(
NexusIndexerConsumer.class );
+ private ArchivaConfiguration configuration;
+
+ private FileTypes filetypes;
+
private ManagedDefaultRepositoryContent repositoryContent;
private File managedRepository;
@@ -57,8 +68,12 @@
private IndexingContext context;
- public NexusIndexerConsumer( ArchivaTaskScheduler scheduler )
+ private List<String> includes = new ArrayList<String>();
+
+ public NexusIndexerConsumer( ArchivaTaskScheduler scheduler,
ArchivaConfiguration configuration, FileTypes filetypes )
{
+ this.configuration = configuration;
+ this.filetypes = filetypes;
this.scheduler = scheduler;
}
@@ -136,11 +151,39 @@
public List<String> getExcludes()
{
- return new ArrayList<String>();
+ return Collections.emptyList();
+ }
+
+ public void afterConfigurationChange( Registry registry, String
propertyName, Object propertyValue )
+ {
+ if ( ConfigurationNames.isRepositoryScanning( propertyName ) )
+ {
+ initIncludes();
+ }
+ }
+
+ public void beforeConfigurationChange( Registry registry, String
propertyName, Object propertyValue )
+ {
+ /* do nothing */
+ }
+
+ private void initIncludes()
+ {
+ includes.clear();
+
+ includes.addAll( filetypes.getFileTypePatterns(
FileTypes.INDEXABLE_CONTENT ) );
+ }
+
+ public void initialize()
+ throws InitializationException
+ {
+ configuration.addChangeListener( this );
+
+ initIncludes();
}
public List<String> getIncludes()
{
- return Arrays.asList( "**/*" );
+ return includes;
}
}
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml?rev=825382&r1=825381&r2=825382&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
Thu Oct 15 03:41:57 2009
@@ -5,6 +5,8 @@
<bean id="indexerConsumer"
class="org.apache.archiva.consumers.lucene.NexusIndexerConsumer"
lazy-init="true">
<constructor-arg ref="archivaTaskScheduler"/>
+ <constructor-arg ref="archivaConfiguration"/>
+ <constructor-arg ref="fileTypes"/>
</bean>
<bean id="indexCleanupConsumer"
class="org.apache.archiva.consumers.lucene.LuceneCleanupRemoveIndexedConsumer"
lazy-init="true">
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java?rev=825382&r1=825381&r2=825382&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/test/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumerTest.java
Thu Oct 15 03:41:57 2009
@@ -28,6 +28,8 @@
import org.apache.commons.io.FileUtils;
import org.apache.maven.archiva.common.ArchivaException;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.FileTypes;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;
@@ -118,7 +120,11 @@
scheduler = new ArchivaTaskSchedulerStub();
- nexusIndexerConsumer = new NexusIndexerConsumer( scheduler );
+ ArchivaConfiguration configuration = (ArchivaConfiguration) lookup(
ArchivaConfiguration.class );
+
+ FileTypes filetypes = (FileTypes) lookup( FileTypes.class );
+
+ nexusIndexerConsumer = new NexusIndexerConsumer( scheduler,
configuration, filetypes );
repositoryConfig = new ManagedRepositoryConfiguration();
repositoryConfig.setId( "test-repo" );