Maven Wagon

Add support for downloading and uploading JARDiff-ed Maven artifacts

Details

  • Type: Improvement Improvement
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: 1.1
  • Component/s: New Wagons
  • Labels:
    None
  • Number of attachments :
    0

Description

I originally posted this idea in the MRM project but realized that it could nicely be applied to all wagons.

It would save bandwith, accelerate artifact downloading and enhance the maven 2 experience to use the same JARDiff algorithm as the one used in the JnlpDownloadServlet which is fully documented here:
http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/downloadservletguide.html

The idea is to download (or upload) the incremental updates to a JAR instead of the full JAR.

There is already support for this algorithm in the maven community in the JNLP related Maven Webstart Plugin:
http://mojo.codehaus.org/webstart-maven-plugin-parent/webstart-maven-plugin/

Here a possible scenario for upload and download:

  • UPLOAD: Given that version 1.1 of my-artifact-1.1.jar is already deployed and that I deploy version 1.2 of that same artifact:
  • upload my-artifact-1.2.jar
  • download my-artifact-1.1.jar
  • compute JARDiff between my-artifact-1.1.jar and my-artifact-1.2.jar
  • upload the jardiff
  • DOWNLOAD: Given that I already have version 1.1 of my artifact locally and that I want version 1.2 and that the JARDiff between versions 1.1 and 1.2 exists on the remote repository:
  • download JARDiff between my-artifact-1.1.jar and my-artifact-1.2.jar
  • generate my-artifact-1.2.jar locally by applying the JARDiff to my-artifact-1.1.jar

If the JARDiff doesn't exist, no problem, just download the whole my-artifact-1.2.jar

Today's repositories stay valid, the JARDiffs informations are used only when available. The drawback for static maven 2 repositories is the increase in disk storage required to store the JARDiffs. In MRM repositories, the JARDiff could be dynamically generated on demand.

Cheers

Issue Links

Activity

There are no comments yet on this issue.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: