Skip to content

Commit 8955a3e

Browse files
[MCOMPILER-591] testCompile - fix detections of target less than 1.9
1 parent 15905f3 commit 8955a3e

File tree

4 files changed

+38
-7
lines changed

4 files changed

+38
-7
lines changed

pom.xml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,14 @@ under the License.
182182
</dependency>
183183
<dependency>
184184
<groupId>org.junit.jupiter</groupId>
185-
<artifactId>junit-jupiter-engine</artifactId>
186-
<version>5.9.1</version>
185+
<artifactId>junit-jupiter-api</artifactId>
186+
<version>5.10.2</version>
187+
<scope>test</scope>
188+
</dependency>
189+
<dependency>
190+
<groupId>org.junit.jupiter</groupId>
191+
<artifactId>junit-jupiter-params</artifactId>
192+
<version>5.10.2</version>
187193
<scope>test</scope>
188194
</dependency>
189195
</dependencies>

src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,6 @@ public abstract class AbstractCompilerMojo extends AbstractMojo {
111111

112112
static final String DEFAULT_TARGET = "1.8";
113113

114-
// Used to compare with older targets
115-
static final String MODULE_INFO_TARGET = "1.9";
116-
117114
// ----------------------------------------------------------------------
118115
// Configurables
119116
// ----------------------------------------------------------------------

src/main/java/org/apache/maven/plugin/compiler/TestCompilerMojo.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,13 +316,13 @@ protected void preparePaths(Set<File> sourceFiles) {
316316
return;
317317
}
318318
if (StringUtils.isNotEmpty(getRelease())) {
319-
if (Integer.parseInt(getRelease()) < 9) {
319+
if (isOlderThanJDK9(getRelease())) {
320320
pathElements = Collections.emptyMap();
321321
modulepathElements = Collections.emptyList();
322322
classpathElements = testPath;
323323
return;
324324
}
325-
} else if (Double.parseDouble(getTarget()) < Double.parseDouble(MODULE_INFO_TARGET)) {
325+
} else if (isOlderThanJDK9(getTarget())) {
326326
pathElements = Collections.emptyMap();
327327
modulepathElements = Collections.emptyList();
328328
classpathElements = testPath;
@@ -436,6 +436,14 @@ protected SourceInclusionScanner getSourceInclusionScanner(String inputFileEndin
436436
return scanner;
437437
}
438438

439+
static boolean isOlderThanJDK9(String version) {
440+
if (version.startsWith("1.")) {
441+
return Integer.parseInt(version.substring(2)) < 9;
442+
}
443+
444+
return Integer.parseInt(version) < 9;
445+
}
446+
439447
protected String getSource() {
440448
return testSource == null ? source : testSource;
441449
}

src/test/java/org/apache/maven/plugin/compiler/TestCompilerMojoTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,15 @@
2424
import java.util.Arrays;
2525
import java.util.HashSet;
2626
import java.util.Set;
27+
import java.util.stream.Stream;
2728

2829
import org.apache.maven.plugin.compiler.stubs.CompilerManagerStub;
2930
import org.apache.maven.plugin.testing.junit5.InjectMojo;
3031
import org.apache.maven.plugin.testing.junit5.MojoTest;
3132
import org.junit.jupiter.api.Test;
33+
import org.junit.jupiter.params.ParameterizedTest;
34+
import org.junit.jupiter.params.provider.Arguments;
35+
import org.junit.jupiter.params.provider.MethodSource;
3236

3337
import static org.apache.maven.plugin.compiler.MojoTestUtils.getMockMavenProject;
3438
import static org.apache.maven.plugin.compiler.MojoTestUtils.getMockMavenSession;
@@ -186,4 +190,20 @@ private void setUpCompilerMojoTestEnv(TestCompilerMojo mojo) throws Exception {
186190
setVariableValueToObject(mojo, "source", AbstractCompilerMojo.DEFAULT_SOURCE);
187191
setVariableValueToObject(mojo, "target", AbstractCompilerMojo.DEFAULT_TARGET);
188192
}
193+
194+
static Stream<Arguments> olderThanJDK9() {
195+
return Stream.of(
196+
Arguments.of("1.8", true),
197+
Arguments.of("8", true),
198+
Arguments.of("1.9", false),
199+
Arguments.of("1.9", false),
200+
Arguments.of("9", false),
201+
Arguments.of("11", false));
202+
}
203+
204+
@ParameterizedTest
205+
@MethodSource
206+
void olderThanJDK9(String version, boolean expected) {
207+
assertEquals(expected, TestCompilerMojo.isOlderThanJDK9(version));
208+
}
189209
}

0 commit comments

Comments
 (0)