Author: pgier Date: Tue Aug 18 18:16:02 2009 New Revision: 805520 URL: http://svn.apache.org/viewvc?rev=805520&view=rev Log: [MRELEASE-372] Add property to configure branch base URL. Patch from Michael Mallete.
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java 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/RewritePomsForBranchPhase.java maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/DefaultScmRepositoryConfigurator.java maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java maven/release/trunk/maven-release-manager/src/test/resources/release.properties maven/release/trunk/maven-release-manager/src/test/resources/rewrite-release.properties 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/PropertiesReleaseDescriptorStore.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java (original) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java Tue Aug 18 18:16:02 2009 @@ -135,6 +135,10 @@ { properties.setProperty( "scm.tagBase", config.getScmTagBase() ); } + if ( config.getScmBranchBase() != null ) + { + properties.setProperty( "scm.branchBase", config.getScmBranchBase() ); + } if ( config.getScmReleaseLabel() != null ) { properties.setProperty( "scm.tag", config.getScmReleaseLabel() ); 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?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- 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 Tue Aug 18 18:16:02 2009 @@ -58,6 +58,7 @@ mergeInto.setScmReleaseLabel( mergeOverride( mergeInto.getScmReleaseLabel(), toBeMerged.getScmReleaseLabel() ) ); mergeInto.setScmTagBase( mergeOverride( mergeInto.getScmTagBase(), toBeMerged.getScmTagBase() ) ); + mergeInto.setScmBranchBase( mergeOverride( mergeInto.getScmBranchBase(), toBeMerged.getScmBranchBase() ) ); mergeInto.setScmUsername( mergeOverride( mergeInto.getScmUsername(), toBeMerged.getScmUsername() ) ); mergeInto.setScmPassword( mergeOverride( mergeInto.getScmPassword(), toBeMerged.getScmPassword() ) ); mergeInto.setScmPrivateKey( mergeOverride( mergeInto.getScmPrivateKey(), toBeMerged.getScmPrivateKey() ) ); @@ -134,6 +135,7 @@ releaseDescriptor.setScmPrivateKey( properties.getProperty( "scm.privateKey" ) ); releaseDescriptor.setScmPrivateKeyPassPhrase( properties.getProperty( "scm.passphrase" ) ); releaseDescriptor.setScmTagBase( properties.getProperty( "scm.tagBase" ) ); + releaseDescriptor.setScmBranchBase( properties.getProperty( "scm.branchBase" ) ); releaseDescriptor.setScmReleaseLabel( properties.getProperty( "scm.tag" ) ); releaseDescriptor.setScmCommentPrefix( properties.getProperty( "scm.commentPrefix" ) ); releaseDescriptor.setAdditionalArguments( properties.getProperty( "exec.additionalArguments" ) ); Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java (original) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java Tue Aug 18 18:16:02 2009 @@ -97,7 +97,7 @@ { Scm scm = project.getScm(); String branchName = releaseDescriptor.getScmReleaseLabel(); - String branchBase = releaseDescriptor.getScmTagBase(); + String branchBase = releaseDescriptor.getScmBranchBase(); String subDirectoryBranch = ""; // TODO: svn utils should take care of prepending this @@ -145,9 +145,9 @@ { subDirectoryBranch = scm.getUrl().substring( rootScm.getUrl().length() ); } - // use original tag base without protocol + // use original branch base without protocol String value = translator.translateBranchUrl( scm.getUrl(), branchName + subDirectoryBranch, - releaseDescriptor.getScmTagBase() ); + releaseDescriptor.getScmBranchBase() ); if ( !value.equals( scm.getUrl() ) ) { rewriteElement( "url", value, scmRoot, namespace ); Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/DefaultScmRepositoryConfigurator.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/DefaultScmRepositoryConfigurator.java?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/DefaultScmRepositoryConfigurator.java (original) +++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/DefaultScmRepositoryConfigurator.java Tue Aug 18 18:16:02 2009 @@ -141,6 +141,12 @@ { svnRepo.setTagBase( tagBase ); } + + String branchBase = releaseDescriptor.getScmBranchBase(); + if ( !StringUtils.isEmpty( branchBase ) ) + { + svnRepo.setBranchBase( branchBase ); + } } return repository; 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?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- 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 Tue Aug 18 18:16:02 2009 @@ -86,6 +86,15 @@ </description> </field> <field> + <name>scmBranchBase</name> + <version>1.0.0+</version> + <type>String</type> + <description> + Where you are going to put your branched sources + Example https://svn.apache.org/repos/asf/maven/plugins/branches + </description> + </field> + <field> <name>scmReleaseLabel</name> <version>1.0.0+</version> <type>String</type> @@ -649,6 +658,10 @@ { return false; } + if ( scmBranchBase != null ? !scmBranchBase.equals( that.scmBranchBase ) : that.scmBranchBase != null ) + { + return false; + } if ( scmSourceUrl != null ? !scmSourceUrl.equals( that.scmSourceUrl ) : that.scmSourceUrl != null ) { return false; @@ -732,6 +745,7 @@ result = 29 * result + ( preparationGoals != null ? preparationGoals.hashCode() : 0 ); result = 29 * result + ( pomFileName != null ? pomFileName.hashCode() : 0 ); result = 29 * result + ( scmTagBase != null ? scmTagBase.hashCode() : 0 ); + result = 29 * result + ( scmBranchBase != null ? scmBranchBase.hashCode() : 0 ); result = 29 * result + ( scmUsername != null ? scmUsername.hashCode() : 0 ); result = 29 * result + ( scmPassword != null ? scmPassword.hashCode() : 0 ); result = 29 * result + ( scmSourceUrl != null ? scmSourceUrl.hashCode() : 0 ); Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java (original) +++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java Tue Aug 18 18:16:02 2009 @@ -273,6 +273,7 @@ config.setScmPrivateKey( "private-key-write" ); config.setScmPrivateKeyPassPhrase( "passphrase-write" ); config.setScmTagBase( "tag-base-write" ); + config.setScmBranchBase( "branch-base-write" ); config.setScmReleaseLabel( "tag-write" ); config.setAdditionalArguments( "additional-args-write" ); config.setPreparationGoals( "preparation-goals-write" ); @@ -345,6 +346,7 @@ expected.setScmPrivateKey( "private-key" ); expected.setScmPrivateKeyPassPhrase( "passphrase" ); expected.setScmTagBase( "tagBase" ); + expected.setScmBranchBase( "branchBase" ); expected.setScmReleaseLabel( "tag" ); expected.setAdditionalArguments( "additional-arguments" ); expected.setPreparationGoals( "preparation-goals" ); Modified: maven/release/trunk/maven-release-manager/src/test/resources/release.properties URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/release.properties?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- maven/release/trunk/maven-release-manager/src/test/resources/release.properties (original) +++ maven/release/trunk/maven-release-manager/src/test/resources/release.properties Tue Aug 18 18:16:02 2009 @@ -24,6 +24,7 @@ scm.privateKey=private-key scm.passphrase=passphrase scm.tagBase=tagBase +scm.branchBase=branchBase scm.tag=tag exec.additionalArguments=additional-arguments Modified: maven/release/trunk/maven-release-manager/src/test/resources/rewrite-release.properties URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/rewrite-release.properties?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- maven/release/trunk/maven-release-manager/src/test/resources/rewrite-release.properties (original) +++ maven/release/trunk/maven-release-manager/src/test/resources/rewrite-release.properties Tue Aug 18 18:16:02 2009 @@ -24,3 +24,4 @@ scm.privateKey=private-key scm.passphrase=passphrase scm.tagBase=tagBase +scm.branchBase=branchBase 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?rev=805520&r1=805519&r2=805520&view=diff ============================================================================== --- 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 Tue Aug 18 18:16:02 2009 @@ -44,7 +44,16 @@ * @required */ private String branchName; - + + /** + * The branch base directory in SVN, you must define it if you don't use the standard svn layout (trunk/tags/branches). + * For example, <code>http://svn.apache.org/repos/asf/maven/plugins/branches</code>. The URL is an SVN URL and does not + * include the SCM provider and protocol. + * + * @parameter expression="${branchBase}" + */ + private String branchBase; + /** * Whether to update versions in the branch. * @@ -145,6 +154,7 @@ config.setUpdateDependencies( updateDependencies ); config.setAutoVersionSubmodules( autoVersionSubmodules ); config.setScmReleaseLabel( branchName ); + config.setScmBranchBase( branchBase ); config.setBranchCreation( true ); config.setUpdateBranchVersions( updateBranchVersions ); config.setUpdateWorkingCopyVersions( updateWorkingCopyVersions );