Add support for downloading and uploading JARDiff-ed Maven artifacts
--------------------------------------------------------------------

         Key: WAGON-44
         URL: http://jira.codehaus.org/browse/WAGON-44
     Project: wagon
        Type: Improvement

    Reporter: Cédric Vidal


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


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to