Understanding Consumers in Apache Archiva
Archiva makes use of the concept of consumers. Consumers are components which consumes or processes an artifact. There are 2 types of consumers in Archiva: repository content consumers and database consumers.
Repository Content Consumers
The repository content consumers consume or process artifacts during repository scanning. For every artifact found in the repository, each consumer processes them. There are 8 available repository content consumers which can be configured in the Repository Scanning page. These are:
- auto-remove - Removes files in the repository being scanned if the file type matches any of the configured file types to be removed.
- auto-rename - Automatically renames common artifact mistakes.
- create-missing-checksums - Creates the md5 and sha1 checksum files of the artifact if there are none available in the repository.
- index-content - Adds the content of the artifact (specifically the pom) to the index, allowing the artifact to be searched in Archiva.
- metadata-updater - Updates artifact metadata files depending on the content of the repository.
- repository-purge - Removes old snapshots from the repository either by the number of days old or by the retention count.
- update-db-artifact - Adds the artifact (in the form of ArchivaArtifact) to the database.
- validate-checksums - Validates the checksum files of the artifact.
Database Consumers
The database consumers, on the other hand, consume or process artifacts during database scanning. The database consumers are split up into two types: the unprocessed artifacts consumers and the artifact cleanup consumers.
- Unprocessed Artifacts Consumers
These are consumers for those artifacts already in the index that haven't been processed yet, meaning the details about the artifact are not yet processed and stored in the database. There are 6 unprocessed artifact consumers which can be configured in the Database page:
- validate-repository-metadata - Verifies repository metadata files against database.
- index-archive-toc - Indexes the archiva table of contents for full text search.
- index-artifact - Indexes the artifact for the 'Find Artifact' functionality.
- update-db-project - Gets the details of the artifact from the pom and saves it into the database (as a project model)
- index-public-methods - Indexes the java public methods for full text search. This has been removed since 1.2. Public methods are indexed by the index-content consumer.
- update-db-bytecode-stats - Updates database with java bytecode stats.
- Artifact Cleanup Consumers
These are the consumers for cleaning up the database. There are 3 which can be configured in the Database page, and these are:
- not-present-remove-db-artifact - Removes the artifact from the database if the artifact no longer exists in the file system.
- not-present-remove-indexed - Removes the artifact from the index if the artifact no longer exists in the file system.
- not-present-remove-db-project - Removes the project model of the artifact from the database if the artifact itself no longer exists in the file system.