[강운덕] [LUCYSUS-1744] tracevariable 추가api를 별도 클래스로 추출.

git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@577 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
Woonduk Kang
2012-09-04 10:28:26 +00:00
parent ee0b2d1e36
commit 94e6a2f2ed
7 changed files with 83 additions and 73 deletions
@@ -45,7 +45,8 @@ public class MySQLStatementModifier extends AbstractModifier {
if (logger.isLoggable(Level.INFO)) {
logger.info("executeUpdate =" + executeUpdate);
}
addTraceData((JavaAssistClass) aClass);
// TODO 아무래도 에러 체크를 Exception으로 변경하는게 좋을것 같음.
aClass.addTraceVariable("__url", "__setUrl", "__getUrl", "java.lang.String");
if (executeQuery && executeQuery) {
@@ -54,23 +55,5 @@ public class MySQLStatementModifier extends AbstractModifier {
return null;
}
private void addTraceData(JavaAssistClass aClass) {
try {
ClassPool classPool1 = byteCodeInstrumentor.getClassPool();
JavaAssistClass jc = (JavaAssistClass) aClass;
CtClass ctClass = jc.getCtClass();
CtClass string = classPool1.get("java.lang.String");
CtField traceUrl = new CtField(string, "__url", ctClass);
traceUrl.setModifiers(AccessFlag.PUBLIC);
ctClass.addField(traceUrl);
CtMethod setUrl = CtNewMethod.setter("__setUrl", traceUrl);
ctClass.addMethod(setUrl);
CtMethod getUrl = CtNewMethod.getter("__getUrl", traceUrl);
ctClass.addMethod(getUrl);
} catch (NotFoundException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (CannotCompileException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
}