[MRM-1025] add other properties to the content model from maven metadata and filesystem

git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1025@886053 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Porter 2009-12-02 05:34:27 +00:00
parent 92ff5796fc
commit 42122ac3df
1 changed files with 89 additions and 81 deletions

View File

@ -10,83 +10,90 @@ The following is the intended content model for the metadata content repository:
|-- content/
| `-- org/
| `-- apache/
| `-- archiva/
| `-- platform/
| |-- scanner/
| | |-- 1.0-SNAPSHOT/
| | | |-- scanner-1.0-20091120.012345-1.pom/
| | | | |-- asc=
| | | | |-- created=
| | | | |-- maven:buildNumber=
| | | | |-- maven:classifier
| | | | |-- maven:timestamp=
| | | | |-- maven:type=
| | | | |-- md5=
| | | | |-- sha1=
| | | | |-- size=
| | | | |-- updated=
| | | | `-- version=
| | | |-- ciManagement.system=
| | | |-- ciManagement.url=
| | | |-- created=
| | | |-- dependencies.0.artifactId=
| | | |-- dependencies.0.classifier=
| | | |-- dependencies.0.groupId=
| | | |-- dependencies.0.optional=
| | | |-- dependencies.0.scope=
| | | |-- dependencies.0.systemPath=
| | | |-- dependencies.0.type=
| | | |-- dependencies.0.version=
| | | |-- description=
| | | |-- individuals.0.email=
| | | |-- individuals.0.name=
| | | |-- individuals.0.properties.scmId=
| | | |-- individuals.0.roles.0=
| | | |-- individuals.0.timezone=
| | | |-- issueManagement.system=
| | | |-- issueManagement.url=
| | | |-- licenses.0.name=
| | | |-- licenses.0.url=
| | | |-- mailingLists.0.mainArchiveUrl=
| | | |-- mailingLists.0.name=
| | | |-- mailingLists.0.otherArchives.0=
| | | |-- mailingLists.0.postAddress=
| | | |-- mailingLists.0.subscribeAddress=
| | | |-- mailingLists.0.unsubscribeAddress=
| | | |-- maven:buildExtensions.0.artifactId=
| | | |-- maven:buildExtensions.0.groupId=
| | | |-- maven:buildExtensions.0.version=
| | | |-- maven:packaging=
| | | |-- maven:parent.artifactId=
| | | |-- maven:parent.groupId=
| | | |-- maven:parent.version=
| | | |-- maven:plugins.0.artifactId=
| | | |-- maven:plugins.0.groupId=
| | | |-- maven:plugins.0.reporting=
| | | |-- maven:plugins.0.version=
| | | |-- maven:properties.mavenVersion=
| | | |-- maven:repositories.0.id=
| | | |-- maven:repositories.0.layout=
| | | |-- maven:repositories.0.name=
| | | |-- maven:repositories.0.plugins=
| | | |-- maven:repositories.0.releases=
| | | |-- maven:repositories.0.snapshots=
| | | |-- maven:repositories.0.url=
| | | |-- name=
| | | |-- organization.favicon=
| | | |-- organization.logo=
| | | |-- organization.name=
| | | |-- organization.url=
| | | |-- relocatedTo.namespace=
| | | |-- relocatedTo.project=
| | | |-- relocatedTo.projectVersion=
| | | |-- scm.connection=
| | | |-- scm.developerConnection=
| | | |-- scm.url=
| | | |-- updated=
| | | `-- url=
| | `-- maven:artifactId=
| `-- maven:groupId=
| |-- archiva/
| | `-- platform/
| | |-- scanner/
| | | |-- 1.0-SNAPSHOT/
| | | | |-- scanner-1.0-20091120.012345-1.pom/
| | | | | |-- asc=
| | | | | |-- created=
| | | | | |-- fileCreated=
| | | | | |-- fileLastModified=
| | | | | |-- maven:buildNumber=
| | | | | |-- maven:classifier
| | | | | |-- maven:timestamp=
| | | | | |-- maven:type=
| | | | | |-- md5=
| | | | | |-- sha1=
| | | | | |-- size=
| | | | | |-- updated=
| | | | | `-- version=
| | | | |-- ciManagement.system=
| | | | |-- ciManagement.url=
| | | | |-- created=
| | | | |-- dependencies.0.artifactId=
| | | | |-- dependencies.0.classifier=
| | | | |-- dependencies.0.groupId=
| | | | |-- dependencies.0.optional=
| | | | |-- dependencies.0.scope=
| | | | |-- dependencies.0.systemPath=
| | | | |-- dependencies.0.type=
| | | | |-- dependencies.0.version=
| | | | |-- description=
| | | | |-- individuals.0.email=
| | | | |-- individuals.0.name=
| | | | |-- individuals.0.properties.scmId=
| | | | |-- individuals.0.roles.0=
| | | | |-- individuals.0.timezone=
| | | | |-- issueManagement.system=
| | | | |-- issueManagement.url=
| | | | |-- licenses.0.name=
| | | | |-- licenses.0.url=
| | | | |-- mailingLists.0.mainArchiveUrl=
| | | | |-- mailingLists.0.name=
| | | | |-- mailingLists.0.otherArchives.0=
| | | | |-- mailingLists.0.postAddress=
| | | | |-- mailingLists.0.subscribeAddress=
| | | | |-- mailingLists.0.unsubscribeAddress=
| | | | |-- maven:buildExtensions.0.artifactId=
| | | | |-- maven:buildExtensions.0.groupId=
| | | | |-- maven:buildExtensions.0.version=
| | | | |-- maven:packaging=
| | | | |-- maven:parent.artifactId=
| | | | |-- maven:parent.groupId=
| | | | |-- maven:parent.version=
| | | | |-- maven:plugins.0.artifactId=
| | | | |-- maven:plugins.0.groupId=
| | | | |-- maven:plugins.0.reporting=
| | | | |-- maven:plugins.0.version=
| | | | |-- maven:properties.mavenVersion=
| | | | |-- maven:repositories.0.id=
| | | | |-- maven:repositories.0.layout=
| | | | |-- maven:repositories.0.name=
| | | | |-- maven:repositories.0.plugins=
| | | | |-- maven:repositories.0.releases=
| | | | |-- maven:repositories.0.snapshots=
| | | | |-- maven:repositories.0.url=
| | | | |-- name=
| | | | |-- organization.favicon=
| | | | |-- organization.logo=
| | | | |-- organization.name=
| | | | |-- organization.url=
| | | | |-- relocatedTo.namespace=
| | | | |-- relocatedTo.project=
| | | | |-- relocatedTo.projectVersion=
| | | | |-- scm.connection=
| | | | |-- scm.developerConnection=
| | | | |-- scm.url=
| | | | |-- updated=
| | | | `-- url=
| | | `-- maven:artifactId=
| | `-- maven:groupId=
| `-- maven/
| `-- plugins/
| |-- maven:groupId=
| |-- maven:plugins.compiler.artifactId=
| `-- maven:plugins.compiler.name=
`-- references/
`-- org/
`-- apache/
@ -117,10 +124,9 @@ The following is the intended content model for the metadata content repository:
`-- 1.0-SNAPSHOT/
`-- referenceType=dependency
(To update - run "tree --dirstfirst -F" on the unpacked content-model.zip from the sandbox)
Notes:
Notes:
*) config should be reflected to an external configuration file and only stored in the content repository for purposes
of accessing through a REST API, for example
@ -162,7 +168,10 @@ Notes:
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.
*) created/updated timestamps may be maintained by the metadata repository implementation
*) created/updated timestamps may be maintained by the metadata repository implementation for the metadata itself.
Timestamps for individual files are stored as additional properties (fileCreated, fileLastModified). It may make
sense to add a "discovered" timestamp if an artifact is known to be created at a different time to which it is added
to the 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.
@ -180,4 +189,3 @@ Notes:
*) Future possibilities:
- audit metadata on artifacts (who uploaded, when, and how), or whether it was discovered by scanning