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

[maven-release] 01/01: releaseProfiles get overriden by activeProfiles

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

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

commit f3ebecd91cc5d4fa038fcea1655614fae79b01d1
Author: Benoit Guerin <bg...@netceler.com>
AuthorDate: Mon May 18 23:39:04 2020 +0200

    releaseProfiles get overriden by activeProfiles
    
    Fix UnsupportedOperationException when altering releaseDescriptor.activateProfiles
---
 .../shared/release/DefaultReleaseManager.java      | 28 +++++++++++++++-------
 .../shared/release/DefaultReleaseManagerTest.java  |  2 +-
 2 files changed, 21 insertions(+), 9 deletions(-)

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 f023ab6..b449348 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
@@ -20,6 +20,7 @@ package org.apache.maven.shared.release;
  */
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -304,21 +305,26 @@ public class DefaultReleaseManager
             ReleaseUtils.buildReleaseDescriptor( performRequest.getReleaseDescriptorBuilder() )
             .getActivateProfiles();
 
-        ReleaseDescriptor releaseDescriptor =
-            loadReleaseDescriptor( performRequest.getReleaseDescriptorBuilder(),
-                                   performRequest.getReleaseManagerListener() );
+        ReleaseDescriptorBuilder builder =
+            loadReleaseDescriptorBuilder( performRequest.getReleaseDescriptorBuilder(),
+                                          performRequest.getReleaseManagerListener() );
 
         if ( specificProfiles != null && !specificProfiles.isEmpty() )
         {
+            List<String> allProfiles = new ArrayList<>();
+            allProfiles.addAll( ReleaseUtils.buildReleaseDescriptor( builder ).getActivateProfiles() );
             for ( String specificProfile : specificProfiles )
             {
-                if ( !releaseDescriptor.getActivateProfiles().contains( specificProfile ) )
+                if ( !allProfiles.contains( specificProfile ) )
                 {
-                    releaseDescriptor.getActivateProfiles().add( specificProfile );
+                    allProfiles.add( specificProfile );
                 }
             }
+            builder.setActivateProfiles( allProfiles );
         }
 
+        ReleaseDescriptor releaseDescriptor = ReleaseUtils.buildReleaseDescriptor( builder );
+
         Strategy releaseStrategy = getStrategy( releaseDescriptor.getReleaseStrategyId() );
 
         List<String> performPhases = getGoalPhases( releaseStrategy, "perform" );
@@ -522,12 +528,19 @@ public class DefaultReleaseManager
                                                      ReleaseManagerListener listener )
         throws ReleaseExecutionException
     {
+        return ReleaseUtils.buildReleaseDescriptor( loadReleaseDescriptorBuilder( builder, listener ) );
+    }
+
+    private ReleaseDescriptorBuilder loadReleaseDescriptorBuilder( ReleaseDescriptorBuilder builder,
+                                                     ReleaseManagerListener listener )
+        throws ReleaseExecutionException
+    {
         try
         {
             updateListener( listener, "verify-release-configuration", PHASE_START );
-            BuilderReleaseDescriptor descriptor = ReleaseUtils.buildReleaseDescriptor( configStore.read( builder ) );
+            ReleaseDescriptorBuilder result = configStore.read( builder );
             updateListener( listener, "verify-release-configuration", PHASE_END );
-            return descriptor;
+            return result;
         }
         catch ( ReleaseDescriptorStoreException e )
         {
@@ -537,7 +550,6 @@ public class DefaultReleaseManager
         }
     }
 
-    
     protected void clean( AbstractReleaseRequest releaseRequest  ) throws ReleaseFailureException
     {
         ReleaseCleanRequest cleanRequest = new ReleaseCleanRequest();
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 8e024d0..bd11e2c 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
@@ -725,7 +725,7 @@ public class DefaultReleaseManagerTest
         DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.class, "test" );
 
         ReleaseDescriptorBuilder secondBuilder = new ReleaseDescriptorBuilder();
-        secondBuilder.setActivateProfiles( new ArrayList( Arrays.asList("aProfile", "bProfile") ) );
+        secondBuilder.setActivateProfiles( Arrays.asList("aProfile", "bProfile") );
         secondBuilder.setScmSourceUrl( "scm-url" );
         ReleaseDescriptorStore configStoreMock = mock( ReleaseDescriptorStore.class );
         when( configStoreMock.read( any( ReleaseDescriptorBuilder.class ) ) ).thenReturn( secondBuilder );