Skip to content

Commit 9ca3e30

Browse files
committed
Adjust to latest updates in 'java-module-dependencies'
1 parent fc1d7de commit 9ca3e30

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Java Module Testing Gradle Plugin - Changelog
22

3+
## Version 1.3.1
4+
* Improve interoperability with `java-module-dependencies` plugin
5+
36
## Version 1.3
47
* [#18](https://github.com/gradlex-org/java-module-testing/issues/18) Allow whitebox tests to define requires in `java9/module-info.java` (Thanks [brianoliver](https://github.com/brianoliver) for suggesting!)
58

src/main/java/org/gradlex/javamodule/testing/JavaModuleTestingExtension.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,13 @@ private void configureJvmTestSuiteForWhitebox(JvmTestSuite jvmTestSuite, Whitebo
174174
ModuleInfoParser moduleInfoParser = new ModuleInfoParser(project.getLayout(), project.getProviders());
175175

176176
SourceSet testSources = jvmTestSuite.getSources();
177+
JavaModuleDependenciesBridge.addRequiresRuntimeSupport(project, whiteboxJvmTestSuite.getSourcesUnderTest().get(), jvmTestSuite.getSources());
178+
177179
tasks.named(testSources.getCompileJavaTaskName(), JavaCompile.class, compileJava -> {
178180
SourceSet sourcesUnderTest = whiteboxJvmTestSuite.getSourcesUnderTest().get();
179181

180182
compileJava.setClasspath(sourcesUnderTest.getOutput().plus(configurations.getByName(testSources.getCompileClasspathConfigurationName())));
181-
FileCollection syntheticModuleInfoFolders = JavaModuleDependenciesBridge.addRequiresRuntimeSupport(project, compileJava, sourcesUnderTest);
183+
FileCollection syntheticModuleInfoFolders = JavaModuleDependenciesBridge.addRequiresRuntimeSupportOld(project, compileJava, sourcesUnderTest);
182184

183185
WhiteboxTestCompileArgumentProvider argumentProvider = (WhiteboxTestCompileArgumentProvider) compileJava.getOptions().getCompilerArgumentProviders().stream()
184186
.filter(p -> p instanceof WhiteboxTestCompileArgumentProvider).findFirst().orElseGet(() -> {

src/main/java/org/gradlex/javamodule/testing/internal/bridges/JavaModuleDependenciesBridge.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,31 @@ public static Provider<?> gav(Project project, String moduleName) {
4141
}
4242
}
4343

44-
public static FileCollection addRequiresRuntimeSupport(Project project, JavaCompile task, SourceSet sourceSet) {
44+
public static void addRequiresRuntimeSupport(Project project, SourceSet sourceSetForModuleInfo, SourceSet sourceSetForClasspath) {
45+
Object javaModuleDependencies = project.getExtensions().findByName("javaModuleDependencies");
46+
if (javaModuleDependencies == null) {
47+
return;
48+
}
49+
try {
50+
Method addRequiresRuntimeSupport = javaModuleDependencies.getClass().getMethod("addRequiresRuntimeSupport", SourceSet.class, SourceSet.class);
51+
addRequiresRuntimeSupport.invoke(javaModuleDependencies, sourceSetForModuleInfo, sourceSetForClasspath);
52+
} catch (NoSuchMethodException e) {
53+
//noinspection UnnecessaryReturnStatement
54+
return;
55+
} catch (ReflectiveOperationException e) {
56+
throw new RuntimeException(e);
57+
}
58+
}
59+
60+
@Deprecated
61+
public static FileCollection addRequiresRuntimeSupportOld(Project project, JavaCompile task, SourceSet sourceSet) {
4562
Object javaModuleDependencies = project.getExtensions().findByName("javaModuleDependencies");
4663
if (javaModuleDependencies == null) {
4764
return project.getObjects().fileCollection();
4865
}
4966
try {
50-
Method gav = javaModuleDependencies.getClass().getMethod("addRequiresRuntimeSupport", JavaCompile.class, SourceSet.class);
51-
return (FileCollection) gav.invoke(javaModuleDependencies, task, sourceSet);
67+
Method addRequiresRuntimeSupport = javaModuleDependencies.getClass().getMethod("addRequiresRuntimeSupport", JavaCompile.class, SourceSet.class);
68+
return (FileCollection) addRequiresRuntimeSupport.invoke(javaModuleDependencies, task, sourceSet);
5269
} catch (NoSuchMethodException e) {
5370
return project.getObjects().fileCollection();
5471
} catch (ReflectiveOperationException e) {

0 commit comments

Comments
 (0)