diff --git a/maven-release-api/pom.xml b/maven-release-api/pom.xml
index e96feff3e..03985e6e7 100644
--- a/maven-release-api/pom.xml
+++ b/maven-release-api/pom.xml
@@ -40,6 +40,18 @@
org.apache.maven
maven-artifact
+
+ org.apache.maven
+ maven-core
+
+
+ org.apache.maven
+ maven-model
+
+
+ org.apache.maven
+ maven-settings
+
org.eclipse.aether
aether-util
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseExecutionException.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/ReleaseExecutionException.java
similarity index 100%
rename from maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseExecutionException.java
rename to maven-release-api/src/main/java/org/apache/maven/shared/release/ReleaseExecutionException.java
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseFailureException.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/ReleaseFailureException.java
similarity index 100%
rename from maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseFailureException.java
rename to maven-release-api/src/main/java/org/apache/maven/shared/release/ReleaseFailureException.java
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseResult.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/ReleaseResult.java
similarity index 96%
rename from maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseResult.java
rename to maven-release-api/src/main/java/org/apache/maven/shared/release/ReleaseResult.java
index 088e82059..04547ed3a 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseResult.java
+++ b/maven-release-api/src/main/java/org/apache/maven/shared/release/ReleaseResult.java
@@ -132,10 +132,4 @@ private String getStackTrace( Exception e )
return byteStream.toString();
}
-
- @Deprecated
- public StringBuffer getOutputBuffer()
- {
- return new StringBuffer( stdOut );
- }
}
diff --git a/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java
new file mode 100644
index 000000000..d9aa16aad
--- /dev/null
+++ b/maven-release-api/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptor.java
@@ -0,0 +1,158 @@
+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
+ */
+public interface ReleaseDescriptor
+{
+ boolean isUpdateDependencies();
+
+ boolean isUseReleaseProfile();
+
+ boolean isAutoVersionSubmodules();
+
+ boolean isSnapshotReleasePluginAllowed();
+
+ boolean isCommitByProject();
+
+ boolean isBranchCreation();
+
+ boolean isUpdateBranchVersions();
+
+ boolean isUpdateWorkingCopyVersions();
+
+ boolean isSuppressCommitBeforeTagOrBranch();
+
+ boolean isAllowTimestampedSnapshots();
+
+ boolean isUpdateVersionsToSnapshot();
+
+ boolean isRemoteTagging();
+
+ boolean isLocalCheckout();
+
+ boolean isPushChanges();
+
+ String getDefaultDevelopmentVersion();
+
+ String getScmRelativePathProjectDirectory();
+
+ String getCheckoutDirectory();
+
+ String getPerformGoals();
+
+ String getDefaultReleaseVersion();
+
+ String getScmReleasedPomRevision();
+
+ boolean isAddSchema();
+
+ boolean isGenerateReleasePoms();
+
+ boolean isInteractive();
+
+ boolean isScmUseEditMode();
+
+ String getCompletedPhase();
+
+ List getCheckModificationExcludes();
+
+ String getAdditionalArguments();
+
+ String getPreparationGoals();
+
+ String getCompletionGoals();
+
+ String getPomFileName();
+
+ String getScmCommentPrefix();
+
+ String getScmPrivateKeyPassPhrase();
+
+ String getScmPassword();
+
+ String getScmPrivateKey();
+
+ String getScmReleaseLabel();
+
+ String getScmTagBase();
+
+ String getScmBranchBase();
+
+ String getScmId();
+
+ String getScmSourceUrl();
+
+ String getScmUsername();
+
+ int getWaitBeforeTagging();
+
+ String getWorkingDirectory();
+
+ String getScmTagNameFormat();
+
+ String getProjectNamingPolicyId();
+
+ String getProjectVersionPolicyId();
+
+ String getReleaseStrategyId();
+
+ String getDependencyOriginalVersion( String artifactKey );
+
+ String getDependencyReleaseVersion( String artifactKey );
+
+ String getDependencyDevelopmentVersion( String artifactKey );
+
+ String getProjectOriginalVersion( String projectKey );
+
+ String getProjectDevelopmentVersion( String projectKey );
+
+ String getProjectReleaseVersion( String key );
+
+ Scm getOriginalScmInfo( String projectKey );
+
+ // Modifiable
+ void addDependencyOriginalVersion( String versionlessKey, String string );
+
+ void addDependencyReleaseVersion( String versionlessKey, String version );
+
+ void addDependencyDevelopmentVersion( String versionlessKey, String version );
+
+ void addReleaseVersion( String projectId, String nextVersion );
+
+ void addDevelopmentVersion( String projectId, String nextVersion );
+
+ void setScmReleaseLabel( String tag );
+
+ void setScmReleasedPomRevision( String scmRevision );
+
+ void setScmRelativePathProjectDirectory( String scmRelativePathProjectDirectory );
+
+ void setScmSourceUrl( String scmUrl );
+
+
+}
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/env/ReleaseEnvironment.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/env/ReleaseEnvironment.java
similarity index 73%
rename from maven-release-manager/src/main/java/org/apache/maven/shared/release/env/ReleaseEnvironment.java
rename to maven-release-api/src/main/java/org/apache/maven/shared/release/env/ReleaseEnvironment.java
index dbbf86c9b..88ef9e20c 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/env/ReleaseEnvironment.java
+++ b/maven-release-api/src/main/java/org/apache/maven/shared/release/env/ReleaseEnvironment.java
@@ -34,36 +34,18 @@ public interface ReleaseEnvironment
String getMavenExecutorId();
- ReleaseEnvironment setMavenExecutorId( String mavenExecutorId );
-
File getLocalRepositoryDirectory();
- ReleaseEnvironment setLocalRepositoryDirectory( File localRepositoryDirectory );
-
Settings getSettings();
- ReleaseEnvironment setSettings( Settings settings );
-
File getMavenHome();
- ReleaseEnvironment setMavenHome( File mavenHome );
-
File getJavaHome();
- ReleaseEnvironment setJavaHome( File javaHome );
-
/**
*
* @return the locale
* @since 2.4
*/
Locale getLocale();
-
- /**
- * @param locale
- * @return the locale
- * @since 2.4
- */
- ReleaseEnvironment setLocale( Locale locale );
-
}
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ReleasePhase.java b/maven-release-api/src/main/java/org/apache/maven/shared/release/phase/ReleasePhase.java
similarity index 100%
rename from maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ReleasePhase.java
rename to maven-release-api/src/main/java/org/apache/maven/shared/release/phase/ReleasePhase.java
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java
index 8e7070e0e..470c6c24a 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/AbstractReleaseRequest.java
@@ -22,7 +22,7 @@
import java.util.List;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
/**
*
@@ -31,7 +31,7 @@
*/
public abstract class AbstractReleaseRequest
{
- private ReleaseDescriptor releaseDescriptor;
+ private ReleaseDescriptorBuilder releaseDescriptorBuilder;
private List reactorProjects;
@@ -40,17 +40,17 @@ public abstract class AbstractReleaseRequest
/**
* @return the releaseDescriptor
*/
- public ReleaseDescriptor getReleaseDescriptor()
+ public ReleaseDescriptorBuilder getReleaseDescriptorBuilder()
{
- return releaseDescriptor;
+ return releaseDescriptorBuilder;
}
/**
* @param releaseDescriptor the releaseDescriptor to set
*/
- public void setReleaseDescriptor( ReleaseDescriptor releaseDescriptor )
+ public void setReleaseDescriptorBuilder( ReleaseDescriptorBuilder releaseDescriptor )
{
- this.releaseDescriptor = releaseDescriptor;
+ this.releaseDescriptorBuilder = releaseDescriptor;
}
/**
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
index ad93daae0..1cbcb8939 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java
@@ -28,8 +28,11 @@
import org.apache.commons.lang3.BooleanUtils;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder.BuilderReleaseDescriptor;
import org.apache.maven.shared.release.config.ReleaseDescriptorStore;
import org.apache.maven.shared.release.config.ReleaseDescriptorStoreException;
+import org.apache.maven.shared.release.config.ReleaseUtils;
import org.apache.maven.shared.release.phase.ReleasePhase;
import org.apache.maven.shared.release.strategy.Strategy;
import org.codehaus.plexus.component.annotations.Component;
@@ -99,15 +102,36 @@ public void prepare( ReleasePrepareRequest prepareRequest )
private void prepare( ReleasePrepareRequest prepareRequest, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
- ReleaseDescriptor config;
+
+ final ReleaseDescriptorBuilder builder = prepareRequest.getReleaseDescriptorBuilder();
+
+ // Create a config containing values from the session properties (ie command line properties with cli).
+ ReleaseUtils.copyPropertiesToReleaseDescriptor( prepareRequest.getUserProperties(),
+ new ReleaseDescriptorBuilder()
+ {
+ public ReleaseDescriptorBuilder addDevelopmentVersion( String key,
+ String value )
+ {
+ builder.addDevelopmentVersion( key, value );
+ return this;
+ }
+
+ public ReleaseDescriptorBuilder addReleaseVersion( String key,
+ String value )
+ {
+ builder.addReleaseVersion( key, value );
+ return this;
+ };
+ } );
+
+ BuilderReleaseDescriptor config;
if ( BooleanUtils.isNotFalse( prepareRequest.getResume() ) )
{
- config = loadReleaseDescriptor( prepareRequest.getReleaseDescriptor(),
- prepareRequest.getReleaseManagerListener() );
+ config = loadReleaseDescriptor( builder, prepareRequest.getReleaseManagerListener() );
}
else
{
- config = prepareRequest.getReleaseDescriptor();
+ config = ReleaseUtils.buildReleaseDescriptor( prepareRequest.getReleaseDescriptorBuilder() );
}
Strategy releaseStrategy = getStrategy( config.getReleaseStrategyId() );
@@ -196,7 +220,8 @@ else if ( index >= 0 )
public void rollback( ReleaseRollbackRequest rollbackRequest )
throws ReleaseExecutionException, ReleaseFailureException
{
- ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor( rollbackRequest.getReleaseDescriptor(), null );
+ ReleaseDescriptor releaseDescriptor =
+ loadReleaseDescriptor( rollbackRequest.getReleaseDescriptorBuilder(), null );
Strategy releaseStrategy = getStrategy( releaseDescriptor.getReleaseStrategyId() );
@@ -260,8 +285,9 @@ public void perform( ReleasePerformRequest performRequest )
private void perform( ReleasePerformRequest performRequest, ReleaseResult result )
throws ReleaseExecutionException, ReleaseFailureException
{
- ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor( performRequest.getReleaseDescriptor(),
- performRequest.getReleaseManagerListener() );
+ ReleaseDescriptor releaseDescriptor =
+ loadReleaseDescriptor( performRequest.getReleaseDescriptorBuilder(),
+ performRequest.getReleaseManagerListener() );
Strategy releaseStrategy = getStrategy( releaseDescriptor.getReleaseStrategyId() );
@@ -320,8 +346,28 @@ private void perform( ReleasePerformRequest performRequest, ReleaseResult result
public void branch( ReleaseBranchRequest branchRequest )
throws ReleaseExecutionException, ReleaseFailureException
{
- ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor( branchRequest.getReleaseDescriptor(),
- branchRequest.getReleaseManagerListener() );
+ final ReleaseDescriptorBuilder builder = branchRequest.getReleaseDescriptorBuilder();
+
+ ReleaseUtils.copyPropertiesToReleaseDescriptor( branchRequest.getUserProperties(),
+ new ReleaseDescriptorBuilder()
+ {
+ public ReleaseDescriptorBuilder addDevelopmentVersion( String key,
+ String value )
+ {
+ builder.addDevelopmentVersion( key, value );
+ return this;
+ }
+
+ public ReleaseDescriptorBuilder addReleaseVersion( String key,
+ String value )
+ {
+ builder.addReleaseVersion( key, value );
+ return this;
+ };
+ } );
+
+ ReleaseDescriptor releaseDescriptor =
+ loadReleaseDescriptor( builder, branchRequest.getReleaseManagerListener() );
boolean dryRun = BooleanUtils.isTrue( branchRequest.getDryRun() );
@@ -369,8 +415,29 @@ public void branch( ReleaseBranchRequest branchRequest )
public void updateVersions( ReleaseUpdateVersionsRequest updateVersionsRequest )
throws ReleaseExecutionException, ReleaseFailureException
{
- ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor( updateVersionsRequest.getReleaseDescriptor(),
- updateVersionsRequest.getReleaseManagerListener() );
+ final ReleaseDescriptorBuilder builder = updateVersionsRequest.getReleaseDescriptorBuilder();
+
+ // Create a config containing values from the session properties (ie command line properties with cli).
+ ReleaseUtils.copyPropertiesToReleaseDescriptor( updateVersionsRequest.getUserProperties(),
+ new ReleaseDescriptorBuilder()
+ {
+ public ReleaseDescriptorBuilder addDevelopmentVersion( String key,
+ String value )
+ {
+ builder.addDevelopmentVersion( key, value );
+ return this;
+ }
+
+ public ReleaseDescriptorBuilder addReleaseVersion( String key,
+ String value )
+ {
+ builder.addReleaseVersion( key, value );
+ return this;
+ };
+ } );
+
+ ReleaseDescriptor releaseDescriptor =
+ loadReleaseDescriptor( builder, updateVersionsRequest.getReleaseManagerListener() );
Strategy releaseStrategy = getStrategy( releaseDescriptor.getReleaseStrategyId() );
@@ -421,14 +488,14 @@ protected File determineWorkingDirectory( File checkoutDirectory, String relativ
}
}
- private ReleaseDescriptor loadReleaseDescriptor( ReleaseDescriptor releaseDescriptor,
+ private BuilderReleaseDescriptor loadReleaseDescriptor( ReleaseDescriptorBuilder builder,
ReleaseManagerListener listener )
throws ReleaseExecutionException
{
try
{
updateListener( listener, "verify-release-configuration", PHASE_START );
- ReleaseDescriptor descriptor = configStore.read( releaseDescriptor );
+ BuilderReleaseDescriptor descriptor = ReleaseUtils.buildReleaseDescriptor( configStore.read( builder ) );
updateListener( listener, "verify-release-configuration", PHASE_END );
return descriptor;
}
@@ -444,7 +511,7 @@ private ReleaseDescriptor loadReleaseDescriptor( ReleaseDescriptor releaseDescri
protected void clean( AbstractReleaseRequest releaseRequest ) throws ReleaseFailureException
{
ReleaseCleanRequest cleanRequest = new ReleaseCleanRequest();
- cleanRequest.setReleaseDescriptor( releaseRequest.getReleaseDescriptor() );
+ cleanRequest.setReleaseDescriptorBuilder( releaseRequest.getReleaseDescriptorBuilder() );
cleanRequest.setReleaseManagerListener( releaseRequest.getReleaseManagerListener() );
cleanRequest.setReactorProjects( releaseRequest.getReactorProjects() );
@@ -458,7 +525,8 @@ public void clean( ReleaseCleanRequest cleanRequest ) throws ReleaseFailureExcep
getLogger().info( "Cleaning up after release..." );
- ReleaseDescriptor releaseDescriptor = cleanRequest.getReleaseDescriptor();
+ ReleaseDescriptor releaseDescriptor =
+ ReleaseUtils.buildReleaseDescriptor( cleanRequest.getReleaseDescriptorBuilder() );
configStore.delete( releaseDescriptor );
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java
index 9900a17e1..45b69c85e 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseBranchRequest.java
@@ -19,6 +19,7 @@
* under the License.
*/
+import java.util.Properties;
import org.apache.maven.shared.release.env.ReleaseEnvironment;
/**
@@ -32,6 +33,8 @@ public class ReleaseBranchRequest extends AbstractReleaseRequest
private Boolean dryRun;
private ReleaseEnvironment releaseEnvironment;
+
+ private Properties userProperties;
/**
* @return the dryRun
@@ -64,4 +67,14 @@ public void setReleaseEnvironment( ReleaseEnvironment releaseEnvironment )
{
this.releaseEnvironment = releaseEnvironment;
}
+
+ public Properties getUserProperties()
+ {
+ return userProperties;
+ }
+
+ public void setUserProperties( Properties userProperties )
+ {
+ this.userProperties = userProperties;
+ }
}
\ No newline at end of file
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java
index 1ab4a2bbf..7ac691559 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleasePrepareRequest.java
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.util.Properties;
+
import org.apache.maven.shared.release.env.ReleaseEnvironment;
/**
@@ -36,6 +38,8 @@ public class ReleasePrepareRequest
private Boolean resume;
private ReleaseEnvironment releaseEnvironment;
+
+ private Properties userProperties;
/**
* @return the dryRun
@@ -84,4 +88,14 @@ public void setReleaseEnvironment( ReleaseEnvironment releaseEnvironment )
{
this.releaseEnvironment = releaseEnvironment;
}
+
+ public Properties getUserProperties()
+ {
+ return userProperties;
+ }
+
+ public void setUserProperties( Properties userProperties )
+ {
+ this.userProperties = userProperties;
+ }
}
\ No newline at end of file
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java
index ba87ad068..81c768c35 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/ReleaseUpdateVersionsRequest.java
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.util.Properties;
+
import org.apache.maven.shared.release.env.ReleaseEnvironment;
/**
@@ -30,6 +32,8 @@ public class ReleaseUpdateVersionsRequest
extends AbstractReleaseRequest
{
private ReleaseEnvironment releaseEnvironment;
+
+ private Properties userProperties;
/**
* @return the releaseEnvironment
@@ -46,4 +50,14 @@ public void setReleaseEnvironment( ReleaseEnvironment releaseEnvironment )
{
this.releaseEnvironment = releaseEnvironment;
}
+
+ public Properties getUserProperties()
+ {
+ return userProperties;
+ }
+
+ public void setUserProperties( Properties userProperties )
+ {
+ this.userProperties = userProperties;
+ }
}
\ No newline at end of file
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java
index 7256ce3be..259d9a373 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java
@@ -30,6 +30,7 @@
import java.util.Properties;
import org.apache.maven.model.Scm;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder.BuilderReleaseDescriptor;
import org.apache.maven.shared.release.scm.IdentifiedScm;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
@@ -61,19 +62,19 @@ public class PropertiesReleaseDescriptorStore
private DefaultSecDispatcher secDispatcher;
@Override
- public ReleaseDescriptor read( ReleaseDescriptor mergeDescriptor )
+ public ReleaseDescriptorBuilder read( ReleaseDescriptorBuilder mergeDescriptor )
throws ReleaseDescriptorStoreException
{
- return read( mergeDescriptor, getDefaultReleasePropertiesFile( mergeDescriptor ) );
+ return read( mergeDescriptor, getDefaultReleasePropertiesFile( mergeDescriptor.build() ) );
}
- public ReleaseDescriptor read( File file )
+ public ReleaseDescriptorBuilder read( File file )
throws ReleaseDescriptorStoreException
{
return read( null, file );
}
- public ReleaseDescriptor read( ReleaseDescriptor mergeDescriptor, File file )
+ public ReleaseDescriptorBuilder read( ReleaseDescriptorBuilder mergeDescriptor, File file )
throws ReleaseDescriptorStoreException
{
Properties properties = new Properties();
@@ -92,21 +93,26 @@ public ReleaseDescriptor read( ReleaseDescriptor mergeDescriptor, File file )
"Error reading properties file '" + file.getName() + "': " + e.getMessage(), e );
}
- ReleaseDescriptor releaseDescriptor = ReleaseUtils.copyPropertiesToReleaseDescriptor( properties );
-
+ ReleaseDescriptorBuilder builder;
if ( mergeDescriptor != null )
{
- releaseDescriptor = ReleaseUtils.merge( releaseDescriptor, mergeDescriptor );
+ builder = mergeDescriptor;
+ }
+ else
+ {
+ builder = new ReleaseDescriptorBuilder();
}
+
+ ReleaseUtils.copyPropertiesToReleaseDescriptor( properties, builder );
- return releaseDescriptor;
+ return builder;
}
@Override
public void write( ReleaseDescriptor config )
throws ReleaseDescriptorStoreException
{
- write( config, getDefaultReleasePropertiesFile( config ) );
+ write( (BuilderReleaseDescriptor) config, getDefaultReleasePropertiesFile( config ) );
}
@Override
@@ -119,7 +125,7 @@ public void delete( ReleaseDescriptor config )
}
}
- public void write( ReleaseDescriptor config, File file )
+ public void write( BuilderReleaseDescriptor config, File file )
throws ReleaseDescriptorStoreException
{
Properties properties = new Properties();
@@ -226,14 +232,17 @@ public void write( ReleaseDescriptor config, File file )
// others boolean properties are not written to the properties file because the value from the caller is always
// used
- for ( Map.Entry entry : config.getReleaseVersions().entrySet() )
- {
- properties.setProperty( "project.rel." + entry.getKey(), entry.getValue() );
- }
-
- for ( Map.Entry entry : config.getDevelopmentVersions().entrySet() )
+
+ for ( Map.Entry entry : config.getProjectVersions().entrySet() )
{
- properties.setProperty( "project.dev." + entry.getKey(), (String) entry.getValue() );
+ if ( entry.getValue().getRelease() != null )
+ {
+ properties.setProperty( "project.rel." + entry.getKey(), entry.getValue().getRelease() );
+ }
+ if ( entry.getValue().getDevelopment() != null )
+ {
+ properties.setProperty( "project.dev." + entry.getKey(), entry.getValue().getDevelopment() );
+ }
}
for ( Map.Entry entry : config.getOriginalScmInfo().entrySet() )
@@ -290,16 +299,16 @@ public void write( ReleaseDescriptor config, File file )
}
}
- private void processResolvedDependencies( Properties prop, Map> resolvedDependencies )
+ private void processResolvedDependencies( Properties prop, Map resolvedDependencies )
{
- for ( Map.Entry> currentEntry : resolvedDependencies.entrySet() )
+ for ( Map.Entry currentEntry : resolvedDependencies.entrySet() )
{
- Map versionMap = currentEntry.getValue();
+ ReleaseStageVersions versionMap = currentEntry.getValue();
prop.setProperty( "dependency." + currentEntry.getKey() + ".release",
- versionMap.get( ReleaseDescriptor.RELEASE_KEY ) );
+ versionMap.getRelease() );
prop.setProperty( "dependency." + currentEntry.getKey() + ".development",
- versionMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
+ versionMap.getDevelopment() );
}
}
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 000000000..c2ed277a1
--- /dev/null
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorBuilder.java
@@ -0,0 +1,399 @@
+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
+{
+ /**
+ * Hides inner logic of the release descriptor
+ *
+ * @author Robert Scholte
+ *
+ */
+ public static final class BuilderReleaseDescriptor extends ModelloReleaseDescriptor implements ReleaseDescriptor
+ {
+ private BuilderReleaseDescriptor()
+ {
+ }
+ }
+
+ private final BuilderReleaseDescriptor releaseDescriptor;
+
+ public ReleaseDescriptorBuilder()
+ {
+ this.releaseDescriptor = new BuilderReleaseDescriptor();
+ }
+
+ 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 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 void putOriginalVersion( String projectKey, String version )
+ {
+ releaseDescriptor.addOriginalVersion( projectKey, version );
+ }
+
+ public ReleaseDescriptorBuilder addDependencyOriginalVersion( String dependencyKey, String version )
+ {
+ releaseDescriptor.addDependencyOriginalVersion( dependencyKey, version );
+ return this;
+
+ }
+
+ public ReleaseDescriptorBuilder addDependencyReleaseVersion( String dependencyKey, String version )
+ {
+ releaseDescriptor.addDependencyReleaseVersion( dependencyKey, version );
+ return this;
+ }
+
+ public ReleaseDescriptorBuilder addDependencyDevelopmentVersion( String dependencyKey, String version )
+ {
+ releaseDescriptor.addDependencyDevelopmentVersion( dependencyKey, version );
+ return this;
+ }
+
+ BuilderReleaseDescriptor build()
+ {
+ return releaseDescriptor;
+ }
+}
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorStore.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorStore.java
index 5b1e8c45e..69092c174 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorStore.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseDescriptorStore.java
@@ -33,7 +33,7 @@ public interface ReleaseDescriptorStore
* while others are used to override
* @return the configuration
*/
- ReleaseDescriptor read( ReleaseDescriptor mergeDescriptor )
+ ReleaseDescriptorBuilder read( ReleaseDescriptorBuilder mergeDescriptor )
throws ReleaseDescriptorStoreException;
/**
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
index 743b062e8..36504c2e3 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
@@ -19,13 +19,12 @@
* under the License.
*/
-import java.util.HashMap;
import java.util.Iterator;
-import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder.BuilderReleaseDescriptor;
import org.apache.maven.shared.release.scm.IdentifiedScm;
/**
@@ -35,152 +34,119 @@
*/
public class ReleaseUtils
{
+ private static final String DEVELOPMENT_KEY = "dev";
+
+ private static final String RELEASE_KEY = "rel";
+
private ReleaseUtils()
{
// nothing to see here
}
- /**
- * Merge two descriptors together. All SCM settings are overridden by the merge descriptor, as is the
- * workingDirectory
field. The completedPhase
field is used as
- * a default from the merge descriptor, but not overridden if it exists.
- *
- * @param mergeInto the descriptor to be merged into
- * @param toBeMerged the descriptor to merge into mergeInto
- * @return ReleaseDescriptor the merged descriptor
- */
- public static ReleaseDescriptor merge( ReleaseDescriptor mergeInto, ReleaseDescriptor toBeMerged )
+ public static BuilderReleaseDescriptor buildReleaseDescriptor( ReleaseDescriptorBuilder builder )
{
- // Overridden if configured from the caller
- mergeInto.setScmId( mergeOverride( mergeInto.getScmId(), toBeMerged.getScmId() ) );
- mergeInto.setScmSourceUrl( mergeOverride( mergeInto.getScmSourceUrl(), toBeMerged.getScmSourceUrl() ) );
- mergeInto.setScmCommentPrefix(
- mergeOverride( mergeInto.getScmCommentPrefix(), toBeMerged.getScmCommentPrefix() ) );
- mergeInto.setScmReleaseLabel( mergeOverride( mergeInto.getScmReleaseLabel(),
- toBeMerged.getScmReleaseLabel() ) );
- mergeInto.setScmTagBase( mergeOverride( mergeInto.getScmTagBase(), toBeMerged.getScmTagBase() ) );
- mergeInto.setScmTagNameFormat(
- mergeOverride( mergeInto.getScmTagNameFormat(), toBeMerged.getScmTagNameFormat() ) );
- 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() ) );
- mergeInto.setScmPrivateKeyPassPhrase(
- mergeOverride( mergeInto.getScmPrivateKeyPassPhrase(), toBeMerged.getScmPrivateKeyPassPhrase() ) );
- mergeInto.setScmCommentPrefix(
- mergeOverride( mergeInto.getScmCommentPrefix(), toBeMerged.getScmCommentPrefix() ) );
- mergeInto.setAdditionalArguments(
- mergeOverride( mergeInto.getAdditionalArguments(), toBeMerged.getAdditionalArguments() ) );
- mergeInto.setPreparationGoals(
- mergeOverride( mergeInto.getPreparationGoals(), toBeMerged.getPreparationGoals() ) );
- mergeInto.setCompletionGoals(
- mergeOverride( mergeInto.getCompletionGoals(), toBeMerged.getCompletionGoals() ) );
- mergeInto.setPerformGoals( mergeOverride( mergeInto.getPerformGoals(), toBeMerged.getPerformGoals() ) );
- mergeInto.setPomFileName( mergeOverride( mergeInto.getPomFileName(), toBeMerged.getPomFileName() ) );
- mergeInto.setCheckModificationExcludes( toBeMerged.getCheckModificationExcludes() );
- mergeInto.setScmUseEditMode( toBeMerged.isScmUseEditMode() );
- mergeInto.setAddSchema( toBeMerged.isAddSchema() );
- mergeInto.setGenerateReleasePoms( toBeMerged.isGenerateReleasePoms() );
- mergeInto.setInteractive( toBeMerged.isInteractive() );
- mergeInto.setUpdateDependencies( toBeMerged.isUpdateDependencies() );
- mergeInto.setCommitByProject( mergeOverride( mergeInto.isCommitByProject(), toBeMerged.isCommitByProject(),
- false ) );
- mergeInto.setUseReleaseProfile( toBeMerged.isUseReleaseProfile() );
- mergeInto.setBranchCreation( toBeMerged.isBranchCreation() );
- mergeInto.setUpdateBranchVersions( toBeMerged.isUpdateBranchVersions() );
- mergeInto.setUpdateWorkingCopyVersions( toBeMerged.isUpdateWorkingCopyVersions() );
- mergeInto.setSuppressCommitBeforeTagOrBranch( toBeMerged.isSuppressCommitBeforeTagOrBranch() );
- mergeInto.setUpdateVersionsToSnapshot( toBeMerged.isUpdateVersionsToSnapshot() );
- mergeInto.setAllowTimestampedSnapshots( toBeMerged.isAllowTimestampedSnapshots() );
- mergeInto.setSnapshotReleasePluginAllowed( toBeMerged.isSnapshotReleasePluginAllowed() );
- mergeInto.setAutoVersionSubmodules( toBeMerged.isAutoVersionSubmodules() );
- mergeInto.setDefaultReleaseVersion( mergeOverride( mergeInto.getDefaultReleaseVersion(),
- toBeMerged.getDefaultReleaseVersion() ) );
- mergeInto.setDefaultDevelopmentVersion( mergeOverride( mergeInto.getDefaultDevelopmentVersion(),
- toBeMerged.getDefaultDevelopmentVersion() ) );
- mergeInto.setRemoteTagging( toBeMerged.isRemoteTagging() );
- mergeInto.setLocalCheckout( toBeMerged.isLocalCheckout() );
- mergeInto.setPushChanges( toBeMerged.isPushChanges() );
- mergeInto.setWaitBeforeTagging( toBeMerged.getWaitBeforeTagging() );
+ return builder.build();
+ }
- // If the user specifies versions, these should be override the existing versions
- if ( toBeMerged.getReleaseVersions() != null )
+ public static void copyPropertiesToReleaseDescriptor( Properties properties, ReleaseDescriptorBuilder builder )
+ {
+ if ( properties.containsKey( "completedPhase" ) )
{
- mergeInto.getReleaseVersions().putAll( toBeMerged.getReleaseVersions() );
+ builder.setCompletedPhase( properties.getProperty( "completedPhase" ) );
}
- if ( toBeMerged.getDevelopmentVersions() != null )
+ if ( properties.containsKey( "commitByProject" ) )
{
- mergeInto.getDevelopmentVersions().putAll( toBeMerged.getDevelopmentVersions() );
+ builder.setCommitByProject( Boolean.parseBoolean( properties.getProperty( "commitByProject" ) ) );
+ }
+ if ( properties.containsKey( "scm.id" ) )
+ {
+ builder.setScmId( properties.getProperty( "scm.id" ) );
+ }
+ if ( properties.containsKey( "scm.url" ) )
+ {
+ builder.setScmSourceUrl( properties.getProperty( "scm.url" ) );
+ }
+ if ( properties.containsKey( "scm.username" ) )
+ {
+ builder.setScmUsername( properties.getProperty( "scm.username" ) );
+ }
+ if ( properties.containsKey( "scm.password" ) )
+ {
+ builder.setScmPassword( properties.getProperty( "scm.password" ) );
+ }
+ if ( properties.containsKey( "scm.privateKey" ) )
+ {
+ builder.setScmPrivateKey( properties.getProperty( "scm.privateKey" ) );
+ }
+ if ( properties.containsKey( "scm.passphrase" ) )
+ {
+ builder.setScmPrivateKeyPassPhrase( properties.getProperty( "scm.passphrase" ) );
+ }
+ if ( properties.containsKey( "scm.tagBase" ) )
+ {
+ builder.setScmTagBase( properties.getProperty( "scm.tagBase" ) );
+ }
+ if ( properties.containsKey( "scm.tagNameFormat" ) )
+ {
+ builder.setScmTagNameFormat( properties.getProperty( "scm.tagNameFormat" ) );
+ }
+ if ( properties.containsKey( "scm.branchBase" ) )
+ {
+ builder.setScmBranchBase( properties.getProperty( "scm.branchBase" ) );
+ }
+ if ( properties.containsKey( "scm.tag" ) )
+ {
+ builder.setScmReleaseLabel( properties.getProperty( "scm.tag" ) );
+ }
+ if ( properties.containsKey( "scm.commentPrefix" ) )
+ {
+ builder.setScmCommentPrefix( properties.getProperty( "scm.commentPrefix" ) );
+ }
+ if ( properties.containsKey( "exec.additionalArguments" ) )
+ {
+ builder.setAdditionalArguments( properties.getProperty( "exec.additionalArguments" ) );
+ }
+ if ( properties.containsKey( "exec.pomFileName" ) )
+ {
+ builder.setPomFileName( properties.getProperty( "exec.pomFileName" ) );
+ }
+ if ( properties.containsKey( "preparationGoals" ) )
+ {
+ builder.setPreparationGoals( properties.getProperty( "preparationGoals" ) );
+ }
+ if ( properties.containsKey( "completionGoals" ) )
+ {
+ builder.setCompletionGoals( properties.getProperty( "completionGoals" ) );
+ }
+ if ( properties.containsKey( "projectVersionPolicyId" ) )
+ {
+ builder.setProjectVersionPolicyId( properties.getProperty( "projectVersionPolicyId" ) );
+ }
+ if ( properties.containsKey( "projectNamingPolicyId" ) )
+ {
+ builder.setProjectNamingPolicyId( properties.getProperty( "projectNamingPolicyId" ) );
+ }
+ if ( properties.containsKey( "releaseStrategyId" ) )
+ {
+ builder.setReleaseStrategyId( properties.getProperty( "releaseStrategyId" ) );
+ }
+ if ( properties.containsKey( "exec.snapshotReleasePluginAllowed" ) )
+ {
+ String snapshotReleasePluginAllowedStr = properties.getProperty( "exec.snapshotReleasePluginAllowed" );
+ builder.setSnapshotReleasePluginAllowed( Boolean.valueOf( snapshotReleasePluginAllowedStr ) );
+ }
+ if ( properties.containsKey( "remoteTagging" ) )
+ {
+ String remoteTaggingStr = properties.getProperty( "remoteTagging" );
+ builder.setRemoteTagging( Boolean.valueOf( remoteTaggingStr ) );
+ }
+ if ( properties.containsKey( "pushChanges" ) )
+ {
+ String pushChanges = properties.getProperty( "pushChanges" );
+ builder.setPushChanges( Boolean.valueOf( pushChanges ) );
}
- // These must be overridden, as they are not stored
- mergeInto.setWorkingDirectory(
- mergeOverride( mergeInto.getWorkingDirectory(), toBeMerged.getWorkingDirectory() ) );
- mergeInto.setCheckoutDirectory(
- mergeOverride( mergeInto.getCheckoutDirectory(), toBeMerged.getCheckoutDirectory() ) );
-
- // Not overridden - not configured from caller
- mergeInto.setCompletedPhase( mergeDefault( mergeInto.getCompletedPhase(), toBeMerged.getCompletedPhase() ) );
-
- mergeInto.setProjectVersionPolicyId( mergeDefault( mergeInto.getProjectVersionPolicyId(),
- toBeMerged.getProjectVersionPolicyId() ) );
- mergeInto.setProjectNamingPolicyId( mergeDefault( mergeInto.getProjectNamingPolicyId(),
- toBeMerged.getProjectNamingPolicyId() ) );
- mergeInto.setReleaseStrategyId( mergeOverride( mergeInto.getReleaseStrategyId(),
- toBeMerged.getReleaseStrategyId() ) );
-
- return mergeInto;
- }
-
- private static String mergeOverride( String thisValue, String mergeValue )
- {
- return mergeValue != null ? mergeValue : thisValue;
- }
-
- private static String mergeDefault( String thisValue, String mergeValue )
- {
- return thisValue != null ? thisValue : mergeValue;
- }
-
- private static boolean mergeOverride( boolean thisValue, boolean mergeValue, boolean defaultValue )
- {
- return mergeValue != defaultValue ? mergeValue : thisValue;
- }
-
- public static ReleaseDescriptor copyPropertiesToReleaseDescriptor( Properties properties )
- {
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setCompletedPhase( properties.getProperty( "completedPhase" ) );
- releaseDescriptor.setCommitByProject( Boolean.parseBoolean( properties.getProperty( "commitByProject" ) ) );
- releaseDescriptor.setScmId( properties.getProperty( "scm.id" ) );
- releaseDescriptor.setScmSourceUrl( properties.getProperty( "scm.url" ) );
- releaseDescriptor.setScmUsername( properties.getProperty( "scm.username" ) );
- releaseDescriptor.setScmPassword( properties.getProperty( "scm.password" ) );
- releaseDescriptor.setScmPrivateKey( properties.getProperty( "scm.privateKey" ) );
- releaseDescriptor.setScmPrivateKeyPassPhrase( properties.getProperty( "scm.passphrase" ) );
- releaseDescriptor.setScmTagBase( properties.getProperty( "scm.tagBase" ) );
- releaseDescriptor.setScmTagNameFormat( properties.getProperty( "scm.tagNameFormat" ) );
- releaseDescriptor.setScmBranchBase( properties.getProperty( "scm.branchBase" ) );
- releaseDescriptor.setScmReleaseLabel( properties.getProperty( "scm.tag" ) );
- releaseDescriptor.setScmCommentPrefix( properties.getProperty( "scm.commentPrefix" ) );
- releaseDescriptor.setAdditionalArguments( properties.getProperty( "exec.additionalArguments" ) );
- releaseDescriptor.setPomFileName( properties.getProperty( "exec.pomFileName" ) );
- releaseDescriptor.setPreparationGoals( properties.getProperty( "preparationGoals" ) );
- releaseDescriptor.setCompletionGoals( properties.getProperty( "completionGoals" ) );
- releaseDescriptor.setProjectVersionPolicyId( properties.getProperty( "projectVersionPolicyId" ) );
- releaseDescriptor.setProjectNamingPolicyId( properties.getProperty( "projectNamingPolicyId" ) );
- releaseDescriptor.setReleaseStrategyId( properties.getProperty( "releaseStrategyId" ) );
- String snapshotReleasePluginAllowedStr = properties.getProperty( "exec.snapshotReleasePluginAllowed" );
- releaseDescriptor.setSnapshotReleasePluginAllowed( snapshotReleasePluginAllowedStr == null
- ? false
- : Boolean.valueOf(
- snapshotReleasePluginAllowedStr ).booleanValue() );
- String remoteTaggingStr = properties.getProperty( "remoteTagging" );
- releaseDescriptor.setRemoteTagging(
- remoteTaggingStr == null ? false : Boolean.valueOf( remoteTaggingStr ).booleanValue() );
- String pushChanges = properties.getProperty( "pushChanges" );
- releaseDescriptor.setPushChanges( pushChanges == null ? true : Boolean.valueOf( pushChanges ).booleanValue() );
- loadResolvedDependencies( properties, releaseDescriptor );
+ loadResolvedDependencies( properties, builder );
// boolean properties are not written to the properties file because the value from the caller is always used
@@ -189,12 +155,12 @@ public static ReleaseDescriptor copyPropertiesToReleaseDescriptor( Properties pr
String property = (String) i.next();
if ( property.startsWith( "project.rel." ) )
{
- releaseDescriptor.mapReleaseVersion( property.substring( "project.rel.".length() ),
+ builder.addReleaseVersion( property.substring( "project.rel.".length() ),
properties.getProperty( property ) );
}
else if ( property.startsWith( "project.dev." ) )
{
- releaseDescriptor.mapDevelopmentVersion( property.substring( "project.dev.".length() ),
+ builder.addDevelopmentVersion( property.substring( "project.dev.".length() ),
properties.getProperty( property ) );
}
else if ( property.startsWith( "project.scm." ) )
@@ -204,11 +170,11 @@ else if ( property.startsWith( "project.scm." ) )
{
String key = property.substring( "project.scm.".length(), index );
- if ( !releaseDescriptor.getOriginalScmInfo().containsKey( key ) )
+ if ( builder.build().getOriginalScmInfo( key ) == null )
{
if ( properties.getProperty( "project.scm." + key + ".empty" ) != null )
{
- releaseDescriptor.mapOriginalScmInfo( key, null );
+ builder.addOriginalScmInfo( key, null );
}
else
{
@@ -220,19 +186,16 @@ else if ( property.startsWith( "project.scm." ) )
scm.setTag( properties.getProperty( "project.scm." + key + ".tag" ) );
scm.setId( properties.getProperty( "project.scm." + key + ".id" ) );
- releaseDescriptor.mapOriginalScmInfo( key, scm );
+ builder.addOriginalScmInfo( key, scm );
}
}
}
}
}
- return releaseDescriptor;
}
- private static void loadResolvedDependencies( Properties prop, ReleaseDescriptor descriptor )
+ private static void loadResolvedDependencies( Properties prop, ReleaseDescriptorBuilder builder )
{
- Map> resolvedDependencies = new HashMap<>();
-
Set entries = prop.entrySet();
Iterator> iterator = entries.iterator();
String propertyName;
@@ -245,23 +208,20 @@ private static void loadResolvedDependencies( Properties prop, ReleaseDescriptor
if ( propertyName.startsWith( "dependency." ) )
{
- Map versionMap;
String artifactVersionlessKey;
int startIndex = "dependency.".length();
int endIndex;
String versionType;
- versionMap = new HashMap<>();
-
if ( propertyName.indexOf( ".development" ) != -1 )
{
endIndex = propertyName.lastIndexOf( ".development" );
- versionType = ReleaseDescriptor.DEVELOPMENT_KEY;
+ versionType = DEVELOPMENT_KEY;
}
else if ( propertyName.indexOf( ".release" ) != -1 )
{
endIndex = propertyName.lastIndexOf( ".release" );
- versionType = ReleaseDescriptor.RELEASE_KEY;
+ versionType = RELEASE_KEY;
}
else
{
@@ -271,21 +231,16 @@ else if ( propertyName.indexOf( ".release" ) != -1 )
artifactVersionlessKey = propertyName.substring( startIndex, endIndex );
- if ( resolvedDependencies.containsKey( artifactVersionlessKey ) )
+ if ( RELEASE_KEY.equals( versionType ) )
{
- versionMap = resolvedDependencies.get( artifactVersionlessKey );
+ builder.addDependencyReleaseVersion( artifactVersionlessKey, currentEntry.getValue() );
}
- else
+ else if ( DEVELOPMENT_KEY.equals( versionType ) )
{
- versionMap = new HashMap<>();
- resolvedDependencies.put( artifactVersionlessKey, versionMap );
+ builder.addDependencyDevelopmentVersion( artifactVersionlessKey, currentEntry.getValue() );
}
-
- versionMap.put( versionType, currentEntry.getValue() );
}
}
-
- descriptor.setResolvedSnapshotDependencies( resolvedDependencies );
}
}
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/env/DefaultReleaseEnvironment.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/env/DefaultReleaseEnvironment.java
index 6b5659e2b..3305756f3 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/env/DefaultReleaseEnvironment.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/env/DefaultReleaseEnvironment.java
@@ -55,15 +55,13 @@ public Settings getSettings()
return settings;
}
- @Override
- public ReleaseEnvironment setMavenHome( File mavenHome )
+ public DefaultReleaseEnvironment setMavenHome( File mavenHome )
{
this.mavenHome = mavenHome;
return this;
}
- @Override
- public ReleaseEnvironment setSettings( Settings settings )
+ public DefaultReleaseEnvironment setSettings( Settings settings )
{
this.settings = settings;
return this;
@@ -75,8 +73,7 @@ public String getMavenExecutorId()
return mavenExecutorId;
}
- @Override
- public ReleaseEnvironment setMavenExecutorId( String mavenExecutorId )
+ public DefaultReleaseEnvironment setMavenExecutorId( String mavenExecutorId )
{
this.mavenExecutorId = mavenExecutorId;
return this;
@@ -88,8 +85,7 @@ public File getJavaHome()
return javaHome;
}
- @Override
- public ReleaseEnvironment setJavaHome( File javaHome )
+ public DefaultReleaseEnvironment setJavaHome( File javaHome )
{
this.javaHome = javaHome;
return this;
@@ -108,8 +104,7 @@ public File getLocalRepositoryDirectory()
return localRepo;
}
- @Override
- public ReleaseEnvironment setLocalRepositoryDirectory( File localRepositoryDirectory )
+ public DefaultReleaseEnvironment setLocalRepositoryDirectory( File localRepositoryDirectory )
{
this.localRepositoryDirectory = localRepositoryDirectory;
return this;
@@ -121,8 +116,7 @@ public Locale getLocale()
return locale;
}
- @Override
- public ReleaseEnvironment setLocale( Locale locale )
+ public DefaultReleaseEnvironment setLocale( Locale locale )
{
this.locale = locale;
return this;
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
index 6fd4cb6d3..ac6a682ba 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
@@ -35,7 +35,6 @@
import org.apache.maven.model.ModelBase;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Profile;
-import org.apache.maven.model.Scm;
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFileSet;
@@ -49,7 +48,6 @@
import org.apache.maven.shared.release.ReleaseResult;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.apache.maven.shared.release.env.ReleaseEnvironment;
-import org.apache.maven.shared.release.scm.IdentifiedScm;
import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
@@ -239,51 +237,42 @@ private void transformDocument( MavenProject project, Model modelTarget, Release
ReleaseResult result, boolean simulate )
throws ReleaseExecutionException, ReleaseFailureException
{
- Map mappedVersions = getNextVersionMap( releaseDescriptor );
- Map originalVersions = getOriginalVersionMap( releaseDescriptor, reactorProjects, simulate );
- Map> resolvedSnapshotDependencies =
- releaseDescriptor.getResolvedSnapshotDependencies();
Model model = project.getModel();
Properties properties = modelTarget.getProperties();
- String parentVersion = rewriteParent( project, modelTarget, mappedVersions,
- resolvedSnapshotDependencies, originalVersions );
+ String parentVersion = rewriteParent( project, modelTarget, releaseDescriptor, simulate );
String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
- rewriteVersion( modelTarget, mappedVersions, projectId, project, parentVersion );
+ rewriteVersion( modelTarget, releaseDescriptor, projectId, project, parentVersion );
Build buildTarget = modelTarget.getBuild();
if ( buildTarget != null )
{
// profile.build.extensions doesn't exist, so only rewrite project.build.extensions
- rewriteArtifactVersions( toMavenCoordinates( buildTarget.getExtensions() ), mappedVersions,
- resolvedSnapshotDependencies, originalVersions, model, properties, result,
- releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( buildTarget.getExtensions() ),
+ model, properties, result, releaseDescriptor, simulate );
- rewriteArtifactVersions( toMavenCoordinates( buildTarget.getPlugins() ), mappedVersions,
- resolvedSnapshotDependencies, originalVersions, model, properties, result,
- releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( buildTarget.getPlugins() ),
+ model, properties, result, releaseDescriptor, simulate );
for ( Plugin plugin : buildTarget.getPlugins() )
{
rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ),
- mappedVersions, resolvedSnapshotDependencies, originalVersions, model,
- properties, result, releaseDescriptor );
+ model, properties,
+ result, releaseDescriptor, simulate );
}
if ( buildTarget.getPluginManagement() != null )
{
- rewriteArtifactVersions( toMavenCoordinates( buildTarget.getPluginManagement().getPlugins() ),
- mappedVersions, resolvedSnapshotDependencies, originalVersions, model,
- properties, result, releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( buildTarget.getPluginManagement().getPlugins() ), model,
+ properties, result, releaseDescriptor, simulate );
for ( Plugin plugin : buildTarget.getPluginManagement().getPlugins() )
{
- rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), mappedVersions,
- resolvedSnapshotDependencies, originalVersions, model, properties,
- result, releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), model, properties, result,
+ releaseDescriptor, simulate );
}
}
}
@@ -293,28 +282,24 @@ private void transformDocument( MavenProject project, Model modelTarget, Release
BuildBase profileBuild = profile.getBuild();
if ( profileBuild != null )
{
- rewriteArtifactVersions( toMavenCoordinates( profileBuild.getPlugins() ), mappedVersions,
- resolvedSnapshotDependencies, originalVersions, model, properties, result,
- releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( profileBuild.getPlugins() ), model, properties, result,
+ releaseDescriptor, simulate );
for ( Plugin plugin : profileBuild.getPlugins() )
{
- rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ),
- mappedVersions, resolvedSnapshotDependencies, originalVersions, model,
- properties, result, releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), model, properties, result,
+ releaseDescriptor, simulate );
}
if ( profileBuild.getPluginManagement() != null )
{
rewriteArtifactVersions( toMavenCoordinates( profileBuild.getPluginManagement().getPlugins() ),
- mappedVersions, resolvedSnapshotDependencies, originalVersions, model,
- properties, result, releaseDescriptor );
+ model, properties, result, releaseDescriptor, simulate );
for ( Plugin plugin : profileBuild.getPluginManagement().getPlugins() )
{
- rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), mappedVersions,
- resolvedSnapshotDependencies, originalVersions, model, properties,
- result, releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( plugin.getDependencies() ), model, properties,
+ result, releaseDescriptor, simulate );
}
}
}
@@ -326,22 +311,19 @@ private void transformDocument( MavenProject project, Model modelTarget, Release
for ( ModelBase modelBase : modelBases )
{
- rewriteArtifactVersions( toMavenCoordinates( modelBase.getDependencies() ), mappedVersions,
- resolvedSnapshotDependencies, originalVersions, model, properties, result,
- releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( modelBase.getDependencies() ), model, properties, result,
+ releaseDescriptor, simulate );
if ( modelBase.getDependencyManagement() != null )
{
rewriteArtifactVersions( toMavenCoordinates( modelBase.getDependencyManagement().getDependencies() ),
- mappedVersions, resolvedSnapshotDependencies, originalVersions, model,
- properties, result, releaseDescriptor );
+ model, properties, result, releaseDescriptor, simulate );
}
if ( modelBase.getReporting() != null )
{
- rewriteArtifactVersions( toMavenCoordinates( modelBase.getReporting().getPlugins() ), mappedVersions,
- resolvedSnapshotDependencies, originalVersions, model, properties, result,
- releaseDescriptor );
+ rewriteArtifactVersions( toMavenCoordinates( modelBase.getReporting().getPlugins() ), model, properties,
+ result, releaseDescriptor, simulate );
}
}
@@ -360,11 +342,11 @@ private void transformDocument( MavenProject project, Model modelTarget, Release
commonBasedir );
}
- private void rewriteVersion( Model modelTarget, Map mappedVersions, String projectId,
+ private void rewriteVersion( Model modelTarget, ReleaseDescriptor releaseDescriptor, String projectId,
MavenProject project, String parentVersion )
throws ReleaseFailureException
{
- String version = mappedVersions.get( projectId );
+ String version = getNextVersion( releaseDescriptor, projectId );
if ( version == null )
{
throw new ReleaseFailureException( "Version for '" + project.getName() + "' was not mapped" );
@@ -373,9 +355,8 @@ private void rewriteVersion( Model modelTarget, Map mappedVersio
modelTarget.setVersion( version );
}
- private String rewriteParent( MavenProject project, Model targetModel, Map mappedVersions,
- Map> resolvedSnapshotDependencies,
- Map originalVersions )
+ private String rewriteParent( MavenProject project, Model targetModel,
+ ReleaseDescriptor releaseDescriptor, boolean simulate )
throws ReleaseFailureException
{
String parentVersion = null;
@@ -383,15 +364,16 @@ private String rewriteParent( MavenProject project, Model targetModel, Map elements, Map mappedVersions,
- Map> resolvedSnapshotDependencies,
- Map originalVersions, Model projectModel,
+ private void rewriteArtifactVersions( Collection elements, Model projectModel,
Properties properties, ReleaseResult result,
- ReleaseDescriptor releaseDescriptor )
+ ReleaseDescriptor releaseDescriptor, boolean simulate )
throws ReleaseExecutionException, ReleaseFailureException
{
if ( elements == null )
@@ -449,12 +429,12 @@ private void rewriteArtifactVersions( Collection elements, Map<
String artifactId = ReleaseUtil.interpolate( rawArtifactId, projectModel );
String key = ArtifactUtils.versionlessKey( groupId, artifactId );
- String resolvedSnapshotVersion = getResolvedSnapshotVersion( key, resolvedSnapshotDependencies );
- String mappedVersion = mappedVersions.get( key );
- String originalVersion = originalVersions.get( key );
+ String resolvedSnapshotVersion = getResolvedSnapshotVersion( key, releaseDescriptor );
+ String mappedVersion = getNextVersion( releaseDescriptor, key );
+ String originalVersion = getOriginalVersion( releaseDescriptor, key, simulate );
if ( originalVersion == null )
{
- originalVersion = getOriginalResolvedSnapshotVersion( key, resolvedSnapshotDependencies );
+ originalVersion = getOriginalResolvedSnapshotVersion( key, releaseDescriptor );
}
// MRELEASE-220
@@ -478,7 +458,7 @@ else if ( rawVersion.matches( "\\$\\{.+\\}" ) )
if ( expression.startsWith( "project." ) || expression.startsWith( "pom." )
|| "version".equals( expression ) )
{
- if ( !mappedVersion.equals( mappedVersions.get( projectId ) ) )
+ if ( !mappedVersion.equals( getNextVersion( releaseDescriptor, projectId ) ) )
{
logInfo( result, " Updating " + artifactId + " to " + mappedVersion );
coordinate.setVersion( mappedVersion );
@@ -579,13 +559,12 @@ private void prepareScm( File pomFile, ReleaseDescriptor releaseDescriptor, ScmR
protected abstract String getResolvedSnapshotVersion( String artifactVersionlessKey,
- Map> resolvedSnapshots );
+ ReleaseDescriptor releaseDscriptor );
- protected abstract Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor,
- List reactorProjects,
- boolean simulate );
+ protected abstract String getOriginalVersion( ReleaseDescriptor releaseDescriptor, String projectKey,
+ boolean simulate );
- protected abstract Map getNextVersionMap( ReleaseDescriptor releaseDescriptor );
+ protected abstract String getNextVersion( ReleaseDescriptor releaseDescriptor, String key );
protected abstract void transformScm( MavenProject project, Model modelTarget, ReleaseDescriptor releaseDescriptor,
String projectId, ScmRepository scmRepository,
@@ -603,37 +582,9 @@ protected boolean isUpdateScm()
}
protected String getOriginalResolvedSnapshotVersion( String artifactVersionlessKey,
- Map> resolvedSnapshots )
+ ReleaseDescriptor releaseDescriptor )
{
- Map versionsMap = resolvedSnapshots.get( artifactVersionlessKey );
-
- if ( versionsMap != null )
- {
- return versionsMap.get( ReleaseDescriptor.ORIGINAL_VERSION );
- }
- else
- {
- return null;
- }
- }
-
- protected Scm buildScm( MavenProject project )
- {
- IdentifiedScm scm;
- if ( project.getOriginalModel().getScm() == null )
- {
- scm = null;
- }
- else
- {
- scm = new IdentifiedScm();
- scm.setConnection( project.getOriginalModel().getScm().getConnection() );
- scm.setDeveloperConnection( project.getOriginalModel().getScm().getDeveloperConnection() );
- scm.setTag( project.getOriginalModel().getScm().getTag() );
- scm.setUrl( project.getOriginalModel().getScm().getUrl() );
- scm.setId( project.getProperties().getProperty( "project.scm.id" ) );
- }
- return scm;
+ return releaseDescriptor.getDependencyOriginalVersion( artifactVersionlessKey );
}
/**
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
index cc762c955..4dd43b720 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
@@ -22,7 +22,6 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -78,10 +77,6 @@ public class CheckDependencySnapshotsPhase
// We'll probably need to introduce specifiedSnapshots as well.
// @TODO MRELEASE-378: verify custom dependencies in plugins. Be aware of deprecated/removed Components in M3, such as PluginCollector
// @TODO MRELEASE-763: verify all dependencies in inactive profiles
- private Set usedSnapshotDependencies = new HashSet<>();
- private Set usedSnapshotReports = new HashSet<>();
- private Set usedSnapshotExtensions = new HashSet<>();
- private Set usedSnapshotPlugins = new HashSet<>();
// Don't prompt for every project in reactor, remember state of questions
private String resolveSnapshot;
@@ -99,11 +94,9 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
{
logInfo( result, "Checking dependencies and plugins for snapshots ..." );
- Map originalVersions = releaseDescriptor.getOriginalVersions( reactorProjects );
-
for ( MavenProject project : reactorProjects )
{
- checkProject( project, originalVersions, releaseDescriptor );
+ checkProject( project, releaseDescriptor );
}
}
else
@@ -115,35 +108,36 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
return result;
}
- private void checkProject( MavenProject project, Map originalVersions,
- ReleaseDescriptor releaseDescriptor )
+ private void checkProject( MavenProject project, ReleaseDescriptor releaseDescriptor )
throws ReleaseFailureException, ReleaseExecutionException
{
Map artifactMap = ArtifactUtils.artifactMapByVersionlessId( project.getArtifacts() );
+
+ Set usedSnapshotDependencies = new HashSet<>();
if ( project.getParentArtifact() != null )
{
- if ( checkArtifact( project.getParentArtifact(), originalVersions, artifactMap, releaseDescriptor ) )
+ if ( checkArtifact( project.getParentArtifact(), artifactMap, releaseDescriptor ) )
{
usedSnapshotDependencies.add( project.getParentArtifact() );
}
}
Set dependencyArtifacts = project.getArtifacts();
- checkDependencies( originalVersions, releaseDescriptor, artifactMap, dependencyArtifacts );
+ usedSnapshotDependencies.addAll( checkDependencies( releaseDescriptor, artifactMap, dependencyArtifacts ) );
//@todo check dependencyManagement
Set pluginArtifacts = project.getPluginArtifacts();
- checkPlugins( originalVersions, releaseDescriptor, artifactMap, pluginArtifacts );
+ Set usedSnapshotPlugins = checkPlugins( releaseDescriptor, artifactMap, pluginArtifacts );
//@todo check pluginManagement
Set reportArtifacts = project.getReportArtifacts();
- checkReports( originalVersions, releaseDescriptor, artifactMap, reportArtifacts );
+ Set usedSnapshotReports = checkReports( releaseDescriptor, artifactMap, reportArtifacts );
Set extensionArtifacts = project.getExtensionArtifacts();
- checkExtensions( originalVersions, releaseDescriptor, artifactMap, extensionArtifacts );
+ Set usedSnapshotExtensions = checkExtensions( releaseDescriptor, artifactMap, extensionArtifacts );
//@todo check profiles
@@ -173,13 +167,14 @@ private void checkProject( MavenProject project, Map originalVer
}
}
- private void checkPlugins( Map originalVersions, ReleaseDescriptor releaseDescriptor,
+ private Set checkPlugins( ReleaseDescriptor releaseDescriptor,
Map artifactMap, Set pluginArtifacts )
throws ReleaseExecutionException
{
+ Set usedSnapshotPlugins = new HashSet<>();
for ( Artifact artifact : pluginArtifacts )
{
- if ( checkArtifact( artifact, originalVersions, artifactMap, releaseDescriptor ) )
+ if ( checkArtifact( artifact, artifactMap, releaseDescriptor ) )
{
boolean addToFailures;
@@ -212,7 +207,6 @@ else if ( releaseDescriptor.isInteractive() )
if ( result.toLowerCase( Locale.ENGLISH ).startsWith( "y" ) )
{
addToFailures = false;
- releaseDescriptor.setSnapshotReleasePluginAllowed( true );
}
else
{
@@ -240,52 +234,60 @@ else if ( releaseDescriptor.isInteractive() )
}
}
}
+ return usedSnapshotPlugins;
}
- private void checkDependencies( Map originalVersions, ReleaseDescriptor releaseDescriptor,
- Map artifactMap, Set dependencyArtifacts )
+ private Set checkDependencies( ReleaseDescriptor releaseDescriptor,
+ Map artifactMap,
+ Set dependencyArtifacts )
{
+ Set usedSnapshotDependencies = new HashSet<>();
for ( Artifact artifact : dependencyArtifacts )
{
- if ( checkArtifact( artifact, originalVersions, artifactMap, releaseDescriptor ) )
+ if ( checkArtifact( artifact, artifactMap, releaseDescriptor ) )
{
usedSnapshotDependencies.add( getArtifactFromMap( artifact, artifactMap ) );
}
}
+ return usedSnapshotDependencies;
}
- private void checkReports( Map originalVersions, ReleaseDescriptor releaseDescriptor,
+ private Set checkReports( ReleaseDescriptor releaseDescriptor,
Map artifactMap, Set reportArtifacts )
{
+ Set usedSnapshotReports = new HashSet<>();
for ( Artifact artifact : reportArtifacts )
{
- if ( checkArtifact( artifact, originalVersions, artifactMap, releaseDescriptor ) )
+ if ( checkArtifact( artifact, artifactMap, releaseDescriptor ) )
{
//snapshotDependencies.add( artifact );
usedSnapshotReports.add( artifact );
}
}
+ return usedSnapshotReports;
}
- private void checkExtensions( Map originalVersions, ReleaseDescriptor releaseDescriptor,
+ private Set checkExtensions( ReleaseDescriptor releaseDescriptor,
Map artifactMap, Set extensionArtifacts )
{
+ Set usedSnapshotExtensions = new HashSet<>();
for ( Artifact artifact : extensionArtifacts )
{
- if ( checkArtifact( artifact, originalVersions, artifactMap, releaseDescriptor ) )
+ if ( checkArtifact( artifact, artifactMap, releaseDescriptor ) )
{
usedSnapshotExtensions.add( artifact );
}
}
+ return usedSnapshotExtensions;
}
- private static boolean checkArtifact( Artifact artifact, Map originalVersions,
+ private static boolean checkArtifact( Artifact artifact,
Map artifactMapByVersionlessId,
ReleaseDescriptor releaseDescriptor )
{
Artifact checkArtifact = getArtifactFromMap( artifact, artifactMapByVersionlessId );
- return checkArtifact( checkArtifact, originalVersions, releaseDescriptor );
+ return checkArtifact( checkArtifact, releaseDescriptor );
}
private static Artifact getArtifactFromMap( Artifact artifact, Map artifactMapByVersionlessId )
@@ -300,16 +302,14 @@ private static Artifact getArtifactFromMap( Artifact artifact, Map originalVersions,
- ReleaseDescriptor releaseDescriptor )
+ private static boolean checkArtifact( Artifact artifact, ReleaseDescriptor releaseDescriptor )
{
- String versionlessArtifactKey = ArtifactUtils.versionlessKey( artifact.getGroupId(), artifact.getArtifactId() );
-
+ String versionlessKey = ArtifactUtils.versionlessKey( artifact.getGroupId(), artifact.getArtifactId() );
+
// We are only looking at dependencies external to the project - ignore anything found in the reactor as
// it's version will be updated
- boolean result =
- artifact.isSnapshot()
- && !artifact.getBaseVersion().equals( originalVersions.get( versionlessArtifactKey ) );
+ boolean result = artifact.isSnapshot()
+ && !artifact.getBaseVersion().equals( releaseDescriptor.getProjectOriginalVersion( versionlessKey ) );
// If we have a snapshot but allowTimestampedSnapshots is true, accept the artifact if the version
// indicates that it is a timestamped snapshot.
@@ -368,8 +368,6 @@ private void resolveSnapshots( Set projectDependencies, Set
if ( resolveSnapshot.toLowerCase( Locale.ENGLISH ).startsWith( "y" ) )
{
- Map> resolvedSnapshots = null;
-
if ( resolveSnapshotType == null )
{
prompter.showMessage( RESOLVE_SNAPSHOT_TYPE_MESSAGE );
@@ -381,36 +379,34 @@ private void resolveSnapshots( Set projectDependencies, Set
{
// all
case 0:
- resolvedSnapshots = processSnapshot( projectDependencies );
- resolvedSnapshots.putAll( processSnapshot( pluginDependencies ) );
- resolvedSnapshots.putAll( processSnapshot( reportDependencies ) );
- resolvedSnapshots.putAll( processSnapshot( extensionDependencies ) );
+ processSnapshot( projectDependencies, releaseDescriptor );
+ processSnapshot( pluginDependencies, releaseDescriptor );
+ processSnapshot( reportDependencies, releaseDescriptor );
+ processSnapshot( extensionDependencies, releaseDescriptor );
break;
// project dependencies
case 1:
- resolvedSnapshots = processSnapshot( projectDependencies );
+ processSnapshot( projectDependencies, releaseDescriptor );
break;
// plugins
case 2:
- resolvedSnapshots = processSnapshot( pluginDependencies );
+ processSnapshot( pluginDependencies, releaseDescriptor );
break;
// reports
case 3:
- resolvedSnapshots = processSnapshot( reportDependencies );
+ processSnapshot( reportDependencies, releaseDescriptor );
break;
// extensions
case 4:
- resolvedSnapshots = processSnapshot( extensionDependencies );
+ processSnapshot( extensionDependencies, releaseDescriptor );
break;
default:
}
-
- releaseDescriptor.getResolvedSnapshotDependencies().putAll( resolvedSnapshots );
}
}
catch ( PrompterException | VersionParseException e )
@@ -419,10 +415,9 @@ private void resolveSnapshots( Set projectDependencies, Set
}
}
- private Map> processSnapshot( Set snapshotSet )
+ private void processSnapshot( Set snapshotSet, ReleaseDescriptor releaseDescriptor )
throws PrompterException, VersionParseException
{
- Map> resolvedSnapshots = new HashMap<>();
Iterator iterator = snapshotSet.iterator();
while ( iterator.hasNext() )
@@ -430,15 +425,15 @@ private Map> processSnapshot( Set snapshot
Artifact currentArtifact = iterator.next();
String versionlessKey = ArtifactUtils.versionlessKey( currentArtifact );
- Map versionMap = new HashMap<>();
VersionInfo versionInfo = new DefaultVersionInfo( currentArtifact.getBaseVersion() );
- versionMap.put( ReleaseDescriptor.ORIGINAL_VERSION, versionInfo.toString() );
+ releaseDescriptor.addDependencyOriginalVersion( versionlessKey, versionInfo.toString() );
prompter.showMessage(
"Dependency '" + versionlessKey + "' is a snapshot (" + currentArtifact.getVersion() + ")\n" );
String result = prompter.prompt( "Which release version should it be set to?",
versionInfo.getReleaseVersionString() );
- versionMap.put( ReleaseDescriptor.RELEASE_KEY, result );
+
+ releaseDescriptor.addDependencyReleaseVersion( versionlessKey, result );
iterator.remove();
@@ -457,11 +452,8 @@ private Map> processSnapshot( Set snapshot
}
result = prompter.prompt( "What version should the dependency be reset to for development?", nextVersion );
- versionMap.put( ReleaseDescriptor.DEVELOPMENT_KEY, result );
-
- resolvedSnapshots.put( versionlessKey, versionMap );
+
+ releaseDescriptor.addDependencyDevelopmentVersion( versionlessKey, result );
}
-
- return resolvedSnapshots;
}
}
\ No newline at end of file
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java
index b5066d223..128721fd8 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java
@@ -30,7 +30,6 @@
import org.apache.maven.shared.release.env.ReleaseEnvironment;
import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
-import org.apache.maven.shared.release.util.ReleaseUtil;
import org.codehaus.plexus.util.StringUtils;
import java.util.List;
@@ -64,30 +63,14 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
ReleaseResult result = new ReleaseResult();
// Currently, we don't deal with multiple SCM locations in a multiproject
- if ( scmRequired && StringUtils.isEmpty( releaseDescriptor.getScmSourceUrl() ) )
+ if ( scmRequired )
{
- MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
- if ( rootProject != null && rootProject.getScm() != null )
- {
- if ( rootProject.getScm().getDeveloperConnection() != null )
- {
- releaseDescriptor.setScmSourceUrl( rootProject.getScm().getDeveloperConnection() );
- }
- else if ( rootProject.getScm().getConnection() != null )
- {
- releaseDescriptor.setScmSourceUrl( rootProject.getScm().getConnection() );
- }
- }
-
if ( StringUtils.isEmpty( releaseDescriptor.getScmSourceUrl() ) )
{
throw new ReleaseFailureException(
"Missing required setting: scm connection or developerConnection must be specified." );
}
- // As long as Scm.getId() does not exist, read it as a property
- releaseDescriptor.setScmId( rootProject.getProperties().getProperty( "project.scm.id" ) );
-
try
{
scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor,
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
index eec0f2c6d..33f953778 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScm.java
@@ -183,17 +183,10 @@ private ReleaseResult performCheckout( ReleaseDescriptor releaseDescriptor, Rele
}
MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
+
// TODO: sanity check that it is not . or .. or lower
- File checkoutDirectory;
- if ( StringUtils.isEmpty( releaseDescriptor.getCheckoutDirectory() ) )
- {
- checkoutDirectory = new File( rootProject.getFile().getParentFile(), "target/checkout" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
- }
- else
- {
- checkoutDirectory = new File( releaseDescriptor.getCheckoutDirectory() );
- }
+ File checkoutDirectory =
+ FileUtils.resolveFile( rootProject.getBasedir(), releaseDescriptor.getCheckoutDirectory() );
if ( checkoutDirectory.exists() )
{
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java
index fbb074992..455f9b4a3 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhase.java
@@ -216,9 +216,6 @@ private Model createReleaseModel( MavenProject project, ReleaseDescriptor releas
ReleaseResult result )
throws ReleaseFailureException, ReleaseExecutionException
{
- Map originalVersions = getOriginalVersionMap( releaseDescriptor, reactorProjects );
- Map mappedVersions = getNextVersionMap( releaseDescriptor );
-
MavenProject releaseProject = project.clone();
Model releaseModel = releaseProject.getModel();
@@ -232,7 +229,7 @@ private Model createReleaseModel( MavenProject project, ReleaseDescriptor releas
// update project version
String projectVersion = releaseModel.getVersion();
String releaseVersion =
- getNextVersion( mappedVersions, project.getGroupId(), project.getArtifactId(), projectVersion );
+ getNextVersion( releaseDescriptor, project.getGroupId(), project.getArtifactId(), projectVersion );
releaseModel.setVersion( releaseVersion );
String originalFinalName = releaseModel.getBuild().getFinalName();
@@ -283,17 +280,17 @@ private Model createReleaseModel( MavenProject project, ReleaseDescriptor releas
}
// rewrite dependencies
- releaseModel.setDependencies( createReleaseDependencies( originalVersions, mappedVersions, releaseProject ) );
+ releaseModel.setDependencies( createReleaseDependencies( releaseDescriptor, releaseProject ) );
// rewrite plugins
- releaseModel.getBuild().setPlugins( createReleasePlugins( originalVersions, mappedVersions, releaseProject ) );
+ releaseModel.getBuild().setPlugins( createReleasePlugins( releaseDescriptor, releaseProject ) );
// rewrite reports
- releaseModel.getReporting().setPlugins( createReleaseReportPlugins( originalVersions, mappedVersions,
+ releaseModel.getReporting().setPlugins( createReleaseReportPlugins( releaseDescriptor,
releaseProject ) );
// rewrite extensions
- releaseModel.getBuild().setExtensions( createReleaseExtensions( originalVersions, mappedVersions,
+ releaseModel.getBuild().setExtensions( createReleaseExtensions( releaseDescriptor,
releaseProject ) );
unalignFromBaseDirectory( releaseModel, project.getBasedir() );
@@ -419,18 +416,7 @@ public ReleaseResult simulate( ReleaseDescriptor releaseDescriptor, ReleaseEnvir
return execute( releaseDescriptor, releaseEnvironment, reactorProjects, true );
}
- protected Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor,
- List reactorProjects )
- {
- return releaseDescriptor.getOriginalVersions( reactorProjects );
- }
-
- protected Map getNextVersionMap( ReleaseDescriptor releaseDescriptor )
- {
- return releaseDescriptor.getReleaseVersions();
- }
-
- private String getNextVersion( Map mappedVersions, String groupId, String artifactId,
+ private String getNextVersion( ReleaseDescriptor releaseDescriptor, String groupId, String artifactId,
String version )
throws ReleaseFailureException
{
@@ -438,7 +424,7 @@ private String getNextVersion( Map mappedVersions, String groupI
String id = ArtifactUtils.versionlessKey( groupId, artifactId );
- String nextVersion = mappedVersions.get( id );
+ String nextVersion = releaseDescriptor.getProjectReleaseVersion( id );
if ( nextVersion == null )
{
@@ -489,8 +475,8 @@ private Scm createReleaseScm( Scm scm, ScmTranslator scmTranslator, ReleaseDescr
return releaseScm;
}
- private List createReleaseDependencies( Map originalVersions,
- Map mappedVersions, MavenProject project )
+ private List createReleaseDependencies( ReleaseDescriptor releaseDescriptor,
+ MavenProject project )
throws ReleaseFailureException
{
Set artifacts = project.getArtifacts();
@@ -513,7 +499,7 @@ private List createReleaseDependencies( Map original
releaseDependency.setGroupId( artifact.getGroupId() );
releaseDependency.setArtifactId( artifact.getArtifactId() );
- String version = getReleaseVersion( originalVersions, mappedVersions, artifact );
+ String version = getReleaseVersion( releaseDescriptor, artifact );
releaseDependency.setVersion( version );
releaseDependency.setType( artifact.getType() );
@@ -527,14 +513,14 @@ private List createReleaseDependencies( Map original
return releaseDependencies;
}
- private String getReleaseVersion( Map originalVersions, Map mappedVersions,
+ private String getReleaseVersion( ReleaseDescriptor releaseDescriptor,
Artifact artifact )
throws ReleaseFailureException
{
String key = ArtifactUtils.versionlessKey( artifact );
- String originalVersion = originalVersions.get( key );
- String mappedVersion = mappedVersions.get( key );
+ String originalVersion = releaseDescriptor.getProjectOriginalVersion( key );
+ String mappedVersion = releaseDescriptor.getProjectReleaseVersion( key );
String version = artifact.getVersion();
@@ -560,8 +546,8 @@ private String getReleaseVersion( Map originalVersions, Map createReleasePlugins( Map originalVersions,
- Map mappedVersions, MavenProject project )
+ private List createReleasePlugins( ReleaseDescriptor releaseDescriptor,
+ MavenProject project )
throws ReleaseFailureException
{
List releasePlugins = null;
@@ -583,7 +569,7 @@ private List createReleasePlugins( Map originalVersions,
{
String id = ArtifactUtils.versionlessKey( plugin.getGroupId(), plugin.getArtifactId() );
Artifact artifact = artifactsById.get( id );
- String version = getReleaseVersion( originalVersions, mappedVersions, artifact );
+ String version = getReleaseVersion( releaseDescriptor, artifact );
Plugin releasePlugin = new Plugin();
releasePlugin.setGroupId( plugin.getGroupId() );
@@ -607,8 +593,8 @@ private List createReleasePlugins( Map originalVersions,
return releasePlugins;
}
- private List createReleaseReportPlugins( Map originalVersions,
- Map mappedVersions, MavenProject project )
+ private List createReleaseReportPlugins( ReleaseDescriptor releaseDescriptor,
+ MavenProject project )
throws ReleaseFailureException
{
List releaseReportPlugins = null;
@@ -629,7 +615,7 @@ private List createReleaseReportPlugins( Map origi
{
String id = ArtifactUtils.versionlessKey( reportPlugin.getGroupId(), reportPlugin.getArtifactId() );
Artifact artifact = artifactsById.get( id );
- String version = getReleaseVersion( originalVersions, mappedVersions, artifact );
+ String version = getReleaseVersion( releaseDescriptor, artifact );
ReportPlugin releaseReportPlugin = new ReportPlugin();
releaseReportPlugin.setGroupId( reportPlugin.getGroupId() );
@@ -647,8 +633,8 @@ private List createReleaseReportPlugins( Map origi
return releaseReportPlugins;
}
- private List createReleaseExtensions( Map originalVersions,
- Map mappedVersions, MavenProject project )
+ private List createReleaseExtensions( ReleaseDescriptor releaseDescriptor,
+ MavenProject project )
throws ReleaseFailureException
{
List releaseExtensions = null;
@@ -668,7 +654,7 @@ private List createReleaseExtensions( Map originalVer
{
String id = ArtifactUtils.versionlessKey( extension.getGroupId(), extension.getArtifactId() );
Artifact artifact = project.getExtensionArtifactMap().get( id );
- String version = getReleaseVersion( originalVersions, mappedVersions, artifact );
+ String version = getReleaseVersion( releaseDescriptor, artifact );
Extension releaseExtension = new Extension();
releaseExtension.setGroupId( extension.getGroupId() );
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
index 985b9cf0a..c155e3c46 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
@@ -134,7 +134,7 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
{
// Must get default version from mapped versions, as the project will be the incorrect snapshot
String key = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
- String releaseVersion = releaseDescriptor.getReleaseVersions().get( key );
+ String releaseVersion = releaseDescriptor.getProjectReleaseVersion( key );
if ( releaseVersion == null )
{
throw new ReleaseExecutionException( "Project tag cannot be selected if version is not yet mapped" );
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
index eedf50ab5..1b585ab83 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/MapVersionsPhase.java
@@ -121,16 +121,16 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
{
if ( releaseDescriptor.isBranchCreation() && convertToBranch )
{
- releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
+ releaseDescriptor.addReleaseVersion( projectId, nextVersion );
}
else
{
- releaseDescriptor.mapDevelopmentVersion( projectId, nextVersion );
+ releaseDescriptor.addDevelopmentVersion( projectId, nextVersion );
}
}
else
{
- releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
+ releaseDescriptor.addReleaseVersion( projectId, nextVersion );
}
for ( MavenProject subProject : reactorProjects )
@@ -152,16 +152,16 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
if ( releaseDescriptor.isBranchCreation() && convertToBranch )
{
- releaseDescriptor.mapReleaseVersion( subProjectId, v );
+ releaseDescriptor.addReleaseVersion( subProjectId, v );
}
else
{
- releaseDescriptor.mapDevelopmentVersion( subProjectId, v );
+ releaseDescriptor.addDevelopmentVersion( subProjectId, v );
}
}
else
{
- releaseDescriptor.mapReleaseVersion( subProjectId, nextVersion );
+ releaseDescriptor.addReleaseVersion( subProjectId, nextVersion );
}
}
}
@@ -177,16 +177,16 @@ public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnviro
{
if ( releaseDescriptor.isBranchCreation() && convertToBranch )
{
- releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
+ releaseDescriptor.addReleaseVersion( projectId, nextVersion );
}
else
{
- releaseDescriptor.mapDevelopmentVersion( projectId, nextVersion );
+ releaseDescriptor.addDevelopmentVersion( projectId, nextVersion );
}
}
else
{
- releaseDescriptor.mapReleaseVersion( projectId, nextVersion );
+ releaseDescriptor.addReleaseVersion( projectId, nextVersion );
}
}
}
@@ -333,7 +333,7 @@ private String getDevelopmentVersion( String projectId, ReleaseDescriptor releas
String defaultVersion = releaseDescriptor.getDefaultDevelopmentVersion();
if ( StringUtils.isEmpty( defaultVersion ) )
{
- defaultVersion = releaseDescriptor.getDevelopmentVersions().get( projectId );
+ defaultVersion = releaseDescriptor.getProjectDevelopmentVersion( projectId );
}
return defaultVersion;
}
@@ -343,7 +343,7 @@ private String getReleaseVersion( String projectId, ReleaseDescriptor releaseDes
String nextVersion = releaseDescriptor.getDefaultReleaseVersion();
if ( StringUtils.isEmpty( nextVersion ) )
{
- nextVersion = releaseDescriptor.getReleaseVersions().get( projectId );
+ nextVersion = releaseDescriptor.getProjectReleaseVersion( projectId );
}
return nextVersion;
}
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
index 2ed437665..0ef834e64 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
@@ -19,9 +19,6 @@
* under the License.
*/
-import java.util.List;
-import java.util.Map;
-
import org.apache.maven.model.Model;
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.repository.ScmRepository;
@@ -61,21 +58,20 @@ protected boolean isUpdateScm()
}
@Override
- protected Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor,
- List reactorProjects, boolean simulate )
+ protected String getOriginalVersion( ReleaseDescriptor releaseDescriptor, String projectKey, boolean simulate )
{
- return releaseDescriptor.getOriginalVersions( reactorProjects );
+ return releaseDescriptor.getProjectOriginalVersion( projectKey );
}
@Override
- protected Map getNextVersionMap( ReleaseDescriptor releaseDescriptor )
+ protected String getNextVersion( ReleaseDescriptor releaseDescriptor, String key )
{
- return releaseDescriptor.getDevelopmentVersions();
+ return releaseDescriptor.getProjectDevelopmentVersion( key );
}
@Override
protected String getResolvedSnapshotVersion( String artifactVersionlessKey,
- Map> resolvedSnapshotsMap )
+ ReleaseDescriptor resolvedSnapshotsMap )
{
// Only update the pom version, not the dependency versions
return null;
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
index 1907e6aa8..586e97d98 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
@@ -20,8 +20,6 @@
*/
import java.io.IOException;
-import java.util.List;
-import java.util.Map;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.model.Model;
@@ -64,9 +62,6 @@ protected void transformScm( MavenProject project, Model modelTarget, ReleaseDes
if ( scmRoot != null )
{
- Scm scm = buildScm( project );
- releaseDescriptor.mapOriginalScmInfo( projectId, scm );
-
try
{
translateScm( project, releaseDescriptor, scmRoot, scmRepository, result, commonBasedir );
@@ -78,15 +73,13 @@ protected void transformScm( MavenProject project, Model modelTarget, ReleaseDes
}
else
{
- releaseDescriptor.mapOriginalScmInfo( projectId, null );
-
MavenProject parent = project.getParent();
if ( parent != null )
{
// If the SCM element is not present, only add it if the parent was not mapped (ie, it's external to
// the release process and so has not been modified, so the values will not be correct on the tag),
String parentId = ArtifactUtils.versionlessKey( parent.getGroupId(), parent.getArtifactId() );
- if ( !releaseDescriptor.getOriginalScmInfo().containsKey( parentId ) )
+ if ( releaseDescriptor.getOriginalScmInfo( parentId ) == null )
{
// we need to add it, since it has changed from the inherited value
scmRoot = new Scm();
@@ -244,31 +237,21 @@ private boolean translateScm( MavenProject project, ReleaseDescriptor releaseDes
}
@Override
- protected Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor,
- List reactorProjects, boolean simulate )
+ protected String getOriginalVersion( ReleaseDescriptor releaseDescriptor, String projectKey, boolean simulate )
{
- return releaseDescriptor.getOriginalVersions( reactorProjects );
+ return releaseDescriptor.getProjectOriginalVersion( projectKey );
}
@Override
- protected Map getNextVersionMap( ReleaseDescriptor releaseDescriptor )
+ protected String getNextVersion( ReleaseDescriptor releaseDescriptor, String key )
{
- return releaseDescriptor.getReleaseVersions();
+ return releaseDescriptor.getProjectReleaseVersion( key );
}
@Override
protected String getResolvedSnapshotVersion( String artifactVersionlessKey,
- Map> resolvedSnapshotsMap )
+ ReleaseDescriptor releaseDescriptor )
{
- Map versionsMap = resolvedSnapshotsMap.get( artifactVersionlessKey );
-
- if ( versionsMap != null )
- {
- return versionsMap.get( ReleaseDescriptor.RELEASE_KEY );
- }
- else
- {
- return null;
- }
+ return releaseDescriptor.getDependencyReleaseVersion( artifactVersionlessKey );
}
}
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
index 01bd7ef95..cb65866d2 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhase.java
@@ -19,9 +19,6 @@
* under the License.
*/
-import java.util.List;
-import java.util.Map;
-
import org.apache.maven.model.Model;
import org.apache.maven.model.Scm;
import org.apache.maven.project.MavenProject;
@@ -59,9 +56,8 @@ protected void transformScm( MavenProject project, Model modelTarget, ReleaseDes
Scm scmRoot = modelTarget.getScm();
if ( scmRoot != null )
{
- Map originalScmInfo = releaseDescriptor.getOriginalScmInfo();
// check containsKey, not == null, as we store null as a value
- if ( !originalScmInfo.containsKey( projectId ) )
+ if ( releaseDescriptor.getOriginalScmInfo( projectId ) == null )
{
throw new ReleaseExecutionException(
"Unable to find original SCM info for '" + project.getName() + "'" );
@@ -70,7 +66,7 @@ protected void transformScm( MavenProject project, Model modelTarget, ReleaseDes
ScmTranslator translator = getScmTranslators().get( scmRepository.getProvider() );
if ( translator != null )
{
- Scm scm = originalScmInfo.get( projectId );
+ Scm scm = releaseDescriptor.getOriginalScmInfo( projectId );
if ( scm != null )
{
@@ -96,33 +92,23 @@ protected void transformScm( MavenProject project, Model modelTarget, ReleaseDes
}
@Override
- protected Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor,
- List reactorProjects, boolean simulate )
+ protected String getOriginalVersion( ReleaseDescriptor releaseDescriptor, String projectKey, boolean simulate )
{
return simulate
- ? releaseDescriptor.getOriginalVersions( reactorProjects )
- : releaseDescriptor.getReleaseVersions();
+ ? releaseDescriptor.getProjectOriginalVersion( projectKey )
+ : releaseDescriptor.getProjectReleaseVersion( projectKey );
}
@Override
- protected Map getNextVersionMap( ReleaseDescriptor releaseDescriptor )
+ protected String getNextVersion( ReleaseDescriptor releaseDescriptor, String key )
{
- return releaseDescriptor.getDevelopmentVersions();
+ return releaseDescriptor.getProjectDevelopmentVersion( key );
}
@Override
protected String getResolvedSnapshotVersion( String artifactVersionlessKey,
- Map> resolvedSnapshotsMap )
+ ReleaseDescriptor releaseDescriptor )
{
- Map versionsMap = resolvedSnapshotsMap.get( artifactVersionlessKey );
-
- if ( versionsMap != null )
- {
- return versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY );
- }
- else
- {
- return null;
- }
+ return releaseDescriptor.getDependencyDevelopmentVersion( artifactVersionlessKey );
}
}
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
index 6e2b47e63..dc774a190 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
@@ -20,8 +20,6 @@
*/
import java.io.IOException;
-import java.util.List;
-import java.util.Map;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.model.Model;
@@ -62,9 +60,6 @@ protected void transformScm( MavenProject project, Model modelTarget, ReleaseDes
Scm scmRoot = modelTarget.getScm();
if ( scmRoot != null )
{
- Scm scm = buildScm( project );
- releaseDescriptor.mapOriginalScmInfo( projectId, scm );
-
try
{
translateScm( project, releaseDescriptor, scmRoot, scmRepository, result, commonBasedir );
@@ -76,15 +71,13 @@ protected void transformScm( MavenProject project, Model modelTarget, ReleaseDes
}
else
{
- releaseDescriptor.mapOriginalScmInfo( projectId, null );
-
MavenProject parent = project.getParent();
if ( parent != null )
{
// If the SCM element is not present, only add it if the parent was not mapped (ie, it's external to
// the release process and so has not been modified, so the values will not be correct on the tag),
String parentId = ArtifactUtils.versionlessKey( parent.getGroupId(), parent.getArtifactId() );
- if ( !releaseDescriptor.getOriginalScmInfo().containsKey( parentId ) )
+ if ( releaseDescriptor.getOriginalScmInfo( parentId ) == null )
{
// we need to add it, since it has changed from the inherited value
Scm scmTarget = new Scm();
@@ -238,31 +231,21 @@ private boolean translateScm( MavenProject project, ReleaseDescriptor releaseDes
}
@Override
- protected Map getOriginalVersionMap( ReleaseDescriptor releaseDescriptor,
- List reactorProjects, boolean simulate )
+ protected String getOriginalVersion( ReleaseDescriptor releaseDescriptor, String projectKey, boolean simulate )
{
- return releaseDescriptor.getOriginalVersions( reactorProjects );
+ return releaseDescriptor.getProjectOriginalVersion( projectKey );
}
@Override
- protected Map getNextVersionMap( ReleaseDescriptor releaseDescriptor )
+ protected String getNextVersion( ReleaseDescriptor releaseDescriptor, String key )
{
- return releaseDescriptor.getReleaseVersions();
+ return releaseDescriptor.getProjectReleaseVersion( key );
}
@Override
protected String getResolvedSnapshotVersion( String artifactVersionlessKey,
- Map> resolvedSnapshotsMap )
+ ReleaseDescriptor releaseDescriptor )
{
- Map versionsMap = resolvedSnapshotsMap.get( artifactVersionlessKey );
-
- if ( versionsMap != null )
- {
- return versionsMap.get( ReleaseDescriptor.RELEASE_KEY );
- }
- else
- {
- return null;
- }
+ return releaseDescriptor.getDependencyReleaseVersion( artifactVersionlessKey );
}
}
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
index ea76dbaae..00f2c1ed8 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
@@ -34,6 +34,8 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
+import org.apache.maven.shared.release.config.ReleaseUtils;
import org.codehaus.plexus.interpolation.InterpolationException;
import org.codehaus.plexus.interpolation.MapBasedValueSource;
import org.codehaus.plexus.interpolation.ObjectBasedValueSource;
@@ -188,10 +190,10 @@ public static ReleaseDescriptor createBasedirAlignedReleaseDescriptor( ReleaseDe
String url = releaseDescriptor.getScmSourceUrl();
url = realignScmUrl( parentLevels, url );
- ReleaseDescriptor descriptor = new ReleaseDescriptor();
- descriptor.setWorkingDirectory( basedir );
- descriptor.setScmSourceUrl( url );
- return descriptor;
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setWorkingDirectory( basedir );
+ builder.setScmSourceUrl( url );
+ return ReleaseUtils.buildReleaseDescriptor( builder );
}
public static String getCommonBasedir( List reactorProjects )
diff --git a/maven-release-manager/src/main/mdo/release-descriptor.mdo b/maven-release-manager/src/main/mdo/release-descriptor.mdo
index 619108733..4123d12fd 100644
--- a/maven-release-manager/src/main/mdo/release-descriptor.mdo
+++ b/maven-release-manager/src/main/mdo/release-descriptor.mdo
@@ -37,7 +37,7 @@
- ReleaseDescriptor
+ ModelloReleaseDescriptor
1.0.0+
@@ -241,6 +241,7 @@
checkoutDirectory
1.0.0+
String
+ target/checkout
The directory where the tag will be checked out.
@@ -534,71 +535,50 @@
2.1.0+
> resolvedSnapshotDependencies;
-
- /**
- * Field releaseVersions.
- */
- private java.util.Map releaseVersions;
+ private java.util.Map resolvedSnapshotDependencies = new java.util.HashMap<>();
/**
- * Field developmentVersions.
+ * Field projectVersions
*/
- private java.util.Map developmentVersions;
+ private java.util.Map projectVersions = new java.util.HashMap<>();
/**
* Field originalScmInfo.
*/
- private java.util.Map originalScmInfo;
+ private java.util.Map originalScmInfo = new java.util.HashMap<>();
- /**
- * Method getResolvedSnapshotDependencies.
- *
- * @return Map
- */
- public java.util.Map> getResolvedSnapshotDependencies()
+
+ java.util.Map getProjectVersions()
{
- if ( this.resolvedSnapshotDependencies == null )
- {
- this.resolvedSnapshotDependencies = new java.util.HashMap<>();
- }
-
- return this.resolvedSnapshotDependencies;
- } //-- java.util.Map> getResolvedSnapshotDependencies()
+ return projectVersions;
+ }
- /**
- * Set a map of resolved snapshot dependencies versions.
- *
- * @param resolvedSnapshotDependencies
- */
- public void setResolvedSnapshotDependencies( java.util.Map> resolvedSnapshotDependencies )
+ java.util.Map getOriginalScmInfo()
{
- this.resolvedSnapshotDependencies = resolvedSnapshotDependencies;
- } //-- void setResolvedSnapshotDependencies( java.util.Map> )
-
+ return originalScmInfo;
+ }
+
/**
- * Method getReleaseVersions.
+ * Method getResolvedSnapshotDependencies.
*
* @return Map
*/
- public java.util.Map getReleaseVersions()
+ java.util.Map getResolvedSnapshotDependencies()
{
- if ( this.releaseVersions == null )
- {
- this.releaseVersions = new java.util.HashMap<>();
- }
+ return this.resolvedSnapshotDependencies;
+ } //-- java.util.Map getResolvedSnapshotDependencies()
- return this.releaseVersions;
- } //-- java.util.Map getReleaseVersions()
+ public String getProjectReleaseVersion( String projectId )
+ {
+ if ( projectVersions.containsKey( projectId ) )
+ {
+ return projectVersions.get( projectId ).getRelease();
+ }
+ return null;
+ }
/**
* Method addReleaseVersion.
@@ -606,25 +586,19 @@
* @param key
* @param value
*/
- public void addReleaseVersion( String key, String value )
+ public void addReleaseVersion( String projectId, String version )
{
- getReleaseVersions().put( key, value );
+ computeIfAbsent( projectVersions, projectId ).setRelease( version );
} //-- void addReleaseVersion( String, String )
- /**
- * Method getDevelopmentVersions.
- *
- * @return Map
- */
- public java.util.Map getDevelopmentVersions()
+ public String getProjectDevelopmentVersion( String projectId )
{
- if ( this.developmentVersions == null )
- {
- this.developmentVersions = new java.util.HashMap<>();
- }
-
- return this.developmentVersions;
- } //-- java.util.Map getDevelopmentVersions()
+ if ( projectVersions.containsKey( projectId ) )
+ {
+ return projectVersions.get( projectId ).getDevelopment();
+ }
+ return null;
+ }
/**
* Method addDevelopmentVersion.
@@ -632,9 +606,9 @@
* @param key
* @param value
*/
- public void addDevelopmentVersion( String key, String value )
+ public void addDevelopmentVersion( String projectId, String version )
{
- getDevelopmentVersions().put( key, value );
+ computeIfAbsent( projectVersions, projectId ).setDevelopment( version );
} //-- void addDevelopmentVersion( String, String )
/**
@@ -642,14 +616,9 @@
*
* @return Map
*/
- public java.util.Map getOriginalScmInfo()
+ public org.apache.maven.model.Scm getOriginalScmInfo( String id )
{
- if ( this.originalScmInfo == null )
- {
- this.originalScmInfo = new java.util.HashMap<>();
- }
-
- return this.originalScmInfo;
+ return this.originalScmInfo.get( id );
} //-- java.util.Map
+
+ ReleaseStageVersions
+
+
+ original
+ 3.0.0+
+ String
+
+
+ release
+ 3.0.0+
+ String
+
+
+ development
+ 3.0.0+
+ String
+
+
+
+
+ 2.1.0+
+
+
+
+
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
index d68f9f6f1..142d49beb 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
@@ -32,6 +32,7 @@
import java.io.IOException;
import java.util.Collections;
import java.util.List;
+import java.util.Properties;
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.CommandParameters;
@@ -45,6 +46,7 @@
import org.apache.maven.scm.provider.ScmProviderStub;
import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
import org.apache.maven.shared.release.config.ReleaseDescriptorStore;
import org.apache.maven.shared.release.config.ReleaseDescriptorStoreException;
import org.apache.maven.shared.release.config.ReleaseDescriptorStoreStub;
@@ -80,12 +82,13 @@ public void testPrepareNoCompletedPhase()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( null );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( null );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -105,12 +108,13 @@ public void testPrepareCompletedPhase()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( "step1" );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( "step1" );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -130,14 +134,15 @@ public void testPrepareCompletedPhaseNoResume()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( "step1" );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( "step1" );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
prepareRequest.setDryRun( false );
prepareRequest.setResume( false );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -157,12 +162,13 @@ public void testPrepareCompletedAllPhases()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( "step3" );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( "step3" );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -182,12 +188,13 @@ public void testPrepareInvalidCompletedPhase()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( "foo" );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( "foo" );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -207,14 +214,15 @@ public void testPrepareSimulateNoCompletedPhase()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( null );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( null );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
prepareRequest.setDryRun( true );
prepareRequest.setResume( true );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -234,14 +242,15 @@ public void testPrepareSimulateCompletedPhase()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( "step1" );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( "step1" );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
prepareRequest.setDryRun( true );
prepareRequest.setResume( true );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -261,14 +270,15 @@ public void testPrepareSimulateCompletedAllPhases()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( "step3" );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( "step3" );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
prepareRequest.setDryRun( true );
prepareRequest.setResume( true );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -288,14 +298,15 @@ public void testPrepareSimulateInvalidCompletedPhase()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = configStore.getReleaseConfiguration();
- releaseDescriptor.setCompletedPhase( "foo" );
+ ReleaseDescriptorBuilder builder = configStore.getReleaseConfiguration();
+ builder.setCompletedPhase( "foo" );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
prepareRequest.setDryRun( true );
prepareRequest.setResume( true );
+ prepareRequest.setUserProperties( new Properties() );
releaseManager.prepare( prepareRequest );
@@ -316,10 +327,11 @@ public void testPrepareUnknownPhaseConfigured()
ReleaseManager releaseManager = lookup( ReleaseManager.class, "bad-phase-configured" );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setReleaseStrategyId( "foo" );
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setReleaseStrategyId( "foo" );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
+ prepareRequest.setUserProperties( new Properties() );
try
{
@@ -336,20 +348,21 @@ public void testReleaseConfigurationStoreReadFailure()
throws Exception
{
// prepare
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
+ builder.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.class, "test" );
ReleaseDescriptorStore configStoreMock = mock( ReleaseDescriptorStore.class );
- when( configStoreMock.read( releaseDescriptor ) ).thenThrow( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) );
+ when( configStoreMock.read( builder ) ).thenThrow( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) );
releaseManager.setConfigStore( configStoreMock );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
+ prepareRequest.setUserProperties( new Properties() );
// execute
try
@@ -364,7 +377,7 @@ public void testReleaseConfigurationStoreReadFailure()
}
// verify
- verify( configStoreMock ).read( releaseDescriptor );
+ verify( configStoreMock ).read( builder );
verifyNoMoreInteractions( configStoreMock );
}
@@ -372,22 +385,24 @@ public void testReleaseConfigurationStoreWriteFailure()
throws Exception
{
// prepare
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
+ builder.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.class, "test" );
ReleaseDescriptorStore configStoreMock = mock( ReleaseDescriptorStore.class );
- doThrow( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) ).when( configStoreMock ).write( releaseDescriptor );
+ doThrow( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) ).when( configStoreMock ).write( any( ReleaseDescriptor.class) );
releaseManager.setConfigStore( configStoreMock );
ReleasePrepareRequest prepareRequest = new ReleasePrepareRequest();
- prepareRequest.setReleaseDescriptor( releaseDescriptor );
+ prepareRequest.setReleaseDescriptorBuilder( builder );
prepareRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
prepareRequest.setDryRun( false );
prepareRequest.setResume( false );
+ prepareRequest.setUserProperties( new Properties() );
+
// execute
try
@@ -402,7 +417,7 @@ public void testReleaseConfigurationStoreWriteFailure()
}
// verify
- verify( configStoreMock ).write( releaseDescriptor ) ;
+ verify( configStoreMock ).write( any( ReleaseDescriptor.class ) ) ;
verifyNoMoreInteractions( configStoreMock );
}
@@ -410,9 +425,9 @@ public void testReleaseConfigurationStoreClean()
throws Exception
{
// prepare
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
+ builder.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.class, "test" );
@@ -421,7 +436,7 @@ public void testReleaseConfigurationStoreClean()
releaseManager.setConfigStore( configStoreMock );
ReleaseCleanRequest cleanRequest = new ReleaseCleanRequest();
- cleanRequest.setReleaseDescriptor( releaseDescriptor );
+ cleanRequest.setReleaseDescriptorBuilder( builder );
// execute
releaseManager.clean( cleanRequest );
@@ -439,7 +454,7 @@ public void testReleaseConfigurationStoreClean()
phase = (ReleasePhaseStub) lookup( ReleasePhase.class, "branch1" );
assertTrue( "branch1 not cleaned", phase.isCleaned() );
- verify( configStoreMock ).delete( releaseDescriptor );
+ verify( configStoreMock ).delete( any( ReleaseDescriptor.class ) );
verifyNoMoreInteractions( configStoreMock );
}
@@ -457,13 +472,13 @@ public void testReleasePerformWithResult()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ builder.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
ReleasePerformRequest performRequest = new ReleasePerformRequest();
- performRequest.setReleaseDescriptor( releaseDescriptor );
+ performRequest.setReleaseDescriptorBuilder( builder );
performRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
performRequest.setReactorProjects( createReactorProjects() );
@@ -476,25 +491,25 @@ public void testReleaseConfigurationStoreReadFailureOnPerform()
throws Exception
{
// prepare
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
+ builder.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.class, "test" );
ReleaseDescriptorStore configStoreMock = mock( ReleaseDescriptorStore.class );
- when( configStoreMock.read( releaseDescriptor ) ).thenThrow( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) );
+ when( configStoreMock.read( builder ) ).thenThrow( new ReleaseDescriptorStoreException( "message", new IOException( "ioExceptionMsg" ) ) );
releaseManager.setConfigStore( configStoreMock );
ReleasePerformRequest performRequest = new ReleasePerformRequest();
- performRequest.setReleaseDescriptor( releaseDescriptor );
+ performRequest.setReleaseDescriptorBuilder( builder );
performRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
// execute
try
{
- releaseDescriptor.setUseReleaseProfile( false );
+ builder.setUseReleaseProfile( false );
releaseManager.perform( performRequest );
fail( "Should have failed to read configuration" );
@@ -506,30 +521,30 @@ public void testReleaseConfigurationStoreReadFailureOnPerform()
}
// verify
- verify( configStoreMock ).read( releaseDescriptor );
+ verify( configStoreMock ).read( builder );
verifyNoMoreInteractions( configStoreMock );
}
public void testReleasePerformWithIncompletePrepare()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
+ builder.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.class, "test" );
ReleaseDescriptorStoreStub configStore = new ReleaseDescriptorStoreStub();
- releaseDescriptor.setCompletedPhase( "scm-tag" );
+ builder.setCompletedPhase( "scm-tag" );
releaseManager.setConfigStore( configStore );
ReleasePerformRequest performRequest = new ReleasePerformRequest();
- performRequest.setReleaseDescriptor( releaseDescriptor );
+ performRequest.setReleaseDescriptorBuilder( builder );
performRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
try
{
- releaseDescriptor.setUseReleaseProfile( false );
+ builder.setUseReleaseProfile( false );
releaseManager.perform( performRequest );
fail( "Should have failed to perform" );
@@ -553,10 +568,10 @@ public void testPerformWithDefaultClean()
ReleaseManagerListener managerListener = mock( ReleaseManagerListener.class );
performRequest.setReleaseManagerListener( managerListener );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
- performRequest.setReleaseDescriptor( releaseDescriptor );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
+ builder.setWorkingDirectory( getTestFile( "target/working-directory" ).getAbsolutePath() );
+ performRequest.setReleaseDescriptorBuilder( builder );
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
@@ -581,18 +596,18 @@ public void testPerformWithDefaultClean()
public void testNoScmUrlPerform()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
ReleasePerformRequest performRequest = new ReleasePerformRequest();
- performRequest.setReleaseDescriptor( releaseDescriptor );
+ performRequest.setReleaseDescriptorBuilder( builder );
performRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
try
{
- releaseDescriptor.setUseReleaseProfile( false );
+ builder.setUseReleaseProfile( false );
releaseManager.perform( performRequest );
@@ -610,10 +625,10 @@ public void testScmExceptionThrown()
// prepare
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ builder.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
ScmProvider scmProviderMock = mock( ScmProvider.class );
when( scmProviderMock.checkOut( any( ScmRepository.class ),
@@ -626,7 +641,7 @@ public void testScmExceptionThrown()
stub.setScmProvider( scmProviderMock );
ReleasePerformRequest performRequest = new ReleasePerformRequest();
- performRequest.setReleaseDescriptor( releaseDescriptor );
+ performRequest.setReleaseDescriptorBuilder( builder );
performRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
performRequest.setReactorProjects( createReactorProjects() );
@@ -653,19 +668,19 @@ public void testScmResultFailure()
{
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmSourceUrl( "scm-url" );
File checkoutDirectory = getTestFile( "target/checkout-directory" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+ builder.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
ScmManager scmManager = (ScmManager) lookup( ScmManager.class );
ScmProviderStub providerStub =
- (ScmProviderStub) scmManager.getProviderByUrl( releaseDescriptor.getScmSourceUrl() );
+ (ScmProviderStub) scmManager.getProviderByUrl( "scm-url" );
providerStub.setCheckOutScmResult( new CheckOutScmResult( "", "", "", false ) );
ReleasePerformRequest performRequest = new ReleasePerformRequest();
- performRequest.setReleaseDescriptor( releaseDescriptor );
+ performRequest.setReleaseDescriptorBuilder( builder );
performRequest.setReleaseEnvironment( new DefaultReleaseEnvironment() );
performRequest.setReactorProjects( createReactorProjects() );
@@ -713,7 +728,7 @@ public void testRollbackCall()
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
ReleaseRollbackRequest rollbackRequest = new ReleaseRollbackRequest();
- rollbackRequest.setReleaseDescriptor( configStore.getReleaseConfiguration() );
+ rollbackRequest.setReleaseDescriptorBuilder( configStore.getReleaseConfiguration() );
releaseManager.rollback( rollbackRequest );
@@ -730,7 +745,8 @@ public void testUpdateVersionsCall()
ReleaseManager releaseManager = lookup( ReleaseManager.class, "test" );
ReleaseUpdateVersionsRequest updateVersionsRequest = new ReleaseUpdateVersionsRequest();
- updateVersionsRequest.setReleaseDescriptor( configStore.getReleaseConfiguration() );
+ updateVersionsRequest.setReleaseDescriptorBuilder( configStore.getReleaseConfiguration() );
+ updateVersionsRequest.setUserProperties( new Properties() );
releaseManager.updateVersions( updateVersionsRequest );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java
index 0b93bbf6a..35903ce01 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java
@@ -1,5 +1,7 @@
package org.apache.maven.shared.release.config;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder.BuilderReleaseDescriptor;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -45,7 +47,7 @@ protected void setUp()
{
super.setUp();
store = (PropertiesReleaseDescriptorStore) lookup( ReleaseDescriptorStore.class, "properties" );
- secDispatcher = (SecDispatcher) lookup( SecDispatcher.class, "mng-4384" );
+ secDispatcher = lookup( SecDispatcher.class, "mng-4384" );
}
public void testReadFromFile()
@@ -53,9 +55,9 @@ public void testReadFromFile()
{
File file = getTestFile( "target/test-classes/release.properties" );
- ReleaseDescriptor config = store.read( file );
+ ReleaseDescriptor config = store.read( file ).build();
- ReleaseDescriptor expected = createExpectedReleaseConfiguration();
+ ReleaseDescriptor expected = createExpectedReleaseConfiguration().build();
assertEquals( "check matches", expected, config );
}
@@ -63,14 +65,14 @@ public void testReadFromFile()
public void testReadFromFileUsingWorkingDirectory()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setWorkingDirectory( AbstractReleaseTestCase.getPath( getTestFile( "target/test-classes" ) ) );
- ReleaseDescriptor config = store.read( releaseDescriptor );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setWorkingDirectory( AbstractReleaseTestCase.getPath( getTestFile( "target/test-classes" ) ) );
+ ReleaseDescriptor config = store.read( builder ).build();
- ReleaseDescriptor expected = createExpectedReleaseConfiguration();
- expected.setWorkingDirectory( releaseDescriptor.getWorkingDirectory() );
+ ReleaseDescriptorBuilder expected = createExpectedReleaseConfiguration();
+ expected.setWorkingDirectory( builder.build().getWorkingDirectory() );
- assertEquals( "check matches", expected, config );
+ assertEquals( "check matches", expected.build(), config );
}
public void testReadFromEmptyFile()
@@ -78,7 +80,7 @@ public void testReadFromEmptyFile()
{
File file = getTestFile( "target/test-classes/empty-release.properties" );
- ReleaseDescriptor config = store.read( file );
+ BuilderReleaseDescriptor config = store.read( file ).build();
assertDefaultReleaseConfiguration( config );
}
@@ -88,7 +90,7 @@ public void testReadMissingFile()
{
File file = getTestFile( "target/test-classes/no-release.properties" );
- ReleaseDescriptor config = store.read( file );
+ BuilderReleaseDescriptor config = store.read( file ).build();
assertDefaultReleaseConfiguration( config );
}
@@ -98,10 +100,10 @@ public void testMergeFromEmptyFile()
{
File file = getTestFile( "target/test-classes/empty-release.properties" );
- ReleaseDescriptor mergeDescriptor = createMergeConfiguration();
- ReleaseDescriptor config = store.read( mergeDescriptor, file );
+ ReleaseDescriptorBuilder mergeDescriptor = createMergeConfiguration();
+ ReleaseDescriptor config = store.read( mergeDescriptor, file ).build();
- assertEquals( "Check configurations merged", mergeDescriptor, config );
+ assertEquals( "Check configurations merged", mergeDescriptor.build(), config );
}
public void testMergeFromMissingFile()
@@ -109,10 +111,10 @@ public void testMergeFromMissingFile()
{
File file = getTestFile( "target/test-classes/no-release.properties" );
- ReleaseDescriptor mergeDescriptor = createMergeConfiguration();
- ReleaseDescriptor config = store.read( mergeDescriptor, file );
+ ReleaseDescriptorBuilder mergeDescriptor = createMergeConfiguration();
+ ReleaseDescriptor config = store.read( mergeDescriptor, file ).build();
- assertEquals( "Check configurations merged", mergeDescriptor, config );
+ assertEquals( "Check configurations merged", mergeDescriptor.build(), config );
}
public void testWriteToNewFile()
@@ -122,16 +124,16 @@ public void testWriteToNewFile()
file.delete();
assertFalse( "Check file doesn't exist", file.exists() );
- ReleaseDescriptor config = createReleaseConfigurationForWriting();
+ ReleaseDescriptorBuilder config = createReleaseConfigurationForWriting();
- store.write( config, file );
+ store.write( config.build(), file );
- ReleaseDescriptor rereadDescriptor = store.read( file );
+ ReleaseDescriptor rereadDescriptor = store.read( file ).build();
assertAndAdjustScmPassword( config, rereadDescriptor );
assertAndAdjustScmPrivateKeyPassPhrase( config, rereadDescriptor );
- assertEquals( "compare configuration", config, rereadDescriptor );
+ assertEquals( "compare configuration", config.build(), rereadDescriptor );
}
public void testWriteToWorkingDirectory()
@@ -142,18 +144,18 @@ public void testWriteToWorkingDirectory()
assertFalse( "Check file doesn't exist", file.exists() );
file.getParentFile().mkdirs();
- ReleaseDescriptor config = createReleaseConfigurationForWriting();
+ ReleaseDescriptorBuilder config = createReleaseConfigurationForWriting();
config.setWorkingDirectory( AbstractReleaseTestCase.getPath( file.getParentFile() ) );
- store.write( config );
+ store.write( config.build() );
- ReleaseDescriptor rereadDescriptor = store.read( file );
- rereadDescriptor.setWorkingDirectory( AbstractReleaseTestCase.getPath( file.getParentFile() ) );
+ ReleaseDescriptorBuilder rereadDescriptorBuilder = store.read( file );
+ rereadDescriptorBuilder.setWorkingDirectory( AbstractReleaseTestCase.getPath( file.getParentFile() ) );
- assertAndAdjustScmPassword( config, rereadDescriptor );
- assertAndAdjustScmPrivateKeyPassPhrase( config, rereadDescriptor );
+ assertAndAdjustScmPassword( config, rereadDescriptorBuilder.build() );
+ assertAndAdjustScmPrivateKeyPassPhrase( config, rereadDescriptorBuilder.build() );
- assertEquals( "compare configuration", config, rereadDescriptor );
+ assertEquals( "compare configuration", config.build(), rereadDescriptorBuilder.build() );
}
public void testWriteToNewFileRequiredOnly()
@@ -163,15 +165,15 @@ public void testWriteToNewFileRequiredOnly()
file.delete();
assertFalse( "Check file doesn't exist", file.exists() );
- ReleaseDescriptor config = new ReleaseDescriptor();
+ ReleaseDescriptorBuilder config = new ReleaseDescriptorBuilder();
config.setCompletedPhase( "completed-phase-write" );
config.setScmSourceUrl( "url-write" );
- store.write( config, file );
+ store.write( config.build(), file );
- ReleaseDescriptor rereadDescriptor = store.read( file );
+ ReleaseDescriptor rereadDescriptor = store.read( file ).build();
- assertEquals( "compare configuration", config, rereadDescriptor );
+ assertEquals( "compare configuration", config.build(), rereadDescriptor );
}
public void testWriteToNewFileDottedIds()
@@ -181,12 +183,12 @@ public void testWriteToNewFileDottedIds()
file.delete();
assertFalse( "Check file doesn't exist", file.exists() );
- ReleaseDescriptor config = new ReleaseDescriptor();
+ ReleaseDescriptorBuilder config = new ReleaseDescriptorBuilder();
config.setCompletedPhase( "completed-phase-write" );
config.setScmSourceUrl( "url-write" );
- config.mapReleaseVersion( "group.id:artifact.id", "1.1" );
- config.mapDevelopmentVersion( "group.id:artifact.id", "1.2-SNAPSHOT" );
+ config.addReleaseVersion( "group.id:artifact.id", "1.1" );
+ config.addDevelopmentVersion( "group.id:artifact.id", "1.2-SNAPSHOT" );
IdentifiedScm scm = new IdentifiedScm();
scm.setId( "id" );
@@ -194,13 +196,13 @@ public void testWriteToNewFileDottedIds()
scm.setDeveloperConnection( "devConnection" );
scm.setTag( "tag" );
scm.setUrl( "url" );
- config.mapOriginalScmInfo( "group.id:artifact.id", scm );
+ config.addOriginalScmInfo( "group.id:artifact.id", scm );
- store.write( config, file );
+ store.write( config.build(), file );
- ReleaseDescriptor rereadDescriptor = store.read( file );
+ ReleaseDescriptor rereadDescriptor = store.read( file ).build();
- assertEquals( "compare configuration", config, rereadDescriptor );
+ assertEquals( "compare configuration", config.build(), rereadDescriptor );
}
public void testWriteToNewFileNullMappedScm()
@@ -210,23 +212,23 @@ public void testWriteToNewFileNullMappedScm()
file.delete();
assertFalse( "Check file doesn't exist", file.exists() );
- ReleaseDescriptor config = new ReleaseDescriptor();
- config.setCompletedPhase( "completed-phase-write" );
- config.setScmSourceUrl( "url-write" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setCompletedPhase( "completed-phase-write" );
+ builder.setScmSourceUrl( "url-write" );
- config.mapReleaseVersion( "group.id:artifact.id", "1.1" );
- config.mapDevelopmentVersion( "group.id:artifact.id", "1.2-SNAPSHOT" );
+ builder.addReleaseVersion( "group.id:artifact.id", "1.1" );
+ builder.addDevelopmentVersion( "group.id:artifact.id", "1.2-SNAPSHOT" );
- config.mapOriginalScmInfo( "group.id:artifact.id", null );
+ builder.addOriginalScmInfo( "group.id:artifact.id", null );
- store.write( config, file );
+ store.write( builder.build(), file );
- ReleaseDescriptor rereadDescriptor = store.read( file );
+ ReleaseDescriptor rereadDescriptor = store.read( file ).build();
assertNull( "check null scm is mapped correctly",
- rereadDescriptor.getOriginalScmInfo().get( "group.id:artifact.id" ) );
+ rereadDescriptor.getOriginalScmInfo( "group.id:artifact.id" ) );
- assertEquals( "compare configuration", config, rereadDescriptor );
+ assertEquals( "compare configuration", builder.build(), rereadDescriptor );
}
public void testOverwriteFile()
@@ -235,16 +237,16 @@ public void testOverwriteFile()
File file = getTestFile( "target/test-classes/rewrite-release.properties" );
assertTrue( "Check file already exists", file.exists() );
- ReleaseDescriptor config = createReleaseConfigurationForWriting();
+ ReleaseDescriptorBuilder config = createReleaseConfigurationForWriting();
- store.write( config, file );
+ store.write( config.build(), file );
- ReleaseDescriptor rereadDescriptor = store.read( file );
+ ReleaseDescriptor rereadDescriptor = store.read( file ).build();
assertAndAdjustScmPassword( config, rereadDescriptor );
assertAndAdjustScmPrivateKeyPassPhrase( config, rereadDescriptor );
- assertEquals( "compare configuration", config, rereadDescriptor );
+ assertEquals( "compare configuration", config.build(), rereadDescriptor );
}
public void testDeleteFile()
@@ -255,10 +257,10 @@ public void testDeleteFile()
file.createNewFile();
assertTrue( "Check file already exists", file.exists() );
- ReleaseDescriptor config = createReleaseConfigurationForWriting();
+ ReleaseDescriptorBuilder config = createReleaseConfigurationForWriting();
config.setWorkingDirectory( AbstractReleaseTestCase.getPath( file.getParentFile() ) );
- store.delete( config );
+ store.delete( config.build() );
assertFalse( "Check file already exists", file.exists() );
}
@@ -271,35 +273,35 @@ public void testMissingDeleteFile()
file.delete();
assertFalse( "Check file already exists", file.exists() );
- ReleaseDescriptor config = createReleaseConfigurationForWriting();
+ ReleaseDescriptorBuilder config = createReleaseConfigurationForWriting();
config.setWorkingDirectory( AbstractReleaseTestCase.getPath( file.getParentFile() ) );
- store.delete( config );
+ store.delete( config.build() );
assertFalse( "Check file already exists", file.exists() );
}
- private ReleaseDescriptor createReleaseConfigurationForWriting()
+ private ReleaseDescriptorBuilder createReleaseConfigurationForWriting()
{
- ReleaseDescriptor config = new ReleaseDescriptor();
- config.setCompletedPhase( "completed-phase-write" );
- config.setCommitByProject( true );
- config.setScmSourceUrl( "url-write" );
- config.setScmId( "id-write" );
- config.setScmUsername( "username-write" );
- config.setScmPassword( "password-write" );
- 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" );
- config.setCompletionGoals( "completion-goals-write" );
- config.setPomFileName( "pom-file-name-write" );
-
- config.mapReleaseVersion( "groupId:artifactId", "1.0" );
- config.mapDevelopmentVersion( "groupId:artifactId", "1.1-SNAPSHOT" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setCompletedPhase( "completed-phase-write" );
+ builder.setCommitByProject( true );
+ builder.setScmSourceUrl( "url-write" );
+ builder.setScmId( "id-write" );
+ builder.setScmUsername( "username-write" );
+ builder.setScmPassword( "password-write" );
+ builder.setScmPrivateKey( "private-key-write" );
+ builder.setScmPrivateKeyPassPhrase( "passphrase-write" );
+ builder.setScmTagBase( "tag-base-write" );
+ builder.setScmBranchBase( "branch-base-write" );
+ builder.setScmReleaseLabel( "tag-write" );
+ builder.setAdditionalArguments( "additional-args-write" );
+ builder.setPreparationGoals( "preparation-goals-write" );
+ builder.setCompletionGoals( "completion-goals-write" );
+ builder.setPomFileName( "pom-file-name-write" );
+
+ builder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ builder.addDevelopmentVersion( "groupId:artifactId", "1.1-SNAPSHOT" );
IdentifiedScm scm = new IdentifiedScm();
scm.setId( "id-write" );
@@ -307,17 +309,17 @@ private ReleaseDescriptor createReleaseConfigurationForWriting()
scm.setDeveloperConnection( "developerConnection-write" );
scm.setUrl( "url-write" );
scm.setTag( "tag-write" );
- config.mapOriginalScmInfo( "groupId:artifactId", scm );
+ builder.addOriginalScmInfo( "groupId:artifactId", scm );
scm = new IdentifiedScm();
scm.setConnection( "connection-write" );
// omit optional elements
- config.mapOriginalScmInfo( "groupId:subproject1", scm );
+ builder.addOriginalScmInfo( "groupId:subproject1", scm );
- return config;
+ return builder;
}
- private static void assertDefaultReleaseConfiguration( ReleaseDescriptor config )
+ private static void assertDefaultReleaseConfiguration( BuilderReleaseDescriptor config )
{
assertNull( "Expected no completedPhase", config.getCompletedPhase() );
assertFalse( "Expected no commitPerProject", config.isCommitByProject() );
@@ -340,16 +342,19 @@ private static void assertDefaultReleaseConfiguration( ReleaseDescriptor config
assertTrue( "Expected default interactive", config.isInteractive() );
assertFalse( "Expected no addScema", config.isAddSchema() );
- assertTrue( "Expected no release version mappings", config.getReleaseVersions().isEmpty() );
- assertTrue( "Expected no dev version mappings", config.getDevelopmentVersions().isEmpty() );
+ for ( ReleaseStageVersions versions : config.getProjectVersions().values() )
+ {
+ assertNull( "Expected no release version mappings", versions.getRelease() );
+ assertNull( "Expected no dev version mappings", versions.getDevelopment() );
+ }
assertTrue( "Expected no scm mappings", config.getOriginalScmInfo().isEmpty() );
assertNotNull( "Expected resolved snapshot dependencies map", config.getResolvedSnapshotDependencies() );
}
- public ReleaseDescriptor createMergeConfiguration()
+ public ReleaseDescriptorBuilder createMergeConfiguration()
throws IOException
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ ReleaseDescriptorBuilder releaseDescriptor = new ReleaseDescriptorBuilder();
releaseDescriptor.setScmSourceUrl( "scm-url" );
releaseDescriptor.setScmUsername( "username" );
@@ -360,10 +365,10 @@ public ReleaseDescriptor createMergeConfiguration()
return releaseDescriptor;
}
- private void assertAndAdjustScmPassword( ReleaseDescriptor expected, ReleaseDescriptor original )
+ private void assertAndAdjustScmPassword( ReleaseDescriptorBuilder expected, ReleaseDescriptor original )
throws Exception
{
- String expectedPassword = expected.getScmPassword();
+ String expectedPassword = expected.build().getScmPassword();
String originalPassword = original.getScmPassword();
// encrypting the same password twice doesn't have to be the same result
@@ -373,13 +378,13 @@ private void assertAndAdjustScmPassword( ReleaseDescriptor expected, ReleaseDesc
expected.setScmPassword( originalPassword );
}
- assertEquals( expected.getScmPassword(), original.getScmPassword() );
+ assertEquals( expected.build().getScmPassword(), original.getScmPassword() );
}
- private void assertAndAdjustScmPrivateKeyPassPhrase( ReleaseDescriptor expected, ReleaseDescriptor original )
+ private void assertAndAdjustScmPrivateKeyPassPhrase( ReleaseDescriptorBuilder expected, ReleaseDescriptor original )
throws Exception
{
- String expectedPassPhrase = expected.getScmPrivateKeyPassPhrase();
+ String expectedPassPhrase = expected.build().getScmPrivateKeyPassPhrase();
String originalPassPhrase = original.getScmPrivateKeyPassPhrase();
// encrypting the same passphrase twice doesn't have to be the same result
@@ -389,54 +394,55 @@ private void assertAndAdjustScmPrivateKeyPassPhrase( ReleaseDescriptor expected,
expected.setScmPrivateKeyPassPhrase( originalPassPhrase );
}
- assertEquals( expected.getScmPrivateKeyPassPhrase(), original.getScmPrivateKeyPassPhrase() );
+ assertEquals( expected.build().getScmPrivateKeyPassPhrase(), original.getScmPrivateKeyPassPhrase() );
}
- private ReleaseDescriptor createExpectedReleaseConfiguration()
+ private ReleaseDescriptorBuilder createExpectedReleaseConfiguration()
{
- ReleaseDescriptor expected = new ReleaseDescriptor();
- expected.setCompletedPhase( "step1" );
- expected.setCommitByProject( true );
- expected.setScmId( "scm-id" );
- expected.setScmSourceUrl( "scm-url" );
- expected.setScmUsername( "username" );
- expected.setScmPassword( "password" );
- expected.setScmPrivateKey( "private-key" );
- expected.setScmPrivateKeyPassPhrase( "passphrase" );
- expected.setScmTagBase( "tagBase" );
- expected.setScmTagNameFormat( "expectedTagNameFormat" );
- expected.setScmBranchBase( "branchBase" );
- expected.setScmReleaseLabel( "tag" );
- expected.setAdditionalArguments( "additional-arguments" );
- expected.setPreparationGoals( "preparation-goals" );
- expected.setCompletionGoals( "completion-goals" );
- expected.setPomFileName( "pom-file-name" );
- expected.setWorkingDirectory( null );
- expected.setGenerateReleasePoms( false );
- expected.setScmUseEditMode( false );
- expected.setInteractive( true );
- expected.setAddSchema( false );
- expected.mapReleaseVersion( "groupId:artifactId1", "2.0" );
- expected.mapReleaseVersion( "groupId:artifactId2", "3.0" );
- expected.mapDevelopmentVersion( "groupId:artifactId1", "2.1-SNAPSHOT" );
- expected.mapDevelopmentVersion( "groupId:artifactId2", "3.0.1-SNAPSHOT" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setCompletedPhase( "step1" );
+ builder.setCommitByProject( true );
+ builder.setScmId( "scm-id" );
+ builder.setScmSourceUrl( "scm-url" );
+ builder.setScmUsername( "username" );
+ builder.setScmPassword( "password" );
+ builder.setScmPrivateKey( "private-key" );
+ builder.setScmPrivateKeyPassPhrase( "passphrase" );
+ builder.setScmTagBase( "tagBase" );
+ builder.setScmTagNameFormat( "expectedTagNameFormat" );
+ builder.setScmBranchBase( "branchBase" );
+ builder.setScmReleaseLabel( "tag" );
+ builder.setAdditionalArguments( "additional-arguments" );
+ builder.setPreparationGoals( "preparation-goals" );
+ builder.setCompletionGoals( "completion-goals" );
+ builder.setPomFileName( "pom-file-name" );
+ builder.setWorkingDirectory( null );
+ builder.setGenerateReleasePoms( false );
+ builder.setScmUseEditMode( false );
+ builder.setInteractive( true );
+ builder.setAddSchema( false );
+ builder.addReleaseVersion( "groupId:artifactId1", "2.0" );
+ builder.addReleaseVersion( "groupId:artifactId2", "3.0" );
+ builder.addDevelopmentVersion( "groupId:artifactId1", "2.1-SNAPSHOT" );
+ builder.addDevelopmentVersion( "groupId:artifactId2", "3.0.1-SNAPSHOT" );
IdentifiedScm scm = new IdentifiedScm();
scm.setId( "id" );
scm.setConnection( "connection" );
scm.setDeveloperConnection( "developerConnection" );
scm.setUrl( "url" );
scm.setTag( "tag" );
- expected.mapOriginalScmInfo( "groupId:artifactId1", scm );
+ builder.addOriginalScmInfo( "groupId:artifactId1", scm );
scm = new IdentifiedScm();
scm.setId( null );
scm.setConnection( "connection2" );
scm.setUrl( "url2" );
scm.setTag( null );
scm.setDeveloperConnection( null );
- expected.mapOriginalScmInfo( "groupId:artifactId2", scm );
- expected.mapResolvedSnapshotDependencies( "external:artifactId", "1.0", "1.1-SNAPSHOT" );
+ builder.addOriginalScmInfo( "groupId:artifactId2", scm );
+ builder.addDependencyReleaseVersion( "external:artifactId", "1.0" );
+ builder.addDependencyDevelopmentVersion( "external:artifactId", "1.1-SNAPSHOT" );
- return expected;
+ return builder;
}
}
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/ReleaseDescriptorStoreStub.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/ReleaseDescriptorStoreStub.java
index 7470bd281..1352d288a 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/ReleaseDescriptorStoreStub.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/ReleaseDescriptorStoreStub.java
@@ -30,19 +30,17 @@ public class ReleaseDescriptorStoreStub
/**
* The release configuration to use.
*/
- private ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ private ReleaseDescriptorBuilder releaseDescriptor = new ReleaseDescriptorBuilder();
@Override
- public ReleaseDescriptor read( ReleaseDescriptor mergeDescriptor )
+ public ReleaseDescriptorBuilder read( ReleaseDescriptorBuilder mergeDescriptor )
{
- ReleaseUtils.merge( releaseDescriptor, mergeDescriptor );
- return releaseDescriptor;
+ return mergeDescriptor;
}
@Override
public void write( ReleaseDescriptor config )
{
- this.releaseDescriptor = config;
}
@Override
@@ -50,7 +48,7 @@ public void delete( ReleaseDescriptor config )
{
}
- public ReleaseDescriptor getReleaseConfiguration()
+ public ReleaseDescriptorBuilder getReleaseConfiguration()
{
return releaseDescriptor;
}
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/ReleaseUtilsTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/ReleaseUtilsTest.java
index ea85a18cd..4cff313cb 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/ReleaseUtilsTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/ReleaseUtilsTest.java
@@ -23,11 +23,11 @@
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.model.Scm;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder.BuilderReleaseDescriptor;
import org.apache.maven.shared.release.phase.AbstractReleaseTestCase;
import java.io.File;
import java.io.IOException;
-import java.util.Map;
import java.util.Properties;
/**
@@ -38,220 +38,171 @@
public class ReleaseUtilsTest
extends TestCase
{
- public void testMergeConfigurationSourceEmpty()
- throws IOException
- {
- ReleaseDescriptor mergeDescriptor = createReleaseDescriptor();
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- ReleaseDescriptor mergedReleaseDescriptor = ReleaseUtils.merge( releaseDescriptor, mergeDescriptor );
- ReleaseDescriptor mergedMergeDescriptor = ReleaseUtils.merge( mergeDescriptor, releaseDescriptor );
-
- assertEquals( "Check merge", mergedReleaseDescriptor, mergedMergeDescriptor );
- }
-
- public void testMergeEqualsWithUpdateWorkingCopyTrue()
- throws IOException
- {
- ReleaseDescriptor mergeDescriptor = createReleaseDescriptor();
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
-
- ReleaseDescriptor mergedReleaseDescriptor = ReleaseUtils.merge( releaseDescriptor, mergeDescriptor );
- ReleaseDescriptor mergedMergeDescriptor = ReleaseUtils.merge( mergeDescriptor, releaseDescriptor );
-
- assertEquals( "Check merge", mergedReleaseDescriptor, mergedMergeDescriptor );
- }
-
- public void testMergeConfigurationDestEmpty()
- throws IOException
- {
- ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
- ReleaseDescriptor mergedReleaseDescriptor = ReleaseUtils.merge( releaseDescriptor, new ReleaseDescriptor() );
- ReleaseDescriptor expectedDescriptor = copyReleaseDescriptor( mergedReleaseDescriptor );
-
- assertEquals( "Check merge", expectedDescriptor, releaseDescriptor );
- }
-
- public void testMergeConfiguration()
- throws IOException
- {
- File workingDirectory = new File( "." );
-
- ReleaseDescriptor mergeDescriptor =
- createMergeDescriptor( AbstractReleaseTestCase.getPath( workingDirectory ), "completed-phase-merge" );
-
- ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
- releaseDescriptor = ReleaseUtils.merge( releaseDescriptor, mergeDescriptor );
-
- ReleaseDescriptor expected =
- createMergeDescriptor( releaseDescriptor.getWorkingDirectory(), releaseDescriptor.getCompletedPhase() );
- assertEquals( "Check merge", expected, releaseDescriptor );
- }
-
public void testEquals()
throws IOException
{
- ReleaseDescriptor originalReleaseDescriptor = createReleaseDescriptor();
- ReleaseDescriptor releaseDescriptor = copyReleaseDescriptor( originalReleaseDescriptor );
- doEqualsAssertions( releaseDescriptor, originalReleaseDescriptor, "other", new File( "f" ) );
+ ReleaseDescriptorBuilder originalReleaseDescriptor = createReleaseDescriptor();
+ ReleaseDescriptorBuilder builder = copyReleaseDescriptor( originalReleaseDescriptor.build() );
+ doEqualsAssertions( builder, originalReleaseDescriptor, "other", new File( "f" ) );
originalReleaseDescriptor = createReleaseDescriptor();
- releaseDescriptor = copyReleaseDescriptor( originalReleaseDescriptor );
- doEqualsAssertions( originalReleaseDescriptor, releaseDescriptor, "other", new File( "f" ) );
+ builder = copyReleaseDescriptor( originalReleaseDescriptor.build() );
+ doEqualsAssertions( originalReleaseDescriptor, builder, "other", new File( "f" ) );
originalReleaseDescriptor = createReleaseDescriptor();
- releaseDescriptor = copyReleaseDescriptor( originalReleaseDescriptor );
- doEqualsAssertions( releaseDescriptor, originalReleaseDescriptor, null, null );
+ builder = copyReleaseDescriptor( originalReleaseDescriptor.build() );
+ doEqualsAssertions( builder, originalReleaseDescriptor, null, null );
originalReleaseDescriptor = createReleaseDescriptor();
- releaseDescriptor = copyReleaseDescriptor( originalReleaseDescriptor );
- doEqualsAssertions( originalReleaseDescriptor, releaseDescriptor, null, null );
+ builder = copyReleaseDescriptor( originalReleaseDescriptor.build() );
+ doEqualsAssertions( originalReleaseDescriptor, builder, null, null );
- assertEquals( "test ==", releaseDescriptor, releaseDescriptor );
+ assertEquals( "test ==", builder, builder );
Object obj = this;
- assertFalse( "test class instance", releaseDescriptor.equals( obj ) );
+ assertFalse( "test class instance", builder.equals( obj ) );
}
- private static void doEqualsAssertions( ReleaseDescriptor releaseDescriptor,
- ReleaseDescriptor originalReleaseDescriptor, String other, File otherFile )
+ private static void doEqualsAssertions( ReleaseDescriptorBuilder releaseDescriptor,
+ ReleaseDescriptorBuilder originalReleaseDescriptor, String other, File otherFile )
throws IOException
{
- ReleaseDescriptor origConfig = originalReleaseDescriptor;
- ReleaseDescriptor config = releaseDescriptor;
- assertEquals( "Check original comparison", config, origConfig );
+ BuilderReleaseDescriptor origConfig = originalReleaseDescriptor.build();
+ ReleaseDescriptorBuilder configBuilder = releaseDescriptor;
+ assertEquals( "Check original comparison", configBuilder.build(), origConfig );
- config.setScmSourceUrl( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setScmSourceUrl( origConfig.getScmSourceUrl() );
+ configBuilder.setScmSourceUrl( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setScmSourceUrl( origConfig.getScmSourceUrl() );
- config.setAdditionalArguments( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setAdditionalArguments( origConfig.getAdditionalArguments() );
+ configBuilder.setAdditionalArguments( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setAdditionalArguments( origConfig.getAdditionalArguments() );
- config.setAddSchema( !origConfig.isAddSchema() );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setAddSchema( origConfig.isAddSchema() );
+ configBuilder.setAddSchema( !origConfig.isAddSchema() );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setAddSchema( origConfig.isAddSchema() );
- config.setGenerateReleasePoms( !origConfig.isAddSchema() );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setGenerateReleasePoms( origConfig.isGenerateReleasePoms() );
+ configBuilder.setGenerateReleasePoms( !origConfig.isAddSchema() );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setGenerateReleasePoms( origConfig.isGenerateReleasePoms() );
- config.setScmUseEditMode( !origConfig.isScmUseEditMode() );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setScmUseEditMode( origConfig.isScmUseEditMode() );
+ configBuilder.setScmUseEditMode( !origConfig.isScmUseEditMode() );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setScmUseEditMode( origConfig.isScmUseEditMode() );
- config.setInteractive( !origConfig.isInteractive() );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setInteractive( origConfig.isInteractive() );
+ configBuilder.setInteractive( !origConfig.isInteractive() );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setInteractive( origConfig.isInteractive() );
- config.setCommitByProject( !origConfig.isCommitByProject() );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setCommitByProject( origConfig.isCommitByProject() );
+ configBuilder.setCommitByProject( !origConfig.isCommitByProject() );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setCommitByProject( origConfig.isCommitByProject() );
- config.setCompletedPhase( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setCompletedPhase( origConfig.getCompletedPhase() );
+ configBuilder.setCompletedPhase( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setCompletedPhase( origConfig.getCompletedPhase() );
- config.setScmPrivateKeyPassPhrase( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setScmPrivateKeyPassPhrase( origConfig.getScmPrivateKeyPassPhrase() );
+ configBuilder.setScmPrivateKeyPassPhrase( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setScmPrivateKeyPassPhrase( origConfig.getScmPrivateKeyPassPhrase() );
- config.setScmPassword( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setScmPassword( origConfig.getScmPassword() );
+ configBuilder.setScmPassword( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setScmPassword( origConfig.getScmPassword() );
- config.setScmUsername( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setScmUsername( origConfig.getScmUsername() );
+ configBuilder.setScmUsername( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setScmUsername( origConfig.getScmUsername() );
- config.setScmPrivateKey( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setScmPrivateKey( origConfig.getScmPrivateKey() );
+ configBuilder.setScmPrivateKey( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setScmPrivateKey( origConfig.getScmPrivateKey() );
- config.setPomFileName( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setPomFileName( origConfig.getPomFileName() );
+ configBuilder.setPomFileName( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setPomFileName( origConfig.getPomFileName() );
- config.setPreparationGoals( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setPreparationGoals( origConfig.getPreparationGoals() );
+ configBuilder.setPreparationGoals( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setPreparationGoals( origConfig.getPreparationGoals() );
- config.setScmReleaseLabel( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setScmReleaseLabel( origConfig.getScmReleaseLabel() );
+ configBuilder.setScmReleaseLabel( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setScmReleaseLabel( origConfig.getScmReleaseLabel() );
- config.setScmTagBase( other );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config.setScmTagBase( origConfig.getScmTagBase() );
+ configBuilder.setScmTagBase( other );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder.setScmTagBase( origConfig.getScmTagBase() );
if ( otherFile != null )
{
- config.setWorkingDirectory( AbstractReleaseTestCase.getPath( otherFile ) );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
+ configBuilder.setWorkingDirectory( AbstractReleaseTestCase.getPath( otherFile ) );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
}
- config.setWorkingDirectory( origConfig.getWorkingDirectory() );
+ configBuilder.setWorkingDirectory( origConfig.getWorkingDirectory() );
// sanity check the test was resetting correctly
- assertEquals( "Check original comparison", config, origConfig );
-
- config.mapDevelopmentVersion( "groupId:artifactId", "1.0-SNAPSHOT" );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config = copyReleaseDescriptor( origConfig );
-
- config.mapReleaseVersion( "groupId:artifactId", "1.0" );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config = copyReleaseDescriptor( origConfig );
-
- config.mapOriginalScmInfo( "groupId:artifactId", new Scm() );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- config = copyReleaseDescriptor( origConfig );
-
- config.mapOriginalScmInfo( "groupId:artifactId", new Scm() );
- origConfig.mapOriginalScmInfo( "foo", new Scm() );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- origConfig = createReleaseDescriptor();
- config = copyReleaseDescriptor( origConfig );
-
- config.mapOriginalScmInfo( "groupId:artifactId", new Scm() );
- origConfig.mapOriginalScmInfo( "groupId:artifactId", new Scm() );
- assertEquals( "Check original comparison", config, origConfig );
- origConfig = createReleaseDescriptor();
- config = copyReleaseDescriptor( origConfig );
-
- config.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
- origConfig.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
- assertEquals( "Check original comparison", config, origConfig );
- origConfig = createReleaseDescriptor();
- config = copyReleaseDescriptor( origConfig );
-
- config.mapOriginalScmInfo( "groupId:artifactId", getScm( "-", "dev", "url", "tag" ) );
- origConfig.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- origConfig = createReleaseDescriptor();
- config = copyReleaseDescriptor( origConfig );
-
- config.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "-", "url", "tag" ) );
- origConfig.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- origConfig = createReleaseDescriptor();
- config = copyReleaseDescriptor( origConfig );
-
- config.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "-", "tag" ) );
- origConfig.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
- origConfig = createReleaseDescriptor();
- config = copyReleaseDescriptor( origConfig );
-
- config.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "-" ) );
- origConfig.mapOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
- assertFalse( "Check original comparison", config.equals( origConfig ) );
+ assertEquals( "Check original comparison", configBuilder.build(), origConfig );
+
+ configBuilder.addDevelopmentVersion( "groupId:artifactId", "1.0-SNAPSHOT" );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addOriginalScmInfo( "groupId:artifactId", new Scm() );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addOriginalScmInfo( "groupId:artifactId", new Scm() );
+ origConfig.addOriginalScmInfo( "foo", new Scm() );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ origConfig = createReleaseDescriptor().build();
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addOriginalScmInfo( "groupId:artifactId", new Scm() );
+ origConfig.addOriginalScmInfo( "groupId:artifactId", new Scm() );
+ assertEquals( "Check original comparison", configBuilder.build(), origConfig );
+ origConfig = createReleaseDescriptor().build();
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
+ origConfig.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
+ assertEquals( "Check original comparison", configBuilder.build(), origConfig );
+ origConfig = createReleaseDescriptor().build();
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addOriginalScmInfo( "groupId:artifactId", getScm( "-", "dev", "url", "tag" ) );
+ origConfig.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ origConfig = createReleaseDescriptor().build();
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "-", "url", "tag" ) );
+ origConfig.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ origConfig = createReleaseDescriptor().build();
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "-", "tag" ) );
+ origConfig.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
+ origConfig = createReleaseDescriptor().build();
+ configBuilder = copyReleaseDescriptor( origConfig );
+
+ configBuilder.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "-" ) );
+ origConfig.addOriginalScmInfo( "groupId:artifactId", getScm( "conn", "dev", "url", "tag" ) );
+ assertFalse( "Check original comparison", configBuilder.build().equals( origConfig ) );
}
public void testHashCode()
throws IOException
{
- ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
+ ReleaseDescriptor releaseDescriptor = createReleaseDescriptor().build();
assertEquals( "Check hash code", releaseDescriptor.hashCode(),
- createReleaseDescriptor( releaseDescriptor.getWorkingDirectory() ).hashCode() );
+ createReleaseDescriptor( releaseDescriptor.getWorkingDirectory() ).build().hashCode() );
}
public void testLoadResolvedDependencies()
@@ -260,11 +211,13 @@ public void testLoadResolvedDependencies()
String dependencyKey = ArtifactUtils.versionlessKey( "com.groupId", "artifactId" );
properties.put( "dependency." + dependencyKey + ".release", "1.3" );
properties.put( "dependency." + dependencyKey + ".development", "1.3-SNAPSHOT" );
- ReleaseDescriptor descriptor = ReleaseUtils.copyPropertiesToReleaseDescriptor( properties );
+
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ ReleaseUtils.copyPropertiesToReleaseDescriptor( properties, builder );
+ ReleaseDescriptor descriptor = builder.build();
- Map versionMap = descriptor.getResolvedSnapshotDependencies().get( dependencyKey );
- assertEquals( "1.3", versionMap.get( ReleaseDescriptor.RELEASE_KEY ) );
- assertEquals( "1.3-SNAPSHOT", versionMap.get( ReleaseDescriptor.DEVELOPMENT_KEY) );
+ assertEquals( "1.3", descriptor.getDependencyReleaseVersion( dependencyKey ) );
+ assertEquals( "1.3-SNAPSHOT", descriptor.getDependencyDevelopmentVersion( dependencyKey ) );
}
// MRELEASE-750
@@ -275,13 +228,13 @@ public void testArtifactIdEndswithDependency()
properties.put( "dependency." + relDependencyKey + ".release", "1.3" );
String devDependencyKey = ArtifactUtils.versionlessKey( "com.development.magic", "dependency" );
properties.put( "dependency." + devDependencyKey + ".development", "1.3-SNAPSHOT" );
- ReleaseDescriptor descriptor = ReleaseUtils.copyPropertiesToReleaseDescriptor( properties );
-
- Map versionMap = descriptor.getResolvedSnapshotDependencies().get( relDependencyKey );
- assertEquals( "1.3", versionMap.get( ReleaseDescriptor.RELEASE_KEY ) );
+
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ ReleaseUtils.copyPropertiesToReleaseDescriptor( properties, builder );
+ ReleaseDescriptor descriptor = builder.build();
- versionMap = descriptor.getResolvedSnapshotDependencies().get( devDependencyKey );
- assertEquals( "1.3-SNAPSHOT", versionMap.get( ReleaseDescriptor.DEVELOPMENT_KEY) );
+ assertEquals( "1.3", descriptor.getDependencyReleaseVersion( relDependencyKey ) );
+ assertEquals( "1.3-SNAPSHOT", descriptor.getDependencyDevelopmentVersion( devDependencyKey ) );
}
// MRELEASE-834
@@ -289,10 +242,10 @@ public void testSystemPropertyStartingWithDependency()
{
Properties properties = new Properties();
properties.setProperty( "dependency.locations.enabled", "false" );
- ReleaseUtils.copyPropertiesToReleaseDescriptor( properties );
+ ReleaseUtils.copyPropertiesToReleaseDescriptor( properties, new ReleaseDescriptorBuilder() );
}
- private static ReleaseDescriptor copyReleaseDescriptor( ReleaseDescriptor originalReleaseDescriptor )
+ private static ReleaseDescriptorBuilder copyReleaseDescriptor( ReleaseDescriptor originalReleaseDescriptor )
{
return createReleaseDescriptor( originalReleaseDescriptor.getWorkingDirectory() );
}
@@ -307,25 +260,7 @@ private static Scm getScm( String connection, String developerConnection, String
return scm;
}
- private static ReleaseDescriptor createMergeDescriptor( String workingDirectory, String completedPhase )
- {
- ReleaseDescriptor mergeDescriptor = new ReleaseDescriptor();
- mergeDescriptor.setScmSourceUrl( "scm-url-merge" );
- mergeDescriptor.setCompletedPhase( completedPhase );
- mergeDescriptor.setScmPrivateKeyPassPhrase( "passphrase-merge" );
- mergeDescriptor.setScmPassword( "password-merge" );
- mergeDescriptor.setScmPrivateKey( "private-key-merge" );
- mergeDescriptor.setScmTagBase( "tag-base-merge" );
- mergeDescriptor.setScmReleaseLabel( "tag-merge" );
- mergeDescriptor.setScmUsername( "username-merge" );
- mergeDescriptor.setAdditionalArguments( "additional-arguments-merge" );
- mergeDescriptor.setPomFileName( "pom-file-name-merge" );
- mergeDescriptor.setPreparationGoals( "preparation-goals-merge" );
- mergeDescriptor.setWorkingDirectory( workingDirectory );
- return mergeDescriptor;
- }
-
- private static ReleaseDescriptor createReleaseDescriptor()
+ private static ReleaseDescriptorBuilder createReleaseDescriptor()
throws IOException
{
File workingDirectory = new File( "." );
@@ -333,9 +268,9 @@ private static ReleaseDescriptor createReleaseDescriptor()
return createReleaseDescriptor(AbstractReleaseTestCase.getPath( workingDirectory ) );
}
- private static ReleaseDescriptor createReleaseDescriptor( String workingDirectory )
+ private static ReleaseDescriptorBuilder createReleaseDescriptor( String workingDirectory )
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ ReleaseDescriptorBuilder releaseDescriptor = new ReleaseDescriptorBuilder();
releaseDescriptor.setScmSourceUrl( "scm-url" );
releaseDescriptor.setCompletedPhase( "completed-phase" );
releaseDescriptor.setScmPrivateKeyPassPhrase( "passphrase" );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/exec/ForkedMavenExecutorTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/exec/ForkedMavenExecutorTest.java
index 7ef8d6e82..8b655932a 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/exec/ForkedMavenExecutorTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/exec/ForkedMavenExecutorTest.java
@@ -41,7 +41,6 @@
import org.apache.maven.settings.io.xpp3.SettingsXpp3Writer;
import org.apache.maven.shared.release.ReleaseResult;
import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
-import org.apache.maven.shared.release.env.ReleaseEnvironment;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.cli.Arg;
import org.codehaus.plexus.util.cli.CommandLineException;
@@ -332,7 +331,7 @@ public void testEncryptSettings()
proxy.setPassword( "proxy_password" );
settings.addProxy( proxy );
- ReleaseEnvironment releaseEnvironment = new DefaultReleaseEnvironment();
+ DefaultReleaseEnvironment releaseEnvironment = new DefaultReleaseEnvironment();
releaseEnvironment.setSettings( settings );
AbstractMavenExecutor executorSpy = spy( executor );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/exec/InvokerMavenExecutorTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/exec/InvokerMavenExecutorTest.java
index 3f4789d64..57327e205 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/exec/InvokerMavenExecutorTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/exec/InvokerMavenExecutorTest.java
@@ -36,7 +36,6 @@
import org.apache.maven.shared.invoker.InvocationRequest;
import org.apache.maven.shared.release.ReleaseResult;
import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
-import org.apache.maven.shared.release.env.ReleaseEnvironment;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.logging.Logger;
import org.junit.Test;
@@ -156,7 +155,7 @@ public void testEncryptSettings()
proxy.setPassword( "proxy_password" );
settings.addProxy( proxy );
- ReleaseEnvironment releaseEnvironment = new DefaultReleaseEnvironment();
+ DefaultReleaseEnvironment releaseEnvironment = new DefaultReleaseEnvironment();
releaseEnvironment.setSettings( settings );
releaseEnvironment.setMavenHome( new File( System.getProperty( "injectedMavenHome" ) ) );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java
index 9d510cc9f..9bc40d841 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java
@@ -41,7 +41,8 @@
import org.apache.maven.scm.repository.ScmRepository;
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;
import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
@@ -66,11 +67,11 @@ public void testRewriteBasicPomWithEditMode()
throws Exception
{
List reactorProjects = createReactorProjectsFromBasicPom();
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- config.setScmUseEditMode( true );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ builder.setScmUseEditMode( true );
+ mapNextVersion( builder, "groupId:artifactId" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -80,21 +81,21 @@ public void testRewriteBasicPomWithEditModeFailure()
throws Exception
{
List reactorProjects = createReactorProjectsFromBasicPom();
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- config.setScmUseEditMode( true );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ builder.setScmUseEditMode( true );
+ mapNextVersion( builder, "groupId:artifactId" );
ScmManagerStub scmManager = new ScmManagerStub();
DefaultScmRepositoryConfigurator configurator =
(DefaultScmRepositoryConfigurator) lookup( ScmRepositoryConfigurator.class, "default" );
configurator.setScmManager( scmManager );
- ScmProviderStub providerStub = (ScmProviderStub) scmManager.getProviderByUrl( config.getScmSourceUrl() );
+ ScmProviderStub providerStub = (ScmProviderStub) scmManager.getProviderByUrl( ReleaseUtils.buildReleaseDescriptor( builder ).getScmSourceUrl() );
providerStub.setEditScmResult( new EditScmResult( "", "", "", false ) );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -110,9 +111,9 @@ public void testRewriteBasicPomWithEditModeException()
{
// prepare
List reactorProjects = createReactorProjectsFromBasicPom();
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- config.setScmUseEditMode( true );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ builder.setScmUseEditMode( true );
+ mapNextVersion( builder, "groupId:artifactId" );
ScmProvider scmProviderMock = mock( ScmProvider.class );
when( scmProviderMock.edit( isA( ScmRepository.class ),
@@ -127,7 +128,7 @@ public void testRewriteBasicPomWithEditModeException()
// execute
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -145,9 +146,9 @@ public void testRewritePomPluginDependencies()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-plugin-deps" );
- ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDefaultConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -157,11 +158,11 @@ public void testRewritePomUnmappedPluginDependencies()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-plugin-deps" );
- ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createUnmappedConfiguration( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -176,9 +177,9 @@ public void testRewritePomProfile()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-profile" );
- ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDefaultConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -188,11 +189,11 @@ public void testRewritePomUnmappedProfile()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-profile" );
- ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createUnmappedConfiguration( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
index 2deaf8b52..96eadcd17 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
@@ -57,6 +57,7 @@
import org.apache.maven.project.ProjectSorter;
import org.apache.maven.repository.internal.MavenRepositorySystemSession;
import org.apache.maven.shared.release.PlexusJUnit4TestCase;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
import org.apache.maven.shared.release.util.ReleaseUtil;
import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
import org.sonatype.aether.repository.WorkspaceReader;
@@ -102,6 +103,16 @@ protected List createReactorProjects( String path, String subpath
{
return createReactorProjects( path, path, subpath );
}
+
+ protected ReleaseDescriptorBuilder createReleaseDescriptorBuilder( List reactorProjects )
+ {
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ for ( MavenProject project : reactorProjects )
+ {
+ builder.putOriginalVersion( project.getGroupId() + ':' + project.getArtifactId(), project.getVersion() );
+ }
+ return builder;
+ }
/**
*
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
index 903cf93e6..427371c1f 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
@@ -40,7 +40,8 @@
import org.apache.maven.scm.repository.ScmRepositoryException;
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;
import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
@@ -81,7 +82,7 @@ public void setUp()
throws Exception
{
super.setUp();
- phase = (ReleasePhase) lookup( ReleasePhase.class, getRoleHint() );
+ phase = lookup( ReleasePhase.class, getRoleHint() );
if( phase instanceof AbstractRewritePomsPhase)
{
@@ -96,10 +97,10 @@ public void testRewriteBasicPom()
throws Exception
{
List reactorProjects = createReactorProjectsFromBasicPom();
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ mapNextVersion( builder, "groupId:artifactId" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -109,10 +110,10 @@ public void testRewriteBasicPomEntities()
throws Exception
{
List reactorProjects = createReactorProjects( "basic-pom-entities" );
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ mapNextVersion( builder, "groupId:artifactId" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -122,10 +123,10 @@ public void testRewriteBasicPomNamespace()
throws Exception
{
List reactorProjects = createReactorProjects( "basic-pom-namespace" );
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ mapNextVersion( builder, "groupId:artifactId" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -135,10 +136,10 @@ public void testRewriteBasicPomWithEncoding()
throws Exception
{
List reactorProjects = createReactorProjects( "basic-pom-with-encoding" );
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ mapNextVersion( builder, "groupId:artifactId" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -148,9 +149,9 @@ public void testRewritePomWithParent()
throws Exception
{
List reactorProjects = createReactorProjects( "pom-with-parent" );
- ReleaseDescriptor config = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
+ ReleaseDescriptorBuilder builder = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -161,17 +162,17 @@ public void testRewritePomWithUnmappedParent()
{
List reactorProjects = createReactorProjects( "pom-with-parent" );
- ReleaseDescriptor config = createDescriptorFromProjects( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDescriptorFromProjects( reactorProjects );
// Process the child first
reactorProjects = new ArrayList<>( reactorProjects );
Collections.reverse( reactorProjects );
- mapAlternateNextVersion( config, "groupId:subproject1" );
+ mapAlternateNextVersion( builder, "groupId:subproject1" );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -187,27 +188,27 @@ public void testRewritePomWithReleasedParent()
{
List reactorProjects = createReactorProjects( "pom-with-released-parent" );
- ReleaseDescriptor config = createDescriptorFromProjects( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDescriptorFromProjects( reactorProjects );
- mapAlternateNextVersion( config, "groupId:subproject1" );
- config.mapReleaseVersion( "groupId:artifactId", "1" );
- config.mapDevelopmentVersion( "groupId:artifactId", "1" );
+ mapAlternateNextVersion( builder, "groupId:subproject1" );
+ builder.addReleaseVersion( "groupId:artifactId", "1" );
+ builder.addDevelopmentVersion( "groupId:artifactId", "1" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
- protected abstract void mapAlternateNextVersion( ReleaseDescriptor config, String projectId );
+ protected abstract void mapAlternateNextVersion( ReleaseDescriptorBuilder config, String projectId );
@Test
public void testRewritePomWithInheritedVersion()
throws Exception
{
List reactorProjects = createReactorProjects( "pom-with-inherited-version" );
- ReleaseDescriptor config = createConfigurationForWithParentNextVersion( reactorProjects );
+ ReleaseDescriptorBuilder builder = createConfigurationForWithParentNextVersion( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -217,15 +218,15 @@ public void testRewritePomWithChangedInheritedVersion()
throws Exception
{
List reactorProjects = createReactorProjects( "pom-with-inherited-version" );
- ReleaseDescriptor config = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
+ ReleaseDescriptorBuilder builder = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
MavenProject project = getProjectsAsMap( reactorProjects ).get( "groupId:subproject1" );
comparePomFiles( project, "-version-changed" );
}
- protected abstract ReleaseDescriptor createConfigurationForPomWithParentAlternateNextVersion( List reactorProjects )
+ protected abstract ReleaseDescriptorBuilder createConfigurationForPomWithParentAlternateNextVersion( List reactorProjects )
throws Exception;
@Test
@@ -233,10 +234,10 @@ public void testRewritePomDependencies()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-dependencies" );
- ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
- mapNextVersion( config, "groupId:subsubproject" );
+ ReleaseDescriptorBuilder builder = createDefaultConfiguration( reactorProjects );
+ mapNextVersion( builder, "groupId:subsubproject" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -246,11 +247,11 @@ public void testRewritePomUnmappedDependencies()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-dependencies" );
- ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createUnmappedConfiguration( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -265,9 +266,9 @@ public void testRewritePomDependenciesDifferentVersion()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-differing-snapshot-dependencies" );
- ReleaseDescriptor config = createDifferingVersionConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDifferingVersionConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -277,9 +278,9 @@ public void testRewriteManagedPomDependencies()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-managed-snapshot-dependency" );
- ReleaseDescriptor config = createMappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createMappedConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -289,11 +290,11 @@ public void testRewriteManagedPomUnmappedDependencies()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-managed-snapshot-dependency" );
- ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createUnmappedConfiguration( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -308,9 +309,9 @@ public void testRewritePomPlugins()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-plugins" );
- ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDefaultConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -320,11 +321,11 @@ public void testRewritePomUnmappedPlugins()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-plugins" );
- ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createUnmappedConfiguration( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -339,9 +340,9 @@ public void testRewritePomPluginsDifferentVersion()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-differing-snapshot-plugins" );
- ReleaseDescriptor config = createDifferingVersionConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDifferingVersionConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -351,9 +352,9 @@ public void testRewriteManagedPomPlugins()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-managed-snapshot-plugin" );
- ReleaseDescriptor config = createMappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createMappedConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -363,11 +364,11 @@ public void testRewriteManagedPomUnmappedPlugins()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-managed-snapshot-plugin" );
- ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createUnmappedConfiguration( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -382,9 +383,9 @@ public void testRewritePomReportPlugins()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-report-plugins" );
- ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDefaultConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -394,11 +395,11 @@ public void testRewritePomUnmappedReportPlugins()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-report-plugins" );
- ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createUnmappedConfiguration( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -413,9 +414,9 @@ public void testRewritePomReportPluginsDifferentVersion()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-differing-snapshot-report-plugins" );
- ReleaseDescriptor config = createDifferingVersionConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDifferingVersionConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -426,9 +427,9 @@ public void testRewritePomExtension()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-extension" );
- ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDefaultConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -439,11 +440,11 @@ public void testRewritePomUnmappedExtension()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-snapshot-extension" );
- ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createUnmappedConfiguration( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -459,9 +460,9 @@ public void testRewritePomExtensionDifferentVersion()
throws Exception
{
List reactorProjects = createReactorProjects( "internal-differing-snapshot-extension" );
- ReleaseDescriptor config = createDifferingVersionConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDifferingVersionConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -472,9 +473,9 @@ public void testRewritePomExtensionUndefinedVersion()
throws Exception
{
List reactorProjects = createReactorProjects( "pom-without-extension-version" );
- ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDefaultConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -490,11 +491,11 @@ public void testRewriteAddSchema()
{
String path = "basic-pom";
List reactorProjects = prepareReactorProjects( path, copyFiles );
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- mapNextVersion( config, "groupId:artifactId" );
- config.setAddSchema( true );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ mapNextVersion( builder, "groupId:artifactId" );
+ builder.setAddSchema( true );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
comparePomFiles( reactorProjects, "-with-schema" );
@@ -510,9 +511,9 @@ public void testSimulateRewriteEditModeSkipped()
{
// prepare
List reactorProjects = createReactorProjectsFromBasicPom();
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- config.setScmUseEditMode( true );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ builder.setScmUseEditMode( true );
+ mapNextVersion( builder, "groupId:artifactId" );
ScmProvider scmProviderMock = mock( ScmProvider.class );
@@ -523,7 +524,7 @@ public void testSimulateRewriteEditModeSkipped()
scmManager.setScmProvider( scmProviderMock );
// execute
- phase.simulate( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// verify
verifyNoMoreInteractions( scmProviderMock );
@@ -534,11 +535,11 @@ public void testRewriteUnmappedPom()
throws Exception
{
List reactorProjects = createReactorProjectsFromBasicPom();
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -554,12 +555,12 @@ public void testRewriteBasicPomWithScmRepoException()
{
// prepare
List reactorProjects = createReactorProjectsFromBasicPom();
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- config.setScmUseEditMode( true );
- config.setScmSourceUrl( "scm:svn:fail" );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ builder.setScmUseEditMode( true );
+ builder.setScmSourceUrl( "scm:svn:fail" );
+ mapNextVersion( builder, "groupId:artifactId" );
- ScmManager scmManager = (ScmManager) lookup( ScmManager.class );
+ ScmManager scmManager = lookup( ScmManager.class );
if ( scmManager instanceof ScmManagerStub )
{
((ScmManagerStub) scmManager ).setException( new ScmRepositoryException( "..." ) );
@@ -567,7 +568,7 @@ public void testRewriteBasicPomWithScmRepoException()
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -583,10 +584,10 @@ public void testRewriteBasicPomWithNoSuchProviderException()
{
// prepare
List reactorProjects = createReactorProjectsFromBasicPom();
- ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
- config.setScmUseEditMode( true );
- config.setScmSourceUrl( "scm:fail:path" );
- mapNextVersion( config, "groupId:artifactId" );
+ ReleaseDescriptorBuilder builder = createDescriptorFromBasicPom( reactorProjects );
+ builder.setScmUseEditMode( true );
+ builder.setScmSourceUrl( "scm:fail:path" );
+ mapNextVersion( builder, "groupId:artifactId" );
ScmManager scmManager = (ScmManager) lookup( ScmManager.class );
if ( scmManager instanceof ScmManagerStub )
@@ -597,7 +598,7 @@ public void testRewriteBasicPomWithNoSuchProviderException()
// execute
try
{
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have thrown an exception" );
}
@@ -613,10 +614,10 @@ public void testRewriteWhitespaceAroundValues()
throws Exception
{
List reactorProjects = createReactorProjects( "whitespace-around-values" );
- ReleaseDescriptor config = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
- mapNextVersion( config, "groupId:subproject2" );
+ ReleaseDescriptorBuilder builder = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
+ mapNextVersion( builder, "groupId:subproject2" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -626,10 +627,10 @@ public void testRewriteCommentsAroundValues()
throws Exception
{
List reactorProjects = createReactorProjects( "comments-around-values" );
- ReleaseDescriptor config = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
- mapNextVersion( config, "groupId:subproject2" );
+ ReleaseDescriptorBuilder builder = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
+ mapNextVersion( builder, "groupId:subproject2" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -639,10 +640,10 @@ public void testRewriteCDataAroundValues()
throws Exception
{
List reactorProjects = createReactorProjects( "cdata-around-values" );
- ReleaseDescriptor config = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
- mapNextVersion( config, "groupId:subproject2" );
+ ReleaseDescriptorBuilder builder = createConfigurationForPomWithParentAlternateNextVersion( reactorProjects );
+ mapNextVersion( builder, "groupId:subproject2" );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -652,25 +653,19 @@ public void testCleanNoProjects()
throws Exception
{
// This occurs when it is release:perform run standalone. Just check there are no errors.
- ReleaseDescriptor config = new ReleaseDescriptor();
- config.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
- config.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
-
phase.clean( Collections.emptyList() );
-
- assertTrue( true );
}
- protected ReleaseDescriptor createUnmappedConfiguration( List reactorProjects )
+ protected ReleaseDescriptorBuilder createUnmappedConfiguration( List reactorProjects )
throws Exception
{
- ReleaseDescriptor config = createDescriptorFromProjects( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDescriptorFromProjects( reactorProjects );
- unmapNextVersion( config, "groupId:subproject1" );
- mapNextVersion( config, "groupId:subproject2" );
- mapNextVersion( config, "groupId:subproject3" );
- mapNextVersion( config, "groupId:artifactId" );
- return config;
+ unmapNextVersion( builder, "groupId:subproject1" );
+ mapNextVersion( builder, "groupId:subproject2" );
+ mapNextVersion( builder, "groupId:subproject3" );
+ mapNextVersion( builder, "groupId:artifactId" );
+ return builder;
}
protected List createReactorProjects( String path )
@@ -679,31 +674,31 @@ protected List createReactorProjects( String path )
return prepareReactorProjects( path, true );
}
- protected ReleaseDescriptor createDefaultConfiguration( List reactorProjects )
+ protected ReleaseDescriptorBuilder createDefaultConfiguration( List reactorProjects )
throws Exception
{
- ReleaseDescriptor config = createMappedConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createMappedConfiguration( reactorProjects );
- mapNextVersion( config, "groupId:subproject4" );
- return config;
+ mapNextVersion( builder, "groupId:subproject4" );
+ return builder;
}
- protected ReleaseDescriptor createMappedConfiguration( List reactorProjects )
+ protected ReleaseDescriptorBuilder createMappedConfiguration( List reactorProjects )
throws Exception
{
- ReleaseDescriptor config = createDifferingVersionConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDifferingVersionConfiguration( reactorProjects );
- mapNextVersion( config, "groupId:subproject3" );
- return config;
+ mapNextVersion( builder, "groupId:subproject3" );
+ return builder;
}
- private ReleaseDescriptor createDifferingVersionConfiguration( List reactorProjects )
+ private ReleaseDescriptorBuilder createDifferingVersionConfiguration( List reactorProjects )
throws Exception
{
- ReleaseDescriptor config = createConfigurationForWithParentNextVersion( reactorProjects );
+ ReleaseDescriptorBuilder builder = createConfigurationForWithParentNextVersion( reactorProjects );
- mapNextVersion( config, "groupId:subproject2" );
- return config;
+ mapNextVersion( builder, "groupId:subproject2" );
+ return builder;
}
protected List createReactorProjectsFromBasicPom()
@@ -712,14 +707,14 @@ protected List createReactorProjectsFromBasicPom()
return createReactorProjects( "basic-pom" );
}
- protected abstract ReleaseDescriptor createConfigurationForWithParentNextVersion( List reactorProjects )
+ protected abstract ReleaseDescriptorBuilder createConfigurationForWithParentNextVersion( List reactorProjects )
throws Exception;
- protected abstract void unmapNextVersion( ReleaseDescriptor config, String projectId );
+ protected abstract void unmapNextVersion( ReleaseDescriptorBuilder config, String projectId );
- protected abstract void mapNextVersion( ReleaseDescriptor config, String projectId );
+ protected abstract void mapNextVersion( ReleaseDescriptorBuilder config, String projectId );
- protected ReleaseDescriptor createDescriptorFromBasicPom( List reactorProjects )
+ protected ReleaseDescriptorBuilder createDescriptorFromBasicPom( List reactorProjects )
throws Exception
{
return createDescriptorFromProjects( reactorProjects );
@@ -733,9 +728,9 @@ public void testRewritePomDependenciesWithNamespace()
throws Exception
{
List reactorProjects = createReactorProjects( "pom-with-namespace" );
- ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+ ReleaseDescriptorBuilder builder = createDefaultConfiguration( reactorProjects );
- phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( comparePomFiles( reactorProjects ) );
}
@@ -748,21 +743,33 @@ protected void verifyReactorProjects( String path, boolean copyFiles )
{
}
- protected ReleaseDescriptor createDescriptorFromProjects( List reactorProjects )
+ protected ReleaseDescriptorBuilder createDescriptorFromProjects( List reactorProjects )
+ {
+ return createDescriptorFromProjects( new ReleaseDescriptorBuilder(), reactorProjects );
+ }
+
+ protected ReleaseDescriptorBuilder createDescriptorFromProjects( ReleaseDescriptorBuilder builder, List reactorProjects )
{
- ReleaseDescriptor descriptor = new ReleaseDescriptor();
MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
+
+ for ( MavenProject project : reactorProjects )
+ {
+ String key = project.getGroupId() + ':' + project.getArtifactId();
+ builder.putOriginalVersion( key, project.getVersion() );
+ builder.addOriginalScmInfo( key, project.getScm() );
+ }
+
if ( rootProject.getScm() == null )
{
- descriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo/trunk" );
+ builder.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo/trunk" );
}
else
{
- descriptor.setScmSourceUrl( rootProject.getScm().getConnection() );
+ builder.setScmSourceUrl( rootProject.getScm().getConnection() );
}
- descriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
+ builder.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
- return descriptor;
+ return builder;
}
}
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhaseTest.java
index 087ea96c7..3a6bbae2e 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractScmCommitPhaseTest.java
@@ -27,7 +27,8 @@
import org.apache.maven.model.Model;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
+import org.apache.maven.shared.release.config.ReleaseUtils;
import org.junit.Test;
public class AbstractScmCommitPhaseTest
@@ -37,8 +38,9 @@ public void testDefaultCreatePomFiles()
throws Exception
{
List files =
- AbstractScmCommitPhase.createPomFiles( new ReleaseDescriptor(),
- createProject( "artifactId", "1.0-SNAPSHOT", new File( "pom.xml" ) ) );
+ AbstractScmCommitPhase.createPomFiles( ReleaseUtils.buildReleaseDescriptor( new ReleaseDescriptorBuilder() ),
+ createProject( "artifactId", "1.0-SNAPSHOT",
+ new File( "pom.xml" ) ) );
assertEquals( "Number of created files", files.size(), 1 );
assertTrue( files.contains( new File( "pom.xml" ) ) );
}
@@ -48,10 +50,10 @@ public void testDefaultCreatePomFiles()
public void testCreatePomFilesSuppressCommitBeforeTag()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setSuppressCommitBeforeTagOrBranch( true );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setSuppressCommitBeforeTagOrBranch( true );
List files =
- AbstractScmCommitPhase.createPomFiles( releaseDescriptor,
+ AbstractScmCommitPhase.createPomFiles( ReleaseUtils.buildReleaseDescriptor( builder ),
createProject( "artifactId", "1.0-SNAPSHOT", new File( "pom.xml" ) ) );
assertEquals( "Number of created files", files.size(), 1 );
assertTrue( files.contains( new File( "pom.xml" ) ) );
@@ -61,10 +63,10 @@ public void testCreatePomFilesSuppressCommitBeforeTag()
public void testCreatePomFilesWithReleasePom()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setGenerateReleasePoms( true );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setGenerateReleasePoms( true );
List files =
- AbstractScmCommitPhase.createPomFiles( releaseDescriptor,
+ AbstractScmCommitPhase.createPomFiles( ReleaseUtils.buildReleaseDescriptor( builder ),
createProject( "artifactId", "1.0-SNAPSHOT", new File( "pom.xml" ) ) );
assertEquals( "Number of created files", files.size(), 2 );
assertTrue( files.contains( new File( "pom.xml" ) ) );
@@ -75,11 +77,11 @@ public void testCreatePomFilesWithReleasePom()
public void testCreatePomFilesWithReleasePomAndSuppressCommitBeforeTag()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setGenerateReleasePoms( true );
- releaseDescriptor.setSuppressCommitBeforeTagOrBranch( true );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setGenerateReleasePoms( true );
+ builder.setSuppressCommitBeforeTagOrBranch( true );
List files =
- AbstractScmCommitPhase.createPomFiles( releaseDescriptor,
+ AbstractScmCommitPhase.createPomFiles( ReleaseUtils.buildReleaseDescriptor( builder ),
createProject( "artifactId", "1.0-SNAPSHOT", new File( "pom.xml" ) ) );
assertEquals( "Number of created files", files.size(), 1 );
assertTrue( files.contains( new File( "pom.xml" ) ) );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
index d0e69f8e5..1ff575f7c 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
@@ -36,7 +36,8 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.release.PlexusJUnit4TestCase;
import org.apache.maven.shared.release.ReleaseExecutionException;
-import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.config.ReleaseDescriptorBuilder;
+import org.apache.maven.shared.release.config.ReleaseUtils;
import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
import org.codehaus.plexus.components.interactivity.Prompter;
import org.codehaus.plexus.components.interactivity.PrompterException;
@@ -71,26 +72,26 @@ public void testInputVariablesInteractive()
List reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
- releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ builder.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
// execute
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// verify
- assertEquals( "Check tag", "tag-value", releaseDescriptor.getScmReleaseLabel() );
+ assertEquals( "Check tag", "tag-value", ReleaseUtils.buildReleaseDescriptor( builder ).getScmReleaseLabel() );
// prepare
- releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
- releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
+ builder = new ReleaseDescriptorBuilder();
+ builder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ builder.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
// execute
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// verify
- assertEquals( "Check tag", "simulated-tag-value", releaseDescriptor.getScmReleaseLabel() );
+ assertEquals( "Check tag", "simulated-tag-value", ReleaseUtils.buildReleaseDescriptor( builder ).getScmReleaseLabel() );
verify( mockPrompter, times( 2 ) ).prompt( isA( String.class ) );
verifyNoMoreInteractions( mockPrompter );
@@ -102,11 +103,11 @@ public void testUnmappedVersion()
{
List reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Expected an exception" );
}
@@ -115,11 +116,11 @@ public void testUnmappedVersion()
assertNull( "check no cause", e.getCause() );
}
- releaseDescriptor = new ReleaseDescriptor();
+ builder = new ReleaseDescriptorBuilder();
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Expected an exception" );
}
@@ -139,26 +140,26 @@ public void testInputVariablesNonInteractiveConfigured()
List reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setInteractive( false );
- releaseDescriptor.setScmReleaseLabel( "tag-value" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setInteractive( false );
+ builder.setScmReleaseLabel( "tag-value" );
// execute
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// verify
- assertEquals( "Check tag", "tag-value", releaseDescriptor.getScmReleaseLabel() );
+ assertEquals( "Check tag", "tag-value", ReleaseUtils.buildReleaseDescriptor( builder ).getScmReleaseLabel() );
// prepare
- releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setInteractive( false );
- releaseDescriptor.setScmReleaseLabel( "simulated-tag-value" );
+ builder = new ReleaseDescriptorBuilder();
+ builder.setInteractive( false );
+ builder.setScmReleaseLabel( "simulated-tag-value" );
// execute
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// verify
- assertEquals( "Check tag", "simulated-tag-value", releaseDescriptor.getScmReleaseLabel() );
+ assertEquals( "Check tag", "simulated-tag-value", ReleaseUtils.buildReleaseDescriptor( builder ).getScmReleaseLabel() );
// never use prompter
verifyNoMoreInteractions( mockPrompter );
@@ -174,24 +175,24 @@ public void testInputVariablesInteractiveConfigured()
List reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmReleaseLabel( "tag-value" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setScmReleaseLabel( "tag-value" );
// execute
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// verify
- assertEquals( "Check tag", "tag-value", releaseDescriptor.getScmReleaseLabel() );
+ assertEquals( "Check tag", "tag-value", ReleaseUtils.buildReleaseDescriptor( builder ).getScmReleaseLabel() );
// prepare
- releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmReleaseLabel( "simulated-tag-value" );
+ builder = new ReleaseDescriptorBuilder();
+ builder.setScmReleaseLabel( "simulated-tag-value" );
// execute
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// verify
- assertEquals( "Check tag", "simulated-tag-value", releaseDescriptor.getScmReleaseLabel() );
+ assertEquals( "Check tag", "simulated-tag-value", ReleaseUtils.buildReleaseDescriptor( builder ).getScmReleaseLabel() );
// never use prompter
verifyNoMoreInteractions( mockPrompter );
@@ -209,14 +210,14 @@ public void testPrompterException()
List reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
- releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ builder.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
// execute
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Expected an exception" );
}
@@ -226,14 +227,14 @@ public void testPrompterException()
}
// prepare
- releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
- releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
+ builder = new ReleaseDescriptorBuilder();
+ builder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ builder.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
// execute
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Expected an exception" );
}
@@ -264,16 +265,16 @@ public void testEmptyBranchName()
List reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setInteractive( false );
- releaseDescriptor.setScmReleaseLabel( null );
- releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
- releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.setInteractive( false );
+ builder.setScmReleaseLabel( null );
+ builder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ builder.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
// execute
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Expected an exception" );
}
@@ -283,16 +284,16 @@ public void testEmptyBranchName()
}
// prepare
- releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setInteractive( false );
- releaseDescriptor.setScmReleaseLabel( null );
- releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
- releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
+ builder = new ReleaseDescriptorBuilder();
+ builder.setInteractive( false );
+ builder.setScmReleaseLabel( null );
+ builder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ builder.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
// execute
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Expected an exception" );
}
@@ -308,17 +309,17 @@ public void testEmptyBranchName()
@Test
public void testNamingPolicy() throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
- releaseDescriptor.setInteractive( false );
- releaseDescriptor.setProjectNamingPolicyId( "stub" );
- releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();
+ builder.addReleaseVersion( "groupId:artifactId", "1.0" );
+ builder.setInteractive( false );
+ builder.setProjectNamingPolicyId( "stub" );
+ builder.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
List reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
- assertEquals( "STUB", releaseDescriptor.getScmReleaseLabel() );
+ assertEquals( "STUB", ReleaseUtils.buildReleaseDescriptor( builder ).getScmReleaseLabel() );
}
private static MavenProject createProject( String artifactId, String version )
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
index 81466d822..2b0edf66d 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
@@ -31,13 +31,14 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import java.util.Objects;
import org.apache.maven.project.MavenProject;
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;
import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
import org.codehaus.plexus.components.interactivity.Prompter;
import org.codehaus.plexus.components.interactivity.PrompterException;
@@ -67,19 +68,19 @@ public void setUp()
{
super.setUp();
- phase = (ReleasePhase) lookup( ReleasePhase.class, "check-dependency-snapshots" );
+ phase = lookup( ReleasePhase.class, "check-dependency-snapshots" );
}
@Test
public void testNoSnapshotDependencies()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder();;
List reactorProjects = createDescriptorFromProjects( "no-snapshot-dependencies" );
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// successful execution is verification enough
assertTrue( true );
@@ -92,16 +93,16 @@ public void testNoSnapshotRangeDependencies()
CheckDependencySnapshotsPhase phase =
(CheckDependencySnapshotsPhase) lookup( ReleasePhase.class, "check-dependency-snapshots" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "no-snapshot-range-dependencies" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.1", "1.2-SNAPSHOT" ) ) );
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
phase.setPrompter( createMockPrompter( YES, DEFAULT_CHOICE, new VersionPair( "1.1", "1.2-SNAPSHOT" ) ) );
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// successful execution is verification enough
assertTrue( true );
@@ -111,12 +112,12 @@ public void testNoSnapshotRangeDependencies()
public void testSnapshotDependenciesInProjectOnly()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "internal-snapshot-dependencies" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// successful execution is verification enough
assertTrue( true );
@@ -126,13 +127,13 @@ public void testSnapshotDependenciesInProjectOnly()
public void testSnapshotReleasePluginNonInteractive()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
- releaseDescriptor.setInteractive( false );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
+ builder.setInteractive( false );
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -143,7 +144,7 @@ public void testSnapshotReleasePluginNonInteractive()
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -160,14 +161,14 @@ public void testSnapshotReleasePluginInteractiveDeclined()
CheckDependencySnapshotsPhase phase =
(CheckDependencySnapshotsPhase) lookup( ReleasePhase.class, "check-dependency-snapshots" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
phase.setPrompter( createMockPrompterWithSnapshotReleasePlugin( NO, NO ) );
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -180,7 +181,7 @@ public void testSnapshotReleasePluginInteractiveDeclined()
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -197,12 +198,12 @@ public void testSnapshotReleasePluginInteractiveAcceptedForExecution()
CheckDependencySnapshotsPhase phase =
(CheckDependencySnapshotsPhase) lookup( ReleasePhase.class, "check-dependency-snapshots" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
phase.setPrompter( createYesMockPrompter() );
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( true );
}
@@ -214,12 +215,12 @@ public void testSnapshotReleasePluginInteractiveAcceptedForSimulation()
CheckDependencySnapshotsPhase phase =
(CheckDependencySnapshotsPhase) lookup( ReleasePhase.class, "check-dependency-snapshots" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
phase.setPrompter( createYesMockPrompter() );
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
assertTrue( true );
}
@@ -231,14 +232,14 @@ public void testSnapshotReleasePluginInteractiveInvalid()
CheckDependencySnapshotsPhase phase =
(CheckDependencySnapshotsPhase) lookup( ReleasePhase.class, "check-dependency-snapshots" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
phase.setPrompter( createMockPrompterWithSnapshotReleasePlugin( "donkey", NO ) );
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -251,7 +252,7 @@ public void testSnapshotReleasePluginInteractiveInvalid()
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -268,8 +269,8 @@ public void testSnapshotReleasePluginInteractiveException()
CheckDependencySnapshotsPhase phase =
(CheckDependencySnapshotsPhase) lookup( ReleasePhase.class, "check-dependency-snapshots" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "snapshot-release-plugin" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
Prompter mockPrompter = mock( Prompter.class );
when( mockPrompter.prompt( anyString(), eq( YES_NO_ARRAY ),
@@ -278,7 +279,7 @@ public void testSnapshotReleasePluginInteractiveException()
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -293,7 +294,7 @@ public void testSnapshotReleasePluginInteractiveException()
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -310,14 +311,14 @@ public void testSnapshotDependenciesInProjectOnlyMismatchedVersion()
CheckDependencySnapshotsPhase phase =
(CheckDependencySnapshotsPhase) lookup( ReleasePhase.class, "check-dependency-snapshots" );
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "internal-differing-snapshot-dependencies" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
phase.setPrompter( createNoMockPrompter() );
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -330,7 +331,7 @@ public void testSnapshotDependenciesInProjectOnlyMismatchedVersion()
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -344,12 +345,12 @@ public void testSnapshotDependenciesInProjectOnlyMismatchedVersion()
public void testSnapshotManagedDependenciesInProjectOnly()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "internal-managed-snapshot-dependency" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// successful execution is verification enough
assertTrue( true );
@@ -359,13 +360,13 @@ public void testSnapshotManagedDependenciesInProjectOnly()
public void testSnapshotUnusedInternalManagedDependency()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects =
createDescriptorFromProjects( "unused-internal-managed-snapshot-dependency" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// successful execution is verification enough
assertTrue( true );
@@ -375,13 +376,13 @@ public void testSnapshotUnusedInternalManagedDependency()
public void testSnapshotUnusedExternalManagedDependency()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects =
createDescriptorFromProjects( "unused-external-managed-snapshot-dependency" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
// successful execution is verification enough
assertTrue( true );
@@ -391,14 +392,14 @@ public void testSnapshotUnusedExternalManagedDependency()
public void testSnapshotExternalManagedDependency()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "external-managed-snapshot-dependency" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
- releaseDescriptor.setInteractive( false );
+ builder.setInteractive( false );
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -409,7 +410,7 @@ public void testSnapshotExternalManagedDependency()
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -423,14 +424,14 @@ public void testSnapshotExternalManagedDependency()
public void testSnapshotDependenciesOutsideProjectOnlyNonInteractive()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List reactorProjects = createDescriptorFromProjects( "external-snapshot-dependencies" );
+ ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( reactorProjects );
- releaseDescriptor.setInteractive( false );
+ builder.setInteractive( false );
try
{
- phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.execute( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -441,7 +442,7 @@ public void testSnapshotDependenciesOutsideProjectOnlyNonInteractive()
try
{
- phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+ phase.simulate( ReleaseUtils.buildReleaseDescriptor( builder ), new DefaultReleaseEnvironment(), reactorProjects );
fail( "Should have failed execution" );
}
@@ -455,14 +456,14 @@ public void testSnapshotDependenciesOutsideProjectOnlyNonInteractive()
public void testRangeSnapshotDependenciesOutsideProjectOnlyNonInteractive()
throws Exception
{
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
List