On 31/07/2007, at 12:43 PM, Joakim Erdfelt wrote:

I'm tired.
I'm tired of the confusion.
I'm tired of the lack of decision.

k, I have a proposal at the end, just working through the details.


The ability to serve the repository information to multiple clients is exactly the reason for splitting this logic out.

ok, I missed that. Thanks for clarifying.

The 4 clients.
* Apache Maven 2
* Apache Maven 1.1
* Apache Maven 1.0
* Apache Ivy

understood (though I still don't see the distinction between maven 1 versions). I'm also wondering if there is something we have to do now to support Ivy or if it "just works". Given that Ivy sully supports m2 repos now, I think this is a nice to have.


The 4 types of data that is fetched from the repository.
* Artifacts
* Versioned Metadata.xml
* Project (unversioned) Metadata.xml
* Checksum files

Not all types have these things, though - metadata is only applicable to Maven 2, and Ivy (and other repositories) likely have other files.


Since we hit collisions on the auto-discovery technique for maven 1 to maven 2 requests (ie: legacy vs default), the need to have a different 'view' to the repository is crucial. (one such collision in naming is when a metadata.xml file is requested and the path is detected as a maven 1 resource. there are more, but addressing each 'special case' will just result in a piece of code horribly convoluted and ultimately doomed to maintenance hell)

I thought it was maintainable for the set of clients listed so far, but if we look to support others than I can see how that might be the case, so fair enough.


Now instead of talking about layouts (legacy vs default) and paths as the means to an end, the idea of access or client identifiers in the URL was discussed. /get/${accessor_id}/${repo_id}/${resource}

I'm about to rip it apart and implement it as proposed, as I want to see it work, and no one has yet to propose a different viable solution to the issue.

I still don't like the format.

My proposal is this:
1) Please use /repository and /webdav instead of /get and /put.
2) please let a repository specify a default accessor_id so that the repository need not be so long
3) please saw repo_id and accessor_id

I think that is the best alternative here. What do others think - am I on another planet? :)


This support is important in archiva, and we are getting close to a 1.0 release.

That's why I'm being such a nuisance :)

- Brett

Reply via email to