-updated repositories configuration doc

-added consumers configuration contents


git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@597373 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Maria Odea B. Ching 2007-11-22 10:48:44 +00:00
parent 732de7e28f
commit 06dd8b155c
2 changed files with 120 additions and 30 deletions

View File

@ -1,8 +1,91 @@
------
Understanding Consumers in Apache Archiva
------
Maria Odea Ching
------
21 Nov 2007
------
~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements. See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership. The ASF licenses this file
~~ to you 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.
~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/guides/mini/guide-apt-format.html
Understanding Consumers in Apache Archiva
:STUB: This is a documentation stub.
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.
[[1]] 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.
* <update-db-bytecode-stats> - Updates database with java bytecode stats.
[]
[]
[[2]] 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.

View File

@ -28,8 +28,7 @@
Understanding Repository Configuration of Apache Archiva
~~NOTE TO MYSELF: Review this! and improve the format and the contents
~~ Some parts sounds confusing to me (or am i just tired?)
~~TODO: revise more as suggested by Jeff in the dev list
Archiva has two types of repository configuration: managed repository and remote repository.
@ -40,34 +39,39 @@ Understanding Repository Configuration of Apache Archiva
Managed repository fields:
1. identifier - the id of the repository. This must be unique.
* <identifier> - the id of the repository. This must be unique.
2. name - the name of the repository.
* <name> - the name of the repository.
3. directory - the location of the repository. If the path specified does not exist, Archiva will create the missing
* <directory> - the location of the repository. If the path specified does not exist, Archiva will create the missing
directories.
4. type - the repository layout (maven 2 or maven 1)
* <type> - the repository layout (maven 2 or maven 1)
5. cron - the cron schedule when repository scanning will be executed.
* <cron> - the cron schedule when repository scanning will be executed.
6. repository purge by days older - the first option for repository purge. Archiva will check how old the artifact is
* <repository purge by days older> - the first option for repository purge. Archiva will check how old the artifact is
and if it is older than the set number of days in this field, then the artifact will be deleted respecting the retention
count (see #7) of course. In order to disable the purge by number of days old and set Archiva to purge by retention count, just set the
repository purge field to 0. The maximum number of days which can be set here is 1000.
repository purge field to 0. The maximum number of days which can be set here is 1000. See the Repository Purge section
below for more details.
7. repository purge by retention count - the second option for repository purge. When running the repository purge, Archiva
will retain only the number of artifacts set for this field for a specific snapshot version.
* <repository purge by retention count> - the second option for repository purge. When running the repository purge, Archiva
will retain only the number of artifacts set for this field for a specific snapshot version. See the Repository Purge section
below for more details.
8. releases included - specifies whether there are released artifacts in the repository.
* <releases included> - specifies whether there are released artifacts in the repository.
9. snapshots included - specifies whether there are snapshot artifacts in the repository.
* <snapshots included> - specifies whether there are snapshot artifacts in the repository.
10. scannable - specifies whether the repository can be scanned.
* <scannable> - specifies whether the repository can be scanned, meaning it is a local repository which can be indexed, browsed,
purged, etc.
11. delete released snapshots - specifies whether to remove those snapshot artifacts which already has release versions
* <delete released snapshots> - specifies whether to remove those snapshot artifacts which already has release versions
of it in the repository during repository purge.
[]
Each repository has its own Webdav url. This allows the user to browse and access the repository via webdav. The url has the
following format:
@ -75,15 +79,11 @@ Understanding Repository Configuration of Apache Archiva
http://[URL TO ARCHIVA]/repository/[REPOSITORY ID] (e.g. http://localhost:8080/archiva/repository/releases).
+----+
Managed repositories can be explicitly scanned by clicking the 'Scan Repository Now' button in the repositories page. A pom
snippet is also available for each repository. The \<distributionManagement\> section can be copied and pasted into a
A pom snippet is also available for each repository. The \<distributionManagement\> section can be copied and pasted into a
project's pom to specify that the project will be deployed in that managed repository. The \<repositories\> section on the
other hand, can be copied and pasted to a project's pom.xml or to Maven's settings.xml to tell Maven to get artifacts
from the managed repository when building the project.
For more details about the repository purge from numbers 6 and 7 above, please take a look at the Repository Purge section
below.
* Remote Repository
A remote repository is a repository which resides remotely. These repositories are usually the proxied repositories. See
@ -91,17 +91,24 @@ http://[URL TO ARCHIVA]/repository/[REPOSITORY ID] (e.g. http://localhost:8080/a
Remote repository fields:
1. identifier - the id of the remote repository.
* <identifier> - the id of the remote repository.
2. name - the name of the remote repository.
* <name> - the name of the remote repository.
3. url - the url of the remote repository.
* <url> - the url of the remote repository.
4. username - the username (if authentication is needed) to be used to access the repository.
* <username> - the username (if authentication is needed) to be used to access the repository.
5. password - the password (if authentication is needed) to be used to access the repository.
* <password> - the password (if authentication is needed) to be used to access the repository.
6. type - the layout (maven 2 or maven 1) of the remote repository.
* <type> - the layout (maven 2 or maven 1) of the remote repository.
* Scanning a Repository
Repository scan can be executed on schedule or it can be explicitly executed by clicking the 'Scan Repository Now' button in
the repositories page. For every artifact found by the repository scanner, processing is done on this artifact by different
consumers. Examples of the processing done are: indexing, repository purge and database update. Details about consumers are
available in the Consumers page.
* Repository Purge
@ -124,7 +131,7 @@ Artifacts in the repository:
../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.pom
+----+
1. Repository Purge By Days Older
[[1]] Repository Purge By Days Older
Using this criteria for the purge, Archiva will check how old an artifact is and if it is older than the set value in the
repository purge by days older field, then the artifact will be deleted respecting the retention count of course.
@ -150,7 +157,7 @@ Artifacts in the repository:
This ensures that there is ALWAYS 1 artifact timestamped version retained for every unique version snapshot directory
of an artifact.
2. Repository Purge By Retention Count
[[2]] Repository Purge By Retention Count
If the repository purge by retention count field is set to 2, then only the artifacts artifact-x-20070113.034619-3.jar,
artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom will be retained