Author: jdumay
Date: Sun Dec 21 20:53:12 2008
New Revision: 728610

URL: http://svn.apache.org/viewvc?rev=728610&view=rev
Log:
Indexer apparently works now. Yay

Added:
    
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java
Modified:
    
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java
    
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/NexusIndexerConsumer.java
    
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
    
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java
    
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
    archiva/branches/archiva-nexus-indexer/pom.xml

Modified: 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java?rev=728610&r1=728609&r2=728610&view=diff
==============================================================================
--- 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java
 (original)
+++ 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/RepositoryContentConsumer.java
 Sun Dec 21 20:53:12 2008
@@ -86,8 +86,6 @@
      * NOTE: If the consumer opted to batch up processing requests in the 
{...@link #processFile(String)} event
      * this would be the last opportunity to drain any processing queue's.
      * </p>
-     *
-     * @todo! this is never called by the RepositoryScannerInstance
      */
     public void completeScan();
 

Modified: 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/NexusIndexerConsumer.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/NexusIndexerConsumer.java?rev=728610&r1=728609&r2=728610&view=diff
==============================================================================
--- 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/NexusIndexerConsumer.java
 (original)
+++ 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/NexusIndexerConsumer.java
 Sun Dec 21 20:53:12 2008
@@ -25,7 +25,6 @@
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
-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;
@@ -39,6 +38,8 @@
 import org.sonatype.nexus.index.DefaultArtifactContextProducer;
 import org.sonatype.nexus.index.NexusIndexer;
 import org.sonatype.nexus.index.context.IndexingContext;
+import 
org.sonatype.nexus.index.context.UnsupportedExistingLuceneIndexException;
+import org.sonatype.nexus.index.packer.IndexPacker;
 
 public class NexusIndexerConsumer 
     extends AbstractMonitoredConsumer
@@ -50,15 +51,20 @@
 
     private final ArtifactContextProducer artifactContextProducer;
 
+    private final IndexPacker indexPacker;
+
     private ManagedRepositoryConfiguration repository;
 
     private ManagedDefaultRepositoryContent repositoryContent;
 
     private IndexingContext context;
 
-    public NexusIndexerConsumer(NexusIndexer indexer)
+    private File managedRepository;
+
+    public NexusIndexerConsumer(NexusIndexer indexer, IndexPacker indexPacker)
     {
         this.indexer = indexer;
+        this.indexPacker = indexPacker;
         this.artifactContextProducer = new DefaultArtifactContextProducer();
     }
 
@@ -81,7 +87,7 @@
         throws ConsumerException
     {
         this.repository = repository;
-        File managedRepository = new File(repository.getLocation());
+        managedRepository = new File(repository.getLocation());
         File indexDirectory = new File(managedRepository, ".indexer");
 
         repositoryContent = new ManagedDefaultRepositoryContent();
@@ -91,19 +97,31 @@
         {
             try
             {
-                context = indexer.addIndexingContextForced(repository.getId(), 
repository.getId(), managedRepository, indexDirectory, "repourl", "updateurl", 
NexusIndexer.FULL_INDEX);
+                context = indexer.addIndexingContext(repository.getId(), 
repository.getId(), managedRepository, indexDirectory, null, null, 
NexusIndexer.FULL_INDEX);
                 context.setSearchable(repository.isScanned());
             }
+            catch (UnsupportedExistingLuceneIndexException e)
+            {
+                log.error("Could not create index at " + 
indexDirectory.getAbsoluteFile(), e);
+            }
             catch (IOException e)
             {
-                log.error("Could not create FSDirectory for index at " + 
indexDirectory.getAbsoluteFile(), e);
+                log.error("Could not create index at " + 
indexDirectory.getAbsoluteFile(), e);
             }
         }
     }
 
     public void completeScan()
     {
-        /** do nothing **/
+        final File indexLocation = new File(managedRepository, ".index");
+        try
+        {
+            indexPacker.packIndex(context, indexLocation);
+        }
+        catch (IOException e)
+        {
+            log.error("Could not pack index" + 
indexLocation.getAbsolutePath(), e );
+        }
     }
 
     public List<String> getExcludes()
@@ -119,26 +137,19 @@
     public void processFile(String path) 
         throws ConsumerException
     {
-        File artifactFile = new File(path);
-
-        try
-        {
-            repositoryContent.toArtifactReference(path);
-        }
-        catch (LayoutException e)
-        {
-            /** do nothing **/
-            return;
-        }
+        File artifactFile = new File(managedRepository, path);
 
         ArtifactContext artifactContext = 
artifactContextProducer.getArtifactContext(context, artifactFile);
-        try
-        {
-            indexer.artifactDiscovered(artifactContext, context);
-        }
-        catch (IOException e)
+        if (artifactContext != null)
         {
-            throw new ConsumerException(e.getMessage(), e);
+            try
+            {
+                indexer.artifactDiscovered(artifactContext, context);
+            }
+            catch (IOException e)
+            {
+                throw new ConsumerException(e.getMessage(), e);
+            }
         }
     }
 }

