[ http://jira.codehaus.org/browse/MNG-3966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oleg Gusakov closed MNG-3966. ----------------------------- Resolution: Fixed approved > Requirements (User Story) > ------------------------- > > Key: MNG-3966 > URL: http://jira.codehaus.org/browse/MNG-3966 > Project: Maven 2 > Issue Type: Sub-task > Components: Artifacts and Repositories > Affects Versions: 3.0-alpha-1 > Reporter: Oleg Gusakov > Assignee: Oleg Gusakov > Fix For: 3.0-alpha-2 > > > *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* > *Installer*: > * 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 > *Releaser*: > * packages in the updater uber-jar into *.cd* folder > * all dependencies are listed in *.cd/apache-maven.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 -- 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