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


Reply via email to