On 27-Jan-08, at 3:06 AM, Don Brown wrote:
One of my pain points with Maven is how slow it is to "download the
internet", so rather than bitch (or more accurately, continue
bitching), I decided to do something about it. I created a customized
build of Maven 2 (MNG-3379, WAGON-98) that, at least in my simple
tests, cut the dependency resolution time down by as much as 40%.
Two key components to this speedup:
* Connection pooling: Uses the http wagon instead of http-lightweight
and fixed incorrect http client initialization
James Dumay also worked on this. So you might want to talk to him or
look. I'm not sure if you're the Don Brown from Atlassian.
* Parallel resolution of artifacts - Uses a thread worker pool to
parallelize artifact resolution
You should also be aware of the rewrite that Oleg Gusakov started and
has a first working version for in maven-artifact trunk which will
result in a dramatic simplification and optimization of the artifact
resolution process. I'll push him to get the visualization tool he
created out to the community so people can see it in action.
I had hoped to make this change as a plugin, but I had to hack a bit
in the core of Maven and Wagon to get it to work correctly. The patch
as provided has a few disadvantages:
The connection pooling can certainly be integrated.
* Requires Java 5, but the backport jars could be substituted pretty
easily
We do this with maven-artifact on trunk already so that's not a
problem. Also you should make sure you're looking here:
http://svn.apache.org/repos/asf/maven/artifact/trunk/
As we're going to try and back port that to 2.0.x. Mark Hobson
experimented with this and it works, but we decided not to try and jam
it into the 2.0.8 release.
* Breaks some plugins due to commons-logging being in the Maven uber
jar (required by commons-httpclient), notably the apt plugin (maybe
more should use the isolatedRealm setting?)
* Screws up the progress monitor as multiple threads are updating it
Anyways, it'd be cool to get a version of this in Maven, but until
then, if you want to give it a go, I put the uber jar up on my Apache
space. I should be a drop-in replacement for any recent version of
Maven (tested with 2.0.7):
If you sync up with James, the connection pooling we can get into
Wagon. The artifact code please make sure you're working from maven-
artifact trunk as we'll make an attempt shortly to integrate that.
http://people.apache.org/~mrdon/maven-2.0.9-SNAPSHOT-uber.jar
Don
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder, Apache Maven
jason at sonatype dot com
----------------------------------------------------------
We know what we are, but know not what we may be.
-- Shakespeare
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]