re-arrange docs and write up metadata repository

git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1025@909022 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Porter 2010-02-11 15:23:51 +00:00
parent 7cfe198d8a
commit 0709ac5238
6 changed files with 71 additions and 23 deletions

View File

@ -62,9 +62,11 @@ Archiva Developer's Documentation
* {{{./terminology.html} Terminology}}
* {{{./metadata.html} Repository metadata}}
* {{{./metadata-content-model.html} Repository metadata content model}}
* {{{./repositories.html} Repository APIs}}
* {{{./metadata-api.html} Repository metadata API and persistence}}
* {{{./repository-api.html} Repository APIs}}
* More Information

View File

@ -0,0 +1,46 @@
----
Metadata API
----
Metadata API and Persistence
The Metadata Java API is comprised of the following:
* The Java model
* The Metadata repository API
* The plugins for storing the metadata repository content
* Metadata Models
The Java model is a very simply representation of the metadata. Presently the following are represented:
* {{{./apidocs/org/apache/archiva/metadata/model/MetadataFacet.html} repository metadata facets}}
* {{{./apidocs/org/apache/archiva/metadata/model/ProjectMetadata.html} project metadata}}
* {{{./apidocs/org/apache/archiva/metadata/model/ProjectVersionMetadata.html} project version metadata}}
* various subtypes
More information can be found in the
{{{./apidocs/org/apache/archiva/metadata/model/package-summary.html} org.apache.archiva.metadata.model}} package,
or the {{{./metadata/metadata-model/index.html} metadata-model}} module.
* Metadata Repository API
The metadata repository API is responsible for accessing the metadata repository and persisting changes. This is
handled by the {{{./apidocs/org/apache/archiva/metadata/repository/MetadataRepository.html} MetadataRepository}}
class.
More information can be found in the {{{./metadata/metadata-repository-api/index.html} metadata-repository-api}}
module.
* Persistence
Currently, the only implementation of persistence for the metadata content is a flat-file option using Java
properties. The code is note yet production quality. You can find out more in the:
{{{./apidocs/org/apache/archiva/metadata/repository/file/FileMetadataRepository.html} FileMetadataRepository}}
class.

View File

@ -1,20 +1,17 @@
----
Metadata Repository
Metadata Control Model
----
Metadata Repository
Metadata Content Model
The metadata repository stores all known information about a repository in a common format that other plugins can
understand, and that eventually external applications will be able to query.
Dealing with metadata repositories covers two aspects: the content model, and the content repository access API
(and persistence).
* Content Model
The content model is designed such that it models the most likely structure of the data both for storage and
retrieval. For example, audit logs are stored by the time they occur, not grouped under an action.
* Content Model Structure
The following is a sample tree that represents the content model:
----
@ -174,6 +171,14 @@ Metadata Repository
This uses a typical content repository structure, where there is a path to a particular node (the last paths in
the structure above), and nodes can have properties and values (shown as <<<property=value>>> above).
Properties with '.' may be nested in other representations such as Java models or XML, if appropriate - this is
the decision of the content repository persistence implementation.
Additionally, while some information is stored at the most generic level in the metadata repository (eg
<<<maven:groupId>>>, <<<maven:artifactId>>>), for convenience when loaded by the implementation it may all be pushed
into the project version's information. The metadata repository implementation can decide how best to store and
retrieve the information.
<Note:> Some of the properties have been put in place temporarily but need to be revisited - for example the use
of index counters for the lists of Maven POM information are not ideal, and some Maven specific aspects of
the dependencies should become faceted content
@ -351,15 +356,3 @@ Metadata Repository
References are stored outside the main model so that their creation doesn't imply a "stub" model - we know if the
project exists whether a reference is created or not. References need not infer referential integrity.
~~ Java API
~~ access
~~ persistence
~~ properties with '.' may be nested in other representations such as Java models or XML, if appropriate
~~ while some information is stored at the most generic level in the metadata repository (eg maven:groupId,
maven:artifactId), for convenience when loaded by the implementation it may all be pushed into the projectVersion's
information. The metadata repository implementation can decide how best to store and retrieve the information.

View File

@ -0,0 +1,6 @@
----
Repository APIs
----
Repository APIs

View File

@ -34,8 +34,9 @@
<menu name="Developers">
<item name="Overview" href="/index.html" />
<item name="Terminology" href="/terminology.html" />
<item name="Metadata" href="/metadata.html" />
<item name="Repositories" href="/repositories.html" />
<item name="Metadata Control Model" href="/metadata-content-model.html" />
<item name="Metadata API" href="/metadata-api.html" />
<item name="Repository API" href="/repository-api.html" />
</menu>
<menu ref="modules" />
</body>