mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-21 02:35:53 +10:00
[강운덕] [LUCYSUS-1744] api 를 상수로 매핑하는 코드 개발.
git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@927 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
@@ -4,6 +4,8 @@ import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.profiler.common.mapping.ApiMappingTable;
|
||||
import com.profiler.common.mapping.ApiUtils;
|
||||
import com.profiler.interceptor.*;
|
||||
import com.profiler.util.JavaAssistUtils;
|
||||
import javassist.*;
|
||||
@@ -166,6 +168,9 @@ public class JavaAssistClass implements InstrumentClass {
|
||||
if (interceptor instanceof ByteCodeMethodDescriptorSupport) {
|
||||
setMethodDescriptor(behavior, (ByteCodeMethodDescriptorSupport) interceptor);
|
||||
}
|
||||
if (interceptor instanceof ApiIdSupport) {
|
||||
setApiId(behavior, (ApiIdSupport) interceptor);
|
||||
}
|
||||
} else {
|
||||
interceptor = InterceptorRegistry.getInterceptor(interceptorId);
|
||||
}
|
||||
@@ -197,6 +202,13 @@ public class JavaAssistClass implements InstrumentClass {
|
||||
}
|
||||
}
|
||||
|
||||
private void setApiId(CtBehavior behavior, ApiIdSupport interceptor) throws NotFoundException {
|
||||
CtClass[] parameterTypes = behavior.getParameterTypes();
|
||||
String[] parameterType = JavaAssistUtils.getParameterType(parameterTypes);
|
||||
int apiId = ApiMappingTable.findApiId(ctClass.getName(), behavior.getName(), parameterType);
|
||||
interceptor.setApiId(apiId);
|
||||
}
|
||||
|
||||
private void setMethodDescriptor(CtBehavior behavior, ByteCodeMethodDescriptorSupport interceptor) throws NotFoundException {
|
||||
DefaultMethodDescriptor methodDescriptor = new DefaultMethodDescriptor();
|
||||
|
||||
@@ -204,26 +216,20 @@ public class JavaAssistClass implements InstrumentClass {
|
||||
methodDescriptor.setMethodName(methodName);
|
||||
|
||||
methodDescriptor.setClassName(ctClass.getName());
|
||||
methodDescriptor.setSimpleClassName(ctClass.getSimpleName());
|
||||
|
||||
CtClass[] parameterTypes = behavior.getParameterTypes();
|
||||
String[] parameterType = JavaAssistUtils.getParameterType(parameterTypes);
|
||||
methodDescriptor.setParameterTypes(parameterType);
|
||||
|
||||
String[] parameterSimpleType = JavaAssistUtils.getParameterSimpleType(parameterTypes);
|
||||
methodDescriptor.setSimpleParameterTypes(parameterSimpleType);
|
||||
|
||||
String[] parameterVariableName = JavaAssistUtils.getParameterVariableName(behavior);
|
||||
methodDescriptor.setParameterVariableName(parameterVariableName);
|
||||
|
||||
int lineNumber = JavaAssistUtils.getLineNumber(behavior);
|
||||
methodDescriptor.setLineNumber(lineNumber);
|
||||
|
||||
String parameterDescription = JavaAssistUtils.mergeParameterVariableNameDescription(parameterType, parameterVariableName);
|
||||
String parameterDescription = ApiUtils.mergeParameterVariableNameDescription(parameterType, parameterVariableName);
|
||||
methodDescriptor.setParameterDescriptor(parameterDescription);
|
||||
|
||||
String simpleParameterDescription = JavaAssistUtils.mergeParameterVariableNameDescription(parameterType, parameterVariableName);
|
||||
methodDescriptor.setSimpleParameterDescriptor(simpleParameterDescription);
|
||||
|
||||
interceptor.setMethodDescriptor(methodDescriptor);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user