org.apache.archiva.consumers.lucene
Class NexusIndexerConsumer

java.lang.Object
  extended by org.apache.archiva.consumers.AbstractMonitoredConsumer
      extended by org.apache.archiva.consumers.lucene.NexusIndexerConsumer
All Implemented Interfaces:
Consumer, KnownRepositoryContentConsumer, RepositoryContentConsumer, org.apache.archiva.redback.components.registry.RegistryListener

@Service(value="knownRepositoryContentConsumer#index-content")
@Scope(value="prototype")
public class NexusIndexerConsumer
extends AbstractMonitoredConsumer
implements KnownRepositoryContentConsumer, org.apache.archiva.redback.components.registry.RegistryListener

Consumer for indexing the repository to provide search and IDE integration features.


Field Summary
private  List<? extends org.apache.maven.index.context.IndexCreator> allIndexCreators
           
private  ArchivaConfiguration configuration
           
private  FileTypes filetypes
           
private  List<String> includes
           
private  org.apache.maven.index.context.IndexingContext indexingContext
           
private  org.slf4j.Logger log
           
private  File managedRepository
           
private  ManagedRepositoryAdmin managedRepositoryAdmin
           
private  org.apache.maven.index.NexusIndexer nexusIndexer
           
private  ManagedRepository repository
           
private  ArchivaTaskScheduler<ArtifactIndexingTask> scheduler
           
 
Constructor Summary
NexusIndexerConsumer(ArchivaTaskScheduler<ArtifactIndexingTask> scheduler, ArchivaConfiguration configuration, FileTypes filetypes, PlexusSisuBridge plexusSisuBridge, MavenIndexerUtils mavenIndexerUtils, ManagedRepositoryAdmin managedRepositoryAdmin)
           
 
Method Summary
 void afterConfigurationChange(org.apache.archiva.redback.components.registry.Registry registry, String propertyName, Object propertyValue)
           
 void beforeConfigurationChange(org.apache.archiva.redback.components.registry.Registry registry, String propertyName, Object propertyValue)
           
 void beginScan(ManagedRepository repository, Date whenGathered)
           Event that triggers at the beginning of a scan.
 void beginScan(ManagedRepository repository, Date whenGathered, boolean executeOnEntireRepo)
           Event that triggers at the beginning of a scan, where you can also indicate whether the consumers will be executed on an entire repository or on a specific resource.
 void completeScan()
           Event that triggers on the completion of a scan.
 void completeScan(boolean executeOnEntireRepo)
           
 String getDescription()
          The human readable description for this consumer.
 List<String> getExcludes()
          Get the list of excluded file patterns for this consumer.
 String getId()
          This is the id for the consumer.
 List<String> getIncludes()
          Get the list of included file patterns for this consumer.
private  org.apache.maven.index.context.IndexingContext getIndexingContext()
           
 void initialize()
           
private  void initIncludes()
           
 boolean isPermanent()
          Flag indicating permanance of consumer.
 void processFile(String path)
           Event indicating a file is to be processed by this consumer.
 void processFile(String path, boolean executeOnEntireRepo)
           
 
Methods inherited from class org.apache.archiva.consumers.AbstractMonitoredConsumer
addConsumerMonitor, getDefaultArtifactExclusions, isProcessUnmodified, removeConsumerMonitor, triggerConsumerError, triggerConsumerInfo, triggerConsumerWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.archiva.consumers.RepositoryContentConsumer
isProcessUnmodified
 
Methods inherited from interface org.apache.archiva.consumers.Consumer
addConsumerMonitor, removeConsumerMonitor
 

Field Detail

log

private org.slf4j.Logger log

configuration

private ArchivaConfiguration configuration

filetypes

private FileTypes filetypes

managedRepository

private File managedRepository

scheduler

private ArchivaTaskScheduler<ArtifactIndexingTask> scheduler

indexingContext

private org.apache.maven.index.context.IndexingContext indexingContext

nexusIndexer

private org.apache.maven.index.NexusIndexer nexusIndexer

includes

private List<String> includes

repository

private ManagedRepository repository

allIndexCreators

private List<? extends org.apache.maven.index.context.IndexCreator> allIndexCreators

managedRepositoryAdmin

private ManagedRepositoryAdmin managedRepositoryAdmin
Constructor Detail

NexusIndexerConsumer

@Inject
public NexusIndexerConsumer(@Named(value="archivaTaskScheduler#indexing")
                                   ArchivaTaskScheduler<ArtifactIndexingTask> scheduler,
                                   @Named(value="archivaConfiguration")
                                   ArchivaConfiguration configuration,
                                   FileTypes filetypes,
                                   PlexusSisuBridge plexusSisuBridge,
                                   MavenIndexerUtils mavenIndexerUtils,
                                   ManagedRepositoryAdmin managedRepositoryAdmin)
                     throws PlexusSisuBridgeException
