Author: olamy
Date: Fri Nov 15 00:41:06 2013
New Revision: 1542140

URL: http://svn.apache.org/r1542140
Log:
ignore files part of index directory when scanning

Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/functors/ConsumerWantsFilePredicate.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/functors/ConsumerWantsFilePredicate.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/functors/ConsumerWantsFilePredicate.java?rev=1542140&r1=1542139&r2=1542140&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/functors/ConsumerWantsFilePredicate.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/functors/ConsumerWantsFilePredicate.java
 Fri Nov 15 00:41:06 2013
@@ -21,16 +21,18 @@ package org.apache.archiva.consumers.fun
 
 import java.util.List;
 
+import org.apache.archiva.admin.model.beans.ManagedRepository;
 import org.apache.commons.collections.Predicate;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.archiva.common.utils.BaseFile;
 import org.apache.archiva.consumers.RepositoryContentConsumer;
+import org.apache.commons.lang.StringUtils;
 import org.apache.tools.ant.types.selectors.SelectorUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
- * ConsumerWantsFilePredicate 
- *
- *
+ * ConsumerWantsFilePredicate
  */
 public class ConsumerWantsFilePredicate
     implements Predicate
@@ -43,6 +45,23 @@ public class ConsumerWantsFilePredicate
 
     private long changesSince = 0;
 
+    private ManagedRepository managedRepository;
+
+    private Logger logger = LoggerFactory.getLogger( getClass() );
+
+    /**
+     * @deprecated use constructor with ManagedRepository
+     */
+    public ConsumerWantsFilePredicate()
+    {
+        // no-op
+    }
+
+    public ConsumerWantsFilePredicate( ManagedRepository managedRepository )
+    {
+        this.managedRepository = managedRepository;
+    }
+
     public boolean evaluate( Object object )
     {
         boolean satisfies = false;
@@ -53,7 +72,7 @@ public class ConsumerWantsFilePredicate
             if ( wantsFile( consumer, FilenameUtils.separatorsToUnix( 
basefile.getRelativePath() ) ) )
             {
                 satisfies = true;
-                
+
                 // regardless of the timestamp, we record that it was wanted 
so it doesn't get counted as invalid
                 wantedFileCount++;
 
@@ -114,6 +133,16 @@ public class ConsumerWantsFilePredicate
             }
         }
 
+        if ( managedRepository != null )
+        {
+            String indexDirectory = managedRepository.getIndexDirectory();
+            if ( StringUtils.startsWith( relativePath, indexDirectory ) )
+            {
+                logger.debug( "ignore file {} part of the index directory {}", 
relativePath, indexDirectory );
+                return false;
+            }
+        }
+
         // Now test includes.
         for ( String pattern : consumer.getIncludes() )
         {

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java?rev=1542140&r1=1542139&r2=1542140&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
 Fri Nov 15 00:41:06 2013
@@ -283,7 +283,7 @@ public class RepositoryContentConsumers
             // yuck. In case you can't read this, it says
             // "process the file if the consumer has it in the includes list, 
and not in the excludes list"
             BaseFile baseFile = new BaseFile( repository.getLocation(), 
localFile );
-            ConsumerWantsFilePredicate predicate = new 
ConsumerWantsFilePredicate();
+            ConsumerWantsFilePredicate predicate = new 
ConsumerWantsFilePredicate( repository );
             predicate.setBasefile( baseFile );
             predicate.setCaseSensitive( false );
 

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java?rev=1542140&r1=1542139&r2=1542140&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java
 Fri Nov 15 00:41:06 2013
@@ -91,7 +91,7 @@ public class RepositoryScannerInstance
         consumerProcessFile.setConsumerTimings( consumerTimings );
         consumerProcessFile.setConsumerCounts( consumerCounts );
 
-        this.consumerWantsFile = new ConsumerWantsFilePredicate();
+        this.consumerWantsFile = new ConsumerWantsFilePredicate( repository );
 
         stats = new RepositoryScanStatistics();
         stats.setRepositoryId( repository.getId() );


Reply via email to