|
|
|
|
@ -43,6 +43,9 @@ abstract public class AbstractClassGenerator<T> implements ClassGenerator {
@@ -43,6 +43,9 @@ abstract public class AbstractClassGenerator<T> implements ClassGenerator {
|
|
|
|
|
private static final boolean DEFAULT_USE_CACHE = |
|
|
|
|
Boolean.parseBoolean(System.getProperty("cglib.useCache", "true")); |
|
|
|
|
|
|
|
|
|
// See https://github.com/oracle/graal/blob/master/sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/ImageInfo.java
|
|
|
|
|
private static final boolean imageCode = (System.getProperty("org.graalvm.nativeimage.imagecode") != null); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private GeneratorStrategy strategy = DefaultGeneratorStrategy.INSTANCE; |
|
|
|
|
|
|
|
|
|
@ -359,6 +362,12 @@ abstract public class AbstractClassGenerator<T> implements ClassGenerator {
@@ -359,6 +362,12 @@ abstract public class AbstractClassGenerator<T> implements ClassGenerator {
|
|
|
|
|
// ignore
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// SPRING PATCH BEGIN
|
|
|
|
|
if (imageCode) { |
|
|
|
|
throw new UnsupportedOperationException("CGLIB runtime enhancement not supported on native image. " + |
|
|
|
|
"Make sure to include a pre-generated class on the classpath instead: " + getClassName()); |
|
|
|
|
} |
|
|
|
|
// SPRING PATCH END
|
|
|
|
|
byte[] b = strategy.generate(this); |
|
|
|
|
String className = ClassNameReader.getClassName(new ClassReader(b)); |
|
|
|
|
ProtectionDomain protectionDomain = getProtectionDomain(); |
|
|
|
|
|