[ 
https://issues.apache.org/jira/browse/SUREFIRE-1385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17869645#comment-17869645
 ] 

ASF GitHub Bot commented on SUREFIRE-1385:
------------------------------------------

kwin commented on code in PR #762:
URL: https://github.com/apache/maven-surefire/pull/762#discussion_r1696964338


##########
maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java:
##########
@@ -1184,6 +1208,39 @@ private SurefireProperties setupProperties() {
         return result;
     }
 
+    private SurefireProperties calculateEffectiveProperties(
+            Properties systemProperties,
+            Map<String, String> systemPropertyVariables,
+            Properties userProperties,
+            SurefireProperties sysPropsFromFile) {
+        SurefireProperties result = new SurefireProperties();
+        result.copyPropertiesFrom(systemProperties);
+
+        Collection<String> overwrittenProperties = 
result.copyPropertiesFrom(sysPropsFromFile);
+        if (!overwrittenProperties.isEmpty() && 
getConsoleLogger().isDebugEnabled()) {
+            
getConsoleLogger().debug(getOverwrittenPropertiesLogMessage(overwrittenProperties,
 "sysPropsFile"));
+        }
+        overwrittenProperties = 
result.copyPropertiesFrom(systemPropertyVariables);
+        if (!overwrittenProperties.isEmpty() && 
getConsoleLogger().isDebugEnabled()) {
+            getConsoleLogger()
+                    
.debug(getOverwrittenPropertiesLogMessage(overwrittenProperties, 
"systemPropertyVariables"));
+        }
+        // We used to take all of our system properties and dump them in with 
the
+        // user specified properties for SUREFIRE-121, causing SUREFIRE-491.
+        // Not gonna do THAT any more... instead, we only propagate those 
system properties
+        // that have been explicitly specified by the user via -Dkey=value on 
the CLI
+        // and only if useUserPropertiesAsSystemProperty is set to true

Review Comment:
   Removed that line in 
https://github.com/apache/maven-surefire/pull/762/commits/f21ac963663d27d8b316d789648cb6da44088e4d.



##########
maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java:
##########
@@ -1184,6 +1208,39 @@ private SurefireProperties setupProperties() {
         return result;
     }
 
+    private SurefireProperties calculateEffectiveProperties(
+            Properties systemProperties,
+            Map<String, String> systemPropertyVariables,
+            Properties userProperties,
+            SurefireProperties sysPropsFromFile) {
+        SurefireProperties result = new SurefireProperties();
+        result.copyPropertiesFrom(systemProperties);
+
+        Collection<String> overwrittenProperties = 
result.copyPropertiesFrom(sysPropsFromFile);
+        if (!overwrittenProperties.isEmpty() && 
getConsoleLogger().isDebugEnabled()) {
+            
getConsoleLogger().debug(getOverwrittenPropertiesLogMessage(overwrittenProperties,
 "sysPropsFile"));

Review Comment:
   Fixed in 
https://github.com/apache/maven-surefire/pull/762/commits/f21ac963663d27d8b316d789648cb6da44088e4d





> System properties defined in the Surefire and Failsafe plugin configuration 
> should override user properties
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-1385
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1385
>             Project: Maven Surefire
>          Issue Type: Improvement
>          Components: Maven Failsafe Plugin, Maven Surefire Plugin
>    Affects Versions: 2.20
>            Reporter: Guillaume Boué
>            Assignee: Konrad Windszus
>            Priority: Major
>
> Consider a build with the following POM configuration for the Maven Failsafe 
> Plugin:
> {code:xml}
> <configuration>
>   <systemPropertyVariables>
>     <prop>foo</prop>
>   </systemPropertyVariables>
> </configuration>
> {code}
> When running the build with the command line {{mvn -Dprop=bar ...}}, the 
> tests would be passed a system property with a value of {{bar}} instead of 
> {{foo}}.
> This is counter-intuitive since direct configuration of the plugin is 
> overriden by the more general properties passed on the command line. I would 
> have expected the closer definition in the POM to override the one passed 
> with the CLI. Furthermore, in the case of the above sample, it would not be 
> possible for the tests run by the Failsafe Plugin to have a system property 
> {{prop}} with a value of {{foo}} if the build happens to already define a 
> system property with the same name. While using a different name to avoid a 
> clash is possible, it still doesn't make the test self-contained and 
> consistent since anyone could run Maven with that other name and compromise 
> the test that really relies on the system property having a value of {{foo}}.
> The proposal is thus to make the {{systemPropertyVariables}} and 
> {{systemPropertiesFile}} configuration elements of the Surefire and Failsafe 
> Plugin take precedence over user properties passed on the command line.
> Proposed commit 
> [4de017b38b101b0b28f9fbed135eae3921b99d0d|http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/4de017b3]
>  on SUREFIRE-1385 branch.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to