You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2022/10/07 06:43:01 UTC
[maven] 01/02: [MNG-7556] Clean up notion between user properties and system properties
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch MNG-7556
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 158fc58bec4b46a75fad04dead5373fb324a2ba9
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Mon Oct 3 21:00:50 2022 +0200
[MNG-7556] Clean up notion between user properties and system properties
---
apache-maven/src/assembly/maven/conf/settings.xml | 9 +++---
api/maven-api-model/src/main/mdo/maven.mdo | 4 +--
api/maven-api-settings/src/main/mdo/settings.mdo | 2 +-
maven-compat/src/main/mdo/profiles.mdo | 2 +-
.../java/org/apache/maven/eventspy/EventSpy.java | 2 +-
.../DefaultRepositorySystemSessionFactory.java | 10 +++---
.../plugin/PluginParameterExpressionEvaluator.java | 13 ++++----
.../PluginParameterExpressionEvaluatorV4.java | 11 ++++---
.../project/artifact/MavenMetadataSource.java | 1 +
.../apt/getting-to-container-configured-mojos.apt | 2 +-
.../main/java/org/apache/maven/cli/CLIManager.java | 10 ++++--
.../main/java/org/apache/maven/cli/MavenCli.java | 8 ++---
.../java/org/apache/maven/cli/MavenCliTest.java | 6 ++--
.../maven/model/building/DefaultModelBuilder.java | 36 +++++++++++-----------
.../DefaultModelVersionProcessor.java | 1 +
.../profile/activation/FileProfileActivator.java | 2 +-
maven-model-builder/src/site/apt/index.apt | 8 +++--
maven-plugin-api/src/main/mdo/plugin.mdo | 2 +-
.../internal/MavenRepositorySystemUtils.java | 1 +
19 files changed, 73 insertions(+), 57 deletions(-)
diff --git a/apache-maven/src/assembly/maven/conf/settings.xml b/apache-maven/src/assembly/maven/conf/settings.xml
index 2f18af34c..770656bb6 100644
--- a/apache-maven/src/assembly/maven/conf/settings.xml
+++ b/apache-maven/src/assembly/maven/conf/settings.xml
@@ -82,6 +82,7 @@ under the License.
-->
</pluginGroups>
+ <!-- TODO Since when can proxies be selected as depicted? -->
<!-- proxies
| This is a list of proxies which can be used on this machine to connect to the network.
| Unless otherwise specified (by system property or command-line switch), the first proxy
@@ -176,7 +177,7 @@ under the License.
|
| As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
| section of this document (settings.xml) - will be discussed later. Another way essentially
- | relies on the detection of a system property, either matching a particular value for the property,
+ | relies on the detection of a property, either matching a particular value for the property,
| or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
| value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
| Finally, the list of active profiles can be specified directly from the command line.
@@ -218,9 +219,9 @@ under the License.
-->
<!--
- | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
- | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
- | might hypothetically look like:
+ | Here is another profile, activated by the property 'target-env' with a value of 'dev', which
+ | provides a specific path to the Tomcat instance. To use this, your plugin configuration might
+ | hypothetically look like:
|
| ...
| <plugin>
diff --git a/api/maven-api-model/src/main/mdo/maven.mdo b/api/maven-api-model/src/main/mdo/maven.mdo
index 7bd835d09..993781548 100644
--- a/api/maven-api-model/src/main/mdo/maven.mdo
+++ b/api/maven-api-model/src/main/mdo/maven.mdo
@@ -2672,7 +2672,7 @@
<field>
<name>property</name>
<version>4.0.0+</version>
- <description>Specifies that this profile will be activated when this system property is
+ <description>Specifies that this profile will be activated when this property is
specified.</description>
<association>
<type>ActivationProperty</type>
@@ -2774,7 +2774,7 @@
activated. On the other hand, {@code exists} will test for the existence of the file and if it is
there, the profile will be activated.<br>
Variable interpolation for these file specifications is limited to {@code ${basedir}},
- System properties and request properties.]]></description>
+ system properties and user properties.]]></description>
<fields>
<field>
<name>missing</name>
diff --git a/api/maven-api-settings/src/main/mdo/settings.mdo b/api/maven-api-settings/src/main/mdo/settings.mdo
index 6a5757bb8..c828091d4 100644
--- a/api/maven-api-settings/src/main/mdo/settings.mdo
+++ b/api/maven-api-settings/src/main/mdo/settings.mdo
@@ -789,7 +789,7 @@
<version>1.0.0+</version>
<description>
<![CDATA[
- Specifies that this profile will be activated when this System property is specified.
+ Specifies that this profile will be activated when this property is specified.
]]>
</description>
<association>
diff --git a/maven-compat/src/main/mdo/profiles.mdo b/maven-compat/src/main/mdo/profiles.mdo
index 5132490d9..e3e102991 100644
--- a/maven-compat/src/main/mdo/profiles.mdo
+++ b/maven-compat/src/main/mdo/profiles.mdo
@@ -162,7 +162,7 @@ under the License.
<name>property</name>
<version>1.0.0</version>
<description><![CDATA[
- Specifies that this profile will be activated when this System property is specified.
+ Specifies that this profile will be activated when this property is specified.
]]></description>
<association>
<type>ActivationProperty</type>
diff --git a/maven-core/src/main/java/org/apache/maven/eventspy/EventSpy.java b/maven-core/src/main/java/org/apache/maven/eventspy/EventSpy.java
index cd7e1cc8b..bdc2dac21 100644
--- a/maven-core/src/main/java/org/apache/maven/eventspy/EventSpy.java
+++ b/maven-core/src/main/java/org/apache/maven/eventspy/EventSpy.java
@@ -23,7 +23,7 @@ import java.util.Map;
/**
* A core extension to monitor Maven's execution. Typically, such an extension gets loaded into Maven by specifying the
- * system property {@code maven.ext.class.path} on the command line. As soon as dependency injection is set up, Maven
+ * property {@code maven.ext.class.path} on the command line. As soon as dependency injection is set up, Maven
* looks up all implementers of this interface and calls their {@link #init(Context)} method. <em>Note:</em>
* Implementors are strongly advised to inherit from {@link AbstractEventSpy} instead of directly implementing this
* interface.
diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index d8e187646..c3dbd9b63 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -150,6 +150,7 @@ public class DefaultRepositorySystemSessionFactory
configProps.put( ConfigurationProperties.USER_AGENT, getUserAgent() );
configProps.put( ConfigurationProperties.INTERACTIVE, request.isInteractiveMode() );
configProps.put( "maven.startTime", request.getStartTime() );
+ // TODO Why is this duplication necessary?
configProps.putAll( request.getSystemProperties() );
configProps.putAll( request.getUserProperties() );
@@ -288,14 +289,15 @@ public class DefaultRepositorySystemSessionFactory
+ MAVEN_RESOLVER_TRANSPORT_NATIVE + ", " + MAVEN_RESOLVER_TRANSPORT_AUTO );
}
- session.setTransferListener( request.getTransferListener() );
-
- session.setRepositoryListener( eventSpyDispatcher.chainListener( new LoggingRepositoryListener( logger ) ) );
-
+ // TODO This duplicates org.apache.maven.repository.internal.MavenRepositorySystemUtils.newSession()
session.setUserProperties( request.getUserProperties() );
session.setSystemProperties( request.getSystemProperties() );
session.setConfigProperties( configProps );
+ session.setTransferListener( request.getTransferListener() );
+
+ session.setRepositoryListener( eventSpyDispatcher.chainListener( new LoggingRepositoryListener( logger ) ) );
+
mavenRepositorySystem.injectMirror( request.getRemoteRepositories(), request.getMirrors() );
mavenRepositorySystem.injectProxy( session, request.getRemoteRepositories() );
mavenRepositorySystem.injectAuthentication( session, request.getRemoteRepositories() );
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
index acd2ceeb7..3adcf4f0a 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
@@ -61,8 +61,9 @@ import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
* <td>{@link MojoExecution#getMojoDescriptor()}.{@link MojoDescriptor#getPluginDescriptor()
* getPluginDescriptor()}</td></tr>
* <tr><td><code>plugin.*</code></td> <td></td> <td></td></tr>
- * <tr><td><code>*</code></td> <td></td> <td>system properties</td></tr>
+ * <tr><td><code>*</code></td> <td></td> <td>user properties</td></tr>
* <tr><td><code>*</code></td> <td></td> <td>project properties</td></tr>
+ * <tr><td><code>*</code></td> <td></td> <td>system properties</td></tr>
* </table>
* <i>Notice:</i> <code>reports</code> was supported in Maven 2.x but was removed in Maven 3
*
@@ -368,7 +369,7 @@ public class PluginParameterExpressionEvaluator
/*
* MNG-4312: We neither have reserved all of the above magic expressions nor is their set fixed/well-known (it
* gets occasionally extended by newer Maven versions). This imposes the risk for existing plugins to
- * unintentionally use such a magic expression for an ordinary system property. So here we check whether we
+ * unintentionally use such a magic expression for an ordinary property. So here we check whether we
* ended up with a magic value that is not compatible with the type of the configured mojo parameter (a string
* could still be converted by the configurator so we leave those alone). If so, back off to evaluating the
* expression from properties only.
@@ -384,10 +385,10 @@ public class PluginParameterExpressionEvaluator
if ( properties != null )
{
- // We will attempt to get nab a system property as a way to specify a
- // parameter to a plugins. My particular case here is allowing the surefire
- // plugin to run a single test so I want to specify that class on the cli
- // as a parameter.
+ // We will attempt to get nab a property as a way to specify a parameter
+ // to a plugins. My particular case here is allowing the surefire plugin
+ // to run a single test so I want to specify that class on the cli as
+ // a parameter.
value = properties.getProperty( expression );
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4.java
index b0d1a865d..42d9f4732 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4.java
@@ -64,6 +64,7 @@ import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
* <td>{@link MojoExecution#getMojoDescriptor()}.{@link MojoDescriptor#getPluginDescriptor()
* getPluginDescriptor()}</td></tr>
* <tr><td><code>plugin.*</code></td> <td></td> <td></td></tr>
+ * <tr><td><code>*</code></td> <td></td> <td>user properties</td></tr>
* <tr><td><code>*</code></td> <td></td> <td>system properties</td></tr>
* <tr><td><code>*</code></td> <td></td> <td>project properties</td></tr>
* </table>
@@ -376,7 +377,7 @@ public class PluginParameterExpressionEvaluatorV4
/*
* MNG-4312: We neither have reserved all of the above magic expressions nor is their set fixed/well-known (it
* gets occasionally extended by newer Maven versions). This imposes the risk for existing plugins to
- * unintentionally use such a magic expression for an ordinary system property. So here we check whether we
+ * unintentionally use such a magic expression for an ordinary property. So here we check whether we
* ended up with a magic value that is not compatible with the type of the configured mojo parameter (a string
* could still be converted by the configurator so we leave those alone). If so, back off to evaluating the
* expression from properties only.
@@ -392,10 +393,10 @@ public class PluginParameterExpressionEvaluatorV4
if ( properties != null )
{
- // We will attempt to get nab a system property as a way to specify a
- // parameter to a plugins. My particular case here is allowing the surefire
- // plugin to run a single test so I want to specify that class on the cli
- // as a parameter.
+ // We will attempt to get nab a property as a way to specify a parameter
+ // to a plugins. My particular case here is allowing the surefire plugin
+ // to run a single test so I want to specify that class on the cli as
+ // a parameter.
value = properties.getProperty( expression );
}
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java b/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
index 7f7b658c2..9aabd816a 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
+++ b/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
@@ -569,6 +569,7 @@ public class MavenMetadataSource
configuration.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL );
configuration.setProcessPlugins( false );
configuration.setRepositoryMerging( ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT );
+ // TODO How to access here Maven's copy of system properties and user properties?
configuration.setSystemProperties( getSystemProperties() );
configuration.setUserProperties( new Properties() );
configuration.setRepositorySession( legacySupport.getRepositorySession() );
diff --git a/maven-core/src/site/apt/getting-to-container-configured-mojos.apt b/maven-core/src/site/apt/getting-to-container-configured-mojos.apt
index 1c4a487d7..167a56909 100644
--- a/maven-core/src/site/apt/getting-to-container-configured-mojos.apt
+++ b/maven-core/src/site/apt/getting-to-container-configured-mojos.apt
@@ -30,7 +30,7 @@ Abstract
In order to really achieve this, we need mojo configurations (which are
provided both in terms of static expressions that are just looked up, and
- in terms of user-provided configuration from system properties or the POM).
+ in terms of user-provided configuration from properties or the POM).
If these mojos are to be first-class components, the configuration from these
various sources must be consolidated and injected using the container.
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
index 51824ce45..b6005fddf 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
@@ -40,7 +40,13 @@ public class CLIManager
public static final char BATCH_MODE = 'B';
- public static final char SET_SYSTEM_PROPERTY = 'D';
+ public static final char SET_USER_PROPERTY = 'D';
+
+ /**
+ * @deprecated Use {@link #SET_USER_PROPERTY}
+ */
+ @Deprecated
+ public static final char SET_SYSTEM_PROPERTY = SET_USER_PROPERTY;
public static final char OFFLINE = 'o';
@@ -123,7 +129,7 @@ public class CLIManager
options = new Options();
options.addOption( Option.builder( Character.toString( HELP ) ).longOpt( "help" ).desc( "Display help information" ).build() );
options.addOption( Option.builder( Character.toString( ALTERNATE_POM_FILE ) ).longOpt( "file" ).hasArg().desc( "Force the use of an alternate POM file (or directory with pom.xml)" ).build() );
- options.addOption( Option.builder( Character.toString( SET_SYSTEM_PROPERTY ) ).numberOfArgs( 2 ).valueSeparator( '=' ).desc( "Define a system property" ).build() );
+ options.addOption( Option.builder( Character.toString( SET_USER_PROPERTY ) ).numberOfArgs( 2 ).valueSeparator( '=' ).desc( "Define a user property" ).build() );
options.addOption( Option.builder( Character.toString( OFFLINE ) ).longOpt( "offline" ).desc( "Work offline" ).build() );
options.addOption( Option.builder( Character.toString( VERSION ) ).longOpt( "version" ).desc( "Display version information" ).build() );
options.addOption( Option.builder( Character.toString( QUIET ) ).longOpt( "quiet" ).desc( "Quiet output - only show errors" ).build() );
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 10cca57da..5809a99a3 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -478,7 +478,7 @@ public class MavenCli
List<Option> setPropertyOptions = new ArrayList<>();
for ( Option opt : mavenArgs.getOptions() )
{
- if ( String.valueOf( CLIManager.SET_SYSTEM_PROPERTY ).equals( opt.getOpt() ) )
+ if ( String.valueOf( CLIManager.SET_USER_PROPERTY ).equals( opt.getOpt() ) )
{
setPropertyOptions.add( opt );
}
@@ -491,7 +491,7 @@ public class MavenCli
{
commandLineBuilder.addOption( opt );
}
- // finally add the CLI system properties
+ // finally add the CLI user properties
for ( Option opt : setPropertyOptions )
{
commandLineBuilder.addOption( opt );
@@ -1746,7 +1746,7 @@ public class MavenCli
}
// ----------------------------------------------------------------------
- // System properties handling
+ // Properties handling
// ----------------------------------------------------------------------
static void populateProperties( CommandLine commandLine, Properties systemProperties, Properties userProperties )
@@ -1760,7 +1760,7 @@ public class MavenCli
// ----------------------------------------------------------------------
final Properties userSpecifiedProperties = commandLine.getOptionProperties(
- String.valueOf( CLIManager.SET_SYSTEM_PROPERTY ) );
+ String.valueOf( CLIManager.SET_USER_PROPERTY ) );
userSpecifiedProperties.forEach(
( prop, value ) -> setCliProperty( (String) prop, (String) value, userProperties )
);
diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
index c4ddcb830..c4fb01a91 100644
--- a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
+++ b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
@@ -338,9 +338,9 @@ public class MavenCliTest
String revision = System.getProperty( "revision" );
assertEquals( "8.2.0", revision );
- assertEquals( "bar ", request.getSystemProperties().getProperty( "foo" ) );
- assertEquals( "bar two", request.getSystemProperties().getProperty( "foo2" ) );
- assertEquals( "Apache Maven", request.getSystemProperties().getProperty( "label" ) );
+ assertEquals( "bar ", request.getUserProperties().getProperty( "foo" ) );
+ assertEquals( "bar two", request.getUserProperties().getProperty( "foo2" ) );
+ assertEquals( "Apache Maven", request.getUserProperties().getProperty( "label" ) );
assertEquals( "-Dpom.xml", request.getCommandLine().getOptionValue( CLIManager.ALTERNATE_POM_FILE ) );
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index 3e21fc72e..0c2e01872 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -173,7 +173,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setModelProcessor(ModelProcessor)
+ * @see DefaultModelBuilderFactory#setModelProcessor(ModelProcessor)
*/
@Deprecated
public DefaultModelBuilder setModelProcessor( ModelProcessor modelProcessor )
@@ -187,7 +187,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setModelProcessor(ModelProcessor)
+ * @see DefaultModelBuilderFactory#setModelProcessor(ModelProcessor)
*/
@Deprecated
public DefaultModelBuilder setModelValidator( ModelValidator modelValidator )
@@ -201,7 +201,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setModelNormalizer(ModelNormalizer)
+ * @see DefaultModelBuilderFactory#setModelNormalizer(ModelNormalizer)
*/
@Deprecated
public DefaultModelBuilder setModelNormalizer( ModelNormalizer modelNormalizer )
@@ -215,7 +215,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setModelInterpolator(ModelInterpolator)
+ * @see DefaultModelBuilderFactory#setModelInterpolator(ModelInterpolator)
*/
@Deprecated
public DefaultModelBuilder setModelInterpolator( ModelInterpolator modelInterpolator )
@@ -243,7 +243,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setModelUrlNormalizer(ModelUrlNormalizer)
+ * @see DefaultModelBuilderFactory#setModelUrlNormalizer(ModelUrlNormalizer)
*/
@Deprecated
public DefaultModelBuilder setModelUrlNormalizer( ModelUrlNormalizer modelUrlNormalizer )
@@ -257,7 +257,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setSuperPomProvider(SuperPomProvider)
+ * @see DefaultModelBuilderFactory#setSuperPomProvider(SuperPomProvider)
*/
@Deprecated
public DefaultModelBuilder setSuperPomProvider( SuperPomProvider superPomProvider )
@@ -271,7 +271,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setInheritanceAssembler(InheritanceAssembler)
+ * @see DefaultModelBuilderFactory#setInheritanceAssembler(InheritanceAssembler)
*/
@Deprecated
public DefaultModelBuilder setInheritanceAssembler( InheritanceAssembler inheritanceAssembler )
@@ -299,7 +299,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setProfileInjector(ProfileInjector)
+ * @see DefaultModelBuilderFactory#setProfileInjector(ProfileInjector)
*/
@Deprecated
public DefaultModelBuilder setProfileInjector( ProfileInjector profileInjector )
@@ -313,7 +313,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setPluginManagementInjector(PluginManagementInjector)
+ * @see DefaultModelBuilderFactory#setPluginManagementInjector(PluginManagementInjector)
*/
@Deprecated
public DefaultModelBuilder setPluginManagementInjector( PluginManagementInjector pluginManagementInjector )
@@ -327,7 +327,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setDependencyManagementInjector(DependencyManagementInjector)
+ * @see DefaultModelBuilderFactory#setDependencyManagementInjector(DependencyManagementInjector)
*/
@Deprecated
public DefaultModelBuilder setDependencyManagementInjector(
@@ -342,7 +342,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setDependencyManagementImporter(DependencyManagementImporter)
+ * @see DefaultModelBuilderFactory#setDependencyManagementImporter(DependencyManagementImporter)
*/
@Deprecated
public DefaultModelBuilder setDependencyManagementImporter(
@@ -357,7 +357,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setLifecycleBindingsInjector(LifecycleBindingsInjector)
+ * @see DefaultModelBuilderFactory#setLifecycleBindingsInjector(LifecycleBindingsInjector)
*/
@Deprecated
public DefaultModelBuilder setLifecycleBindingsInjector( LifecycleBindingsInjector lifecycleBindingsInjector )
@@ -371,7 +371,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setPluginConfigurationExpander(PluginConfigurationExpander)
+ * @see DefaultModelBuilderFactory#setPluginConfigurationExpander(PluginConfigurationExpander)
*/
@Deprecated
public DefaultModelBuilder setPluginConfigurationExpander( PluginConfigurationExpander pluginConfigurationExpander )
@@ -385,7 +385,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setReportConfigurationExpander(ReportConfigurationExpander)
+ * @see DefaultModelBuilderFactory#setReportConfigurationExpander(ReportConfigurationExpander)
*/
@Deprecated
public DefaultModelBuilder setReportConfigurationExpander( ReportConfigurationExpander reportConfigurationExpander )
@@ -399,7 +399,7 @@ public class DefaultModelBuilder
/**
* @deprecated since Maven 4
- * @see DefaultModelBuilderFactory#setReportingConverter(ReportingConverter)
+ * @see DefaultModelBuilderFactory#setReportingConverter(ReportingConverter)
*/
@Deprecated
public DefaultModelBuilder setReportingConverter( ReportingConverter reportingConverter )
@@ -973,7 +973,7 @@ public class DefaultModelBuilder
try
{
- // must implement TransformContext, but should use request to access system properties/modelcache
+ // must implement TransformContext, but should use request to access properties/model cache
org.apache.maven.api.model.Model transformedFileModel = modelProcessor.read( pomFile,
Collections.singletonMap( ModelReader.TRANSFORMER_CONTEXT, context ) );
@@ -1345,7 +1345,7 @@ public class DefaultModelBuilder
// Validate versions aren't inherited when using parent ranges the same way as when read externally.
String rawChildModelVersion = childModel.getVersion();
-
+
if ( rawChildModelVersion == null )
{
// Message below is checked for in the MNG-2199 core IT.
@@ -1476,7 +1476,7 @@ public class DefaultModelBuilder
if ( !parent.getVersion().equals( version ) )
{
String rawChildModelVersion = childModel.getVersion();
-
+
if ( rawChildModelVersion == null )
{
// Message below is checked for in the MNG-2199 core IT.
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java
index 27e3469a3..45b2c6c76 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java
@@ -49,6 +49,7 @@ public class DefaultModelVersionProcessor
|| SHA1_PROPERTY.equals( property );
}
+ // TODO This class MUST test for user properties and THEN for system properties
@Override
public void overwriteModelProperties( Properties modelProperties, ModelBuildingRequest request )
{
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
index e45b8839a..0b4992923 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
@@ -41,7 +41,7 @@ import org.codehaus.plexus.util.StringUtils;
* Determines profile activation based on the existence/absence of some file.
* File name interpolation support is limited to <code>${basedir}</code> (since Maven 3,
* see <a href="https://issues.apache.org/jira/browse/MNG-2363">MNG-2363</a>),
- * System properties and request properties.
+ * system properties and user properties.
* <code>${project.basedir}</code> is intentionally not supported as this form would suggest that other
* <code>${project.*}</code> expressions can be used, which is however beyond the design.
*
diff --git a/maven-model-builder/src/site/apt/index.apt b/maven-model-builder/src/site/apt/index.apt
index 5eb2374fa..b18f0febd 100644
--- a/maven-model-builder/src/site/apt/index.apt
+++ b/maven-model-builder/src/site/apt/index.apt
@@ -41,7 +41,7 @@ Maven Model Builder
** profile activation: see {{{./apidocs/org/apache/maven/model/profile/activation/package-summary.html}available activators}}.
Notice that model interpolation hasn't happened yet, then interpolation for file-based activation is limited to
- <<<$\{basedir}>>> (since Maven 3), System properties and request properties
+ <<<$\{basedir}>>> (since Maven 3), system properties and user properties
** file model validation: <<<ModelValidator>>> ({{{./apidocs/org/apache/maven/model/validation/ModelValidator.html}javadoc}}),
with its <<<DefaultModelValidator>>> implementation
@@ -162,7 +162,7 @@ Maven Model Builder
Notice that model interpolation happens <after> profile activation, then profile activation doesn't benefit from every values:
interpolation for file-based activation is limited to <<<$\{basedir}>>> (which was introduced in Maven 3 and is not deprecated
- in this context), System properties and request properties.
+ in this context), system properties and user properties.
Values are evaluated in sequence from different syntaxes:
@@ -198,9 +198,11 @@ Maven Model Builder
*----+------+------+
| <<<maven.repo.local>>> | The repository on the local machine Maven shall use to store installed and downloaded artifacts (POMs, JARs, etc). | <<<$\{user.home\}/.m2/repository>>> |
*----+------+------+
-| <<<*>>> | Java system properties (see {{{http://download.oracle.com/javase/6/docs/api/java/lang/System.html#getProperties()}JDK reference}}) | <<<$\{user.home\}>>>\
+| <<<*>>> | Java system properties (see {{{https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#getProperties()}JDK reference}}) | <<<$\{user.home\}>>>\
| | <<<$\{java.home\}>>> |
*----+------+------+
+| <<<*>>> | User properties | <<<$\{foo\}>>> |
+*----+------+------+
| <<<env.*>>>\
<<<*>>> | environment variables | <<<$\{env.PATH\}>>> |
*----+------+------+
diff --git a/maven-plugin-api/src/main/mdo/plugin.mdo b/maven-plugin-api/src/main/mdo/plugin.mdo
index 5156b0f7e..8bff809bc 100644
--- a/maven-plugin-api/src/main/mdo/plugin.mdo
+++ b/maven-plugin-api/src/main/mdo/plugin.mdo
@@ -441,7 +441,7 @@ under the License.
<required>true</required>
<version>1.0.0</version>
<type>String</type>
- <description>Parameter expression, to let user override default value with a system property, pom property or settings property.</description>
+ <description>Parameter expression, to let user override default value with a user property, system property or project property.</description>
</field>
<field xml.attribute="true" xml.tagName="implementation">
<name>implementation</name>
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java
index fd420deda..c80167a81 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java
@@ -114,6 +114,7 @@ public final class MavenRepositorySystemUtils
systemProperties.putAll( sysProp );
}
+ // TODO This duplicates org.apache.maven.internal.aether.DefaultRepositorySystemSessionFactory.newRepositorySession(MavenExecutionRequest)
session.setSystemProperties( systemProperties );
session.setConfigProperties( systemProperties );