From 01c0bc2e6249f4cbd916417b37367febfeaf93c9 Mon Sep 17 00:00:00 2001 From: Chisu Yu Date: Wed, 22 Aug 2012 10:32:28 +0000 Subject: [PATCH] =?UTF-8?q?[=EC=9C=A0=EC=B9=98=EC=88=98]=20[NOBTS]=20add?= =?UTF-8?q?=20interceptor=20debugging=20code.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@532 84d0f5b1-2673-498c-a247-62c4ff18d310 --- pom.xml | 9 + .../java/com/profiler/TomcatProfiler.java | 77 ++++---- .../java/com/profiler/context/Header.java | 18 ++ .../interceptor/InterceptorRegistry.java | 10 +- .../interceptor/bci/JavaAssistClass.java | 76 +++++--- .../EntryPointStandardHostValveModifier.java | 170 ++++++------------ .../tomcat/InvokeMethodInterceptor.java | 72 ++++++++ .../com/profiler/trace/RequestTracer.java | 12 +- .../interceptor/InterceptorRegistryTest.java | 20 +-- .../com/profiler/interceptor/TestObject.java | 2 +- 10 files changed, 258 insertions(+), 208 deletions(-) create mode 100644 src/main/java/com/profiler/context/Header.java create mode 100644 src/main/java/com/profiler/modifier/tomcat/InvokeMethodInterceptor.java diff --git a/pom.xml b/pom.xml index 3a7c6b744..be47a4c73 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,15 @@ + + + org.javassist + javassist + 3.16.1-GA + compile + + + org.javassist javassist diff --git a/src/main/java/com/profiler/TomcatProfiler.java b/src/main/java/com/profiler/TomcatProfiler.java index ff152d06f..f92da6e03 100644 --- a/src/main/java/com/profiler/TomcatProfiler.java +++ b/src/main/java/com/profiler/TomcatProfiler.java @@ -12,56 +12,51 @@ import com.profiler.modifier.DefaultModifierRegistry; import com.profiler.modifier.Modifier; import com.profiler.modifier.ModifierRegistry; - import com.profiler.config.TomcatProfilerConfig; public class TomcatProfiler implements ClassFileTransformer { - private static final Logger logger = Logger.getLogger(TomcatProfiler.class.getName()); + private static final Logger logger = Logger.getLogger(TomcatProfiler.class.getName()); - private String agentArgString = ""; - private Instrumentation instrumentation; - private ByteCodeInstrumentor byteCodeInstrumentor; + private String agentArgString = ""; + private Instrumentation instrumentation; + private ByteCodeInstrumentor byteCodeInstrumentor; - private final ModifierRegistry modifierRepository; - private TomcatProfilerConfig tomcatProfilerConfig; + private final ModifierRegistry modifierRepository; + private TomcatProfilerConfig tomcatProfilerConfig; - public static void premain(String agentArgs, Instrumentation inst) { - TomcatProfilerConfig tomcatProfilerConfig = TomcatProfilerConfig.readConfigFile(); - new TomcatProfiler(agentArgs, inst, tomcatProfilerConfig); - } + public static void premain(String agentArgs, Instrumentation inst) { + TomcatProfilerConfig tomcatProfilerConfig = TomcatProfilerConfig.readConfigFile(); + new TomcatProfiler(agentArgs, inst, tomcatProfilerConfig); + } - public TomcatProfiler(String agentArgs, Instrumentation inst, TomcatProfilerConfig tomcatProfilerConfig) { - this.agentArgString = agentArgs; - this.instrumentation = inst; - this.instrumentation.addTransformer(this); - this.byteCodeInstrumentor = new JavaAssistByteCodeInstrumentor(); -// this.classPool = createClassPool(); - this.modifierRepository = createModifierRegistry(byteCodeInstrumentor, tomcatProfilerConfig); - this.tomcatProfilerConfig = tomcatProfilerConfig; - } + public TomcatProfiler(String agentArgs, Instrumentation inst, TomcatProfilerConfig tomcatProfilerConfig) { + this.agentArgString = agentArgs; + this.instrumentation = inst; + this.instrumentation.addTransformer(this); + this.byteCodeInstrumentor = new JavaAssistByteCodeInstrumentor(); + // this.classPool = createClassPool(); + this.modifierRepository = createModifierRegistry(byteCodeInstrumentor, tomcatProfilerConfig); + this.tomcatProfilerConfig = tomcatProfilerConfig; + } - private ModifierRegistry createModifierRegistry(ByteCodeInstrumentor byteCodeInstrumentor, TomcatProfilerConfig tomcatProfilerConfig) { - DefaultModifierRegistry modifierRepository = new DefaultModifierRegistry(byteCodeInstrumentor); - modifierRepository.addTomcatModifier(); - if (tomcatProfilerConfig.enableJdbcProfile()) { - modifierRepository.addJdbcModifier(); - } - return modifierRepository; - } + private ModifierRegistry createModifierRegistry(ByteCodeInstrumentor byteCodeInstrumentor, TomcatProfilerConfig tomcatProfilerConfig) { + DefaultModifierRegistry modifierRepository = new DefaultModifierRegistry(byteCodeInstrumentor); + modifierRepository.addTomcatModifier(); + if (tomcatProfilerConfig.enableJdbcProfile()) { + modifierRepository.addJdbcModifier(); + } + return modifierRepository; + } + @Override + public byte[] transform(ClassLoader classLoader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classFileBuffer) throws IllegalClassFormatException { + Modifier findModifier = this.modifierRepository.findModifier(className); + if (findModifier == null) { + return null; + } + String javassistClassName = className.replace('/', '.'); - - - - @Override - public byte[] transform(ClassLoader classLoader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classFileBuffer) throws IllegalClassFormatException { - Modifier findModifier = this.modifierRepository.findModifier(className); - if (findModifier == null) { - return null; - } - String javassistClassName = className.replace('/', '.'); - - return findModifier.modify(classLoader, javassistClassName, classFileBuffer); - } + return findModifier.modify(classLoader, javassistClassName, classFileBuffer); + } } diff --git a/src/main/java/com/profiler/context/Header.java b/src/main/java/com/profiler/context/Header.java new file mode 100644 index 000000000..399fd8bec --- /dev/null +++ b/src/main/java/com/profiler/context/Header.java @@ -0,0 +1,18 @@ +package com.profiler.context; + +public enum Header { + + HTTP_TRACE_ID("x-tracer-trace_id"), + HTTP_TRACE_DEBUG("x-tracer-debug"), + HTTP_TRACE_PARENT_SPAN_ID("x-tracer-parent_span_id"); + + private String token; + + Header(String token) { + this.token = token; + } + + public String toString() { + return token; + } +} diff --git a/src/main/java/com/profiler/interceptor/InterceptorRegistry.java b/src/main/java/com/profiler/interceptor/InterceptorRegistry.java index 08813b6a6..0d4766aad 100644 --- a/src/main/java/com/profiler/interceptor/InterceptorRegistry.java +++ b/src/main/java/com/profiler/interceptor/InterceptorRegistry.java @@ -5,14 +5,14 @@ import java.util.concurrent.ConcurrentMap; public class InterceptorRegistry { - private static final ConcurrentMap INTERCEPTOR_MAP = new ConcurrentHashMap(256); + private static final ConcurrentMap INTERCEPTOR_MAP = new ConcurrentHashMap(256); - public static void addInterceptor(String className, Interceptor interceptor) { - INTERCEPTOR_MAP.put(className, interceptor); + public static void addInterceptor(Integer key, Interceptor interceptor) { + INTERCEPTOR_MAP.put(key, interceptor); } - public static Interceptor getInterceptor(String className) { - return INTERCEPTOR_MAP.get(className); + public static Interceptor getInterceptor(int key) { + return INTERCEPTOR_MAP.get(key); } } diff --git a/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java b/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java index 32cab092e..9ac358631 100644 --- a/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java +++ b/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java @@ -1,40 +1,66 @@ package com.profiler.interceptor.bci; -import com.profiler.interceptor.Interceptor; -import javassist.CannotCompileException; -import javassist.CtClass; - import java.io.IOException; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; +import javassist.CannotCompileException; +import javassist.CtClass; +import javassist.CtMethod; +import javassist.NotFoundException; + +import com.profiler.interceptor.Interceptor; +import com.profiler.interceptor.InterceptorRegistry; +import com.profiler.interceptor.StaticAroundInterceptor; + public class JavaAssistClass implements InstrumentClass { - private final Logger logger = Logger.getLogger(this.getClass().getName()); + private final Logger logger = Logger.getLogger(this.getClass().getName()); - private JavaAssistByteCodeInstrumentor instrumentor; - private CtClass ctClass; + private JavaAssistByteCodeInstrumentor instrumentor; + private CtClass ctClass; - public JavaAssistClass(JavaAssistByteCodeInstrumentor instrumentor, CtClass ctClass) { - this.instrumentor = instrumentor; - this.ctClass = ctClass; - } + private final AtomicInteger interceptorNo = new AtomicInteger(1); - @Override - public void addInterceptor(String methodName, String[] args, Interceptor interceptor) { + public JavaAssistClass(JavaAssistByteCodeInstrumentor instrumentor, CtClass ctClass) { + this.instrumentor = instrumentor; + this.ctClass = ctClass; + } + @Override + public void addInterceptor(String methodName, String[] args, Interceptor interceptor) { + int num = interceptorNo.getAndIncrement(); + InterceptorRegistry.addInterceptor(num, interceptor); - } + try { + CtClass[] params = new CtClass[args.length]; - @Override - public byte[] toBytecode() { - try { - return ctClass.toBytecode(); - } catch (IOException e) { - logger.log(Level.INFO, "IoException class:" + ctClass.getName() + " " + e.getMessage(), e); - } catch (CannotCompileException e) { - logger.log(Level.INFO, "CannotCompileException class:" + ctClass.getName() + " " + e.getMessage(), e); - } - return null; - } + for (int i = 0; i < args.length; i++) { + params[i] = instrumentor.getClassPool().getCtClass(args[i]); + } + CtMethod method = ctClass.getDeclaredMethod(methodName, params); + +// if (interceptor instanceof StaticAroundInterceptor) { + method.insertBefore("System.out.println(\"request=\" + this.getClass().getClassLoader()); ((com.profiler.interceptor.StaticAroundInterceptor) com.profiler.interceptor.InterceptorRegistry.getInterceptor(" + num + ")).before(this, \"" + ctClass.getName() + "\", \"" + methodName + "\", $args);"); +// } + + } catch (NotFoundException e) { + e.printStackTrace(); + } catch (CannotCompileException e) { + e.printStackTrace(); + } + } + + @Override + public byte[] toBytecode() { + try { + return ctClass.toBytecode(); + } catch (IOException e) { + logger.log(Level.INFO, "IoException class:" + ctClass.getName() + " " + e.getMessage(), e); + } catch (CannotCompileException e) { + logger.log(Level.INFO, "CannotCompileException class:" + ctClass.getName() + " " + e.getMessage(), e); + } + return null; + } } diff --git a/src/main/java/com/profiler/modifier/tomcat/EntryPointStandardHostValveModifier.java b/src/main/java/com/profiler/modifier/tomcat/EntryPointStandardHostValveModifier.java index 83d30cf31..05955822c 100644 --- a/src/main/java/com/profiler/modifier/tomcat/EntryPointStandardHostValveModifier.java +++ b/src/main/java/com/profiler/modifier/tomcat/EntryPointStandardHostValveModifier.java @@ -2,18 +2,17 @@ package com.profiler.modifier.tomcat; import static com.profiler.config.TomcatProfilerConstant.CLASS_NAME_REQUEST_THRIFT_DTO; -import com.profiler.interceptor.bci.ByteCodeInstrumentor; -import javassist.ByteArrayClassPath; -import javassist.ClassPool; -import javassist.CtClass; -import javassist.CtMethod; - -import com.profiler.modifier.AbstractModifier; -import com.profiler.trace.RequestTracer; - import java.util.logging.Level; import java.util.logging.Logger; +import javassist.ByteArrayClassPath; + +import com.profiler.interceptor.Interceptor; +import com.profiler.interceptor.bci.ByteCodeInstrumentor; +import com.profiler.interceptor.bci.InstrumentClass; +import com.profiler.modifier.AbstractModifier; +import com.profiler.trace.RequestTracer; + /** * Modify org.apache.catalina.core.StandardHostValve class * @@ -31,123 +30,53 @@ public class EntryPointStandardHostValveModifier extends AbstractModifier { public String getTargetClass() { return "org/apache/catalina/core/StandardHostValve"; } - + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { - if (logger.isLoggable(Level.INFO)){ - logger.info("Modifing. " + javassistClassName); - } - return changeServiceMethod(classLoader, javassistClassName, classFileBuffer); - } + if (logger.isLoggable(Level.INFO)) { + logger.info("Modifing. " + javassistClassName); + } + + addRequestTracerToCurrentClassLoader(classLoader); + + System.out.println("\n\n\n\n\n\n"); + System.out.println("EntryPointStandardHostValveModifier=" + classLoader); + System.out.println("EntryPointStandardHostValveModifier parent=" + classLoader.getParent()); - private byte[] changeServiceMethod(ClassLoader classLoader, String javassistClassName, byte[] classfileBuffer) { - classPool.insertClassPath(new ByteArrayClassPath(javassistClassName, classfileBuffer)); try { - addRequestTracerToCurrentClassLoader(classLoader); - - CtClass cc = classPool.get(javassistClassName); - CtClass[] params = new CtClass[2]; - - params[0] = classPool.getCtClass("org.apache.catalina.connector.Request"); - params[1] = classPool.getCtClass("org.apache.catalina.connector.Response"); - CtMethod serviceMethod = cc.getDeclaredMethod("invoke", params); - - serviceMethod.insertBefore(getInvokeMethodBeforeInsertCode()); - serviceMethod.insertAfter(getInvokeMethodAfterInsertCode()); - - CtClass exceptionType = classPool.get("java.lang.Throwable"); - serviceMethod.addCatch(getInvokeMethodCatchInsertCode(), exceptionType); - - printClassConvertComplete(javassistClassName); - - return cc.toBytecode(); - } catch (Exception e) { - if (logger.isLoggable(Level.WARNING)) { - logger.log(Level.WARNING, e.getMessage(), e); - } +// Class.forName("com.profiler.modifier.tomcat.InvokeMethodInterceptor", false, classLoader); + + System.out.println(org.apache.catalina.Manager.class.getClassLoader().loadClass("com.profiler.modifier.tomcat.InvokeMethodInterceptor").newInstance().getClass().getClassLoader()); + + System.out.println(classLoader.loadClass("com.profiler.modifier.tomcat.InvokeMethodInterceptor").newInstance().getClass().getClassLoader()); + } catch (InstantiationException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (IllegalAccessException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (ClassNotFoundException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); } - return null; - } + System.out.println("\n\n\n\n\n\n"); - private String getInvokeMethodBeforeInsertCode() { - StringBuilder insertCode = new StringBuilder(); - insertCode.append("{"); - insertCode.append("long requestTime=System.currentTimeMillis();"); + this.byteCodeInstrumentor.checkLibrary(classLoader, javassistClassName); - insertCode.append("javax.servlet.http.HttpServletRequest tempRequest=(javax.servlet.http.HttpServletRequest)$1;"); - insertCode.append("String requestURL=tempRequest.getRequestURI();"); - insertCode.append("String clientIP=tempRequest.getRemoteAddr();"); - insertCode.append(getParameterValues()); - insertCode.append(RequestTracer.FQCN).append(".startTransaction(requestURL,clientIP,requestTime,params);"); + classPool.insertClassPath(new ByteArrayClassPath(javassistClassName, classFileBuffer)); - if (logger.isLoggable(Level.FINE)) { - insertCode.append("System.out.println(\"--- ApplicationFilterChain.doFilter() is started.\");"); + InstrumentClass aClass = this.byteCodeInstrumentor.getClass(javassistClassName); + + try { + aClass.addInterceptor("invoke", new String[] { "org.apache.catalina.connector.Request", "org.apache.catalina.connector.Response" }, (Interceptor) org.apache.catalina.Manager.class.getClassLoader().loadClass("com.profiler.modifier.tomcat.InvokeMethodInterceptor").newInstance()); + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); } - insertCode.append("}"); - return insertCode.toString(); - } - - private StringBuilder getParameterValues() { - StringBuilder insertCode = new StringBuilder(); - insertCode.append("java.util.Enumeration attrs=tempRequest.getParameterNames();"); - insertCode.append("StringBuilder params=new StringBuilder();"); - insertCode.append("while(attrs.hasMoreElements()) {"); - insertCode.append("String keyString=attrs.nextElement().toString();"); - - if (logger.isLoggable(Level.FINE)) { - insertCode.append("System.out.println(keyString+\"=\"+tempRequest.getParameter(keyString));"); - } - - insertCode.append("Object value=tempRequest.getParameter(keyString);"); - insertCode.append("if(value!=null) {"); - insertCode.append("String valueString=value.toString();"); - insertCode.append("int valueStringLength=valueString.length();"); - insertCode.append("if(valueStringLength>0 && valueStringLength<100) params.append(keyString).append(\"=\").append(valueString).append(\",\");"); - insertCode.append("}}"); - - if (logger.isLoggable(Level.FINE)) { - insertCode.append("System.out.println(params);"); - } - - return insertCode; - } - - private String getInvokeMethodAfterInsertCode() { - StringBuilder insertCode = new StringBuilder(); - insertCode.append("{"); - insertCode.append(RequestTracer.FQCN).append(".endTransaction();"); - - if (logger.isLoggable(Level.FINE)) { - insertCode.append("System.out.println(\"--- ApplicationFilterChain.doFilter() is ended.\");"); - } - - insertCode.append("}"); - - return insertCode.toString(); - } - - private String getInvokeMethodCatchInsertCode() { - StringBuilder insertCode = new StringBuilder(); - - if (logger.isLoggable(Level.FINE)) { - insertCode.append("{"); - insertCode.append("System.out.println(\"------------------------------------------------\");"); - insertCode.append("System.out.println(\"--- \"+$e.getMessage()+\" is occured !!!\");"); - } - - insertCode.append(RequestTracer.FQCN).append(".exceptionTransaction($e);"); - - if (logger.isLoggable(Level.FINE)) { - insertCode.append("System.out.println(\"------------------------------------------------\");"); - } - - insertCode.append("throw $e;"); - - if (logger.isLoggable(Level.FINE)) { - insertCode.append("}"); - } - - return insertCode.toString(); + return aClass.toBytecode(); } private void addRequestTracerToCurrentClassLoader(ClassLoader classLoader) { @@ -155,10 +84,11 @@ public class EntryPointStandardHostValveModifier extends AbstractModifier { classLoader.loadClass(RequestTracer.FQCN); classLoader.loadClass(CLASS_NAME_REQUEST_THRIFT_DTO); classLoader.loadClass("org.apache.thrift.TBase"); + // classLoader.loadClass("com.profiler.modifier.tomcat.InvokeMethodInterceptor"); } catch (Exception e) { - if(logger.isLoggable(Level.WARNING)) { - logger.log(Level.WARNING, e.getMessage(), e); - } + if (logger.isLoggable(Level.WARNING)) { + logger.log(Level.WARNING, e.getMessage(), e); + } } } } \ No newline at end of file diff --git a/src/main/java/com/profiler/modifier/tomcat/InvokeMethodInterceptor.java b/src/main/java/com/profiler/modifier/tomcat/InvokeMethodInterceptor.java new file mode 100644 index 000000000..9357ec0d3 --- /dev/null +++ b/src/main/java/com/profiler/modifier/tomcat/InvokeMethodInterceptor.java @@ -0,0 +1,72 @@ +package com.profiler.modifier.tomcat; + +import java.util.Enumeration; + +import javax.servlet.http.HttpServletRequest; + +import com.profiler.context.Header; +import com.profiler.context.RequestContext; +import com.profiler.context.Trace; +import com.profiler.context.TraceID; +import com.profiler.context.gen.Annotation; +import com.profiler.interceptor.StaticAroundInterceptor; +import com.profiler.trace.RequestTracer; + +public class InvokeMethodInterceptor implements StaticAroundInterceptor { + + @Override + public void before(Object target, String className, String methodName, Object[] args) { + System.out.println("\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + System.out.println("\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + System.out.println("\n\n\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + + System.out.println("interceptor=" + InvokeMethodInterceptor.class.getClassLoader()); + + javax.servlet.http.HttpServletRequest request = (javax.servlet.http.HttpServletRequest) args[0]; + String requestURL = request.getRequestURI(); + String clientIP = request.getRemoteAddr(); + String traceID = request.getHeader(Header.HTTP_TRACE_ID.toString()); + String parentSpanID = request.getHeader(Header.HTTP_TRACE_PARENT_SPAN_ID.toString()); + Boolean debug = Boolean.valueOf(request.getHeader(Header.HTTP_TRACE_DEBUG.toString())); + String parameters = getParameter(request); + + if (traceID == null) + traceID = TraceID.newTraceID(); + + Trace trace = RequestContext.getTrace(traceID, parentSpanID, "StandardHostValveInterceptor", debug); + + Annotation a = new Annotation(); + a.setTimestamp(System.currentTimeMillis()); + + RequestTracer.startTransaction(requestURL, clientIP, System.currentTimeMillis(), parameters); + + } + + @Override + public void after(Object target, String className, String methodName, Object[] args, Object result) { + RequestTracer.endTransaction(); + } + + private String getParameter(HttpServletRequest request) { + Enumeration attrs = request.getParameterNames(); + + StringBuilder params = new StringBuilder(); + + while (attrs.hasMoreElements()) { + String keyString = attrs.nextElement().toString(); + + System.out.println(request.getParameter(keyString)); + + Object value = request.getParameter(keyString); + if (value != null) { + String valueString = value.toString(); + int valueStringLength = valueString.length(); + + if (valueStringLength > 0 && valueStringLength < 100) + params.append(keyString).append("=").append(valueString); + } + } + + return params.toString(); + } +} diff --git a/src/main/java/com/profiler/trace/RequestTracer.java b/src/main/java/com/profiler/trace/RequestTracer.java index f80b4f147..07b386a2b 100644 --- a/src/main/java/com/profiler/trace/RequestTracer.java +++ b/src/main/java/com/profiler/trace/RequestTracer.java @@ -19,7 +19,7 @@ public class RequestTracer { private static final ThreadLocal currentRequestHash = new ThreadLocal(); private static final Set requestSet = Collections.synchronizedSet(new HashSet()); - public static void startTransaction(String requestURL, String clientIP, long requestTime, StringBuilder params) { + public static void startTransaction(String requestURL, String clientIP, long requestTime, String parameters) { long cpuUserTime[] = SystemUtils.getThreadTime(); String tempRequestID = Thread.currentThread().getName() + "_" + System.nanoTime(); @@ -33,11 +33,11 @@ public class RequestTracer { dto.setClientIP(clientIP); dto.setRequestURL(requestURL); - int paramsLength = params.length(); - if (paramsLength > 0) { - params.deleteCharAt(paramsLength - 1); - dto.setExtraData1(params.toString()); - } +// int paramsLength = params.length(); +// if (paramsLength > 0) { +// params.deleteCharAt(paramsLength - 1); +// dto.setExtraData1(params.toString()); +// } DataSender.getInstance().addDataToSend(dto); } diff --git a/src/test/java/com/profiler/interceptor/InterceptorRegistryTest.java b/src/test/java/com/profiler/interceptor/InterceptorRegistryTest.java index b90f6c6f2..109fab01b 100644 --- a/src/test/java/com/profiler/interceptor/InterceptorRegistryTest.java +++ b/src/test/java/com/profiler/interceptor/InterceptorRegistryTest.java @@ -1,17 +1,17 @@ package com.profiler.interceptor; -import javassist.*; -import javassist.bytecode.Descriptor; -import javassist.expr.ExprEditor; -import javassist.expr.MethodCall; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; -import org.junit.Test; - import java.io.IOException; import java.lang.reflect.Method; import java.util.Map; +import javassist.CannotCompileException; +import javassist.ClassPool; +import javassist.CtClass; +import javassist.CtMethod; +import javassist.NotFoundException; + +import org.junit.Test; + public class InterceptorRegistryTest { @Test public void methodName() throws NoSuchMethodException { @@ -27,7 +27,7 @@ public class InterceptorRegistryTest { @Test public void interceptor() throws NotFoundException, CannotCompileException, IllegalAccessException, InstantiationException, IOException { - InterceptorRegistry.addInterceptor("a", new AroundInterceptor() { + InterceptorRegistry.addInterceptor(1, new AroundInterceptor() { @Override public void before(InterceptorContext ctx) { System.out.println("before ctx:" + ctx ); @@ -63,7 +63,7 @@ public class InterceptorRegistryTest { "ctx = new com.profiler.interceptor.InterceptorContext();" + "ctx.setParameter($args);" + // InterceptorRegistry.class.getName() + ".getInterceptor(\"a\").before(ctx);" + - "interceptor = (com.profiler.interceptor.AroundInterceptor) " + InterceptorRegistry.class.getName() + ".getInterceptor(\"a\");"+ + "interceptor = (com.profiler.interceptor.AroundInterceptor) " + InterceptorRegistry.class.getName() + ".getInterceptor(1);"+ "interceptor.before(ctx);" + "}"); hello.addCatch("{" + diff --git a/src/test/java/com/profiler/interceptor/TestObject.java b/src/test/java/com/profiler/interceptor/TestObject.java index 3ae8a3a60..468930b64 100644 --- a/src/test/java/com/profiler/interceptor/TestObject.java +++ b/src/test/java/com/profiler/interceptor/TestObject.java @@ -1,6 +1,6 @@ package com.profiler.interceptor; -public class TestObject{ +public class TestObject { public String hello(String a) { System.out.println("a:" + a);