Modified: 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml?rev=728610&r1=728609&r2=728610&view=diff
==============================================================================
--- 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
 (original)
+++ 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/resources/META-INF/spring-context.xml
 Sun Dec 21 20:53:12 2008
@@ -5,5 +5,6 @@
 
     <bean id="indexerConsumer" 
class="org.apache.maven.archiva.consumers.lucene.NexusIndexerConsumer">
         <constructor-arg ref="nexusIndexer"/>
+        <constructor-arg ref="indexPacker"/>
     </bean>
 </beans>
\ No newline at end of file

Modified: 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java?rev=728610&r1=728609&r2=728610&view=diff
==============================================================================
--- 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java
 (original)
+++ 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java
 Sun Dec 21 20:53:12 2008
@@ -38,6 +38,7 @@
 import 
org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure;
 import 
org.apache.maven.archiva.repository.scanner.functors.ConsumerWantsFilePredicate;
 import 
org.apache.maven.archiva.repository.scanner.functors.TriggerBeginScanClosure;
+import 
org.apache.maven.archiva.repository.scanner.functors.TriggerScanCompletedClosure;
 import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
@@ -256,6 +257,11 @@
                 // Nothing known processed this file.  It is invalid!
                 CollectionUtils.forAllDo( selectedInvalidConsumers, closure );
             }
+
+            TriggerScanCompletedClosure scanCompletedClosure = new 
TriggerScanCompletedClosure(repository);
+
+            CollectionUtils.forAllDo(selectedKnownConsumers, 
scanCompletedClosure);
+            CollectionUtils.forAllDo(selectedKnownConsumers, 
scanCompletedClosure);
         }
         finally
         {

Modified: 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java?rev=728610&r1=728609&r2=728610&view=diff
==============================================================================
--- 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
 (original)
+++ 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryScannerInstance.java
 Sun Dec 21 20:53:12 2008
@@ -34,6 +34,7 @@
 import 
org.apache.maven.archiva.repository.scanner.functors.ConsumerProcessFileClosure;
 import 
org.apache.maven.archiva.repository.scanner.functors.ConsumerWantsFilePredicate;
 import 
org.apache.maven.archiva.repository.scanner.functors.TriggerBeginScanClosure;
+import 
org.apache.maven.archiva.repository.scanner.functors.TriggerScanCompletedClosure;
 import org.codehaus.plexus.util.DirectoryWalkListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -90,6 +91,11 @@
         {
             consumerWantsFile.setCaseSensitive( false );
         }
+
+        TriggerScanCompletedClosure scanCompletedClosure = new 
TriggerScanCompletedClosure(repository);
+
+        CollectionUtils.forAllDo(knownConsumers, scanCompletedClosure);
+        CollectionUtils.forAllDo(invalidConsumerList, scanCompletedClosure);
     }
 
     public RepositoryScannerInstance( ManagedRepositoryConfiguration 
repository,

Added: 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java?rev=728610&view=auto
==============================================================================
--- 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java
 (added)
+++ 
archiva/branches/archiva-nexus-indexer/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/functors/TriggerScanCompletedClosure.java
 Sun Dec 21 20:53:12 2008
@@ -0,0 +1,46 @@
+/*
+ *  Copyright 2008 jdumay.
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.apache.maven.archiva.repository.scanner.functors;
+
+import org.apache.commons.collections.Closure;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.consumers.RepositoryContentConsumer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TriggerScanCompletedClosure implements Closure
+{
+    private Logger log = LoggerFactory.getLogger( 
TriggerScanCompletedClosure.class );
+
+    private final ManagedRepositoryConfiguration repository;
+
+    public TriggerScanCompletedClosure(ManagedRepositoryConfiguration 
repository)
+    {
+        this.repository = repository;
+    }
+
+    public void execute(Object input)
+    {
+        if ( input instanceof RepositoryContentConsumer )
+        {
+            RepositoryContentConsumer consumer = (RepositoryContentConsumer) 
input;
+            consumer.completeScan();
+            log.info( "Consumer [" + consumer.getId() + "] completed for 
repository [" + repository.getId() + "]");
+        }
+    }
+}

Modified: archiva/branches/archiva-nexus-indexer/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/branches/archiva-nexus-indexer/pom.xml?rev=728610&r1=728609&r2=728610&view=diff
==============================================================================
--- archiva/branches/archiva-nexus-indexer/pom.xml (original)
+++ archiva/branches/archiva-nexus-indexer/pom.xml Sun Dec 21 20:53:12 2008
@@ -243,7 +243,7 @@
       <dependency>
         <groupId>org.sonatype.nexus</groupId>
         <artifactId>nexus-indexer</artifactId>
-        <version>1.1.2.3</version>
+        <version>1.1.1</version>
         <exclusions>
           <exclusion>
             <groupId>org.codehaus.plexus</groupId>


Reply via email to