mirror of https://github.com/apache/archiva.git
58 lines
3.2 KiB
Plaintext
58 lines
3.2 KiB
Plaintext
The following is the intended content model for the metadata content repository:
|
|
|
|
.
|
|
`-- repositories/
|
|
`-- central/
|
|
|-- config/
|
|
| |-- name=
|
|
| |-- storageUrl=
|
|
| `-- uri=
|
|
|-- content/
|
|
| `-- org/
|
|
| `-- apache/
|
|
| `-- archiva/
|
|
| `-- platform/ -- these are known as the namespace, of arbitrary depth. Equiv to groupId in Maven
|
|
| `-- scanner/ -- this is the project - equivalent to artifactId in Maven
|
|
| |-- 1.0-SNAPSHOT/ -- this is the version best used to describe the project ("marketed version")
|
|
| | |-- scanner-1.0-20091120.012345-1.pom/ -- filename is a node, each is distinct except for checksums, etc.
|
|
| | | |-- asc=
|
|
| | | |-- created=
|
|
| | | |-- maven:buildNumber=
|
|
| | | |-- maven:packaging=
|
|
| | | |-- maven:timestamp=
|
|
| | | |-- md5=
|
|
| | | |-- sha1=
|
|
| | | |-- size=
|
|
| | | |-- updated=
|
|
| | | `-- version= -- the actual version of the file, 1.0-20091120.012345-1
|
|
| | |-- created=
|
|
| | |-- description=
|
|
| | |-- name=
|
|
| | |-- organization.name=
|
|
| | |-- organization.url=
|
|
| | `-- updated=
|
|
| |-- maven:artifactId=
|
|
| `-- maven:groupId=
|
|
`-- metadata/
|
|
|
|
(To update - run "tree --dirstfirst -F" on the unpacked content-model.zip from the sandbox)
|
|
|
|
Notes:
|
|
|
|
1) Projects are just a single code project. They do not have subprojects - if such modeling needs to be done, then we can create a products
|
|
tree that will map what "Archiva 1.0" contains from the other repositories.
|
|
|
|
2) There is not Maven-native information here, other than that in the maven: namespace. pom & other files are not treated as special - they are
|
|
each stored and it is up to the reader to interpret
|
|
|
|
3) artifact data is not stored in the content repository (there is no data= property on the file). The information here is enough to locate the
|
|
file in the original storageUrl when it is requested
|
|
|
|
4) The API will still use separate namespace and project identifiers (the namespace can be null if there isn't one). This is chosen to allow
|
|
splitting the namespace on '.', and also allowing '.' in the project identifier without splitting
|
|
|
|
5) properties with '.' may be nested in other representations such as Java models or XML, if appropriate
|
|
|
|
6) we only keep one set of project information for a "version" - this differs from Maven's storage of one POM per snapshot. The Maven 2 module will
|
|
take the latest. Those that need Maven's behaviour should retrieve the POM directly. Implementations are also free to store as much information
|
|
as desired within the artifact node in addition to whatever is shared in the project version node. |