code cleanup

This commit is contained in:
emeroad
2015-11-16 14:39:13 +09:00
parent e758434330
commit 917419f01b
27 changed files with 172 additions and 170 deletions
@@ -24,7 +24,9 @@ import com.navercorp.pinpoint.bootstrap.instrument.Instrumentor;
* @author Jongho Moon
*
*/
public class TransformUtils {
public final class TransformUtils {
private TransformUtils() {
}
public static TransformCallback addInterceptor(final String interceptorClassName, final Object[] constructorArgs) {
return new TransformCallback() {
@@ -80,8 +80,8 @@ public class ArcusPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.spy.memcached.ArcusClient", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor context, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = context.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
if (target.hasMethod("addOp", "java.lang.String", "net.spy.memcached.ops.Operation")) {
boolean traceKey = config.isArcusKeyTrace();
@@ -110,8 +110,8 @@ public class ArcusPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.spy.memcached.CacheManager", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor context, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = context.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(ServiceCodeAccessor.class.getName());
target.addInterceptor("com.navercorp.pinpoint.plugin.arcus.interceptor.CacheManagerConstructInterceptor");
return target.toBytecode();
@@ -124,8 +124,8 @@ public class ArcusPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.spy.memcached.protocol.BaseOperationImpl", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor context, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = context.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(ServiceCodeAccessor.class.getName());
return target.toBytecode();
}
@@ -137,8 +137,8 @@ public class ArcusPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.spy.memcached.plugin.FrontCacheGetFuture", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor context, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = context.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(CacheNameAccessor.class.getName());
target.addField(CacheKeyAccessor.class.getName());
@@ -160,8 +160,8 @@ public class ArcusPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.spy.memcached.plugin.FrontCacheMemcachedClient", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor context, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = context.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
boolean traceKey = config.isMemcachedKeyTrace();
for (InstrumentMethod m : target.getDeclaredMethods(new FrontCacheMemcachedMethodFilter())) {
@@ -184,8 +184,8 @@ public class ArcusPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.spy.memcached.MemcachedClient", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor context, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = context.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
if (target.hasDeclaredMethod("addOp", new String[]{"java.lang.String", "net.spy.memcached.ops.Operation"})) {
target.addField(ServiceCodeAccessor.class.getName());
@@ -213,8 +213,8 @@ public class ArcusPlugin implements ProfilerPlugin, TransformTemplateAware {
private static final TransformCallback FUTURE_TRANSFORMER = new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor context, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = context.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(OperationAccessor.class.getName());
target.addField(AsyncTraceIdAccessor.class.getName());
@@ -237,8 +237,8 @@ public class ArcusPlugin implements ProfilerPlugin, TransformTemplateAware {
private static final TransformCallback INTERNAL_FUTURE_TRANSFORMER = new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor context, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = context.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(AsyncTraceIdAccessor.class.getName());
@@ -51,8 +51,8 @@ public class CubridPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("cubrid.jdbc.driver.CUBRIDConnection", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.ConnectionCloseInterceptor", CubridConstants.CUBRID_SCOPE);
@@ -80,8 +80,8 @@ public class CubridPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("cubrid.jdbc.driver.CUBRIDDriver", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.DriverConnectInterceptor", va(new CubridJdbcUrlParser()), CubridConstants.CUBRID_SCOPE, ExecutionPolicy.ALWAYS);
@@ -94,8 +94,8 @@ public class CubridPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("cubrid.jdbc.driver.CUBRIDPreparedStatement", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.ParsingResultAccessor");
@@ -115,8 +115,8 @@ public class CubridPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("cubrid.jdbc.driver.CUBRIDStatement", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
@@ -52,8 +52,8 @@ public class CommonsDbcpPlugin implements ProfilerPlugin, TransformTemplateAware
transformTemplate.transform("org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addInterceptor("com.navercorp.pinpoint.plugin.commons.dbcp.interceptor.DataSourceCloseInterceptor");
return target.toBytecode();
}
@@ -64,8 +64,8 @@ public class CommonsDbcpPlugin implements ProfilerPlugin, TransformTemplateAware
transformTemplate.transform("org.apache.commons.dbcp.BasicDataSource", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addInterceptor("com.navercorp.pinpoint.plugin.commons.dbcp.interceptor.DataSourceGetConnectionInterceptor");
return target.toBytecode();
}
@@ -52,8 +52,8 @@ public class HttpClientPlugin implements ProfilerPlugin, TransformTemplateAware
transformTemplate.transform("com.google.api.client.http.HttpRequest", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
InstrumentMethod execute = target.getDeclaredMethod("execute");
if (execute != null) {
@@ -66,22 +66,22 @@ public class HttpClientPlugin implements ProfilerPlugin, TransformTemplateAware
executeAsync.addInterceptor("com.navercorp.pinpoint.plugin.google.httpclient.interceptor.HttpRequestExecuteAsyncMethodInterceptor");
}
for(InstrumentClass nestedClass : target.getNestedClasses(ClassFilters.chain(ClassFilters.enclosingMethod("executeAsync", "java.util.concurrent.Executor"), ClassFilters.interfaze("java.util.concurrent.Callable")))) {
for (InstrumentClass nestedClass : target.getNestedClasses(ClassFilters.chain(ClassFilters.enclosingMethod("executeAsync", "java.util.concurrent.Executor"), ClassFilters.interfaze("java.util.concurrent.Callable")))) {
logger.debug("Find nested class {}", target.getName());
Instrumentor.addClassFileTransformer(loader, nestedClass.getName(), new TransformCallback() {
instrumentor.addClassFileTransformer(loader, nestedClass.getName(), new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(AsyncTraceIdAccessor.class.getName());
InstrumentMethod constructor = target.getConstructor("com.google.api.client.http.HttpRequest");
if(constructor != null) {
if (constructor != null) {
logger.debug("Add constuctor interceptor for nested class {}", target.getName());
constructor.addInterceptor("com.navercorp.pinpoint.plugin.google.httpclient.interceptor.HttpRequestExecuteAsyncMethodInnerClassConstructorInterceptor");
}
InstrumentMethod m = target.getDeclaredMethod("call");
if(m != null) {
if (m != null) {
logger.debug("Add method interceptor for nested class {}.{}", target.getName(), m.getName());
m.addInterceptor("com.navercorp.pinpoint.plugin.google.httpclient.interceptor.HttpRequestExecuteAsyncMethodInnerClassCallMethodInterceptor");
}
@@ -48,8 +48,8 @@ public class GsonPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.google.gson.Gson", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
for (InstrumentMethod m : target.getDeclaredMethods(MethodFilters.name("fromJson"))) {
m.addScopedInterceptor("com.navercorp.pinpoint.plugin.gson.interceptor.FromJsonInterceptor", GSON_SCOPE);
@@ -53,7 +53,7 @@ public class HttpClient4Plugin implements ProfilerPlugin, TransformTemplateAware
logger.debug("Add HttpClient4(4.0 ~ 4.2");
// Apache httpclient4 (version 4.0 ~ 4.2)
addAbstractHttpClient4Class(context, config);
addAbstractHttpClient4Class();
addAbstractPooledConnAdapterClass();
addManagedClientConnectionImplClass();
@@ -98,7 +98,7 @@ public class HttpClient4Plugin implements ProfilerPlugin, TransformTemplateAware
});
}
private void addAbstractHttpClient4Class(ProfilerPluginSetupContext context, HttpClient4PluginConfig config) {
private void addAbstractHttpClient4Class() {
transformTemplate.transform("org.apache.http.impl.client.AbstractHttpClient", new TransformCallback() {
@Override
@@ -254,8 +254,8 @@ public class HttpClient4Plugin implements ProfilerPlugin, TransformTemplateAware
transformTemplate.transform("org.apache.http.impl.nio.client.CloseableHttpAsyncClient", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
injectHttpAsyncClientExecuteMethodInterceptor(target, "org.apache.http.HttpHost", "org.apache.http.HttpRequest", "org.apache.http.protocol.HttpContext", "org.apache.http.concurrent.FutureCallback");
injectHttpAsyncClientExecuteMethodInterceptor(target, "org.apache.http.HttpHost", "org.apache.http.HttpRequest", "org.apache.http.concurrent.FutureCallback");
@@ -281,8 +281,8 @@ public class HttpClient4Plugin implements ProfilerPlugin, TransformTemplateAware
transformTemplate.transform("org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addGetter(RequestProducerGetter.class.getName(), HttpClient4Constants.FIELD_REQUEST_PRODUCER);
target.addGetter(ResultFutureGetter.class.getName(), HttpClient4Constants.FIELD_RESULT_FUTURE);
@@ -303,8 +303,8 @@ public class HttpClient4Plugin implements ProfilerPlugin, TransformTemplateAware
transformTemplate.transform("org.apache.http.concurrent.BasicFuture", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(AsyncTraceIdAccessor.class.getName());
@@ -87,11 +87,11 @@ public class IBatisPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader,
String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain,
byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final List<InstrumentMethod> methodsToTrace = target.getDeclaredMethods(methodFilter);
for (InstrumentMethod methodToTrace : methodsToTrace) {
@@ -61,8 +61,8 @@ public class JacksonPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(clazzName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
final InstrumentMethod constructor1 = target.getConstructor();
addInterceptor(constructor1, BASIC_METHOD_INTERCEPTOR, va(JacksonConstants.SERVICE_TYPE));
@@ -99,8 +99,8 @@ public class JacksonPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(clazzName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
final InstrumentMethod constructor1 = target.getConstructor();
addInterceptor(constructor1, BASIC_METHOD_INTERCEPTOR, va(JacksonConstants.SERVICE_TYPE));
@@ -145,8 +145,8 @@ public class JacksonPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(clazzName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name("readValue", "readValues"))) {
addInterceptor(method, READ_VALUE_INTERCEPTOR);
@@ -162,9 +162,9 @@ public class JacksonPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(clazzName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
// InterceptorScope scope = Instrumentor.getInterceptorScope(JACKSON_SCOPE);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
// InterceptorScope scope = instrumentor.getInterceptorScope(JACKSON_SCOPE);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name("writeValue"))) {
addInterceptor(method, BASIC_METHOD_INTERCEPTOR, va(JacksonConstants.SERVICE_TYPE));
@@ -40,8 +40,8 @@ public class JdkHttpPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("sun.net.www.protocol.http.HttpURLConnection", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addGetter(ConnectedGetter.class.getName(), "connected");
@@ -56,8 +56,8 @@ public class JsonLibPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(clazzName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name("toJSON"))) {
addInterceptor(method, PARSING_INTERCEPTOR);
@@ -78,8 +78,8 @@ public class JsonLibPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(clazzName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name("fromObject"))) {
addInterceptor(method, PARSING_INTERCEPTOR);
@@ -103,8 +103,8 @@ public class JsonLibPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(clazzName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name("fromObject"))) {
addInterceptor(method, PARSING_INTERCEPTOR);
@@ -51,8 +51,8 @@ public class JtdsPlugin implements ProfilerPlugin, TransformTemplateAware {
TransformCallback transformer = new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.ConnectionCloseInterceptor", JtdsConstants.JTDS_SCOPE);
@@ -83,8 +83,8 @@ public class JtdsPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.sourceforge.jtds.jdbc.Driver", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.DriverConnectInterceptor", va(new JtdsJdbcUrlParser()), JtdsConstants.JTDS_SCOPE, ExecutionPolicy.ALWAYS);
@@ -97,8 +97,8 @@ public class JtdsPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.sourceforge.jtds.jdbc.JtdsPreparedStatement", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.ParsingResultAccessor");
@@ -118,8 +118,8 @@ public class JtdsPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("net.sourceforge.jtds.jdbc.JtdsStatement", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
@@ -37,8 +37,8 @@ public class Log4jPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("org.apache.log4j.spi.LoggingEvent", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass mdcClass = Instrumentor.getInstrumentClass(loader, "org.apache.log4j.MDC", null);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass mdcClass = instrumentor.getInstrumentClass(loader, "org.apache.log4j.MDC", null);
if (mdcClass == null) {
logger.warn("modify fail. Because org.apache.log4j.MDC does not exist.");
@@ -54,7 +54,7 @@ public class Log4jPlugin implements ProfilerPlugin, TransformTemplateAware {
return null;
}
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addInterceptor("com.navercorp.pinpoint.plugin.log4j.interceptor.LoggingEventOfLog4jInterceptor");
return target.toBytecode();
@@ -38,8 +38,8 @@ public class LogbackPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("ch.qos.logback.classic.spi.LoggingEvent", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass mdcClass = Instrumentor.getInstrumentClass(loader, "org.slf4j.MDC", null);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass mdcClass = instrumentor.getInstrumentClass(loader, "org.slf4j.MDC", null);
if (mdcClass == null) {
logger.warn("modify fail. Because org.slf4j.MDC does not exist.");
@@ -55,7 +55,7 @@ public class LogbackPlugin implements ProfilerPlugin, TransformTemplateAware {
return null;
}
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addInterceptor("com.navercorp.pinpoint.plugin.logback.interceptor.LoggingEventOfLogbackInterceptor");
return target.toBytecode();
@@ -65,11 +65,11 @@ public class MyBatisPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(sqlSession, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader,
String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain,
byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, sqlSession, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, sqlSession, classfileBuffer);
final List<InstrumentMethod> methodsToTrace = target.getDeclaredMethods(methodFilter);
for (InstrumentMethod methodToTrace : methodsToTrace) {
@@ -55,8 +55,8 @@ public class MySqlPlugin implements ProfilerPlugin, TransformTemplateAware {
TransformCallback transformer = new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
if (!target.isInterceptable()) {
return null;
@@ -93,8 +93,8 @@ public class MySqlPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.mysql.jdbc.NonRegisteringDriver", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.DriverConnectInterceptor", va(new MySqlJdbcUrlParser(), false), MySqlConstants.MYSQL_SCOPE, ExecutionPolicy.ALWAYS);
@@ -107,8 +107,8 @@ public class MySqlPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.mysql.jdbc.PreparedStatement", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.ParsingResultAccessor");
@@ -129,8 +129,8 @@ public class MySqlPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.mysql.jdbc.JDBC4PreparedStatement", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final PreparedStatementBindingMethodFilter includes = PreparedStatementBindingMethodFilter.includes("setRowId", "setNClob", "setSQLXML");
target.addScopedInterceptor(includes, "com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.PreparedStatementBindVariableInterceptor", MySqlConstants.MYSQL_SCOPE, ExecutionPolicy.BOUNDARY);
@@ -145,8 +145,8 @@ public class MySqlPlugin implements ProfilerPlugin, TransformTemplateAware {
TransformCallback transformer = new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
if (!target.isInterceptable()) {
return null;
@@ -48,8 +48,8 @@ public class NingAsyncHttpClientPlugin implements ProfilerPlugin, TransformTempl
transformTemplate.transform("com.ning.http.client.AsyncHttpClient", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addInterceptor("com.navercorp.pinpoint.plugin.ning.asynchttpclient.interceptor.ExecuteRequestInterceptor");
return target.toBytecode();
@@ -59,8 +59,8 @@ public class OkHttpPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.squareup.okhttp.Call", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name("execute", "enqueue", "cancel"))) {
method.addInterceptor("com.navercorp.pinpoint.plugin.okhttp.interceptor.CallMethodInterceptor");
@@ -75,8 +75,8 @@ public class OkHttpPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.squareup.okhttp.Dispatcher", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name("execute", "cancel"))) {
logger.debug("[OkHttp] Add Dispatcher.execute | cancel interceptor.");
@@ -97,8 +97,8 @@ public class OkHttpPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.squareup.okhttp.Call$AsyncCall", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(AsyncTraceIdAccessor.class.getName());
InstrumentMethod executeMethod = target.getDeclaredMethod("execute");
@@ -116,8 +116,8 @@ public class OkHttpPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.squareup.okhttp.internal.http.HttpEngine", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addGetter(UserRequestGetter.class.getName(), OkHttpConstants.FIELD_USER_REQUEST);
target.addGetter(UserResponseGetter.class.getName(), OkHttpConstants.FIELD_USER_RESPONSE);
target.addGetter(ConnectionGetter.class.getName(), OkHttpConstants.FIELD_CONNECTION);
@@ -126,7 +126,7 @@ public class OkHttpPlugin implements ProfilerPlugin, TransformTemplateAware {
if (sendRequestMethod != null) {
logger.debug("[OkHttp] Add HttpEngine.sendRequest interceptor.");
final ObjectFactory objectFactory = ObjectFactory.byConstructor("com.navercorp.pinpoint.plugin.okhttp.OkHttpPluginConfig", Instrumentor.getProfilerConfig());
final ObjectFactory objectFactory = ObjectFactory.byConstructor("com.navercorp.pinpoint.plugin.okhttp.OkHttpPluginConfig", instrumentor.getProfilerConfig());
sendRequestMethod.addInterceptor("com.navercorp.pinpoint.plugin.okhttp.interceptor.HttpEngineSendRequestMethodInterceptor", va(objectFactory));
}
@@ -151,13 +151,13 @@ public class OkHttpPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("com.squareup.okhttp.Request$Builder", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
InstrumentMethod buildMethod = target.getDeclaredMethod("build");
if (buildMethod != null) {
logger.debug("[OkHttp] Add Request.Builder.build interceptor.");
if(Instrumentor.exist(loader, "com.squareup.okhttp.HttpUrl")) {
if(instrumentor.exist(loader, "com.squareup.okhttp.HttpUrl")) {
// over 2.4.0
target.addGetter(HttpUrlGetter.class.getName(), OkHttpConstants.FIELD_HTTP_URL);
buildMethod.addInterceptor("com.navercorp.pinpoint.plugin.okhttp.interceptor.RequestBuilderBuildMethodInterceptor");
@@ -56,8 +56,8 @@ public class OraclePlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("oracle.jdbc.driver.PhysicalConnection", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
@@ -86,8 +86,8 @@ public class OraclePlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("oracle.jdbc.driver.OracleDriver", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.DriverConnectInterceptor", va(new OracleJdbcUrlParser()), OracleConstants.ORACLE_SCOPE, ExecutionPolicy.ALWAYS);
@@ -100,14 +100,14 @@ public class OraclePlugin implements ProfilerPlugin, TransformTemplateAware {
TransformCallback transformer = new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
if (className.equals(CLASS_PREPARED_STATEMENT)) {
if (Instrumentor.exist(loader, CLASS_PREPARED_STATEMENT_WRAPPER)) {
if (instrumentor.exist(loader, CLASS_PREPARED_STATEMENT_WRAPPER)) {
return null;
}
}
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.ParsingResultAccessor");
@@ -130,14 +130,14 @@ public class OraclePlugin implements ProfilerPlugin, TransformTemplateAware {
TransformCallback transformer = new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
if (className.equals(CLASS_STATEMENT)) {
if (Instrumentor.exist(loader, CLASS_STATEMENT_WRAPPER)) {
if (instrumentor.exist(loader, CLASS_STATEMENT_WRAPPER)) {
return null;
}
}
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");
@@ -76,8 +76,8 @@ public class RedisPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
if (handler != null) {
handler.handle(target);
}
@@ -127,8 +127,8 @@ public class RedisPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("redis.clients.jedis.Client", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
target.addField(RedisConstants.METADATA_END_POINT);
final InstrumentMethod constructorEditorBuilderArg1 = target.getConstructor("java.lang.String");
@@ -150,8 +150,8 @@ public class RedisPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("redis.clients.jedis.Protocol", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.chain(MethodFilters.name("sendCommand", "read"), MethodFilters.modifierNot(Modifier.PRIVATE)))) {
method.addInterceptor("com.navercorp.pinpoint.plugin.redis.interceptor.ProtocolSendCommandAndReadMethodInterceptor");
@@ -193,8 +193,8 @@ public class RedisPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
if (handler != null) {
handler.handle(target);
}
@@ -46,8 +46,8 @@ public class SpringBeansPlugin implements ProfilerPlugin, TransformTemplateAware
transformTemplate.transform("org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
BeanMethodTransformer beanTransformer = new BeanMethodTransformer();
ObjectFactory beanFilterFactory = ObjectFactory.byStaticFactory("com.navercorp.pinpoint.plugin.spring.beans.interceptor.TargetBeanFilter", "of", context.getConfig());
@@ -31,8 +31,8 @@ import com.navercorp.pinpoint.bootstrap.logging.PLoggerFactory;
public class PostProcessorInterceptor extends AbstractSpringBeanCreationInterceptor implements AroundInterceptor2 {
private final PLogger logger = PLoggerFactory.getLogger(getClass());
public PostProcessorInterceptor(Instrumentor Instrumentor, TransformCallback transformer, TargetBeanFilter filter) {
super(Instrumentor, transformer, filter);
public PostProcessorInterceptor(Instrumentor instrumentor, TransformCallback transformer, TargetBeanFilter filter) {
super(instrumentor, transformer, filter);
}
//
@@ -44,8 +44,8 @@ public class SpringWebMvcPlugin implements ProfilerPlugin, TransformTemplateAwar
transformTemplate.transform("org.springframework.web.servlet.FrameworkServlet", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.getDeclaredMethod("doGet", "javax.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletResponse").addInterceptor(BasicMethodInterceptor.class.getName(), va(SPRING_MVC));
target.getDeclaredMethod("doPost", "javax.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletResponse").addInterceptor(BasicMethodInterceptor.class.getName(), va(SPRING_MVC));
@@ -87,10 +87,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
// TServiceClient.sendBase(String, TBase)
final InstrumentMethod sendBase = target.getDeclaredMethod("sendBase", "java.lang.String", "org.apache.thrift.TBase");
@@ -123,10 +123,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
// TAsyncClientManager.call(TAsyncMethodCall)
final InstrumentMethod call = target.getDeclaredMethod("call", "org.apache.thrift.async.TAsyncMethodCall");
@@ -146,10 +146,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(SocketAddressFieldAccessor.class.getName());
target.addField(AsyncMarkerFlagFieldAccessor.class.getName());
target.addField(AsyncTraceIdFieldAccessor.class.getName());
@@ -241,10 +241,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
// TBaseProcessor.process(TProtocol, TProtocol)
final InstrumentMethod process = target.getDeclaredMethod("process", "org.apache.thrift.protocol.TProtocol",
@@ -265,10 +265,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(ServerMarkerFlagFieldAccessor.class.getName());
// ProcessFunction.process(int, TProtocol, TProtocol, I)
@@ -296,10 +296,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(ServerMarkerFlagFieldAccessor.class.getName());
target.addField(AsyncMarkerFlagFieldAccessor.class.getName());
@@ -358,10 +358,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(SocketFieldAccessor.class.getName());
return target.toBytecode();
}
@@ -375,10 +375,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(SocketFieldAccessor.class.getName());
for (String[] parameterTypeGroup : parameterTypeGroups) {
@@ -399,10 +399,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(SocketFieldAccessor.class.getName());
target.addField(SocketAddressFieldAccessor.class.getName());
@@ -424,10 +424,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addField(SocketFieldAccessor.class.getName());
target.addGetter(TNonblockingTransportFieldGetter.class.getName(), ThriftConstants.FRAME_BUFFER_FIELD_TRANS_);
@@ -477,10 +477,10 @@ public class ThriftPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(targetClassName, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
final InstrumentClass target = Instrumentor.getInstrumentClass(loader, className, classfileBuffer);
final InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
// client
if (traceThriftClient) {
@@ -67,8 +67,8 @@ public class TomcatPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("org.apache.catalina.connector.Request", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
target.addField(TraceAccessor.class.getName());
target.addField(AsyncAccessor.class.getName());
@@ -93,8 +93,8 @@ public class TomcatPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("org.apache.catalina.connector.RequestFacade", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
if (target != null) {
target.weave("com.navercorp.pinpoint.plugin.tomcat.aspect.RequestFacadeAspect");
return target.toBytecode();
@@ -109,8 +109,8 @@ public class TomcatPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("org.apache.catalina.core.StandardHostValve", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
InstrumentMethod method = target.getDeclaredMethod("invoke", "org.apache.catalina.connector.Request", "org.apache.catalina.connector.Response");
if (method != null) {
@@ -126,8 +126,8 @@ public class TomcatPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("org.apache.catalina.core.StandardService", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
// Tomcat 6
InstrumentMethod startEditor = target.getDeclaredMethod("start");
@@ -150,8 +150,8 @@ public class TomcatPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("org.apache.catalina.connector.Connector", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
// Tomcat 6
InstrumentMethod initializeEditor = target.getDeclaredMethod("initialize");
@@ -174,8 +174,8 @@ public class TomcatPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("org.apache.catalina.loader.WebappLoader", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
// Tomcat 6 - org.apache.catalina.loader.WebappLoader.start()
InstrumentMethod startEditor = target.getDeclaredMethod("start");
@@ -198,8 +198,8 @@ public class TomcatPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform("org.apache.catalina.core.AsyncContextImpl", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
target.addField(AsyncTraceIdAccessor.class.getName());
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name("dispatch"))) {
method.addInterceptor("com.navercorp.pinpoint.plugin.tomcat.interceptor.AsyncContextImplDispatchMethodInterceptor");
@@ -63,8 +63,8 @@ public class UserPlugin implements ProfilerPlugin, TransformTemplateAware {
transformTemplate.transform(className, new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor Instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = Instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classfileBuffer);
for (InstrumentMethod method : target.getDeclaredMethods(MethodFilters.name(methodName))) {
try {
@@ -22,8 +22,8 @@ import java.security.ProtectionDomain;
* @author emeroad
*/
public interface ClassFileFilter {
public static final boolean SKIP = false;
public static final boolean CONTINUE = true;
boolean SKIP = false;
boolean CONTINUE = true;
boolean accept(ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classFileBuffer);
}