Search in sources :

Example 11 with LoaderClassPath

use of javassist.LoaderClassPath in project pinpoint by naver.

the class IsolateMultipleClassPool method createClassPool.

private NamedClassPool createClassPool(ClassLoader classLoader) {
    String classLoaderName = classLoader.toString();
    NamedClassPool newClassPool = new NamedClassPool(rootClassPool, classLoaderName + "-" + getNextId());
    if (childFirstLookup) {
        newClassPool.childFirstLookup = true;
    }
    final ClassPath classPath = new LoaderClassPath(classLoader);
    newClassPool.appendClassPath(classPath);
    return newClassPool;
}
Also used : LoaderClassPath(javassist.LoaderClassPath) ClassPath(javassist.ClassPath) LoaderClassPath(javassist.LoaderClassPath)

Example 12 with LoaderClassPath

use of javassist.LoaderClassPath in project java-chassis by ServiceComb.

the class JavassistUtils method appendThreadClassPath.

private static void appendThreadClassPath() {
    synchronized (LOCK) {
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        if (CLASSLOADER_SET.containsKey(classLoader)) {
            return;
        }
        POOL.appendClassPath(new LoaderClassPath(classLoader));
        CLASSLOADER_SET.put(classLoader, classLoader);
    }
}
Also used : LoaderClassPath(javassist.LoaderClassPath)

Example 13 with LoaderClassPath

use of javassist.LoaderClassPath in project restfulie-java by caelum.

the class DefaultEnhancer method enhanceResource.

public <T> Class enhanceResource(Class<T> originalType) {
    ClassPool pool = ClassPool.getDefault();
    if (pool.find(DefaultEnhancer.class.getName()) == null) {
        pool.appendClassPath(new LoaderClassPath(getClass().getClassLoader()));
    }
    try {
        // TODO extract this enhancement to an interface and test it appart
        CtClass newType = pool.makeClass(generateNewUniqueClassName(originalType));
        newType.setSuperclass(pool.get(originalType.getName()));
        newType.addInterface(pool.get(Resource.class.getName()));
        enhanceLinks(newType);
        return newType.toClass();
    } catch (NotFoundException e) {
        throw new IllegalStateException("Unable to extend type " + originalType.getName(), e);
    } catch (CannotCompileException e) {
        throw new IllegalStateException("Unable to extend type " + originalType.getName(), e);
    }
}
Also used : CtClass(javassist.CtClass) ClassPool(javassist.ClassPool) LoaderClassPath(javassist.LoaderClassPath) NotFoundException(javassist.NotFoundException) CannotCompileException(javassist.CannotCompileException)

Aggregations

LoaderClassPath (javassist.LoaderClassPath)13 ClassPool (javassist.ClassPool)9 CtClass (javassist.CtClass)5 ClassPath (javassist.ClassPath)3 NotFoundException (javassist.NotFoundException)2 Test (org.junit.Test)2 ASMBytecodeDisassembler (com.navercorp.pinpoint.profiler.instrument.ASMBytecodeDisassembler)1 ProxyCallableStatement (com.zaxxer.hikari.pool.ProxyCallableStatement)1 ProxyConnection (com.zaxxer.hikari.pool.ProxyConnection)1 ProxyPreparedStatement (com.zaxxer.hikari.pool.ProxyPreparedStatement)1 ProxyResultSet (com.zaxxer.hikari.pool.ProxyResultSet)1 ProxyStatement (com.zaxxer.hikari.pool.ProxyStatement)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 URLClassLoader (java.net.URLClassLoader)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Matcher (java.util.regex.Matcher)1 CannotCompileException (javassist.CannotCompileException)1 CtMethod (javassist.CtMethod)1 Ignore (org.junit.Ignore)1