Installer story:

      • updater script starts java in the maven home folder
      • user is presented a choice of all available Maven versions as one list. This list will include released versions and incremental snapshot versions.
      • user selects a version to up/down grade to
      • Maven instance is updated

      Releaser story:
      When creating a new Maven distribution, maintainer

      • created a list of all dependencies for the distro
      • creates a configuration descriptor, drops it into repository
      • adds this version to the available versions document at a fixed location in the repo
      • the new version is now available for users to install

      Technical details


      • updater uber jar is supplied with Maven, sits in .cd folder
      • available versions are stored in a preset document in a remote repository, defined by gav org.apache.maven:maven-versions:1.0::ver
      • pre-calculated list of all current dependencies is stored in .cd folder
      • updater:
        • calculates the list of dependencies for the new version as a runtime scope transitive closure of all gavs, listed in the descriptor
        • reads in the list of currently installed binaries
        • calculates #1 "to remove" and #2 "to install" deltas
        • removes the #1 binaries from lib folder
        • downloads, if necessary, #2 binaries and adds them into lib folder


      • packages in the updater uber-jar into .cd folder
      • all dependencies are listed in .cd/ file
        • for snapshot version - this list contains actual timestams in the versions
      • creates a configuration descriptor has the gav org.apache.maven:maven-cd:VERSION::cd
        • VERSION is the actual version of this distribution
        • for releases this descriptor can contain only upper level gav, which will calculate into the transitive closure
        • for snapshots this descriptor will have to list all the timestamed dependencies, because otherwise - POM dependenies in the repo are still -SNAPSHOT versions and would resolve into the latest snapshot. Because updater calculates a transitive closure of this list, listing timestamps here prevent latest from sneaking in
      • adds org.apache.maven:maven-cd:VERSION::cd version to the document, defined by gav org.apache.maven:maven-versions:1.0::ver
      • the new version is now available for users to install




            • Assignee:
              olle Olle Jonsson
              olle Olle Jonsson
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: