enhancer.setClassLoader(classLoader); if (classLoader instanceof SmartClassLoader && ((SmartClassLoader) classLoader).isClassReloadable(proxySuperClass)) {
/** * Returns the already created proxy class for the given source type or creates a new one. * * @param type must not be {@literal null}. * @param classLoader must not be {@literal null}. * @return */ private static Class<?> getOrCreateEnhancedClass(Class<?> type, ClassLoader classLoader) { Assert.notNull(type, "Source type must not be null!"); Assert.notNull(classLoader, "ClassLoader must not be null!"); return CLASS_CACHE.computeIfAbsent(type, key -> { Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(key); enhancer.setInterfaces(new Class<?>[] { LastInvocationAware.class }); enhancer.setCallbackType(org.springframework.cglib.proxy.MethodInterceptor.class); enhancer.setClassLoader(classLoader); return enhancer.createClass(); }); }
/** * Returns the already created proxy class for the given source type or creates a new one. * * @param type must not be {@literal null}. * @param classLoader must not be {@literal null}. * @return */ private static Class<?> getOrCreateEnhancedClass(Class<?> type, ClassLoader classLoader) { Assert.notNull(type, "Source type must not be null!"); Assert.notNull(classLoader, "ClassLoader must not be null!"); Class<?> result = CLASS_CACHE.get(type); if (result != null) { return result; } Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(type); enhancer.setInterfaces(new Class<?>[] { LastInvocationAware.class }); enhancer.setCallbackType(org.springframework.cglib.proxy.MethodInterceptor.class); enhancer.setClassLoader(classLoader); result = enhancer.createClass(); CLASS_CACHE.put(type, result); return result; }
enhancer.setClassLoader(new CompositeClassLoader(ObjectFactoryClassRepository.class.getClassLoader(), objectFactoryType.getClassLoader()));
public static <T> T createProxy(Class<T> type, List<MethodCallListener> listeners, ScanDepthStrategy scanDepthStrategy) { final ScanInterceptor scanInterceptor = new ScanInterceptor(type, listeners, scanDepthStrategy); if (type.isInterface()) { ProxyFactory factory = new ProxyFactory(EmptyTargetSource.INSTANCE); factory.addInterface(type); factory.addAdvice(scanInterceptor); return (T) factory.getProxy(); } Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(type); enhancer.setCallbackType(org.springframework.cglib.proxy.MethodInterceptor.class); enhancer.setClassLoader(type.getClassLoader()); Factory factory = (Factory) OBJENESIS.newInstance(enhancer.createClass()); factory.setCallbacks(new Callback[]{ scanInterceptor }); return (T) factory; }
@SuppressWarnings("unchecked") private static <T> T getProxyWithInterceptor(final Class<?> type, final RecordingMethodInterceptor interceptor, final ClassLoader classLoader, final boolean isfinal) { if (type.isInterface()) { ProxyFactory factory = new ProxyFactory(EmptyTargetSource.INSTANCE); factory.addInterface(type); factory.addInterface(LastInvocationAware.class); factory.addAdvice(interceptor); return (T) factory.getProxy(); } Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(type); enhancer.setInterfaces(new Class<?>[] { LastInvocationAware.class }); enhancer.setCallbackType(org.springframework.cglib.proxy.MethodInterceptor.class); enhancer.setClassLoader(classLoader); Factory factory = (Factory) OBJENESIS.newInstance(enhancer.createClass()); factory.setCallbacks(new Callback[] { interceptor }); return (T) factory; }
enhancer.setClassLoader(classLoader); if (classLoader instanceof SmartClassLoader && ((SmartClassLoader) classLoader).isClassReloadable(proxySuperClass)) {
enhancer.setClassLoader(classLoader); if (classLoader instanceof SmartClassLoader && ((SmartClassLoader) classLoader).isClassReloadable(proxySuperClass)) {
enhancer.setClassLoader(classLoader); if (classLoader instanceof SmartClassLoader && ((SmartClassLoader) classLoader).isClassReloadable(proxySuperClass)) {