Throws:
PlexusSisuBridgeException
Method Detail

getDescription

public String getDescription()
Description copied from interface: Consumer
The human readable description for this consumer.

Specified by:
getDescription in interface Consumer
Returns:
the human readable description for this consumer.

getId

public String getId()
Description copied from interface: Consumer
This is the id for the consumer.

Specified by:
getId in interface Consumer
Returns:
the consumer id.

isPermanent

public boolean isPermanent()
Description copied from interface: Consumer
Flag indicating permanance of consumer. (if it can be disabled or not)

Specified by:
isPermanent in interface Consumer
Returns:
true indicating that consumer is permanent and cannot be disabled.

beginScan

public void beginScan(ManagedRepository repository,
                      Date whenGathered)
               throws ConsumerException
Description copied from interface: RepositoryContentConsumer

Event that triggers at the beginning of a scan.

NOTE: This would be a good place to initialize the consumer, to lock any resources, and to generally start tracking the scan as a whole.

Specified by:
beginScan in interface RepositoryContentConsumer
Parameters:
repository - the repository that this consumer is being used for.
whenGathered - the start of the repository scan
Throws:
ConsumerException - if there was a problem with using the provided repository with the consumer.

beginScan

public void beginScan(ManagedRepository repository,
                      Date whenGathered,
                      boolean executeOnEntireRepo)
               throws ConsumerException
Description copied from interface: RepositoryContentConsumer

Event that triggers at the beginning of a scan, where you can also indicate whether the consumers will be executed on an entire repository or on a specific resource.

Specified by:
beginScan in interface RepositoryContentConsumer
Parameters:
repository - the repository that this consumer is being used for.
whenGathered - the start of the repository scan
executeOnEntireRepo - flags whether the consumer will be executed on an entire repository or just on a specific resource
Throws:
ConsumerException - if there was a problem with using the provided repository with the consumer.
See Also:
RepositoryContentConsumer.beginScan(ManagedRepository, java.util.Date)

processFile

public void processFile(String path)
                 throws ConsumerException
Description copied from interface: RepositoryContentConsumer

Event indicating a file is to be processed by this consumer.

NOTE: The consumer does not need to process the file immediately, can can opt to queue and/or track the files to be processed in batch. Just be sure to complete the processing by the RepositoryContentConsumer.completeScan() event.

Specified by:
processFile in interface RepositoryContentConsumer
Parameters:
path - the relative file path (in the repository) to process.
Throws:
ConsumerException - if there was a problem processing this file.

processFile

public void processFile(String path,
                        boolean executeOnEntireRepo)
                 throws Exception
Specified by:
processFile in interface RepositoryContentConsumer
Throws:
Exception

completeScan

public void completeScan()
Description copied from interface: RepositoryContentConsumer

Event that triggers on the completion of a scan.

NOTE: If the consumer opted to batch up processing requests in the RepositoryContentConsumer.processFile(String) event this would be the last opportunity to drain any processing queue's.

Specified by:
completeScan in interface RepositoryContentConsumer

completeScan

public void completeScan(boolean executeOnEntireRepo)
Specified by:
completeScan in interface RepositoryContentConsumer

getExcludes

public List<String> getExcludes()
Description copied from interface: RepositoryContentConsumer
Get the list of excluded file patterns for this consumer.

Specified by:
getExcludes in interface RepositoryContentConsumer
Returns:
the list of String patterns. (example: "**/*.pom") - (can be null for no exclusions)

afterConfigurationChange

public void afterConfigurationChange(org.apache.archiva.redback.components.registry.Registry registry,
                                     String propertyName,
                                     Object propertyValue)
Specified by:
afterConfigurationChange in interface org.apache.archiva.redback.components.registry.RegistryListener

beforeConfigurationChange

public void beforeConfigurationChange(org.apache.archiva.redback.components.registry.Registry registry,
                                      String propertyName,
                                      Object propertyValue)
Specified by:
beforeConfigurationChange in interface org.apache.archiva.redback.components.registry.RegistryListener

initIncludes

private void initIncludes()

initialize

@PostConstruct
public void initialize()

getIncludes

public List<String> getIncludes()
Description copied from interface: RepositoryContentConsumer
Get the list of included file patterns for this consumer.

Specified by:
getIncludes in interface RepositoryContentConsumer
Returns:
the list of String patterns. (example: "**/*.pom")

getIndexingContext

private org.apache.maven.index.context.IndexingContext getIndexingContext()
                                                                   throws ConsumerException
Throws:
ConsumerException


Copyright © 2006-2013 The Apache Software Foundation. All Rights Reserved.