From bd635030a28c5e98f3174abd560a1a375b6376f7 Mon Sep 17 00:00:00 2001 From: Jendrik Johannes Date: Wed, 16 Apr 2025 14:57:19 +0200 Subject: [PATCH] Use 'exportsTo' and 'opensTo' statements from Module Info DSL Picked up things defined via 'java-module-dependencies' plugin. --- .../testing/JavaModuleTestingExtension.java | 2 ++ .../bridges/JavaModuleDependenciesBridge.java | 14 +++++++++++--- .../WhiteboxTestRuntimeArgumentProvider.java | 8 ++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/gradlex/javamodule/testing/JavaModuleTestingExtension.java b/src/main/java/org/gradlex/javamodule/testing/JavaModuleTestingExtension.java index ba8e2d3..6b0e19f 100644 --- a/src/main/java/org/gradlex/javamodule/testing/JavaModuleTestingExtension.java +++ b/src/main/java/org/gradlex/javamodule/testing/JavaModuleTestingExtension.java @@ -252,7 +252,9 @@ private void configureJvmTestSuiteForWhitebox(JvmTestSuite jvmTestSuite, Whitebo }); argumentProvider.testRequires(JavaModuleDependenciesBridge.getRuntimeClasspathModules(project, testSources)); argumentProvider.testRequires(whiteboxJvmTestSuite.getRequires()); + argumentProvider.testOpensTo(JavaModuleDependenciesBridge.getOpensToModules(project, testSources)); argumentProvider.testOpensTo(whiteboxJvmTestSuite.getOpensTo()); + argumentProvider.testExportsTo(JavaModuleDependenciesBridge.getExportsToModules(project, testSources)); argumentProvider.testExportsTo(whiteboxJvmTestSuite.getExportsTo()); }); diff --git a/src/main/java/org/gradlex/javamodule/testing/internal/bridges/JavaModuleDependenciesBridge.java b/src/main/java/org/gradlex/javamodule/testing/internal/bridges/JavaModuleDependenciesBridge.java index abd1d74..5dbecef 100644 --- a/src/main/java/org/gradlex/javamodule/testing/internal/bridges/JavaModuleDependenciesBridge.java +++ b/src/main/java/org/gradlex/javamodule/testing/internal/bridges/JavaModuleDependenciesBridge.java @@ -56,14 +56,22 @@ public static void addRequiresRuntimeSupport(Project project, SourceSet sourceSe } public static List getRuntimeClasspathModules(Project project, SourceSet sourceSet) { - return getClasspathModules("getRuntimeClasspathModules", project, sourceSet); + return getDeclaredModules("getRuntimeClasspathModules", project, sourceSet); } public static List getCompileClasspathModules(Project project, SourceSet sourceSet) { - return getClasspathModules("getCompileClasspathModules", project, sourceSet); + return getDeclaredModules("getCompileClasspathModules", project, sourceSet); } - public static List getClasspathModules(String getter, Project project, SourceSet sourceSet) { + public static List getExportsToModules(Project project, SourceSet sourceSet) { + return getDeclaredModules("getExportsToModules", project, sourceSet); + } + + public static List getOpensToModules(Project project, SourceSet sourceSet) { + return getDeclaredModules("getOpensToModules", project, sourceSet); + } + + private static List getDeclaredModules(String getter, Project project, SourceSet sourceSet) { Object moduleInfoDslExtension = project.getExtensions().findByName(sourceSet.getName() + "ModuleInfo"); if (moduleInfoDslExtension == null) { return Collections.emptyList(); diff --git a/src/main/java/org/gradlex/javamodule/testing/internal/provider/WhiteboxTestRuntimeArgumentProvider.java b/src/main/java/org/gradlex/javamodule/testing/internal/provider/WhiteboxTestRuntimeArgumentProvider.java index 712a767..f7e7872 100644 --- a/src/main/java/org/gradlex/javamodule/testing/internal/provider/WhiteboxTestRuntimeArgumentProvider.java +++ b/src/main/java/org/gradlex/javamodule/testing/internal/provider/WhiteboxTestRuntimeArgumentProvider.java @@ -66,10 +66,18 @@ public void testOpensTo(Provider> testOpensTo) { allTestOpensTo.addAll(testOpensTo); } + public void testOpensTo(List testOpensTo) { + allTestOpensTo.addAll(testOpensTo); + } + public void testExportsTo(Provider> testExportsTo) { allTestExportsTo.addAll(testExportsTo); } + public void testExportsTo(List testExportsTo) { + allTestExportsTo.addAll(testExportsTo); + } + @Override public Iterable asArguments() { String moduleName = moduleInfoParser.moduleName(mainSourceFolders);