Marc Philipp created SUREFIRE-1445:
--------------------------------------

             Summary: Properties from configuration POM are not passed to 
Provider on JDK 9
                 Key: SUREFIRE-1445
                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1445
             Project: Maven Surefire
          Issue Type: Bug
          Components: Maven Failsafe Plugin, Maven Surefire Plugin
    Affects Versions: 2.20.1, 2.20, 2.19.1
         Environment: JDK 9
            Reporter: Marc Philipp
            Priority: Blocker


Given the POM below, the {{JUnitPlatformProvider}} can read {{"excludeTags"}} = 
{{"slow"}} from {{ProviderParameters.getProviderProperties()}} when it runs on 
JDK 8 but not on JDK 9.

The reason is that the constructor of {{SurefireProperties}} relies on an 
implementation detail of the class it extends, namely that {{putAll()}} will 
call {{put()}} for each entry. However, while {{Properties}} does that on JDK 
8, it doesn't on JDK 9.

Here's a link to the line in {{SurefireProperties}}:
https://github.com/apache/maven-surefire/blob/master/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java#L62

{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
    <modelVersion>4.0.0</modelVersion>

    <groupId>junit5</groupId>
    <artifactId>tagging</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <properties>
                        <excludeTags>slow</excludeTags>
                    </properties>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.junit.platform</groupId>
                        
<artifactId>junit-platform-surefire-provider</artifactId>
                        <version>1.0.2</version>
                    </dependency>
                    <dependency>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-engine</artifactId>
                        <version>5.0.2</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.0.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>
{code}




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to