You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ev...@apache.org on 2007/05/07 19:52:45 UTC

svn commit: r535938 - in /maven/release/trunk: maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ maven-release-manager/src/main/mdo/ maven-release-plug...

Author: evenisse
Date: Mon May  7 10:52:39 2007
New Revision: 535938

URL: http://svn.apache.org/viewvc?view=rev&rev=535938
Log:
o Clean MapVersionPhase code for branch creation
o Allow to update branch version and/or working copy versions and update to snapshot released versions in the branch, so a branch can be created from a tag too.

Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
    maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
    maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java?view=diff&rev=535938&r1=535937&r2=535938
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java Mon May  7 10:52:39 2007
@@ -69,6 +69,10 @@
         mergeInto.setUpdateDependencies( toBeMerged.isUpdateDependencies() );
         mergeInto.setCommitByProject( toBeMerged.isCommitByProject() );
         mergeInto.setUseReleaseProfile( toBeMerged.isUseReleaseProfile() );
+        mergeInto.setBranchCreation( toBeMerged.isBranchCreation() );
+        mergeInto.setUpdateBranchVersions( toBeMerged.isUpdateBranchVersions() );
+        mergeInto.setUpdateWorkingCopyVersions( toBeMerged.isUpdateWorkingCopyVersions() );
+        mergeInto.setUpdateVersionsToSnapshot( toBeMerged.isUpdateVersionsToSnapshot() );
 
         mergeInto.setAutoVersionSubmodules( toBeMerged.isAutoVersionSubmodules() );
 

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java?view=diff&rev=535938&r1=535937&r2=535938
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java Mon May  7 10:52:39 2007
@@ -80,13 +80,16 @@
 
             String nextVersion = getNextVersion( project, projectId, releaseDescriptor, result );
 
-            if ( convertToSnapshot && !convertToBranch )
+            if ( convertToSnapshot )
             {
-                releaseDescriptor.mapDevelopmentVersion( projectId, nextVersion );
-            }
-            else if ( convertToSnapshot && convertToBranch )
-            {
-                releaseDescriptor.mapDevelopmentVersion( projectId, project.getVersion() );
+                if ( releaseDescriptor.isBranchCreation() && convertToBranch )
+                {
+                    releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
+                }
+                else
+                {
+                    releaseDescriptor.mapDevelopmentVersion( projectId, nextVersion );
+                }
             }
             else
             {
@@ -98,13 +101,27 @@
                 MavenProject subProject = (MavenProject) i.next();
                 String subProjectId =
                     ArtifactUtils.versionlessKey( subProject.getGroupId(), subProject.getArtifactId() );
-                if ( convertToSnapshot && !convertToBranch )
-                {
-                    releaseDescriptor.mapDevelopmentVersion( subProjectId, nextVersion );
-                }
-                else if ( convertToSnapshot && convertToBranch )
+
+                if ( convertToSnapshot )
                 {
-                    releaseDescriptor.mapReleaseVersion( subProjectId, subProject.getVersion() );
+                    String v;
+                    if ( ArtifactUtils.isSnapshot( subProject.getVersion() ) )
+                    {
+                        v = nextVersion;
+                    }
+                    else
+                    {
+                        v = subProject.getVersion();
+                    }
+
+                    if ( releaseDescriptor.isBranchCreation() && convertToBranch )
+                    {
+                        releaseDescriptor.mapReleaseVersion( subProjectId, v );
+                    }
+                    else
+                    {
+                        releaseDescriptor.mapDevelopmentVersion( subProjectId, v );
+                    }
                 }
                 else
                 {
@@ -122,31 +139,20 @@
 
                 String nextVersion = getNextVersion( project, projectId, releaseDescriptor, result );
 
-                if ( convertToSnapshot && !convertToBranch)
-                {
-                    releaseDescriptor.mapDevelopmentVersion( projectId, nextVersion );
-                }
-                else if ( convertToSnapshot && convertToBranch )
+                if ( convertToSnapshot )
                 {
-                    if ( ArtifactUtils.isSnapshot( project.getVersion() ) )
+                    if ( releaseDescriptor.isBranchCreation() && convertToBranch )
                     {
                         releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
                     }
                     else
                     {
-                        releaseDescriptor.mapReleaseVersion( projectId, project.getVersion() );
+                        releaseDescriptor.mapDevelopmentVersion( projectId, nextVersion );
                     }
                 }
                 else
                 {
-                    if ( ArtifactUtils.isSnapshot( project.getVersion() ) )
-                    {
-                        releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
-                    }
-                    else
-                    {
-                        releaseDescriptor.mapReleaseVersion( projectId, project.getVersion() );
-                    }
+                    releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
                 }
             }
         }
