diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java index 371a6ce5b9..70a20a0a43 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuilder.java @@ -37,6 +37,8 @@ import org.apache.maven.model.normalization.ModelNormalizer; import org.apache.maven.model.path.ModelPathTranslator; import org.apache.maven.model.plugin.LifecycleBindingsInjector; import org.apache.maven.model.plugin.PluginConfigurationExpander; +import org.apache.maven.model.profile.DefaultProfileActivationContext; +import org.apache.maven.model.profile.ProfileActivationContext; import org.apache.maven.model.profile.ProfileActivationException; import org.apache.maven.model.profile.ProfileInjector; import org.apache.maven.model.profile.ProfileSelector; @@ -109,7 +111,9 @@ public class DefaultModelBuilder { DefaultModelBuildingResult result = new DefaultModelBuildingResult(); - List activeExternalProfiles = getActiveExternalProfiles( request ); + ProfileActivationContext profileActivationContext = getProfileActivationContext( request ); + + List activeExternalProfiles = getActiveExternalProfiles( request, profileActivationContext ); Model model = readModel( modelSource, request ); model.setPomFile( pomFile ); @@ -127,7 +131,7 @@ public class DefaultModelBuilder modelNormalizer.mergeDuplicates( resultModel, request ); - List activeProjectProfiles = getActiveProjectProfiles( rawModel, request ); + List activeProjectProfiles = getActiveProjectProfiles( rawModel, profileActivationContext ); List activeProfiles = activeProjectProfiles; if ( current == model ) @@ -181,6 +185,15 @@ public class DefaultModelBuilder return result; } + private ProfileActivationContext getProfileActivationContext( ModelBuildingRequest request ) + { + ProfileActivationContext context = new DefaultProfileActivationContext(); + context.setActiveProfileIds( request.getActiveProfileIds() ); + context.setInactiveProfileIds( request.getInactiveProfileIds() ); + context.setExecutionProperties( request.getExecutionProperties() ); + return context; + } + private Model readModel( ModelSource modelSource, ModelBuildingRequest request ) throws ModelBuildingException { @@ -228,12 +241,12 @@ public class DefaultModelBuilder } } - private List getActiveExternalProfiles( ModelBuildingRequest request ) + private List getActiveExternalProfiles( ModelBuildingRequest request, ProfileActivationContext context ) throws ModelBuildingException { try { - return profileSelector.getActiveProfiles( request.getProfiles(), request.getProfileActivationContext() ); + return profileSelector.getActiveProfiles( request.getProfiles(), context ); } catch ( ProfileActivationException e ) { @@ -242,12 +255,12 @@ public class DefaultModelBuilder } } - private List getActiveProjectProfiles( Model model, ModelBuildingRequest request ) + private List getActiveProjectProfiles( Model model, ProfileActivationContext context ) throws ModelBuildingException { try { - return profileSelector.getActiveProfiles( model.getProfiles(), request.getProfileActivationContext() ); + return profileSelector.getActiveProfiles( model.getProfiles(), context ); } catch ( ProfileActivationException e ) { diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java index 3c91996402..47a83fe3aa 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/DefaultModelBuildingRequest.java @@ -23,9 +23,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Properties; -import org.apache.maven.model.profile.DefaultProfileActivationContext; -import org.apache.maven.model.profile.ProfileActivationContext; - /** * Collects settings that control building of effective models. * @@ -41,12 +38,18 @@ public class DefaultModelBuildingRequest private List profiles; - private ProfileActivationContext profileActivationContext; + private List activeProfileIds; + + private List inactiveProfileIds; + + private Properties executionProperties; public DefaultModelBuildingRequest() { profiles = new ArrayList(); - profileActivationContext = new DefaultProfileActivationContext(); + activeProfileIds = new ArrayList(); + inactiveProfileIds = new ArrayList(); + executionProperties = new Properties(); } public boolean istLenientValidation() @@ -91,51 +94,49 @@ public class DefaultModelBuildingRequest public List getActiveProfileIds() { - return profileActivationContext.getActiveProfileIds(); + return activeProfileIds; } - public ModelBuildingRequest setActiveProfileIds( List activeProfileIds ) + public DefaultModelBuildingRequest setActiveProfileIds( List activeProfileIds ) { - profileActivationContext.setActiveProfileIds( activeProfileIds ); + this.activeProfileIds.clear(); + if ( activeProfileIds != null ) + { + this.activeProfileIds.addAll( activeProfileIds ); + } + return this; } public List getInactiveProfileIds() { - return profileActivationContext.getInactiveProfileIds(); + return inactiveProfileIds; } - public ModelBuildingRequest setInactiveProfileIds( List inactiveProfileIds ) + public DefaultModelBuildingRequest setInactiveProfileIds( List inactiveProfileIds ) { - profileActivationContext.setInactiveProfileIds( inactiveProfileIds ); + this.inactiveProfileIds.clear(); + if ( inactiveProfileIds != null ) + { + this.inactiveProfileIds.addAll( inactiveProfileIds ); + } + return this; } public Properties getExecutionProperties() { - return profileActivationContext.getExecutionProperties(); + return executionProperties; } - public ModelBuildingRequest setExecutionProperties( Properties executionProperties ) + public DefaultModelBuildingRequest setExecutionProperties( Properties executionProperties ) { - profileActivationContext.setExecutionProperties( executionProperties ); - return this; - } - - public ProfileActivationContext getProfileActivationContext() - { - return profileActivationContext; - } - - public DefaultModelBuildingRequest setProfileActivationContext( ProfileActivationContext profileActivationContext ) - { - if ( profileActivationContext == null ) + this.executionProperties.clear(); + if ( executionProperties != null ) { - throw new IllegalArgumentException( "no profile activation context specified" ); + this.executionProperties.putAll( executionProperties ); } - this.profileActivationContext = profileActivationContext; - return this; } diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java index bb7646c1ab..b9273894dc 100644 --- a/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java +++ b/maven-model-builder/src/main/java/org/apache/maven/model/ModelBuildingRequest.java @@ -22,8 +22,6 @@ package org.apache.maven.model; import java.util.List; import java.util.Properties; -import org.apache.maven.model.profile.ProfileActivationContext; - /** * Collects settings that control the building of effective models. * @@ -129,12 +127,4 @@ public interface ModelBuildingRequest */ ModelBuildingRequest setExecutionProperties( Properties executionProperties ); - /** - * Gets the profile activation context for this request. The activation context is basically a view on a subset of - * settings from this request, manipulations to the request are reflected by the activation context and vice versa. - * - * @return The profile activation context for this request, never {@code null}. - */ - ProfileActivationContext getProfileActivationContext(); - }