Jason van Zyl
Wed, 28 Feb 2007 07:47:01 -0800
On 28 Feb 07, at 9:50 AM 28 Feb 07, Joakim Erdfelt wrote:
Just so that we have "Joakim's plans" documented here .... Wagon Ideas.
Just a point which I think is important: keep any discussion of how this is configured separate from Maven and its configuration mechansim. What's falling out from the embedder is a session level configuration and a request level configuration. So you might want something in Wagon for the initial setup of a provider and then for a request. You might want to set a default timeout but allow it to be overridden at the request level.
1. Add Timeouts.
Question becomes, how do we configure this value?
Per Protocol? or Per Repository?
Session level with possible overrides at the request level. I think the Configuration for session and ExecutionRequest in Maven is a good model.
Can probably wait for 1.1.
Do we use the <server><configuration> section in the settings.xml?2. Add Client Header Identification.This would only be useful on some protocols (such as http / dav),but completely irrelevant on others. Jason could use this to track the uptake of specific versions of maven on the repo1.maven.org side. If we decide to do this for http, we can make it be a separate request header, or a modification of the USER-AGENT string.
Probably a Map passed into the session level, or request level configuration could then be used by the given provider to with what it wants with it. Otherwise you're going to get into crappy configuration models for each provider. This is what Velocity resource loaders do for specifics and it works well.
Can probably wait for 1.1.
3. Streaming Wagons.
This would definitely be good for piping content from one place to another without it having to hit the disk.
Can probably wait for 1.1.
4. Limited Wagon Transactions.
This becomes a problem when we have a deploy that modifies the
maven-metadata.xml
Again stop thinking about Maven, what's the use case here.
5. Deprecation of repository id / server id as the authentication
binding mechanism.
Use what precisely to bind to?
1. hostname
2. hostname:port
3. protocol://hostname:port
4. regex of any of the above
5. all of the above
The id sucks but this again can wait for 1.1.
6. Whitelists on repositories in pom.xml, based on groupId. (don't
bother searching this repository if the groupId doesn't match).
This should help optimize the repository searching. It's just a
piece of build optimization, anyone consuming the pom could just
as well ignore this optimization with no ill effects.
7. Password Encryption in the settings.xml
I welcome discussion.
Big +1 or -1 on any concept above.
I think all of these are good ideas but can probably wait until 1.1. We need to start releasing this stuff. I think the API is not quite right, but we can scrutinize the API later, let's release 1.0 and then move on. Maven 2.1 can use 1.1 and so you'll get lots of feedback from there.
And I realize that the concepts above are not wagon exclusive, but rather overlap with maven 2.1 too.
I say we can let Maven 2.1 provide use cases but don't let that completely shape the work being done.
jason.
- Joakim Trygve Laugstøl wrote:John Casey wrote:Hi, I just committed some changes to trunk that should restore backwardcompatibility for using older wagons (at least in the vast majority ofcases). It may still break if there is an older version of a wagon out there that doesn't extend from AbstractWagon (since the Wagon interface picked up like 5 new methods lately).Can we start talking about a Wagon 1.0-final release? What do we needto getthis done? It looks like the current roadmap only shows 3 outstandingissuesfor the next release. Does anyone have plans for finishing those, andare they enough to serve as a basis for a final release? I'm just trying to figure out what plans there are for this, since I'd liketo move toward a 2.1-alpha-1 release of maven, and this is going to be aprereq.I say release what Wagon is now as 1.0 (in other words no API breakage) and put Joakim's plans into Wagon 2.0. -- Trygve --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]