added API to check if a class exists in a given class loader's path

This commit is contained in:
Xylus
2015-02-26 15:40:58 +09:00
parent 5a40cc7437
commit 3f92ed5a07
2 changed files with 9 additions and 1 deletions
@@ -26,6 +26,8 @@ import com.navercorp.pinpoint.bootstrap.interceptor.Interceptor;
public interface ByteCodeInstrumentor {
InstrumentClass getClass(ClassLoader classLoader, String jvmClassName, byte[] classFileBuffer) throws InstrumentException;
boolean findClass(ClassLoader classLoader, String javassistClassName);
Scope getScope(String scopeName);
@@ -30,8 +30,8 @@ import com.navercorp.pinpoint.bootstrap.interceptor.TargetClassLoader;
import com.navercorp.pinpoint.profiler.interceptor.GlobalInterceptorRegistryBinder;
import com.navercorp.pinpoint.profiler.interceptor.InterceptorRegistryBinder;
import com.navercorp.pinpoint.profiler.util.ScopePool;
import com.navercorp.pinpoint.profiler.util.ThreadLocalScopePool;
import javassist.*;
import org.slf4j.Logger;
@@ -262,6 +262,12 @@ public class JavaAssistByteCodeInstrumentor implements ByteCodeInstrumentor {
return true;
}
@Override
public boolean findClass(ClassLoader classLoader, String javassistClassName) {
ClassPool classPool = findClassPool(classLoader);
return findClass(javassistClassName, classPool);
}
@Override
public Interceptor newInterceptor(ClassLoader classLoader, ProtectionDomain protectedDomain, String interceptorFQCN) throws InstrumentException {
Class<?> aClass = this.defineClass(classLoader, interceptorFQCN, protectedDomain);