Affects Version/s: 2.20.1
Fix Version/s: 2.21.0
Environment:ASF Jenkins CI
Jenkinsfile exists but it fails on static code analysis.
Performance problem with Publishers on Windows & Jenkins.
Fixing build process and support multiple JDK Versions and platforms Linux/Windows.
During the build when running with multiple versions of Maven (3.2.x - 3.5.x) and JDK versions (7 - 10) these problems were found and fixed in this Jira issue:
- maven-enforcer-plugin downloaded maven-surefire-api from Nexus which was previously built with Java 7.
Therefore reordered modules (only surefire-api module before surefire-shadefire) in the aggregator POM.
- JUnit47ParallelIT reported
Text not found in log: These tests are incomplete:
because the JVM GC blocked the application.
As a workaround is to fork the JVM and log everything to console:
.redirectToFile( false )
- In ParallelComputerBuilderTest found a problem where the execution time was prolonged by calling System.gc() because Stopwatch includes the execution time spent in @Before
- Improved PC and PCB because this could cause hidden NPE. Added jvm.args.tests into argLine in order to lax GC.
- UmlautIT renames basedir directory to another directory with non-ASCII German word Umlaut. There the test threw IOException while renaming the directory of integration test because the directory could not be found on Windows 7 (Cp1250). The solution would be to create directories in the beginning of the test which is more safe than renaming the directory. Added maven-clean-plugin:3.0.0.
- Building the project with old Maven versions caused an error because classes from transient dependencies maven-shared-utils . This happened in the project maven-failsafe-plugin. After shading the artifacts and reduced the POM the maven-shade-plugin excluded maven-shared-utils.
- Unified the configuration of maven-surefire-plugin in the unit tests and configured the parameters: jvm, redirectTestOutputToFile, dependencies and added JUnit4SuiteTest.java as JUnit3 adapter.
- During the build process we could not identify directory of particular test configuration because one is overridden. Turned the Surefire1295AttributeJvmCrashesToTestsIT to Theories runner. Additionally it seems this IT is not stable because the SomeOtherTest.java has no delay which would be expected to take some time and simulate that the test set was interrupted in the middle. This IT interrupts the execution by calling native exit() etc.
- Renamed <artifactId>surefire-is</artifactId> to expected <artifactId>surefire-its</artifactId>.