Artifacts should be resolved in parallel, grouped by group id's to get around the lack of synchronization in the local repository. The patch does the following:
- Use a ThreadPoolExecutor to parallelize artifact resolution, but takes care not to resolve multiple artifacts from the same group id simultaneously. (requires Java 5)
- Makes the http wagon the default instead of the poor performing http-client
- Requires Java 5, but the backport jars could be substituted pretty easily
- 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
- Much faster when combined with the http wagon (
WAGON-98). I was seeing 40% improvement on some test builds.