Package org.openrewrite.java
Class JavaUnrestrictedClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
org.openrewrite.java.JavaUnrestrictedClassLoader
- All Implemented Interfaces:
Closeable,AutoCloseable
Rewrite's JavaParser is reliant on java's compiler internal classes that are now encapsulated within Java's
module system. Starting in Java 17, the JVM now enforces strong encapsulation of these internal classes and
default behavior is to throw a security exception when attempting to use these internal classes. This classloader
circumvents these security restrictions by isolating Rewrite's Java 17 parser implementation classes and then
loading any of the internal classes directly from the .jmod files.
NOTE: Any classes in the package "org.openrewrite.java.isolated" will be loaded into this isolated classloader.
-
Constructor Summary
ConstructorsConstructorDescriptionJavaUnrestrictedClassLoader(ClassLoader parentClassloader) JavaUnrestrictedClassLoader(ClassLoader parentClassloader, List<URL> jars) -
Method Summary
Modifier and TypeMethodDescription@Nullable URLgetResource(String name) getResources(String name) Class<?>Methods inherited from class java.net.URLClassLoader
addURL, close, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstanceMethods inherited from class java.security.SecureClassLoader
defineClass, defineClassMethods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Constructor Details
-
JavaUnrestrictedClassLoader
-
JavaUnrestrictedClassLoader
-
-
Method Details
-
loadClass
- Overrides:
loadClassin classClassLoader- Throws:
ClassNotFoundException
-
getResources
- Overrides:
getResourcesin classClassLoader- Throws:
IOException
-
getResource
- Overrides:
getResourcein classClassLoader
-