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" );


Reply via email to