Skip to content

Commit

Permalink
[pinpoint-apm#2862] remove code using annotation logic in oracle plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
emeroad committed May 2, 2017
1 parent a607bb9 commit 0bd9c52
Showing 1 changed file with 32 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@

import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass;
import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException;
import com.navercorp.pinpoint.bootstrap.instrument.InstrumentMethod;
import com.navercorp.pinpoint.bootstrap.instrument.Instrumentor;
import com.navercorp.pinpoint.bootstrap.instrument.MethodFilter;
import com.navercorp.pinpoint.bootstrap.instrument.transformer.TransformCallback;
import com.navercorp.pinpoint.bootstrap.instrument.transformer.TransformTemplate;
import com.navercorp.pinpoint.bootstrap.instrument.transformer.TransformTemplateAware;
Expand All @@ -26,9 +28,11 @@
import com.navercorp.pinpoint.bootstrap.plugin.ProfilerPlugin;
import com.navercorp.pinpoint.bootstrap.plugin.ProfilerPluginSetupContext;
import com.navercorp.pinpoint.bootstrap.plugin.jdbc.JdbcUrlParserV2;
import com.navercorp.pinpoint.bootstrap.plugin.jdbc.PreparedStatementBindingMethodFilter;
import com.navercorp.pinpoint.bootstrap.plugin.util.InstrumentUtils;

import java.security.ProtectionDomain;
import java.util.List;

import static com.navercorp.pinpoint.common.util.VarArgs.va;

Expand Down Expand Up @@ -168,17 +172,20 @@ public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, Strin

int maxBindValueSize = config.getMaxSqlBindValueSize();

target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.PreparedStatementExecuteQueryInterceptor", va(maxBindValueSize), ORACLE_SCOPE);
final String preparedStatementInterceptor = "com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.PreparedStatementExecuteQueryInterceptor";
InstrumentUtils.findMethod(target, "execute")
.addScopedInterceptor(preparedStatementInterceptor, va(maxBindValueSize), CUBRID_SCOPE);
.addScopedInterceptor(preparedStatementInterceptor, va(maxBindValueSize), ORACLE_SCOPE);
InstrumentUtils.findMethod(target, "executeQuery")
.addScopedInterceptor(preparedStatementInterceptor, va(maxBindValueSize), CUBRID_SCOPE);
.addScopedInterceptor(preparedStatementInterceptor, va(maxBindValueSize), ORACLE_SCOPE);
InstrumentUtils.findMethod(target, "executeUpdate")
.addScopedInterceptor(preparedStatementInterceptor, va(maxBindValueSize), CUBRID_SCOPE);
.addScopedInterceptor(preparedStatementInterceptor, va(maxBindValueSize), ORACLE_SCOPE);

if (config.isTraceSqlBindValue()) {
target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.PreparedStatementBindVariableInterceptor", ORACLE_SCOPE);
MethodFilter filter = new PreparedStatementBindingMethodFilter();
List<InstrumentMethod> declaredMethods = target.getDeclaredMethods(filter);
for (InstrumentMethod method : declaredMethods) {
method.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.PreparedStatementBindVariableInterceptor", ORACLE_SCOPE);
}
}

return target.toBytecode();
Expand All @@ -205,7 +212,13 @@ public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, Strin
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.ParsingResultAccessor");
target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.BindValueAccessor");

target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.CallableStatementRegisterOutParameterInterceptor", ORACLE_SCOPE);
final String callableStatementInterceptor = "com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.CallableStatementRegisterOutParameterInterceptor";
InstrumentUtils.findMethod(target, "registerOutParameter", "int", "int")
.addScopedInterceptor(callableStatementInterceptor, ORACLE_SCOPE);
InstrumentUtils.findMethod(target, "registerOutParameter", "int", "int", "int")
.addScopedInterceptor(callableStatementInterceptor, ORACLE_SCOPE);
InstrumentUtils.findMethod(target, "registerOutParameter", "int", "int", "java.lang.String")
.addScopedInterceptor(callableStatementInterceptor, ORACLE_SCOPE);

return target.toBytecode();
}
Expand All @@ -230,8 +243,19 @@ public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, Strin

target.addField("com.navercorp.pinpoint.bootstrap.plugin.jdbc.DatabaseInfoAccessor");

target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.StatementExecuteQueryInterceptor", ORACLE_SCOPE);
target.addScopedInterceptor("com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.StatementExecuteUpdateInterceptor", ORACLE_SCOPE);
final String executeQueryInterceptor = "com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.StatementExecuteQueryInterceptor";
InstrumentUtils.findMethod(target, "executeQuery", "java.lang.String")
.addScopedInterceptor(executeQueryInterceptor, ORACLE_SCOPE);

final String executeUpdateInterceptor = "com.navercorp.pinpoint.bootstrap.plugin.jdbc.interceptor.StatementExecuteUpdateInterceptor";
InstrumentUtils.findMethod(target, "executeUpdate", "java.lang.String")
.addScopedInterceptor(executeUpdateInterceptor, ORACLE_SCOPE);
InstrumentUtils.findMethod(target, "executeUpdate", "java.lang.String", "int")
.addScopedInterceptor(executeUpdateInterceptor, ORACLE_SCOPE);
InstrumentUtils.findMethod(target, "execute", "java.lang.String")
.addScopedInterceptor(executeUpdateInterceptor, ORACLE_SCOPE);
InstrumentUtils.findMethod(target, "execute", "java.lang.String", "int")
.addScopedInterceptor(executeUpdateInterceptor, ORACLE_SCOPE);

return target.toBytecode();
}
Expand Down

0 comments on commit 0bd9c52

Please sign in to comment.