org.apache.archiva.consumers.core
Class MetadataUpdaterConsumer

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

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

MetadataUpdaterConsumer will create and update the metadata present within the repository.


Field Summary
private  ArchivaConfiguration configuration
           
private  String description
          default-value="Update / Create maven-metadata.xml files"
private  FileTypes filetypes
           
private  String id
          default-value="metadata-updater"
private  List<String> includes
           
private  org.slf4j.Logger log
           
private  MetadataTools metadataTools
           
private  ManagedRepositoryContent repository
           
private  File repositoryDir
           
private  RepositoryContentFactory repositoryFactory
           
private  long scanStartTimestamp
           
private static String TYPE_METADATA_BAD_INTERNAL_REF
           
private static String TYPE_METADATA_IO
           
private static String TYPE_METADATA_WRITE_FAILURE
           
 
Constructor Summary
MetadataUpdaterConsumer()
           
 
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 repoConfig, 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.
 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)
           
 void setIncludes(List<String> includes)
           
private  void updateProjectMetadata(ArtifactReference artifact, String path)
           
private  void updateVersionMetadata(ArtifactReference artifact, String path)
           
 
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

id

private String id
default-value="metadata-updater"


description

private String description
default-value="Update / Create maven-metadata.xml files"


repositoryFactory

@Inject
private RepositoryContentFactory repositoryFactory

metadataTools

@Inject
private MetadataTools metadataTools

configuration

@Inject
private ArchivaConfiguration configuration

filetypes

@Inject
private FileTypes filetypes

TYPE_METADATA_BAD_INTERNAL_REF

private static final String TYPE_METADATA_BAD_INTERNAL_REF
See Also:
Constant Field Values

TYPE_METADATA_WRITE_FAILURE

private static final String TYPE_METADATA_WRITE_FAILURE
See Also:
Constant Field Values

TYPE_METADATA_IO

private static final String TYPE_METADATA_IO
See Also:
Constant Field Values

repository

private ManagedRepositoryContent repository

repositoryDir

private File repositoryDir

includes

private List<String> includes

scanStartTimestamp

private long scanStartTimestamp
Constructor Detail

MetadataUpdaterConsumer

public MetadataUpdaterConsumer()
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.

setIncludes

public void setIncludes(List<String> includes)

beginScan

public void beginScan(ManagedRepository repoConfig,
                      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:
repoConfig - 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)

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)

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

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

updateProjectMetadata

private void updateProjectMetadata(ArtifactReference artifact,
                                   String path)

updateVersionMetadata

private void updateVersionMetadata(ArtifactReference artifact,
                                   String path)

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.

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()


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