[ 
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

        

Reply via email to