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]

Reply via email to