You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2018/02/10 16:02:51 UTC

[maven-release] 03/21: Introduce ReleaseDescriptorBuilder

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch MRELEASE-998
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit cbc4f9bbf9c700df68ac3a30c1a50ce393eb43f0
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Jan 21 23:54:32 2018 +0100

    Introduce ReleaseDescriptorBuilder
---
 maven-release-api/pom.xml                          |   4 +
 .../release/config/ReleaseDescriptorBuilder.java   | 362 +++++++++++++++++++++
 .../maven/plugins/release/AbstractReleaseMojo.java |  17 +-
 .../plugins/release/AbstractScmReleaseMojo.java    |   6 +-
 .../maven/plugins/release/BranchReleaseMojo.java   |   7 +-
 .../maven/plugins/release/PerformReleaseMojo.java  |   6 +-
 .../maven/plugins/release/PrepareReleaseMojo.java  |   7 +-
 .../maven/plugins/release/RollbackReleaseMojo.java |   2 +-
 .../maven/plugins/release/UpdateVersionsMojo.java  |   7 +-
 9 files changed, 395 insertions(+), 23 deletions(-)

diff --git a/maven-release-api/pom.xml b/maven-release-api/pom.xml
index 5e10e2e..c6b2360 100644
--- a/maven-release-api/pom.xml
+++ b/maven-release-api/pom.xml
@@ -42,6 +42,10 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
       <artifactId>maven-settings</artifactId>
     </dependency>
     <dependency>
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
new file mode 100644
index 0000000..35ed9d9
--- /dev/null
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
@@ -0,0 +1,362 @@
+package org.apache.maven.shared.release.config;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.List;
+
+import org.apache.maven.model.Scm;
+
+/**
+ * 
+ * @author Robert Scholte
+ * @since 3.0.0
+ */
+public class ReleaseDescriptorBuilder
+{
+    private final ReleaseDescriptor releaseDescriptor;
+    
+    public ReleaseDescriptorBuilder()
+    {
+        this.releaseDescriptor = new ReleaseDescriptor();
+    }
+
+    public ReleaseDescriptorBuilder addCheckModificationExclude( String string )
+    {
+        releaseDescriptor.addCheckModificationExclude( string );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setAddSchema( boolean addSchema )
+    {
+        releaseDescriptor.setAddSchema( addSchema );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setAdditionalArguments( String additionalArguments )
+    {
+        releaseDescriptor.setAdditionalArguments( additionalArguments );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setAllowTimestampedSnapshots( boolean allowTimestampedSnapshots )
+    {
+        releaseDescriptor.setAllowTimestampedSnapshots( allowTimestampedSnapshots );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setAutoVersionSubmodules( boolean autoVersionSubmodules )
+    {
+        releaseDescriptor.setAutoVersionSubmodules( autoVersionSubmodules );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setBranchCreation( boolean branchCreation )
+    {
+        releaseDescriptor.setBranchCreation( branchCreation );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setCheckModificationExcludes( List<String> checkModificationExcludes )
+    {
+        releaseDescriptor.setCheckModificationExcludes( checkModificationExcludes );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setCheckoutDirectory( String checkoutDirectory )
+    {
+        releaseDescriptor.setCheckoutDirectory( checkoutDirectory );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setCommitByProject( boolean commitByProject )
+    {
+        releaseDescriptor.setCommitByProject( commitByProject );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setCompletedPhase( String completedPhase )
+    {
+        releaseDescriptor.setCompletedPhase( completedPhase );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setCompletionGoals( String completionGoals )
+    {
+        releaseDescriptor.setCompletionGoals( completionGoals );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setDefaultDevelopmentVersion( String defaultDevelopmentVersion )
+    {
+        releaseDescriptor.setDefaultDevelopmentVersion( defaultDevelopmentVersion );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setDefaultReleaseVersion( String defaultReleaseVersion )
+    {
+        releaseDescriptor.setDefaultReleaseVersion( defaultReleaseVersion );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setDescription( String description )
+    {
+        releaseDescriptor.setDescription( description );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setGenerateReleasePoms( boolean generateReleasePoms )
+    {
+        releaseDescriptor.setGenerateReleasePoms( generateReleasePoms );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setInteractive( boolean interactive )
+    {
+        releaseDescriptor.setInteractive( interactive );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setLocalCheckout( boolean localCheckout )
+    {
+        releaseDescriptor.setLocalCheckout( localCheckout );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setModelEncoding( String modelEncoding )
+    {
+        releaseDescriptor.setModelEncoding( modelEncoding );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setName( String name )
+    {
+        releaseDescriptor.setName( name );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setPerformGoals( String performGoals )
+    {
+        releaseDescriptor.setPerformGoals( performGoals );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setPomFileName( String pomFileName )
+    {
+        releaseDescriptor.setPomFileName( pomFileName );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setPreparationGoals( String preparationGoals )
+    {
+        releaseDescriptor.setPreparationGoals( preparationGoals );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setProjectNamingPolicyId( String projectNamingPolicyId )
+    {
+        releaseDescriptor.setProjectNamingPolicyId( projectNamingPolicyId );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setProjectVersionPolicyId( String projectVersionPolicyId )
+    {
+        releaseDescriptor.setProjectVersionPolicyId( projectVersionPolicyId );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setPushChanges( boolean pushChanges )
+    {
+        releaseDescriptor.setPushChanges( pushChanges );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setReleaseStrategyId( String releaseStrategyId )
+    {
+        releaseDescriptor.setReleaseStrategyId( releaseStrategyId );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setRemoteTagging( boolean remoteTagging )
+    {
+        releaseDescriptor.setRemoteTagging( remoteTagging );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmBranchBase( String scmBranchBase )
+    {
+        releaseDescriptor.setScmBranchBase( scmBranchBase );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmCommentPrefix( String scmCommentPrefix )
+    {
+        releaseDescriptor.setScmCommentPrefix( scmCommentPrefix );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmId( String scmId )
+    {
+        releaseDescriptor.setScmId( scmId );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmPassword( String scmPassword )
+    {
+        releaseDescriptor.setScmPassword( scmPassword );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmPrivateKey( String scmPrivateKey )
+    {
+        releaseDescriptor.setScmPrivateKey( scmPrivateKey );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmPrivateKeyPassPhrase( String scmPrivateKeyPassPhrase )
+    {
+        releaseDescriptor.setScmPrivateKeyPassPhrase( scmPrivateKeyPassPhrase );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmRelativePathProjectDirectory( String scmRelativePathProjectDirectory )
+    {
+        releaseDescriptor.setScmRelativePathProjectDirectory( scmRelativePathProjectDirectory );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmReleaseLabel( String scmReleaseLabel )
+    {
+        releaseDescriptor.setScmReleaseLabel( scmReleaseLabel );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmReleasedPomRevision( String scmReleasedPomRevision )
+    {
+        releaseDescriptor.setScmReleasedPomRevision( scmReleasedPomRevision );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmSourceUrl( String scmSourceUrl )
+    {
+        releaseDescriptor.setScmSourceUrl( scmSourceUrl );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmTagBase( String scmTagBase )
+    {
+        releaseDescriptor.setScmTagBase( scmTagBase );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmTagNameFormat( String scmTagNameFormat )
+    {
+        releaseDescriptor.setScmTagNameFormat( scmTagNameFormat );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmUseEditMode( boolean scmUseEditMode )
+    {
+        releaseDescriptor.setScmUseEditMode( scmUseEditMode );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setScmUsername( String scmUsername )
+    {
+        releaseDescriptor.setScmUsername( scmUsername );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setSnapshotReleasePluginAllowed( boolean snapshotReleasePluginAllowed )
+    {
+        releaseDescriptor.setSnapshotReleasePluginAllowed( snapshotReleasePluginAllowed );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setSuppressCommitBeforeTagOrBranch( boolean suppressCommitBeforeTagOrBranch )
+    {
+        releaseDescriptor.setSuppressCommitBeforeTagOrBranch( suppressCommitBeforeTagOrBranch );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setUpdateBranchVersions( boolean updateBranchVersions )
+    {
+        releaseDescriptor.setUpdateBranchVersions( updateBranchVersions );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setUpdateDependencies( boolean updateDependencies )
+    {
+        releaseDescriptor.setUpdateDependencies( updateDependencies );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setUpdateVersionsToSnapshot( boolean updateVersionsToSnapshot )
+    {
+        releaseDescriptor.setUpdateVersionsToSnapshot( updateVersionsToSnapshot );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setUpdateWorkingCopyVersions( boolean updateWorkingCopyVersions )
+    {
+        releaseDescriptor.setUpdateWorkingCopyVersions( updateWorkingCopyVersions );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setUseReleaseProfile( boolean useReleaseProfile )
+    {
+        releaseDescriptor.setUseReleaseProfile( useReleaseProfile );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setWaitBeforeTagging( int waitBeforeTagging )
+    {
+        releaseDescriptor.setWaitBeforeTagging( waitBeforeTagging );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder setWorkingDirectory( String workingDirectory )
+    {
+        releaseDescriptor.setWorkingDirectory( workingDirectory );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder addReleaseVersion( String key, String value )
+    {
+        releaseDescriptor.addReleaseVersion( key, value );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder addDevelopmentVersion( String key, String value )
+    {
+        releaseDescriptor.addDevelopmentVersion( key, value );
+        return this;
+    }
+
+    public ReleaseDescriptorBuilder addOriginalScmInfo( String key, Scm value )
+    {
+        releaseDescriptor.addOriginalScmInfo( key, value );
+        return this;
+    }
+
+    public ReleaseDescriptor build()
+    {
+        return releaseDescriptor;
+    }
+}
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
index f6242ed..d926ef5 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java
@@ -22,6 +22,7 @@ package org.apache.maven.plugins.release;
 import java.io.File;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map.Entry;
 
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
@@ -31,6 +32,7 @@ import org.apache.maven.project.MavenProject;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.shared.release.ReleaseManager;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
 import org.apache.maven.shared.release.env.ReleaseEnvironment;
 import org.codehaus.plexus.util.StringUtils;
@@ -149,9 +151,9 @@ public abstract class AbstractReleaseMojo
      *
      * @return The release descriptor, never <code>null</code>.
      */
-    protected ReleaseDescriptor createReleaseDescriptor()
+    protected ReleaseDescriptorBuilder createReleaseDescriptor()
     {
-        ReleaseDescriptor descriptor = new ReleaseDescriptor();
+        ReleaseDescriptorBuilder descriptor = new ReleaseDescriptorBuilder();
 
         descriptor.setInteractive( settings.isInteractiveMode() );
 
@@ -279,16 +281,17 @@ public abstract class AbstractReleaseMojo
      * @param sysPropertiesConfig The configuration from the system properties to merge in, must not be
      *            <code>null</code>.
      */
-    protected void mergeCommandLineConfig( ReleaseDescriptor config, ReleaseDescriptor sysPropertiesConfig )
+    protected void mergeCommandLineConfig( ReleaseDescriptorBuilder config, ReleaseDescriptor sysPropertiesConfig )
     {
         // If the user specifies versions, these should override the existing versions
-        if ( sysPropertiesConfig.getReleaseVersions() != null )
+        for ( Entry<String, String> entry : sysPropertiesConfig.getReleaseVersions().entrySet() )
         {
-            config.getReleaseVersions().putAll( sysPropertiesConfig.getReleaseVersions() );
+            config.addReleaseVersion( entry.getKey(), entry.getValue() );
         }
-        if ( sysPropertiesConfig.getDevelopmentVersions() != null )
+
+        for ( Entry<String, String> entry : sysPropertiesConfig.getDevelopmentVersions().entrySet() )
         {
-            config.getDevelopmentVersions().putAll( sysPropertiesConfig.getDevelopmentVersions() );
+            config.addDevelopmentVersion( entry.getKey(), entry.getValue() );
         }
     }
 }
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
index b57aab4..2c3fbc4 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractScmReleaseMojo.java
@@ -26,7 +26,7 @@ import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.scm.manager.ScmManager;
-import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 
 /**
  * Abstract Mojo containing SCM parameters
@@ -127,9 +127,9 @@ public abstract class AbstractScmReleaseMojo
     }
 
     @Override
-    protected ReleaseDescriptor createReleaseDescriptor()
+    protected ReleaseDescriptorBuilder createReleaseDescriptor()
     {
-        ReleaseDescriptor descriptor = super.createReleaseDescriptor();
+        ReleaseDescriptorBuilder descriptor = super.createReleaseDescriptor();
 
         descriptor.setScmPassword( password );
         descriptor.setScmReleaseLabel( tag );
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
index 14829ea..d99beae 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/BranchReleaseMojo.java
@@ -29,6 +29,7 @@ import org.apache.maven.shared.release.ReleaseBranchRequest;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.apache.maven.shared.release.config.ReleaseUtils;
 
 /**
@@ -217,7 +218,7 @@ public class BranchReleaseMojo
     {
         super.execute();
 
-        ReleaseDescriptor config = createReleaseDescriptor();
+        ReleaseDescriptorBuilder config = createReleaseDescriptor();
         config.setAddSchema( addSchema );
         config.setScmUseEditMode( useEditMode );
         config.setUpdateDependencies( updateDependencies );
@@ -237,7 +238,7 @@ public class BranchReleaseMojo
 
         // Create a config containing values from the session properties (ie command line properties with cli).
         ReleaseDescriptor sysPropertiesConfig
-                = ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getExecutionProperties() );
+                = ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getUserProperties() );
         mergeCommandLineConfig( config, sysPropertiesConfig );
 
         if ( checkModificationExcludeList != null )
@@ -253,7 +254,7 @@ public class BranchReleaseMojo
         try
         {
             ReleaseBranchRequest branchRequest = new ReleaseBranchRequest();
-            branchRequest.setReleaseDescriptor( config );
+            branchRequest.setReleaseDescriptor( config.build() );
             branchRequest.setReleaseEnvironment( getReleaseEnvironment() );
             branchRequest.setReactorProjects( getReactorProjects() );
             branchRequest.setDryRun( dryRun );
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
index 4826f78..039d710 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
@@ -31,7 +31,7 @@ import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleasePerformRequest;
-import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -166,7 +166,7 @@ public class PerformReleaseMojo
         {
             setDeploymentRepository();
             // Note that the working directory here is not the same as in the release configuration, so don't reuse that
-            ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
+            ReleaseDescriptorBuilder releaseDescriptor = createReleaseDescriptor();
             if ( connectionUrl != null )
             {
                 releaseDescriptor.setScmSourceUrl( connectionUrl );
@@ -191,7 +191,7 @@ public class PerformReleaseMojo
             releaseDescriptor.setPerformGoals( goals );
 
             ReleasePerformRequest performRequest  = new ReleasePerformRequest();
-            performRequest.setReleaseDescriptor( releaseDescriptor );
+            performRequest.setReleaseDescriptor( releaseDescriptor.build() );
             performRequest.setReleaseEnvironment( getReleaseEnvironment() );
             performRequest.setReactorProjects( getReactorProjects() );
             performRequest.setDryRun( dryRun );
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
index a73962d..d6f23c9 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
@@ -29,6 +29,7 @@ import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleasePrepareRequest;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.apache.maven.shared.release.config.ReleaseUtils;
 
 /**
@@ -259,7 +260,7 @@ public class PrepareReleaseMojo
         // above
         super.execute();
 
-        ReleaseDescriptor config = createReleaseDescriptor();
+        ReleaseDescriptorBuilder config = createReleaseDescriptor();
         config.setAddSchema( addSchema );
         config.setGenerateReleasePoms( generateReleasePoms );
         config.setScmUseEditMode( useEditMode );
@@ -291,11 +292,11 @@ public class PrepareReleaseMojo
 
         // Create a config containing values from the session properties (ie command line properties with cli).
         ReleaseDescriptor sysPropertiesConfig =
-            ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getExecutionProperties() );
+            ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getUserProperties() );
         mergeCommandLineConfig( config, sysPropertiesConfig );
         
         ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
-        prepareRequest.setReleaseDescriptor( config );
+        prepareRequest.setReleaseDescriptor( config.build() );
         prepareRequest.setReleaseEnvironment( getReleaseEnvironment() );
         prepareRequest.setReactorProjects( getReactorProjects() );
         prepareRequest.setResume( resume );
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java
index cefcbbe..e2232a6 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/RollbackReleaseMojo.java
@@ -49,7 +49,7 @@ public class RollbackReleaseMojo
         try
         {
             ReleaseRollbackRequest rollbackRequest = new ReleaseRollbackRequest();
-            rollbackRequest.setReleaseDescriptor( createReleaseDescriptor() );
+            rollbackRequest.setReleaseDescriptor( createReleaseDescriptor().build() );
             rollbackRequest.setReleaseEnvironment( getReleaseEnvironment() );
             rollbackRequest.setReactorProjects( getReactorProjects()  );
             
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java
index 242ed2b..f4a1398 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/UpdateVersionsMojo.java
@@ -28,6 +28,7 @@ import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleaseUpdateVersionsRequest;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
 import org.apache.maven.shared.release.config.ReleaseUtils;
 
 /**
@@ -98,7 +99,7 @@ public class UpdateVersionsMojo
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
-        ReleaseDescriptor config = createReleaseDescriptor();
+        ReleaseDescriptorBuilder config = createReleaseDescriptor();
         config.setAddSchema( addSchema );
         config.setAutoVersionSubmodules( autoVersionSubmodules );
         config.setDefaultDevelopmentVersion( developmentVersion );
@@ -111,13 +112,13 @@ public class UpdateVersionsMojo
 
         // Create a config containing values from the session properties (ie command line properties with cli).
         ReleaseDescriptor sysPropertiesConfig =
-            ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getExecutionProperties() );
+            ReleaseUtils.copyPropertiesToReleaseDescriptor( session.getUserProperties() );
         mergeCommandLineConfig( config, sysPropertiesConfig );
 
         try
         {
             ReleaseUpdateVersionsRequest updateVersionsRequest = new ReleaseUpdateVersionsRequest();
-            updateVersionsRequest.setReleaseDescriptor( config );
+            updateVersionsRequest.setReleaseDescriptor( config.build() );
             updateVersionsRequest.setReleaseEnvironment( getReleaseEnvironment() );
             updateVersionsRequest.setReactorProjects( getReactorProjects() );
 

-- 
To stop receiving notification emails like this one, please contact
rfscholte@apache.org.