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 0a8d246046bc1e01e65bebd0dda9f1749a3900d2 Author: Michael Osipov <[email protected]> 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 | 9 +++--- .../plugin/PluginParameterExpressionEvaluator.java | 13 ++++---- .../PluginParameterExpressionEvaluatorV4.java | 11 ++++--- .../project/artifact/MavenMetadataSource.java | 13 ++++++-- .../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 | 15 --------- 19 files changed, 81 insertions(+), 74 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 933c89f22..c461b2ae9 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 a70d8886d..93fa6034a 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 38ba573aa..e238e3bf6 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() ); + // Resolver's ConfigUtils solely rely on config properties, that is why we need to add both here as well. configProps.putAll( request.getSystemProperties() ); configProps.putAll( request.getUserProperties() ); @@ -288,14 +289,14 @@ public class DefaultRepositorySystemSessionFactory + MAVEN_RESOLVER_TRANSPORT_NATIVE + ", " + MAVEN_RESOLVER_TRANSPORT_AUTO ); } - session.setTransferListener( request.getTransferListener() ); - - session.setRepositoryListener( eventSpyDispatcher.chainListener( new LoggingRepositoryListener( logger ) ) ); - 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..160e2dcae 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 plugin. 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 bd54fa086..bab7cd4ae 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 plugin. 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 54157f9f0..c3cec7348 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 @@ -576,8 +576,17 @@ public class MavenMetadataSource configuration.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL ); configuration.setProcessPlugins( false ); configuration.setRepositoryMerging( ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT ); - configuration.setSystemProperties( getSystemProperties() ); - configuration.setUserProperties( new Properties() ); + MavenSession session = legacySupport.getSession(); + if ( session != null ) + { + configuration.setSystemProperties( session.getSystemProperties() ); + configuration.setUserProperties( session.getUserProperties() ); + } + else + { + configuration.setSystemProperties( getSystemProperties() ); + configuration.setUserProperties( new Properties() ); + } configuration.setRepositorySession( legacySupport.getRepositorySession() ); project = projectBuilder.build( pomArtifact, configuration ).getProject(); 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 6c17028be..ebfb0830b 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 @@ -477,7 +477,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 ); } @@ -490,7 +490,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 ); @@ -1745,7 +1745,7 @@ public class MavenCli } // ---------------------------------------------------------------------- - // System properties handling + // Properties handling // ---------------------------------------------------------------------- static void populateProperties( CommandLine commandLine, Properties systemProperties, Properties userProperties ) @@ -1759,7 +1759,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 0b7fccc4b..6899f0304 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 ) ); @@ -1352,7 +1352,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. @@ -1483,7 +1483,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 7b4109b82..1c70f5c71 100644 --- a/maven-plugin-api/src/main/mdo/plugin.mdo +++ b/maven-plugin-api/src/main/mdo/plugin.mdo @@ -455,7 +455,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..6f1496513 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 @@ -19,8 +19,6 @@ package org.apache.maven.repository.internal; * under the License. */ -import java.util.Properties; - import org.eclipse.aether.DefaultRepositorySystemSession; import org.eclipse.aether.artifact.DefaultArtifactType; import org.eclipse.aether.collection.DependencyGraphTransformer; @@ -104,19 +102,6 @@ public final class MavenRepositorySystemUtils session.setArtifactDescriptorPolicy( new SimpleArtifactDescriptorPolicy( true, true ) ); - final Properties systemProperties = new Properties(); - - // MNG-5670 guard against ConcurrentModificationException - // MNG-6053 guard against key without value - Properties sysProp = System.getProperties(); - synchronized ( sysProp ) - { - systemProperties.putAll( sysProp ); - } - - session.setSystemProperties( systemProperties ); - session.setConfigProperties( systemProperties ); - return session; }
