This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push: new b14e9ff No need for reflection with Java 11 b14e9ff is described below commit b14e9ff3c514078b6e9be29cae8084cd93b56c55 Author: Mark Thomas <ma...@apache.org> AuthorDate: Wed Jul 28 15:27:28 2021 +0100 No need for reflection with Java 11 --- .../el/TestImportHandlerStandardPackages.java | 27 +++------------------- 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/test/jakarta/el/TestImportHandlerStandardPackages.java b/test/jakarta/el/TestImportHandlerStandardPackages.java index 24d90e8..5a8ca7f 100644 --- a/test/jakarta/el/TestImportHandlerStandardPackages.java +++ b/test/jakarta/el/TestImportHandlerStandardPackages.java @@ -17,15 +17,14 @@ package jakarta.el; import java.io.File; +import java.lang.module.ModuleFinder; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.net.URI; import java.net.URL; import java.util.Enumeration; import java.util.Map; -import java.util.Optional; import java.util.Set; -import java.util.stream.Stream; import org.junit.Assert; import org.junit.Test; @@ -56,7 +55,8 @@ public class TestImportHandlerStandardPackages { // tests are run on a newer JRE. // The latest version of the JRE where this test is known to pass is // - OpenJDK 17 EA 28 - getJavaBaseClasses().filter(c -> (c.startsWith("java/lang/"))) + ModuleFinder.ofSystem().find("java.base").get().open().list() + .filter(c -> (c.startsWith("java/lang/"))) .filter(c -> c.lastIndexOf('/') == 9) // Exclude sub-packages .filter(c -> c.endsWith(".class")) // Exclude non-class resources .map(c -> c.substring(10, c.length() - 6)) // Extract class name @@ -129,25 +129,4 @@ public class TestImportHandlerStandardPackages { } } } - - - private static Stream<String> getJavaBaseClasses() throws Exception { - // While this code is only used on Java 9 and later, it needs to compile - // with Java 8 so use reflection for now. - Class<?> clazzModuleFinder = Class.forName("java.lang.module.ModuleFinder"); - Class<?> clazzModuleReference = Class.forName("java.lang.module.ModuleReference"); - Class<?> clazzModuleReader = Class.forName("java.lang.module.ModuleReader"); - - // Returns ModuleFinder - Object mf = clazzModuleFinder.getMethod("ofSystem").invoke(null); - // Returns ModuleReference - Object mRef = ((Optional<?>) clazzModuleFinder.getMethod( - "find", String.class).invoke(mf, "java.base")).get(); - // Returns ModuleReader - Object mr = clazzModuleReference.getMethod("open").invoke(mRef); - // Returns the contents of the module - @SuppressWarnings("unchecked") - Stream<String> result = (Stream<String>) clazzModuleReader.getMethod("list").invoke(mr); - return result; - } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org