draft-laugstol-apache-maven-repository-rest-applications-06.txt   draft-laugstol-apache-maven-repository-rest-applications-07.txt 
skipping to change at page 1, line 41 skipping to change at page 1, line 41
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 14, 2012. This Internet-Draft will expire on May 14, 2012.
Table of Contents Table of Contents
1. TODOs and Notes . . . . . . . . . . . . . . . . . . . . . . . 2 1. TODOs and Notes . . . . . . . . . . . . . . . . . . . . . . . 2
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Goals: . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Goals: . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Implementation goals . . . . . . . . . . . . . . . . . . . 3 2.2. Implementation goals . . . . . . . . . . . . . . . . . . . 4
2.3. Areas explicitly not covered . . . . . . . . . . . . . . . 3 2.3. Areas explicitly not covered . . . . . . . . . . . . . . . 4
2.4. Deployment scenarios . . . . . . . . . . . . . . . . . . . 4 2.4. Deployment scenarios . . . . . . . . . . . . . . . . . . . 4
3. Specification . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Specification . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Media Types . . . . . . . . . . . . . . . . . . . . . . . 4 3.1. Media Types . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Operations . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2. Operations . . . . . . . . . . . . . . . . . . . . . . . . 4
3.3. Uploading Artifacts . . . . . . . . . . . . . . . . . . . 5 3.3. Uploading Artifacts . . . . . . . . . . . . . . . . . . . 5
3.4. Downloading Artifacts . . . . . . . . . . . . . . . . . . 5 3.4. Downloading Artifacts . . . . . . . . . . . . . . . . . . 5
3.4.1. Download a single artifact . . . . . . . . . . . . . . 5 3.4.1. Download a single artifact . . . . . . . . . . . . . . 5
3.4.2. Download a set of artifacts . . . . . . . . . . . . . 5 3.4.2. Download a set of artifacts . . . . . . . . . . . . . 6
3.5. Searching . . . . . . . . . . . . . . . . . . . . . . . . 5 3.5. Searching . . . . . . . . . . . . . . . . . . . . . . . . 6
3.6. List Repositories . . . . . . . . . . . . . . . . . . . . 6 3.6. List Repositories . . . . . . . . . . . . . . . . . . . . 6
4. Security Aspects . . . . . . . . . . . . . . . . . . . . . . . 6 4. Security Aspects . . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Authentication and Authorization . . . . . . . . . . . . . 6 4.1. Authentication and Authorization . . . . . . . . . . . . . 6
5. User-Agent Considerations . . . . . . . . . . . . . . . . . . 6 5. User-Agent Considerations . . . . . . . . . . . . . . . . . . 6
5.1. Caching . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.1. Caching . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2. Multiple links . . . . . . . . . . . . . . . . . . . . . . 6 5.2. Multiple links . . . . . . . . . . . . . . . . . . . . . . 7
5.3. Forms . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5.3. Forms . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.4. Server Responses . . . . . . . . . . . . . . . . . . . . . 7 5.4. Server Responses . . . . . . . . . . . . . . . . . . . . . 7
5.4.1. Single Artifact . . . . . . . . . . . . . . . . . . . 7 5.4.1. Single Artifact . . . . . . . . . . . . . . . . . . . 7
5.4.2. Multiple Artifacts . . . . . . . . . . . . . . . . . . 7 5.4.2. Multiple Artifacts . . . . . . . . . . . . . . . . . . 7
5.4.2.1. text/uri-list . . . . . . . . . . . . . . . . . . 7 5.4.2.1. text/uri-list . . . . . . . . . . . . . . . . . . 7
5.5. HTTP Binding . . . . . . . . . . . . . . . . . . . . . . . 7 5.5. HTTP Binding . . . . . . . . . . . . . . . . . . . . . . . 7
6. Appendix: Words and Definitions . . . . . . . . . . . . . . . 7 6. Appendix: Words and Definitions . . . . . . . . . . . . . . . 8
7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
8.1. Link Relation: http://maven.apache.org/rel/pom . . . . . . 8 8.1. Link Relation: http://maven.apache.org/rel/pom . . . . . . 8
8.2. Link Relation: http://maven.apache.org/rel/md5 . . . . . . 8 8.2. Link Relation: http://maven.apache.org/rel/md5 . . . . . . 8
8.3. Link Relation: http://maven.apache.org/rel/sha1 . . . . . 8 8.3. Link Relation: http://maven.apache.org/rel/sha1 . . . . . 8
8.4. Media Type: text/vnd.maven.pom . . . . . . . . . . . . . . 8 8.4. Media Type: text/vnd.maven.pom . . . . . . . . . . . . . . 8
8.5. Media Type: text/vnd.maven.md5 . . . . . . . . . . . . . . 8 8.5. Media Type: text/vnd.maven.md5 . . . . . . . . . . . . . . 8
8.6. Media Type: text/vnd.maven.sha1 . . . . . . . . . . . . . 8 8.6. Media Type: text/vnd.maven.sha1 . . . . . . . . . . . . . 8
8.7. URN Registration: urn:maven:artifact . . . . . . . . . . . 8 8.7. URN Registration: urn:maven:artifact . . . . . . . . . . . 8
9. Security Considerations . . . . . . . . . . . . . . . . . . . 8 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9
11.1. Normative References . . . . . . . . . . . . . . . . . . 8 11.1. Normative References . . . . . . . . . . . . . . . . . . 9
11.2. Informative References . . . . . . . . . . . . . . . . . 9 11.2. Informative References . . . . . . . . . . . . . . . . . 9
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 9 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 10
1. TODOs and Notes 1. TODOs and Notes
o How should an artifact be identified? o How should an artifact be identified?
* A "Maven Coordinate" HTTP header? Maven-Coordinate: * A "Maven Coordinate" HTTP header? Maven-Coordinate:
groupId=com.example, artifactId=example, type=jar, groupId=com.example, artifactId=example, type=jar,
classifiers=awesome, version=1.2.3 classifiers=awesome, version=1.2.3
* A maven URI type? maven://groupId/artifactId/version? * A maven URI type? maven://groupId/artifactId/version?
skipping to change at page 3, line 4 skipping to change at page 2, line 57
POM POM
* "edit" link relation describing an external form of editing. * "edit" link relation describing an external form of editing.
useful if we don't want to include all the edit controls inside useful if we don't want to include all the edit controls inside
feeds. Reduces bandwidth and latency feeds. Reduces bandwidth and latency
* atom and collection+JSON seem like nice formats for * atom and collection+JSON seem like nice formats for
manipulating lists of artifacts. manipulating lists of artifacts.
* metalink looks like a nice way to include * metalink looks like a nice way to include
+ There are both a standalone XML format and a HTTP binding + There are both a standalone XML format and a HTTP binding
that can be used. It might be feasible to include metalink that can be used. It might be feasible to include metalink
inside atom and possibly metalink inside collection+JSON inside atom and possibly metalink inside collection+JSON
o Should this whole thing be turned into a more generic "artifact
repository". This would make it easier to support repositories
for particular scala versions (so you won't have to highjack
Maven's semantics with "artifactId = realArtifactId + "_" +
scalaVersion".
It would also be easier to add support for extra attributes like
"build number", "jenkins build", "henkins job name" and "build
timestamp".
How should these attributes be describes? One possible option is a
"profile" per repository that describe the possible attributs. You'd
get a "maven profile", "jenkins profile"/"ci profile" etc. Does the
values imply special values? Could a "maven profile" specify that
'if you upload an artifact with "build-number" set to "next" the
server will pick the next available build number'. Having the server
to a lot of work is in the vain of making it easier to implement user
agents, but at the same time you're specifying semantics that are to
be valid for all times.
Put this where it'll fit later: It is assumed that there will always Put this where it'll fit later: It is assumed that there will always
only be a single instance of an artifact + version. If two only be a single instance of an artifact + version. If two
repositories can resolve the same artifact any user agent can choose repositories can resolve the same artifact any user agent can choose
arbitrary which one it'll like to use. arbitrary which one it'll like to use.
This is important as some people download an artifact from one This is important as some people download an artifact from one
repository, modify it and upload it to another repository. This is repository, modify it and upload it to another repository. This is
sometimes done by operations when they consume artifacts from a sometimes done by operations when they consume artifacts from a
"developer" repository, inject some configuration variables and "developer" repository, inject some configuration variables and
pushes it to a "production" repository. pushes it to a "production" repository.
 End of changes. 8 change blocks. 
12 lines changed or deleted 33 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/