use of com.navercorp.pinpoint.bootstrap.interceptor.annotation.TargetConstructors in project pinpoint by naver.
the class TargetAnnotatedInterceptorInjector method createMethodEditor.
private ClassRecipe createMethodEditor(ClassLoader classLoader, Class<?> interceptorType, InstrumentClass targetClass, AnnotatedInterceptorInjector injector) {
List<MethodTransformer> editors = new ArrayList<MethodTransformer>();
TargetMethods targetMethods = interceptorType.getAnnotation(TargetMethods.class);
if (targetMethods != null) {
for (TargetMethod m : targetMethods.value()) {
editors.add(createDedicatedMethodEditor(m, injector));
}
}
TargetConstructors targetConstructors = interceptorType.getAnnotation(TargetConstructors.class);
if (targetConstructors != null) {
for (TargetConstructor c : targetConstructors.value()) {
editors.add(createConstructorEditor(c, injector));
}
}
TargetMethod targetMethod = interceptorType.getAnnotation(TargetMethod.class);
if (targetMethod != null) {
editors.add(createDedicatedMethodEditor(targetMethod, injector));
}
TargetConstructor targetConstructor = interceptorType.getAnnotation(TargetConstructor.class);
if (targetConstructor != null) {
editors.add(createConstructorEditor(targetConstructor, injector));
}
TargetFilter targetFilter = interceptorType.getAnnotation(TargetFilter.class);
if (targetFilter != null) {
editors.add(createFilteredMethodEditor(targetFilter, targetClass, injector, classLoader));
}
if (editors.isEmpty()) {
throw new PinpointException("No target is specified. At least one of @Targets, @TargetMethod, @TargetConstructor, @TargetFilter must present. interceptor: " + interceptorClassName);
}
return editors.size() == 1 ? editors.get(0) : new ClassCookBook(editors);
}
use of com.navercorp.pinpoint.bootstrap.interceptor.annotation.TargetConstructors in project pinpoint by naver.
the class ASMClass method addInterceptor0.
private int addInterceptor0(String interceptorClassName, Object[] constructorArgs, InterceptorScope scope, ExecutionPolicy executionPolicy) throws InstrumentException {
int interceptorId = -1;
final Class<?> interceptorType = this.pluginContext.injectClass(this.classLoader, interceptorClassName);
final TargetMethods targetMethods = interceptorType.getAnnotation(TargetMethods.class);
if (targetMethods != null) {
for (TargetMethod m : targetMethods.value()) {
interceptorId = addInterceptor0(m, interceptorClassName, constructorArgs, scope, executionPolicy);
}
}
final TargetMethod targetMethod = interceptorType.getAnnotation(TargetMethod.class);
if (targetMethod != null) {
interceptorId = addInterceptor0(targetMethod, interceptorClassName, constructorArgs, scope, executionPolicy);
}
final TargetConstructors targetConstructors = interceptorType.getAnnotation(TargetConstructors.class);
if (targetConstructors != null) {
for (TargetConstructor c : targetConstructors.value()) {
interceptorId = addInterceptor0(c, interceptorClassName, scope, executionPolicy, constructorArgs);
}
}
final TargetConstructor targetConstructor = interceptorType.getAnnotation(TargetConstructor.class);
if (targetConstructor != null) {
interceptorId = addInterceptor0(targetConstructor, interceptorClassName, scope, executionPolicy, constructorArgs);
}
final TargetFilter targetFilter = interceptorType.getAnnotation(TargetFilter.class);
if (targetFilter != null) {
interceptorId = addInterceptor0(targetFilter, interceptorClassName, scope, executionPolicy, constructorArgs);
}
if (interceptorId == -1) {
throw new PinpointException("No target is specified. At least one of @Targets, @TargetMethod, @TargetConstructor, @TargetFilter must present. interceptor: " + interceptorClassName);
}
return interceptorId;
}
use of com.navercorp.pinpoint.bootstrap.interceptor.annotation.TargetConstructors in project pinpoint by naver.
the class ASMClass method addInterceptor0.
private int addInterceptor0(Class<? extends Interceptor> interceptorClass, Object[] constructorArgs, InterceptorScope scope, ExecutionPolicy executionPolicy) throws InstrumentException {
int interceptorId = -1;
final TargetMethods targetMethods = interceptorClass.getAnnotation(TargetMethods.class);
if (targetMethods != null) {
for (TargetMethod m : targetMethods.value()) {
interceptorId = addInterceptor0(m, interceptorClass, constructorArgs, scope, executionPolicy);
}
}
final TargetMethod targetMethod = interceptorClass.getAnnotation(TargetMethod.class);
if (targetMethod != null) {
interceptorId = addInterceptor0(targetMethod, interceptorClass, constructorArgs, scope, executionPolicy);
}
final TargetConstructors targetConstructors = interceptorClass.getAnnotation(TargetConstructors.class);
if (targetConstructors != null) {
for (TargetConstructor c : targetConstructors.value()) {
interceptorId = addInterceptor0(c, interceptorClass, scope, executionPolicy, constructorArgs);
}
}
final TargetConstructor targetConstructor = interceptorClass.getAnnotation(TargetConstructor.class);
if (targetConstructor != null) {
interceptorId = addInterceptor0(targetConstructor, interceptorClass, scope, executionPolicy, constructorArgs);
}
final TargetFilter targetFilter = interceptorClass.getAnnotation(TargetFilter.class);
if (targetFilter != null) {
interceptorId = addInterceptor0(targetFilter, interceptorClass, scope, executionPolicy, constructorArgs);
}
if (interceptorId == -1) {
throw new PinpointException("No target is specified. At least one of @Targets, @TargetMethod, @TargetConstructor, @TargetFilter must present. interceptor: " + interceptorClass.getName());
}
return interceptorId;
}
use of com.navercorp.pinpoint.bootstrap.interceptor.annotation.TargetConstructors in project pinpoint by naver.
the class JavassistClass method addInterceptor0.
private int addInterceptor0(String interceptorClassName, Object[] constructorArgs, InterceptorScope scope, ExecutionPolicy executionPolicy) throws InstrumentException {
int interceptorId = -1;
final Class<?> interceptorType = pluginContext.injectClass(classLoader, interceptorClassName);
final TargetMethods targetMethods = interceptorType.getAnnotation(TargetMethods.class);
if (targetMethods != null) {
for (TargetMethod m : targetMethods.value()) {
interceptorId = addInterceptor0(m, interceptorClassName, constructorArgs, scope, executionPolicy);
}
}
final TargetMethod targetMethod = interceptorType.getAnnotation(TargetMethod.class);
if (targetMethod != null) {
interceptorId = addInterceptor0(targetMethod, interceptorClassName, constructorArgs, scope, executionPolicy);
}
final TargetConstructors targetConstructors = interceptorType.getAnnotation(TargetConstructors.class);
if (targetConstructors != null) {
for (TargetConstructor c : targetConstructors.value()) {
interceptorId = addInterceptor0(c, interceptorClassName, scope, executionPolicy, constructorArgs);
}
}
final TargetConstructor targetConstructor = interceptorType.getAnnotation(TargetConstructor.class);
if (targetConstructor != null) {
interceptorId = addInterceptor0(targetConstructor, interceptorClassName, scope, executionPolicy, constructorArgs);
}
final TargetFilter targetFilter = interceptorType.getAnnotation(TargetFilter.class);
if (targetFilter != null) {
interceptorId = addInterceptor0(targetFilter, interceptorClassName, scope, executionPolicy, constructorArgs);
}
if (interceptorId == -1) {
throw new PinpointException("No target is specified. At least one of @Targets, @TargetMethod, @TargetConstructor, @TargetFilter must present. interceptor: " + interceptorClassName);
}
return interceptorId;
}
Aggregations