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