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() ); } }