Uploaded image for project: 'Maven Wagon'
  1. Maven Wagon
  2. WAGON-44

Add support for downloading and uploading JARDiff-ed Maven artifacts

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Auto Closed
    • None
    • None
    • New Wagons
    • None

    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

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              cedricvidal Cédric Vidal
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: