You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/07/23 00:43:06 UTC

svn commit: r796900 - in /maven/components/trunk: maven-compat/src/main/java/org/apache/maven/profiles/ maven-core/src/main/java/org/apache/maven/ maven-core/src/main/java/org/apache/maven/execution/ maven-core/src/main/java/org/apache/maven/project/ m...

Author: bentmann
Date: Wed Jul 22 22:43:05 2009
New Revision: 796900

URL: http://svn.apache.org/viewvc?rev=796900&view=rev
Log:
o Re-introduced distinction between user properties and system properties. We have use cases like interpolation and SUREFIRE-121 where we would like to handle user-specified props specially so a single properties soup is not up to the job. However, I opted not to follow the approach from 2.x where we also collect both system properties and user properties in a combined set called execution properties. Code that embeds Maven and programmatically creates an execution request should be not required to assemble such a mixed properties instance, it would enable bad behavior from Maven by subtle API misuse. Also, for things like the lifecycle participant that wants to inject properties, it should be cristal clear whether it injects a user or a system property, the semantics of something like getExecutionProperties().setProperty() would be unclear however.

Modified:
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/profiles/ProfileActivationContext.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
    maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
    maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
    maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
    maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
    maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java
    maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivatorTest.java

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/profiles/ProfileActivationContext.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/profiles/ProfileActivationContext.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/profiles/ProfileActivationContext.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/profiles/ProfileActivationContext.java Wed Jul 22 22:43:05 2009
@@ -48,7 +48,12 @@
         this.isCustomActivatorFailureSuppressed = isCustomActivatorFailureSuppressed;
     }
 
-    public Properties getExecutionProperties()
+    public Properties getSystemProperties()
+    {
+        return executionProperties;
+    }
+
+    public Properties getUserProperties()
     {
         return executionProperties;
     }
@@ -169,14 +174,18 @@
         return this;
     }
 
-    public org.apache.maven.model.profile.ProfileActivationContext setExecutionProperties(
-                                                                                           Properties executionProperties )
+    public org.apache.maven.model.profile.ProfileActivationContext setSystemProperties( Properties systemProperties )
     {
         this.executionProperties.clear();
-        this.executionProperties.putAll( executionProperties );
+        this.executionProperties.putAll( systemProperties );
         return this;
     }
 
+    public org.apache.maven.model.profile.ProfileActivationContext setUserProperties( Properties userProperties )
+    {
+        return setSystemProperties( userProperties );
+    }
+
     public org.apache.maven.model.profile.ProfileActivationContext setInactiveProfileIds(
                                                                                           List<String> inactiveProfileIds )
     {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Wed Jul 22 22:43:05 2009
@@ -77,7 +77,7 @@
         //TODO: Need a general way to inject standard properties
         if ( request.getStartTime() != null )
         {
-            request.getProperties().put( "${build.timestamp}", new SimpleDateFormat( "yyyyMMdd-hhmm" ).format( request.getStartTime() ) );
+            request.getSystemProperties().put( "${build.timestamp}", new SimpleDateFormat( "yyyyMMdd-hhmm" ).format( request.getStartTime() ) );
         }        
         
         request.setStartTime( new Date() );

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java Wed Jul 22 22:43:05 2009
@@ -91,7 +91,9 @@
 
     private String makeBehavior;
 
-    private Properties properties;
+    private Properties systemProperties;
+
+    private Properties userProperties;
 
     private Date startTime;
 
@@ -143,7 +145,8 @@
         copy.setGoals( original.getGoals() );
         copy.setRecursive( original.isRecursive() );
         copy.setPom( original.getPom() );
-        copy.setProperties( original.getProperties() );
+        copy.setSystemProperties( original.getSystemProperties() );
+        copy.setUserProperties( original.getUserProperties() );
         copy.setShowErrors( original.isShowErrors() );
         copy.setActiveProfiles( original.getActiveProfiles() );
         copy.setInactiveProfiles( original.getInactiveProfiles() );
@@ -186,14 +189,24 @@
         return goals;
     }
 
-    public Properties getProperties()
+    public Properties getSystemProperties()
+    {
+        if ( systemProperties == null )
+        {
+            systemProperties = new Properties();
+        }
+
+        return systemProperties;
+    }
+
+    public Properties getUserProperties()
     {
-        if ( properties == null )
+        if ( userProperties == null )
         {
-            properties = new Properties();
+            userProperties = new Properties();
         }
 
-        return properties;
+        return userProperties;
     }
 
     public File getPom()
@@ -411,24 +424,32 @@
         return this;
     }
 
-    public MavenExecutionRequest setProperties( Properties properties )
+    public MavenExecutionRequest setSystemProperties( Properties properties )
     {
         if ( properties != null )
         {
-            this.properties = new Properties();
-            this.properties.putAll( properties );
+            this.systemProperties = new Properties();
+            this.systemProperties.putAll( properties );
         }
         else
         {
-            this.properties = null;
+            this.systemProperties = null;
         }
 
         return this;
     }
 
-    public MavenExecutionRequest setProperty( String key, String value )
+    public MavenExecutionRequest setUserProperties( Properties userProperties )
     {
-        getProperties().setProperty( key, value );
+        if ( userProperties != null )
+        {
+            this.userProperties = new Properties();
+            this.userProperties.putAll( userProperties );
+        }
+        else
+        {
+            this.userProperties = null;
+        }
 
         return this;
     }
@@ -868,7 +889,8 @@
         {
             projectBuildingRequest = new DefaultProjectBuildingRequest();
             projectBuildingRequest.setLocalRepository( getLocalRepository() );
-            projectBuildingRequest.setExecutionProperties( getProperties() );
+            projectBuildingRequest.setSystemProperties( getSystemProperties() );
+            projectBuildingRequest.setUserProperties( getUserProperties() );
             projectBuildingRequest.setRemoteRepositories( getRemoteRepositories() );
             projectBuildingRequest.setPluginArtifactRepositories( getPluginArtifactRepositories() );
             projectBuildingRequest.setActiveProfileIds( getActiveProfiles() );

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java Wed Jul 22 22:43:05 2009
@@ -99,9 +99,42 @@
     List<String> getGoals();
 
     // Properties
-    MavenExecutionRequest setProperties( Properties properties );
-    MavenExecutionRequest setProperty( String key, String value );
-    Properties getProperties();
+
+    /**
+     * Sets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
+     * 
+     * @param systemProperties The system properties, may be {@code null}.
+     * @return This request, never {@code null}.
+     */
+    MavenExecutionRequest setSystemProperties( Properties systemProperties );
+
+    /**
+     * Gets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
+     * 
+     * @return The system properties, never {@code null}.
+     */
+    Properties getSystemProperties();
+
+    /**
+     * Sets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @param userProperties The user properties, may be {@code null}.
+     * @return This request, never {@code null}.
+     */
+    MavenExecutionRequest setUserProperties( Properties userProperties );
+
+    /**
+     * Gets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @return The user properties, never {@code null}.
+     */
+    Properties getUserProperties();
 
     // Reactor
     MavenExecutionRequest setReactorFailureBehavior( String failureBehavior );

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Wed Jul 22 22:43:05 2009
@@ -45,7 +45,9 @@
     private MavenExecutionRequest request;
 
     private MavenExecutionResult result;
-    
+
+    private Properties executionProperties;
+
     private MavenProject currentProject;
         
     /**
@@ -109,9 +111,43 @@
         return request.getGoals();
     }
 
+    /**
+     * Gets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @return The user properties, never {@code null}.
+     */
+    public Properties getUserProperties()
+    {
+        return request.getUserProperties();
+    }
+
+    /**
+     * Gets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
+     * 
+     * @return The system properties, never {@code null}.
+     */
+    public Properties getSystemProperties()
+    {
+        return request.getSystemProperties();
+    }
+
+    /**
+     * @deprecated Use either {@link #getUserProperties()} or {@link #getSystemProperties()}.
+     */
+    @Deprecated
     public Properties getExecutionProperties()
     {
-        return request.getProperties();
+        if ( executionProperties == null )
+        {
+            executionProperties = new Properties();
+            executionProperties.putAll( request.getSystemProperties() );
+            executionProperties.putAll( request.getUserProperties() );
+        }
+
+        return executionProperties;
     }
 
     public Settings getSettings()

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java Wed Jul 22 22:43:05 2009
@@ -211,7 +211,8 @@
         request.setProfiles( configuration.getProfiles() );
         request.setActiveProfileIds( configuration.getActiveProfileIds() );
         request.setInactiveProfileIds( configuration.getInactiveProfileIds() );
-        request.setExecutionProperties( configuration.getExecutionProperties() );
+        request.setSystemProperties( configuration.getSystemProperties() );
+        request.setUserProperties( configuration.getUserProperties() );
         request.setBuildStartTime( configuration.getBuildStartTime() );
         request.setModelResolver( resolver );
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java Wed Jul 22 22:43:05 2009
@@ -52,7 +52,7 @@
 
     public ProjectBuilderConfiguration setExecutionProperties( Properties executionProperties )
     {
-        super.setExecutionProperties( executionProperties );
+        super.setSystemProperties( executionProperties );
         return this;
     }
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java Wed Jul 22 22:43:05 2009
@@ -52,7 +52,9 @@
 
     private List<String> inactiveProfileIds;
 
-    private Properties executionProperties;
+    private Properties systemProperties;
+
+    private Properties userProperties;
 
     private Date buildStartTime;
 
@@ -62,7 +64,8 @@
         profiles = new ArrayList<Profile>();
         activeProfileIds = new ArrayList<String>();
         inactiveProfileIds = new ArrayList<String>();
-        executionProperties = new Properties();
+        systemProperties = new Properties();
+        userProperties = new Properties();
         remoteRepositories = new ArrayList<ArtifactRepository>();
         pluginArtifactRepositories = new ArrayList<ArtifactRepository>();
     }
@@ -126,21 +129,41 @@
         return this;
     }
 
-    public Properties getExecutionProperties()
+    public Properties getSystemProperties()
+    {
+        return systemProperties;
+    }
+
+    public ProjectBuildingRequest setSystemProperties( Properties systemProperties )
+    {
+        if ( systemProperties != null )
+        {
+            this.systemProperties = new Properties();
+            this.systemProperties.putAll( systemProperties );
+        }
+        else
+        {
+            this.systemProperties.clear();
+        }
+
+        return this;
+    }
+
+    public Properties getUserProperties()
     {
-        return executionProperties;
+        return userProperties;
     }
 
-    public ProjectBuildingRequest setExecutionProperties( Properties executionProperties )
+    public ProjectBuildingRequest setUserProperties( Properties userProperties )
     {
-        if ( executionProperties != null )
+        if ( userProperties != null )
         {
-            this.executionProperties = new Properties();
-            this.executionProperties.putAll( executionProperties );
+            this.userProperties = new Properties();
+            this.userProperties.putAll( userProperties );
         }
         else
         {
-            this.executionProperties.clear();
+            this.userProperties.clear();
         }
 
         return this;

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java Wed Jul 22 22:43:05 2009
@@ -20,7 +20,7 @@
 
     ProjectBuilderConfiguration setExecutionProperties( Properties executionProperties );
 
-    Properties getExecutionProperties();
+    Properties getSystemProperties();
 
     void setTopLevelProjectForReactor(MavenProject mavenProject);
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java Wed Jul 22 22:43:05 2009
@@ -22,9 +22,41 @@
 
     List<ArtifactRepository> getPluginArtifactRepositories();
 
-    ProjectBuildingRequest setExecutionProperties( Properties executionProperties );
+    /**
+     * Sets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
+     * 
+     * @param systemProperties The system properties, may be {@code null}.
+     * @return This request, never {@code null}.
+     */
+    ProjectBuildingRequest setSystemProperties( Properties systemProperties );
+
+    /**
+     * Gets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
+     * 
+     * @return The system properties, never {@code null}.
+     */
+    Properties getSystemProperties();
 
-    Properties getExecutionProperties();
+    /**
+     * Sets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @param userProperties The user properties, may be {@code null}.
+     * @return This request, never {@code null}.
+     */
+    ProjectBuildingRequest setUserProperties( Properties userProperties );
+
+    /**
+     * Gets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @return The user properties, never {@code null}.
+     */
+    Properties getUserProperties();
 
     void setTopLevelProjectForReactor(MavenProject mavenProject);
 

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Wed Jul 22 22:43:05 2009
@@ -119,7 +119,7 @@
             // We don't care about processing plugins here, all we're interested in is the dependencies.
             configuration.setProcessPlugins( false );
             // FIXME: We actually need the execution properties here...
-            configuration.setExecutionProperties( System.getProperties() );
+            configuration.setSystemProperties( System.getProperties() );
 
             try
             {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java Wed Jul 22 22:43:05 2009
@@ -131,7 +131,9 @@
 
         RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
 
-        interpolator.addValueSource( new PropertiesBasedValueSource( request.getProperties() ) );
+        interpolator.addValueSource( new PropertiesBasedValueSource( request.getUserProperties() ) );
+
+        interpolator.addValueSource( new PropertiesBasedValueSource( request.getSystemProperties() ) );
 
         interpolator.addValueSource( new EnvarBasedValueSource() );
 

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java Wed Jul 22 22:43:05 2009
@@ -92,8 +92,7 @@
             .setLocalRepository( getLocalRepository() )
             .setRemoteRepositories( getRemoteRepositories() )
             .setPluginArtifactRepositories( getPluginArtifactRepositories() )
-            .setGoals( Arrays.asList( new String[] { "package" } ) )
-            .setProperties( new Properties() );
+            .setGoals( Arrays.asList( new String[] { "package" } ) );
 
         return request;
     }
@@ -116,7 +115,7 @@
             .setLocalRepository( request.getLocalRepository() )
             .setRemoteRepositories( request.getRemoteRepositories() )
             .setPluginArtifactRepositories( request.getPluginArtifactRepositories() )
-            .setExecutionProperties( executionProperties );
+            .setSystemProperties( executionProperties );
 
         MavenProject project = null;
 

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java Wed Jul 22 22:43:05 2009
@@ -65,7 +65,7 @@
         @Override
         public void afterSessionStart( MavenSession session )
         {
-            session.getExecutionProperties().setProperty( "injected", "bar" );
+            session.getUserProperties().setProperty( "injected", "bar" );
         }
 
     }

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java Wed Jul 22 22:43:05 2009
@@ -331,7 +331,7 @@
         throws CycleDetectedException, DuplicateProjectException
     {
         MavenExecutionRequest request = new DefaultMavenExecutionRequest()
-            .setProperties( properties )
+            .setSystemProperties( properties )
             .setGoals( Collections.EMPTY_LIST )
             .setBaseDirectory( new File( "" ) )
             .setLocalRepository( repo );

Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java Wed Jul 22 22:43:05 2009
@@ -1677,7 +1677,8 @@
         localRepoUrl = "file://" + localRepoUrl;
         config.setLocalRepository( repositorySystem.createArtifactRepository( "local", localRepoUrl, new DefaultRepositoryLayout(), null, null ) );
         config.setActiveProfileIds( Arrays.asList( profileIds ) );
-        config.setExecutionProperties( executionProperties );
+        config.setSystemProperties( executionProperties );
+        config.setUserProperties( executionProperties );
         config.setValidationLevel( lenientValidation ? ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0
                         : ModelBuildingRequest.VALIDATION_LEVEL_STRICT );
 

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java Wed Jul 22 22:43:05 2009
@@ -221,9 +221,9 @@
             loggingLevel = MavenExecutionRequest.LOGGING_LEVEL_INFO;
         }
 
-        Properties executionProperties = new Properties();
+        Properties systemProperties = new Properties();
         Properties userProperties = new Properties();
-        populateProperties( commandLine, executionProperties, userProperties );
+        populateProperties( commandLine, systemProperties, userProperties );
 
         File userToolchainsFile;
         if ( commandLine.hasOption( CLIManager.ALTERNATE_USER_TOOLCHAINS ) )
@@ -238,7 +238,8 @@
         MavenExecutionRequest request = new DefaultMavenExecutionRequest()
             .setBaseDirectory( baseDirectory )
             .setGoals( goals )
-            .setProperties( executionProperties ) // optional
+            .setSystemProperties( systemProperties )
+            .setUserProperties( userProperties )
             .setReactorFailureBehavior( reactorFailureBehaviour ) // default: fail fast
             .setRecursive( recursive ) // default: true
             .setShowErrors( showErrors ) // default: false
@@ -297,7 +298,12 @@
             request.setMakeBehavior( MavenExecutionRequest.REACTOR_MAKE_BOTH );
         }
 
-        String localRepoProperty = request.getProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY );
+        String localRepoProperty = request.getUserProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY );
+
+        if ( localRepoProperty == null )
+        {
+            localRepoProperty = request.getSystemProperties().getProperty( MavenCli.LOCAL_REPO_PROPERTY );
+        }
 
         if ( localRepoProperty != null )
         {
@@ -311,7 +317,7 @@
     // System properties handling
     // ----------------------------------------------------------------------
 
-    static void populateProperties( CommandLine commandLine, Properties executionProperties, Properties userProperties )
+    static void populateProperties( CommandLine commandLine, Properties systemProperties, Properties userProperties )
     {
         // add the env vars to the property set, with the "env." prefix
         // XXX support for env vars should probably be removed from the ModelInterpolator
@@ -320,7 +326,7 @@
             Properties envVars = CommandLineUtils.getSystemEnvVars();
             for ( Entry<Object, Object> e : envVars.entrySet() )
             {
-                executionProperties.setProperty( "env." + e.getKey().toString(), e.getValue().toString() );
+                systemProperties.setProperty( "env." + e.getKey().toString(), e.getValue().toString() );
             }
         }
         catch ( IOException e )
@@ -345,14 +351,12 @@
                     setCliProperty( defStrs[i], userProperties );
                 }
             }
-
-            executionProperties.putAll( userProperties );
         }
 
-        executionProperties.putAll( System.getProperties() );
+        systemProperties.putAll( System.getProperties() );
     }
 
-    private static void setCliProperty( String property, Properties executionProperties )
+    private static void setCliProperty( String property, Properties properties )
     {
         String name;
 
@@ -373,7 +377,7 @@
             value = property.substring( i + 1 ).trim();
         }
 
-        executionProperties.setProperty( name, value );
+        properties.setProperty( name, value );
 
         // ----------------------------------------------------------------------
         // I'm leaving the setting of system properties here as not to break

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java Wed Jul 22 22:43:05 2009
@@ -253,7 +253,7 @@
             configuration.setMavenEmbedderLogger( new MavenEmbedderConsoleLogger() );
         }
 
-        String localRepoProperty = request.getProperties().getProperty( LOCAL_REPO_PROPERTY );
+        String localRepoProperty = request.getUserProperties().getProperty( LOCAL_REPO_PROPERTY );
 
         if ( localRepoProperty != null )
         {

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java Wed Jul 22 22:43:05 2009
@@ -55,9 +55,9 @@
 
         MavenExecutionRequest request = CLIRequestUtils.buildRequest( commandLine, false, false, false );
 
-        Properties execProperties = request.getProperties();
+        Properties userProperties = request.getUserProperties();
 
-        assertEquals( value, execProperties.getProperty( key ) );
+        assertEquals( value, userProperties.getProperty( key ) );
 
         List goals = request.getGoals();
         assertTrue( ( goals == null ) || goals.isEmpty() );
@@ -93,8 +93,5 @@
 
         assertEquals( "3.0", execProperties.getProperty( "test.property.3" ) );
         assertEquals( "3.0", userProperties.getProperty( "test.property.3" ) );
-
-        // sys props should override cmdline props
-        //assertEquals( "2.0", p.getProperty( "test.property.2" ) );
     }
 }

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractCoreMavenComponentTestCase.java Wed Jul 22 22:43:05 2009
@@ -98,7 +98,7 @@
             .setRemoteRepositories( getRemoteRepositories() )
             .setPluginArtifactRepositories( getPluginArtifactRepositories() )
             .setGoals( Arrays.asList( new String[] { "package" } ) )
-            .setProperties( new Properties() );
+            .setSystemProperties( new Properties() );
 
         return request;
     }
@@ -121,7 +121,7 @@
             .setLocalRepository( request.getLocalRepository() )
             .setRemoteRepositories( request.getRemoteRepositories() )
             .setPluginArtifactRepositories( request.getPluginArtifactRepositories() )
-            .setExecutionProperties( executionProperties );
+            .setSystemProperties( executionProperties );
 
         MavenProject project = null;
 

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java Wed Jul 22 22:43:05 2009
@@ -315,7 +315,8 @@
 
         context.setActiveProfileIds( request.getActiveProfileIds() );
         context.setInactiveProfileIds( request.getInactiveProfileIds() );
-        context.setExecutionProperties( request.getExecutionProperties() );
+        context.setSystemProperties( request.getSystemProperties() );
+        context.setUserProperties( request.getUserProperties() );
         context.setProjectDirectory( ( request.getPomFile() != null ) ? request.getPomFile().getParentFile() : null );
 
         return context;

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java Wed Jul 22 22:43:05 2009
@@ -51,7 +51,9 @@
 
     private List<String> inactiveProfileIds;
 
-    private Properties executionProperties;
+    private Properties systemProperties;
+
+    private Properties userProperties;
 
     private Date buildStartTime;
 
@@ -179,26 +181,51 @@
         return this;
     }
 
-    public Properties getExecutionProperties()
+    public Properties getSystemProperties()
+    {
+        if ( systemProperties == null )
+        {
+            systemProperties = new Properties();
+        }
+
+        return systemProperties;
+    }
+
+    public DefaultModelBuildingRequest setSystemProperties( Properties systemProperties )
+    {
+        if ( systemProperties != null )
+        {
+            this.systemProperties = new Properties();
+            this.systemProperties.putAll( systemProperties );
+        }
+        else
+        {
+            this.systemProperties = null;
+        }
+
+        return this;
+    }
+
+    public Properties getUserProperties()
     {
-        if ( executionProperties == null )
+        if ( userProperties == null )
         {
-            executionProperties = new Properties();
+            userProperties = new Properties();
         }
 
-        return executionProperties;
+        return userProperties;
     }
 
-    public DefaultModelBuildingRequest setExecutionProperties( Properties executionProperties )
+    public DefaultModelBuildingRequest setUserProperties( Properties userProperties )
     {
-        if ( executionProperties != null )
+        if ( userProperties != null )
         {
-            this.executionProperties = new Properties();
-            this.executionProperties.putAll( executionProperties );
+            this.userProperties = new Properties();
+            this.userProperties.putAll( userProperties );
         }
         else
         {
-            this.executionProperties = null;
+            this.userProperties = null;
         }
 
         return this;

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java Wed Jul 22 22:43:05 2009
@@ -180,19 +180,40 @@
     ModelBuildingRequest setInactiveProfileIds( List<String> inactiveProfileIds );
 
     /**
-     * Gets the execution properties.
+     * Gets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
      * 
-     * @return The execution properties, never {@code null}.
+     * @return The system properties, never {@code null}.
      */
-    Properties getExecutionProperties();
+    Properties getSystemProperties();
 
     /**
-     * Sets the execution properties.
+     * Sets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
      * 
-     * @param executionProperties The execution properties, may be {@code null}.
+     * @param systemProperties The system properties, may be {@code null}.
      * @return This request, never {@code null}.
      */
-    ModelBuildingRequest setExecutionProperties( Properties executionProperties );
+    ModelBuildingRequest setSystemProperties( Properties systemProperties );
+
+    /**
+     * Gets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @return The user properties, never {@code null}.
+     */
+    Properties getUserProperties();
+
+    /**
+     * Sets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @param userProperties The user properties, may be {@code null}.
+     * @return This request, never {@code null}.
+     */
+    ModelBuildingRequest setUserProperties( Properties userProperties );
 
     /**
      * Gets the start time of the build.

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java Wed Jul 22 22:43:05 2009
@@ -151,15 +151,17 @@
 
         valueSources.add( modelValueSource1 );
 
-        valueSources.add( new MapBasedValueSource( config.getExecutionProperties() ) );
+        valueSources.add( new MapBasedValueSource( config.getUserProperties() ) );
 
         valueSources.add( new MapBasedValueSource( modelProperties ) );
 
+        valueSources.add( new MapBasedValueSource( config.getSystemProperties() ) );
+
         valueSources.add( new AbstractValueSource( false )
         {
             public Object getValue( String expression )
             {
-                return config.getExecutionProperties().getProperty( "env." + expression );
+                return config.getSystemProperties().getProperty( "env." + expression );
             }
         } );
 

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java Wed Jul 22 22:43:05 2009
@@ -37,7 +37,9 @@
 
     private List<String> inactiveProfileIds;
 
-    private Properties executionProperties;
+    private Properties systemProperties;
+
+    private Properties userProperties;
 
     private File projectDirectory;
 
@@ -89,26 +91,51 @@
         return this;
     }
 
-    public Properties getExecutionProperties()
+    public Properties getSystemProperties()
+    {
+        if ( systemProperties == null )
+        {
+            systemProperties = new Properties();
+        }
+
+        return systemProperties;
+    }
+
+    public DefaultProfileActivationContext setSystemProperties( Properties systemProperties )
+    {
+        if ( systemProperties != null )
+        {
+            this.systemProperties = new Properties();
+            this.systemProperties.putAll( systemProperties );
+        }
+        else
+        {
+            this.systemProperties = null;
+        }
+
+        return this;
+    }
+
+    public Properties getUserProperties()
     {
-        if ( executionProperties == null )
+        if ( userProperties == null )
         {
-            executionProperties = new Properties();
+            userProperties = new Properties();
         }
 
-        return executionProperties;
+        return userProperties;
     }
 
-    public DefaultProfileActivationContext setExecutionProperties( Properties executionProperties )
+    public DefaultProfileActivationContext setUserProperties( Properties userProperties )
     {
-        if ( executionProperties != null )
+        if ( userProperties != null )
         {
-            this.executionProperties = new Properties();
-            this.executionProperties.putAll( executionProperties );
+            this.userProperties = new Properties();
+            this.userProperties.putAll( userProperties );
         }
         else
         {
-            this.executionProperties = null;
+            this.userProperties = null;
         }
 
         return this;

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java Wed Jul 22 22:43:05 2009
@@ -62,19 +62,40 @@
     ProfileActivationContext setInactiveProfileIds( List<String> inactiveProfileIds );
 
     /**
-     * Gets the execution properties.
+     * Gets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
      * 
      * @return The execution properties, never {@code null}.
      */
-    Properties getExecutionProperties();
+    Properties getSystemProperties();
 
     /**
-     * Sets the execution properties.
+     * Sets the system properties to use for interpolation and profile activation. The system properties are collected
+     * from the runtime environment like {@link System#getProperties()} and environment variables.
      * 
      * @param executionProperties The execution properties, may be {@code null}.
      * @return This context, never {@code null}.
      */
-    ProfileActivationContext setExecutionProperties( Properties executionProperties );
+    ProfileActivationContext setSystemProperties( Properties executionProperties );
+
+    /**
+     * Gets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @return The user properties, never {@code null}.
+     */
+    Properties getUserProperties();
+
+    /**
+     * Sets the user properties to use for interpolation and profile activation. The user properties have been
+     * configured directly by the user on his discretion, e.g. via the {@code -Dkey=value} parameter on the command
+     * line.
+     * 
+     * @param userProperties The user properties, may be {@code null}.
+     * @return This context, never {@code null}.
+     */
+    ProfileActivationContext setUserProperties( Properties userProperties );
 
     /**
      * Gets the base directory of the current project (if any).

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java Wed Jul 22 22:43:05 2009
@@ -109,7 +109,9 @@
             return false;
         }
 
-        interpolator.addValueSource( new MapBasedValueSource( context.getExecutionProperties() ) );
+        interpolator.addValueSource( new MapBasedValueSource( context.getUserProperties() ) );
+
+        interpolator.addValueSource( new MapBasedValueSource( context.getSystemProperties() ) );
 
         try
         {

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java Wed Jul 22 22:43:05 2009
@@ -52,7 +52,7 @@
 
             if ( jdk != null )
             {
-                String version = context.getExecutionProperties().getProperty( "java.version", "" );
+                String version = context.getSystemProperties().getProperty( "java.version", "" );
 
                 if ( version.length() <= 0 )
                 {

Modified: maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java (original)
+++ maven/components/trunk/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java Wed Jul 22 22:43:05 2009
@@ -65,7 +65,11 @@
                     name = name.substring( 1 );
                 }
 
-                String sysValue = context.getExecutionProperties().getProperty( name );
+                String sysValue = context.getUserProperties().getProperty( name );
+                if ( sysValue == null )
+                {
+                    sysValue = context.getSystemProperties().getProperty( name );
+                }
 
                 String propValue = property.getValue();
                 if ( StringUtils.isNotEmpty( propValue ) )

Modified: maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java (original)
+++ maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java Wed Jul 22 22:43:05 2009
@@ -71,9 +71,10 @@
         super.tearDown();
     }
 
-    protected ProfileActivationContext newContext( final Properties executionProperties )
+    protected ProfileActivationContext newContext( final Properties userProperties, final Properties systemProperties )
     {
-        return new DefaultProfileActivationContext().setExecutionProperties( executionProperties );
+        DefaultProfileActivationContext context = new DefaultProfileActivationContext();
+        return context.setUserProperties( userProperties ).setSystemProperties( systemProperties );
     }
 
 }

Modified: maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivatorTest.java?rev=796900&r1=796899&r2=796900&view=diff
==============================================================================
--- maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivatorTest.java (original)
+++ maven/components/trunk/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivatorTest.java Wed Jul 22 22:43:05 2009
@@ -61,11 +61,11 @@
     {
         Profile p = new Profile();
 
-        assertFalse( activator.isActive( p, newContext( new Properties() ) ) );
+        assertFalse( activator.isActive( p, newContext( null, null ) ) );
 
         p.setActivation( new Activation() );
 
-        assertFalse( activator.isActive( p, newContext( new Properties() ) ) );
+        assertFalse( activator.isActive( p, newContext( null, null ) ) );
     }
 
     public void testPrefix()
@@ -73,13 +73,13 @@
     {
         Profile profile = newProfile( "1.4" );
 
-        assertTrue( activator.isActive( profile, newContext( newProperties( "1.4" ) ) ) );
+        assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.4" ) ) ) );
 
-        assertTrue( activator.isActive( profile, newContext( newProperties( "1.4.2" ) ) ) );
+        assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.4.2" ) ) ) );
 
-        assertFalse( activator.isActive( profile, newContext( newProperties( "1.3" ) ) ) );
+        assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.3" ) ) ) );
 
-        assertFalse( activator.isActive( profile, newContext( newProperties( "1.5" ) ) ) );
+        assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.5" ) ) ) );
     }
 
     public void testPrefixNegated()
@@ -87,13 +87,13 @@
     {
         Profile profile = newProfile( "!1.4" );
 
-        assertFalse( activator.isActive( profile, newContext( newProperties( "1.4" ) ) ) );
+        assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.4" ) ) ) );
 
-        assertFalse( activator.isActive( profile, newContext( newProperties( "1.4.2" ) ) ) );
+        assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.4.2" ) ) ) );
 
-        assertTrue( activator.isActive( profile, newContext( newProperties( "1.3" ) ) ) );
+        assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.3" ) ) ) );
 
-        assertTrue( activator.isActive( profile, newContext( newProperties( "1.5" ) ) ) );
+        assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.5" ) ) ) );
     }
 
     public void testVersionRange()
@@ -101,13 +101,13 @@
     {
         Profile profile = newProfile( "(1.3,1.6)" );
 
-        assertTrue( activator.isActive( profile, newContext( newProperties( "1.5.0_16" ) ) ) );
+        assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.5.0_16" ) ) ) );
 
-        assertFalse( activator.isActive( profile, newContext( newProperties( "1.3" ) ) ) );
+        assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.3" ) ) ) );
 
-        assertTrue( activator.isActive( profile, newContext( newProperties( "1.3.1" ) ) ) );
+        assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.3.1" ) ) ) );
 
-        assertFalse( activator.isActive( profile, newContext( newProperties( "1.6" ) ) ) );
+        assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.6" ) ) ) );
     }
 
 }