@@ -184,63 +190,110 @@
 
         try
         {
-            if ( convertToSnapshot && !convertToBranch )
+            if ( convertToSnapshot )
             {
-                if ( version != null )
+                if ( releaseDescriptor.isBranchCreation() )
                 {
-                    VersionInfo versionInfo = version.getNextVersion();
-                    if ( versionInfo != null )
+                    if ( convertToBranch )
                     {
-                        nextVersion = versionInfo.getSnapshotVersionString();
+                        //branch modification
+                        if ( releaseDescriptor.isUpdateBranchVersions() && (
+                            ArtifactUtils.isSnapshot( project.getVersion() ) ||
+                                releaseDescriptor.isUpdateVersionsToSnapshot() ) )
+                        {
+                            if ( version != null )
+                            {
+                                nextVersion = version.getSnapshotVersionString();
+                            }
+
+                            if ( releaseDescriptor.isInteractive() )
+                            {
+                                nextVersion = prompter.prompt(
+                                    "What is the branch version for \"" + project.getName() + "\"? (" + projectId + ")",
+                                    nextVersion );
+                            }
+                            else
+                            {
+                                Map relVersions = releaseDescriptor.getDevelopmentVersions();
+                                if ( relVersions.containsKey( projectId ) )
+                                {
+                                    nextVersion = relVersions.remove( projectId ).toString();
+                                }
+                            }
+                        }
+                        else
+                        {
+                            nextVersion = project.getVersion();
+                        }
+
                     }
                     else
                     {
-                        nextVersion = "1.0-SNAPSHOT";
+                        //working copy modification
+                        if ( ArtifactUtils.isSnapshot( project.getVersion() ) &&
+                            releaseDescriptor.isUpdateWorkingCopyVersions() )
+                        {
+                            if ( version != null )
+                            {
+                                VersionInfo versionInfo = version.getNextVersion();
+                                if ( versionInfo != null )
+                                {
+                                    nextVersion = versionInfo.getSnapshotVersionString();
+                                }
+                                else
+                                {
+                                    nextVersion = "1.0-SNAPSHOT";
+                                }
+                            }
+
+                            if ( releaseDescriptor.isInteractive() )
+                            {
+                                nextVersion = prompter.prompt( "What is the new working copy version for \"" +
+                                    project.getName() + "\"? (" + projectId + ")", nextVersion );
+                            }
+                            else
+                            {
+                                Map devVersions = releaseDescriptor.getDevelopmentVersions();
+                                if ( devVersions.containsKey( projectId ) )
+                                {
+                                    nextVersion = devVersions.remove( projectId ).toString();
+                                }
+                            }
+                        }
+                        else
+                        {
+                            nextVersion = project.getVersion();
+                        }
                     }
                 }
-
-                if ( releaseDescriptor.isInteractive() )
-                {
-                    nextVersion = prompter.prompt(
-                        "What is the new development version for \"" + project.getName() + "\"? (" + projectId + ")",
-                        nextVersion );
-                }
                 else
                 {
-                    Map devVersions = releaseDescriptor.getDevelopmentVersions();
-                    if ( devVersions.containsKey( projectId ) )
-                    {
-                        nextVersion = devVersions.remove( projectId ).toString();
-                    }
-                }
-            }
-            else if ( convertToSnapshot && convertToBranch )
-            {
-                if ( ArtifactUtils.isSnapshot( project.getVersion() ) )
-                {
                     if ( version != null )
                     {
-                        nextVersion = version.getSnapshotVersionString();
+                        VersionInfo versionInfo = version.getNextVersion();
+                        if ( versionInfo != null )
+                        {
+                            nextVersion = versionInfo.getSnapshotVersionString();
+                        }
+                        else
+                        {
+                            nextVersion = "1.0-SNAPSHOT";
+                        }
                     }
 
                     if ( releaseDescriptor.isInteractive() )
                     {
-                        nextVersion = prompter.prompt(
-                            "What is the branch version for \"" + project.getName() + "\"? (" + projectId + ")",
-                            nextVersion );
+                        nextVersion = prompter.prompt( "What is the new development version for \"" +
+                            project.getName() + "\"? (" + projectId + ")", nextVersion );
                     }
                     else
                     {
-                        Map relVersions = releaseDescriptor.getDevelopmentVersions();
-                        if ( relVersions.containsKey( projectId ) )
+                        Map devVersions = releaseDescriptor.getDevelopmentVersions();
+                        if ( devVersions.containsKey( projectId ) )
                         {
-                            nextVersion = relVersions.remove( projectId ).toString();
+                            nextVersion = devVersions.remove( projectId ).toString();
                         }
                     }
-                }
-                else
-                {
-                    nextVersion = project.getVersion();
                 }
             }
             else

Modified: maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo?view=diff&rev=535938&r1=535937&r2=535938
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo (original)
+++ maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo Mon May  7 10:52:39 2007
@@ -310,6 +310,38 @@
             The commits must be done by modules or not. Set it to true in case of flat directory structure.
           </description>
         </field>
+        <field>
+          <name>branchCreation</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description>
+            Whether to create a branch instead of do a release.
+          </description>
+        </field>
+        <field>
+          <name>updateBranchVersions</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description>
+            Whether to update branch POM versions.
+          </description>
+        </field>
+        <field>
+          <name>updateWorkingCopyVersions</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description>
+            Whether to update working copy POM versions.
+          </description>
+        </field>
+        <field>
+          <name>updateVersionsToSnapshot</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description>
+            Whether to update branch versions to SNAPSHOT.
+          </description>
+        </field>
 
         <!-- Announcement Information
 

Modified: maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java?view=diff&rev=535938&r1=535937&r2=535938
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java (original)
+++ maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java Mon May  7 10:52:39 2007
@@ -45,6 +45,27 @@
     private String branchName;
 
     /**
+     * Whether to update versions in the branch.
+     *
+     * @parameter expression="${updateBranchVersions}" default-value="false"
+     */
+    private boolean updateBranchVersions;
+
+    /**
+     * Whether to update versions in the working copy.
+     *
+     * @parameter expression="${updateWorkingCopyVersions}" default-value="true"
+     */
+    private boolean updateWorkingCopyVersions;
+
+    /**
+     * Whether to update versions to SNAPSHOT in the branch.
+     *
+     * @parameter expression="${updateVersionsToSnapshot}" default-value="true"
+     */
+    private boolean updateVersionsToSnapshot;
+
+    /**
      * Whether to use "edit" mode on the SCM, to lock the file for editing during SCM operations.
      *
      * @parameter expression="${useEditMode}" default-value="false"
@@ -97,6 +118,11 @@
         config.setUpdateDependencies( updateDependencies );
         config.setAutoVersionSubmodules( autoVersionSubmodules );
         config.setScmReleaseLabel( branchName );
+        config.setBranchCreation( true );
+        config.setUpdateBranchVersions( updateBranchVersions );
+        config.setUpdateWorkingCopyVersions( updateWorkingCopyVersions );
+        config.setUpdateVersionsToSnapshot( updateVersionsToSnapshot );
+
         try
         {
             releaseManager.branch( config, settings, reactorProjects, dryRun );
@@ -107,6 +133,7 @@
         }
         catch ( ReleaseFailureException e )
         {
+            e.printStackTrace();
             throw new MojoFailureException( e.getMessage() );
         }
     }