Class JavaUnrestrictedClassLoader

java.lang.Object
java.lang.ClassLoader
org.openrewrite.java.JavaUnrestrictedClassLoader

public class JavaUnrestrictedClassLoader extends ClassLoader
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.