You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2024/07/15 13:03:27 UTC
(maven-surefire) 01/01: [SUREFIRE-1385] Add new parameter "userPropertyVariables" to overwrite user properties
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch feature/override-user-properties
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit 865e46d567c184c49652e1a63b2d44edfb24a7b5
Author: Konrad Windszus <ko...@netcentric.biz>
AuthorDate: Mon Jul 15 15:03:20 2024 +0200
[SUREFIRE-1385] Add new parameter "userPropertyVariables" to overwrite
user properties
Log overwritten properties
Clarify effective properties merging order
---
maven-failsafe-plugin/pom.xml | 2 +-
maven-surefire-common/pom.xml | 2 +-
.../plugin/surefire/AbstractSurefireMojo.java | 95 ++++++++++++++++++++--
.../maven/plugin/surefire/SurefireProperties.java | 57 +++++++------
maven-surefire-plugin/pom.xml | 2 +-
maven-surefire-report-plugin/pom.xml | 2 +-
pom.xml | 4 +-
surefire-api/pom.xml | 2 +-
surefire-booter/pom.xml | 2 +-
surefire-extensions-api/pom.xml | 2 +-
surefire-extensions-spi/pom.xml | 2 +-
surefire-grouper/pom.xml | 2 +-
surefire-its/pom.xml | 2 +-
surefire-logger-api/pom.xml | 2 +-
surefire-providers/common-java5/pom.xml | 2 +-
surefire-providers/common-junit3/pom.xml | 2 +-
surefire-providers/common-junit4/pom.xml | 2 +-
surefire-providers/common-junit48/pom.xml | 2 +-
surefire-providers/pom.xml | 2 +-
surefire-providers/surefire-junit-platform/pom.xml | 2 +-
surefire-providers/surefire-junit3/pom.xml | 2 +-
surefire-providers/surefire-junit4/pom.xml | 2 +-
surefire-providers/surefire-junit47/pom.xml | 2 +-
surefire-providers/surefire-testng-utils/pom.xml | 2 +-
surefire-providers/surefire-testng/pom.xml | 2 +-
surefire-report-parser/pom.xml | 2 +-
surefire-shadefire/pom.xml | 2 +-
surefire-shared-utils/pom.xml | 2 +-
28 files changed, 145 insertions(+), 61 deletions(-)
diff --git a/maven-failsafe-plugin/pom.xml b/maven-failsafe-plugin/pom.xml
index 3a464997d..e83d8d9cf 100644
--- a/maven-failsafe-plugin/pom.xml
+++ b/maven-failsafe-plugin/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/maven-surefire-common/pom.xml b/maven-surefire-common/pom.xml
index de13d9831..bba8dfddc 100644
--- a/maven-surefire-common/pom.xml
+++ b/maven-surefire-common/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>maven-surefire-common</artifactId>
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
index 47d691a13..9150e535c 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
@@ -24,6 +24,7 @@ import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.nio.file.Files;
+import java.text.ChoiceFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -325,13 +326,25 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
* List of System properties to pass to a provider.
* The effective system properties given to a provider are contributed from several sources:
* <ol>
+ * <li>properties set via {@link #argLine} with {@code -D} (only for forked executions)</li>
* <li>{@link #systemProperties}</li>
* <li>{@link AbstractSurefireMojo#getSystemPropertiesFile()} (set via parameter {@code systemPropertiesFile} on some goals)</li>
* <li>{@link #systemPropertyVariables}</li>
- * <li>User properties from {@link MavenSession#getUserProperties()}, usually set via CLI options given with {@code -D}</li>
+ * <li>User properties from {@link MavenSession#getUserProperties()}, usually set via CLI options given with {@code -D} on the current Maven process</li>
+ * <li>{@link #userPropertyVariables}</li>
* </ol>
* Later sources may overwrite same named properties from earlier sources, that means for example that one cannot overwrite user properties with either
- * {@link #systemProperties}, {@link AbstractSurefireMojo#getSystemPropertiesFile()} or {@link #systemPropertyVariables}.
+ * {@link #systemProperties}, {@link #getSystemPropertiesFile()} or {@link #systemPropertyVariables} but only with
+ * {@link #userPropertyVariables}.
+ * <p>
+ * Certain properties may only be overwritten via {@link #argLine} (applicable only for forked executions) because their values are cached and only evaluated at the start of the JRE.
+ * Those include:
+ * <ul>
+ * <li>{@code java.library.path}</li>
+ * <li>{@code file.encoding}</li>
+ * <li>{@code jdk.map.althashing.threshold}</li>
+ * <li>{@code line.separator}</li>
+ * </ul>
*
* @since 2.5
* @see #systemProperties
@@ -339,6 +352,18 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
@Parameter
private Map<String, String> systemPropertyVariables;
+ /**
+ * List of user properties to pass to a provider.
+ * Similar to {@link #systemPropertyVariables} but having a higher precedence, therefore allows to overwrite user properties from the current Maven session.
+ * This should only be used in case a user property from the parent process needs to be explicitly overwritten.
+ * Regular properties should be set via {@link #systemPropertyVariables} instead in order to allow them to be overwritten
+ * via CLI arguments ({@code -Dmyproperty=myvalue})
+ * @since 3.4
+ * @see #systemPropertyVariables
+ */
+ @Parameter
+ private Map<String, String> userPropertyVariables;
+
/**
* List of properties for configuring the testing provider. This is the preferred method of
* configuring TestNG and JUnit platform providers.<br><br>
@@ -425,7 +450,7 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
private String jvm;
/**
- * Arbitrary JVM options to set on the command line.
+ * Arbitrary JVM options to set on the command line. Only effective for forked executions.
* <br>
* <br>
* Since the Version 2.17 using an alternate syntax for {@code argLine}, <b>@{...}</b> allows late replacement
@@ -438,6 +463,7 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
* <a href="http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html">
* http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html</a>
*
+ * @see #forkCount
* @since 2.1
*/
@Parameter(property = "argLine")
@@ -1140,9 +1166,9 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
}
private SurefireProperties setupProperties() {
- SurefireProperties sysProps = null;
+ SurefireProperties sysPropsFromFile = null;
try {
- sysProps = SurefireProperties.loadProperties(getSystemPropertiesFile());
+ sysPropsFromFile = SurefireProperties.loadProperties(getSystemPropertiesFile());
} catch (IOException e) {
String msg = "The file '" + getSystemPropertiesFile().getAbsolutePath() + "' can't be read.";
if (getConsoleLogger().isDebugEnabled()) {
@@ -1152,8 +1178,12 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
}
}
- SurefireProperties result = SurefireProperties.calculateEffectiveProperties(
- getSystemProperties(), getSystemPropertyVariables(), getUserProperties(), sysProps);
+ SurefireProperties result = calculateEffectiveProperties(
+ getSystemProperties(),
+ getSystemPropertyVariables(),
+ getUserProperties(),
+ userPropertyVariables,
+ sysPropsFromFile);
result.setProperty("basedir", getBasedir().getAbsolutePath());
result.setProperty("localRepository", getLocalRepositoryPath());
@@ -1184,6 +1214,43 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
return result;
}
+ private SurefireProperties calculateEffectiveProperties(
+ Properties systemProperties,
+ Map<String, String> systemPropertyVariables,
+ Properties userProperties,
+ Map<String, String> userPropertyVariables,
+ SurefireProperties sysPropsFromFile) {
+ SurefireProperties result = new SurefireProperties();
+ result.copyPropertiesFrom(systemProperties);
+
+ Collection<String> overwrittenProperties = result.copyPropertiesFrom(sysPropsFromFile);
+ if (!overwrittenProperties.isEmpty()) {
+ getConsoleLogger().debug(getOverwrittenPropertiesLogMessage(overwrittenProperties, "sysPropsFile"));
+ }
+ overwrittenProperties = result.copyPropertiesFrom(systemPropertyVariables);
+ if (!overwrittenProperties.isEmpty()) {
+ 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
+
+ overwrittenProperties = result.copyPropertiesFrom(userProperties);
+ if (!overwrittenProperties.isEmpty()) {
+ getConsoleLogger()
+ .warning(getOverwrittenPropertiesLogMessage(
+ overwrittenProperties, "user properties from Maven session"));
+ }
+ overwrittenProperties = result.copyPropertiesFrom(userPropertyVariables);
+ if (!overwrittenProperties.isEmpty()) {
+ getConsoleLogger()
+ .warning(getOverwrittenPropertiesLogMessage(overwrittenProperties, "userPropertyVariables"));
+ }
+ return result;
+ }
+
private Set<Object> systemPropertiesMatchingArgLine(SurefireProperties result) {
Set<Object> intersection = new HashSet<>();
if (isNotBlank(getArgLine())) {
@@ -1199,6 +1266,20 @@ public abstract class AbstractSurefireMojo extends AbstractMojo implements Suref
return intersection;
}
+ private String getOverwrittenPropertiesLogMessage(
+ Collection<String> overwrittenProperties, String overwrittenBySource) {
+ if (overwrittenProperties.isEmpty()) {
+ throw new IllegalArgumentException("overwrittenProperties must not be empty");
+ }
+ // one or multiple?
+ ChoiceFormat propertyChoice = new ChoiceFormat("1#property|1>properties");
+ StringBuilder message = new StringBuilder("System ");
+ message.append(propertyChoice.format(overwrittenProperties.size())).append(" ");
+ message.append(overwrittenProperties.stream().collect(Collectors.joining("], [", "[", "]")));
+ message.append(" overwritten by ").append(overwrittenBySource);
+ return message.toString();
+ }
+
private void showToLog(SurefireProperties props, ConsoleLogger log) {
for (Object key : props.getStringKeySet()) {
String value = props.getProperty((String) key);
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
index 96e3cdaef..2971e7450 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
@@ -27,6 +27,7 @@ import java.util.Collections;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.LinkedHashSet;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -40,7 +41,7 @@ import static java.util.Arrays.asList;
import static java.util.Map.Entry;
/**
- * A properties implementation that preserves insertion order.
+ * A {@link Properties} implementation that preserves insertion order.
*/
public class SurefireProperties extends Properties implements KeyValueSource {
private static final Collection<String> KEYS_THAT_CANNOT_BE_USED_AS_SYSTEM_PROPERTIES =
@@ -64,9 +65,17 @@ public class SurefireProperties extends Properties implements KeyValueSource {
@Override
public synchronized void putAll(Map<?, ?> t) {
+ putAllInternal(t);
+ }
+
+ private Collection<String> putAllInternal(Map<?, ?> t) {
+ Collection<String> overwrittenProperties = new LinkedList<>();
for (Entry<?, ?> entry : t.entrySet()) {
- put(entry.getKey(), entry.getValue());
+ if (put(entry.getKey(), entry.getValue()) != null) {
+ overwrittenProperties.add(entry.getKey().toString());
+ }
}
+ return overwrittenProperties;
}
@Override
@@ -92,12 +101,23 @@ public class SurefireProperties extends Properties implements KeyValueSource {
return Collections.enumeration(items);
}
- public void copyPropertiesFrom(Properties source) {
+ /**
+ * Copies all keys and values from source to these properties, overwriting existing properties with same name
+ * @param source
+ * @return all overwritten property names (may be empty if there was property name clash)
+ */
+ public Collection<String> copyPropertiesFrom(Properties source) {
if (source != null) {
- putAll(source);
+ return putAllInternal(source);
+ } else {
+ return Collections.emptyList();
}
}
+ public Collection<String> copyPropertiesFrom(Map<String, String> source) {
+ return copyProperties(this, source);
+ }
+
public Iterable<Object> getStringKeySet() {
return keySet();
}
@@ -121,34 +141,17 @@ public class SurefireProperties extends Properties implements KeyValueSource {
}
}
- static SurefireProperties calculateEffectiveProperties(
- Properties systemProperties,
- Map<String, String> systemPropertyVariables,
- Properties userProperties,
- SurefireProperties props) {
- SurefireProperties result = new SurefireProperties();
- result.copyPropertiesFrom(systemProperties);
-
- result.copyPropertiesFrom(props);
-
- copyProperties(result, 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
-
- result.copyPropertiesFrom(userProperties);
- return result;
- }
-
- private static void copyProperties(Properties target, Map<String, String> source) {
+ private static Collection<String> copyProperties(Properties target, Map<String, String> source) {
+ Collection<String> overwrittenProperties = new LinkedList<>();
if (source != null) {
for (String key : source.keySet()) {
String value = source.get(key);
- target.setProperty(key, value == null ? "" : value);
+ if (target.setProperty(key, value == null ? "" : value) != null) {
+ overwrittenProperties.add(key);
+ }
}
}
+ return overwrittenProperties;
}
@Override
diff --git a/maven-surefire-plugin/pom.xml b/maven-surefire-plugin/pom.xml
index 71de0eff6..7c2b63e35 100644
--- a/maven-surefire-plugin/pom.xml
+++ b/maven-surefire-plugin/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/maven-surefire-report-plugin/pom.xml b/maven-surefire-report-plugin/pom.xml
index 9f6a406e4..474b73ece 100644
--- a/maven-surefire-report-plugin/pom.xml
+++ b/maven-surefire-report-plugin/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/pom.xml b/pom.xml
index 973111484..abdd74189 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Apache Maven Surefire</name>
@@ -106,7 +106,7 @@
<maven.compiler.testTarget>1.${javaVersion}</maven.compiler.testTarget>
<jvm9ArgsTests />
<jvm.args.tests>${jvm9ArgsTests} -Xms32m -Xmx144m -XX:SoftRefLRUPolicyMSPerMB=50 -Djava.awt.headless=true -Djdk.net.URLClassPath.disableClassPathURLCheck=true</jvm.args.tests>
- <project.build.outputTimestamp>2024-07-07T17:48:17Z</project.build.outputTimestamp>
+ <project.build.outputTimestamp>2024-07-15T13:01:03Z</project.build.outputTimestamp>
</properties>
<dependencyManagement>
diff --git a/surefire-api/pom.xml b/surefire-api/pom.xml
index 0f4f767d6..b36676c3e 100644
--- a/surefire-api/pom.xml
+++ b/surefire-api/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-api</artifactId>
diff --git a/surefire-booter/pom.xml b/surefire-booter/pom.xml
index bfb637475..d256834b3 100644
--- a/surefire-booter/pom.xml
+++ b/surefire-booter/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-booter</artifactId>
diff --git a/surefire-extensions-api/pom.xml b/surefire-extensions-api/pom.xml
index 9017bdfa6..9dbb677e2 100644
--- a/surefire-extensions-api/pom.xml
+++ b/surefire-extensions-api/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-extensions-api</artifactId>
diff --git a/surefire-extensions-spi/pom.xml b/surefire-extensions-spi/pom.xml
index 32ecf4b51..c072b3d4b 100644
--- a/surefire-extensions-spi/pom.xml
+++ b/surefire-extensions-spi/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-extensions-spi</artifactId>
diff --git a/surefire-grouper/pom.xml b/surefire-grouper/pom.xml
index 9e625f1f1..50cb33193 100644
--- a/surefire-grouper/pom.xml
+++ b/surefire-grouper/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-grouper</artifactId>
diff --git a/surefire-its/pom.xml b/surefire-its/pom.xml
index 8d18714f1..2559d357d 100644
--- a/surefire-its/pom.xml
+++ b/surefire-its/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-its</artifactId>
diff --git a/surefire-logger-api/pom.xml b/surefire-logger-api/pom.xml
index 84593953d..92f44bb46 100644
--- a/surefire-logger-api/pom.xml
+++ b/surefire-logger-api/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-logger-api</artifactId>
diff --git a/surefire-providers/common-java5/pom.xml b/surefire-providers/common-java5/pom.xml
index 39fcc6647..98d63fbc6 100644
--- a/surefire-providers/common-java5/pom.xml
+++ b/surefire-providers/common-java5/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>common-java5</artifactId>
diff --git a/surefire-providers/common-junit3/pom.xml b/surefire-providers/common-junit3/pom.xml
index 17eb8b22d..8fa9e5464 100644
--- a/surefire-providers/common-junit3/pom.xml
+++ b/surefire-providers/common-junit3/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>common-junit3</artifactId>
diff --git a/surefire-providers/common-junit4/pom.xml b/surefire-providers/common-junit4/pom.xml
index f66db5849..0ef6fc660 100644
--- a/surefire-providers/common-junit4/pom.xml
+++ b/surefire-providers/common-junit4/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>common-junit4</artifactId>
diff --git a/surefire-providers/common-junit48/pom.xml b/surefire-providers/common-junit48/pom.xml
index a223dcbd0..ce3ba24ce 100644
--- a/surefire-providers/common-junit48/pom.xml
+++ b/surefire-providers/common-junit48/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>common-junit48</artifactId>
diff --git a/surefire-providers/pom.xml b/surefire-providers/pom.xml
index c030e6703..eff68a63c 100644
--- a/surefire-providers/pom.xml
+++ b/surefire-providers/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-providers</artifactId>
diff --git a/surefire-providers/surefire-junit-platform/pom.xml b/surefire-providers/surefire-junit-platform/pom.xml
index 66bb62dc9..09011343f 100644
--- a/surefire-providers/surefire-junit-platform/pom.xml
+++ b/surefire-providers/surefire-junit-platform/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-junit-platform</artifactId>
diff --git a/surefire-providers/surefire-junit3/pom.xml b/surefire-providers/surefire-junit3/pom.xml
index ab337b748..7505164cb 100644
--- a/surefire-providers/surefire-junit3/pom.xml
+++ b/surefire-providers/surefire-junit3/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-junit3</artifactId>
diff --git a/surefire-providers/surefire-junit4/pom.xml b/surefire-providers/surefire-junit4/pom.xml
index 898cf569b..194b93a7f 100644
--- a/surefire-providers/surefire-junit4/pom.xml
+++ b/surefire-providers/surefire-junit4/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-junit4</artifactId>
diff --git a/surefire-providers/surefire-junit47/pom.xml b/surefire-providers/surefire-junit47/pom.xml
index 45ee17904..d6d6c1b64 100644
--- a/surefire-providers/surefire-junit47/pom.xml
+++ b/surefire-providers/surefire-junit47/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-junit47</artifactId>
diff --git a/surefire-providers/surefire-testng-utils/pom.xml b/surefire-providers/surefire-testng-utils/pom.xml
index 27c7ced49..5e1777e8f 100644
--- a/surefire-providers/surefire-testng-utils/pom.xml
+++ b/surefire-providers/surefire-testng-utils/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-testng-utils</artifactId>
diff --git a/surefire-providers/surefire-testng/pom.xml b/surefire-providers/surefire-testng/pom.xml
index db4d31371..d99d636c7 100644
--- a/surefire-providers/surefire-testng/pom.xml
+++ b/surefire-providers/surefire-testng/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-providers</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-testng</artifactId>
diff --git a/surefire-report-parser/pom.xml b/surefire-report-parser/pom.xml
index 609031a51..eb6d511d3 100644
--- a/surefire-report-parser/pom.xml
+++ b/surefire-report-parser/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-report-parser</artifactId>
diff --git a/surefire-shadefire/pom.xml b/surefire-shadefire/pom.xml
index cf6f3d3bf..2afbe11ef 100644
--- a/surefire-shadefire/pom.xml
+++ b/surefire-shadefire/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-shadefire</artifactId>
diff --git a/surefire-shared-utils/pom.xml b/surefire-shared-utils/pom.xml
index 33077c7a0..17cb31719 100644
--- a/surefire-shared-utils/pom.xml
+++ b/surefire-shared-utils/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire</artifactId>
- <version>3.3.2-SNAPSHOT</version>
+ <version>3.4.0-SNAPSHOT</version>
</parent>
<artifactId>surefire-shared-utils</artifactId>