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>