From eff504b3aae022f7897ef9a5c710f11620ac6d92 Mon Sep 17 00:00:00 2001 From: Jongho Moon Date: Mon, 9 Feb 2015 15:12:20 +0900 Subject: [PATCH] [#117] Implemented plugin system --- .../pinpoint/bootstrap}/FieldSnooper.java | 70 ++++--------------- .../pinpoint/bootstrap}/MetadataAccessor.java | 34 ++++----- .../bootstrap/instrument/InstrumentClass.java | 4 +- .../plugin/ApplicationServerProperty.java | 6 ++ .../pinpoint/bootstrap/plugin/Attribute.java | 3 +- .../pinpoint/bootstrap/plugin/Cached.java | 10 +++ .../bootstrap/plugin/ProfilerPlugin.java | 5 +- ...ontext.java => ProfilerPluginContext.java} | 5 +- ...t.java => ProfilerPluginSetupContext.java} | 4 +- .../pinpoint/bootstrap/plugin/Snooper.java | 23 ------ .../common/plugin/PinpointPlugin.java | 26 ------- .../pinpoint/common/plugin/PluginLoader.java | 12 ++-- .../common/plugin/ServiceTypeProvider.java | 2 +- .../ClassFileTransformerDispatcher.java | 10 +-- .../pinpoint/profiler/DefaultAgent.java | 10 +-- .../interceptor/bci/JavaAssistClass.java | 54 +++++++++----- .../profiler/modifier/ModifierProvider.java | 3 +- ...java => DefaultProfilerPluginContext.java} | 13 ++-- .../profiler/plugin/FieldSnooperInjector.java | 2 +- .../profiler/plugin/MetadataInjector.java | 2 +- .../plugin/{ => editor}/ClassCookBook.java | 2 +- .../{ => editor}/ConditionalClassEditor.java | 2 +- .../{ => editor}/ConditionalMethodEditor.java | 2 +- .../{ => editor}/ConstructorEditor.java | 13 +--- .../{ => editor}/DedicatedMethodEditor.java | 15 +--- .../DefaultClassEditorBuilder.java | 16 +++-- .../DefaultDedicatedClassEditor.java | 2 +- .../{ => editor}/FilteringMethodEditor.java | 2 +- .../plugin/{ => editor}/MethodCookBook.java | 2 +- .../plugin/{ => editor}/MethodEditor.java | 2 +- .../plugin/{ => editor}/MethodRecipe.java | 2 +- .../AnnotatedInterceptorFactory.java | 8 ++- .../AnnotatedInterceptorInjector.java | 8 ++- .../DefaultInterceptorInjector.java | 2 +- .../{ => interceptor}/InterceptorFactory.java | 2 +- .../InterceptorInjector.java | 4 +- .../ScopedInterceptorFactory.java | 2 +- .../ScopedSimpleAroundInterceptor.java | 2 +- .../ScopedStaticInterceptor.java | 2 +- .../SingletonInterceptorInjector.java | 2 +- .../TargetAnnotatedInterceptorInjector.java | 14 +++- .../AttributeResolver.java | 9 +-- .../AutoBindingObjectFactory.java | 10 +-- .../ConstructorResolver.java | 2 +- .../JudgingParameterResolver.java | 2 +- .../plugin/{ => objectfactory}/Option.java | 2 +- .../ParameterResolver.java | 2 +- .../PinpointTypeResolver.java | 20 +++--- .../ProvidedValuesResolver.java | 4 +- .../util/ApplicationServerTypeResolver.java | 6 +- .../pinpoint/test/ClassTransformHelper.java | 2 +- .../plugin => test/util}/BytecodeUtils.java | 2 +- .../interceptor/bci/JavaAssistClassTest.java | 2 +- .../spring/beans/BeanMethodModifierTest.java | 2 +- .../profiler/plugin/BytecodeUtilsTest.java | 2 +- .../plugin/DefaultClassEditorBuilderTest.java | 7 +- .../plugin/DefaultInterceptorFactoryTest.java | 6 +- 57 files changed, 216 insertions(+), 268 deletions(-) rename {bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin => bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap}/FieldSnooper.java (69%) rename {bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin => bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap}/MetadataAccessor.java (85%) rename bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/{PluginContext.java => ProfilerPluginContext.java} (85%) rename bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/{PluginSetupContext.java => ProfilerPluginSetupContext.java} (86%) delete mode 100644 bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Snooper.java delete mode 100644 commons/src/main/java/com/navercorp/pinpoint/common/plugin/PinpointPlugin.java rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ProfilerPluginContext.java => DefaultProfilerPluginContext.java} (90%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/ClassCookBook.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/ConditionalClassEditor.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/ConditionalMethodEditor.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/ConstructorEditor.java (75%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/DedicatedMethodEditor.java (77%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/DefaultClassEditorBuilder.java (93%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/DefaultDedicatedClassEditor.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/FilteringMethodEditor.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/MethodCookBook.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/MethodEditor.java (93%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => editor}/MethodRecipe.java (94%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/AnnotatedInterceptorFactory.java (81%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/AnnotatedInterceptorInjector.java (89%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/DefaultInterceptorInjector.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/InterceptorFactory.java (94%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/InterceptorInjector.java (84%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/ScopedInterceptorFactory.java (97%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/ScopedSimpleAroundInterceptor.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/ScopedStaticInterceptor.java (97%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/SingletonInterceptorInjector.java (97%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => interceptor}/TargetAnnotatedInterceptorInjector.java (87%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => objectfactory}/AttributeResolver.java (84%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => objectfactory}/AutoBindingObjectFactory.java (87%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => objectfactory}/ConstructorResolver.java (98%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => objectfactory}/JudgingParameterResolver.java (92%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => objectfactory}/Option.java (96%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => objectfactory}/ParameterResolver.java (92%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => objectfactory}/PinpointTypeResolver.java (82%) rename profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/{ => objectfactory}/ProvidedValuesResolver.java (93%) rename profiler/src/main/java/com/navercorp/pinpoint/{profiler/plugin => test/util}/BytecodeUtils.java (98%) diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/FieldSnooper.java b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/FieldSnooper.java similarity index 69% rename from bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/FieldSnooper.java rename to bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/FieldSnooper.java index fa58a667b8cf..1efb1372c513 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/FieldSnooper.java +++ b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/FieldSnooper.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.bootstrap.plugin; +package com.navercorp.pinpoint.bootstrap; /** * @author Jongho Moon @@ -83,13 +83,13 @@ public T get(Object object) { } }; - private final Class type; + private final Class type; - private FieldSnooper(Class type) { + private FieldSnooper(Class type) { this.type = type; } - public Class getType() { + public Class getType() { return type; } @@ -100,89 +100,47 @@ public boolean isApplicable(Object object) { public abstract T get(Object object); - - - public static FieldSnooper get(int index) { return VALUES[index]; } - - - public static boolean getBoolean(Object object) { - return ((BooleanSnooper)object)._$PINPOINT$_getBooleanField(); - } - - public static int getInt(Object object) { - return ((IntSnooper)object)._$PINPOINT$_getIntField(); - } - - public static long getLong(Object object) { - return ((LongSnooper)object)._$PINPOINT$_getLongField(); - } - - public static double getDouble(Object object) { - return ((DoubleSnooper)object)._$PINPOINT$_getDoubleField(); - } - - - - - - private interface BooleanSnooper extends Snooper { - public boolean _$PINPOINT$_getBooleanField(); - } - - private interface DoubleSnooper extends Snooper { - public double _$PINPOINT$_getDoubleField(); - } - - public interface LongSnooper extends Snooper { - public long _$PINPOINT$_getLongField(); - } - - public interface IntSnooper extends Snooper { - public int _$PINPOINT$_getIntField(); - } - - - public interface ObjectSnooper0 extends Snooper { + public interface ObjectSnooper0 { public Object _$PINPOINT$_getObjectField0(); } - public interface ObjectSnooper1 extends Snooper { + public interface ObjectSnooper1 { public Object _$PINPOINT$_getObjectField1(); } - public interface ObjectSnooper2 extends Snooper { + public interface ObjectSnooper2 { public Object _$PINPOINT$_getObjectField2(); } - public interface ObjectSnooper3 extends Snooper { + public interface ObjectSnooper3 { public Object _$PINPOINT$_getObjectField3(); } - public interface ObjectSnooper4 extends Snooper { + public interface ObjectSnooper4 { public Object _$PINPOINT$_getObjectField4(); } - public interface ObjectSnooper5 extends Snooper { + public interface ObjectSnooper5 { public Object _$PINPOINT$_getObjectField5(); } - public interface ObjectSnooper6 extends Snooper { + public interface ObjectSnooper6 { public Object _$PINPOINT$_getObjectField6(); } - public interface ObjectSnooper7 extends Snooper { + public interface ObjectSnooper7 { public Object _$PINPOINT$_getObjectField7(); } - public interface ObjectSnooper8 extends Snooper { + public interface ObjectSnooper8 { public Object _$PINPOINT$_getObjectField8(); } - public interface ObjectSnooper9 extends Snooper { + public interface ObjectSnooper9 { public Object _$PINPOINT$_getObjectField9(); } diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/MetadataAccessor.java b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/MetadataAccessor.java similarity index 85% rename from bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/MetadataAccessor.java rename to bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/MetadataAccessor.java index eff4ab39fd43..d36003415ca7 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/MetadataAccessor.java +++ b/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/MetadataAccessor.java @@ -12,9 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.bootstrap.plugin; +package com.navercorp.pinpoint.bootstrap; -import com.navercorp.pinpoint.bootstrap.interceptor.tracevalue.TraceValue; /** * @author Jongho Moon @@ -145,13 +144,13 @@ public void set(Object object, T value) { }; - private final Class type; + private final Class type; - private MetadataAccessor(Class type) { + private MetadataAccessor(Class type) { this.type = type; } - public Class getType() { + public Class getType() { return type; } @@ -166,57 +165,52 @@ public static MetadataAccessor get(int index) { public abstract T get(Object object); public abstract void set(Object object, T value); - public interface ObjectAccessor extends TraceValue { - public Object _$PINPOINT$_getObject(); - public void _$PINPOINT$_setObject(Object value); - } - - public interface ObjectAccessor0 extends TraceValue { + public interface ObjectAccessor0 { public Object _$PINPOINT$_getObject0(); public void _$PINPOINT$_setObject0(Object value); } - public interface ObjectAccessor1 extends TraceValue { + public interface ObjectAccessor1 { public Object _$PINPOINT$_getObject1(); public void _$PINPOINT$_setObject1(Object value); } - public interface ObjectAccessor2 extends TraceValue { + public interface ObjectAccessor2 { public Object _$PINPOINT$_getObject2(); public void _$PINPOINT$_setObject2(Object value); } - public interface ObjectAccessor3 extends TraceValue { + public interface ObjectAccessor3 { public Object _$PINPOINT$_getObject3(); public void _$PINPOINT$_setObject3(Object value); } - public interface ObjectAccessor4 extends TraceValue { + public interface ObjectAccessor4 { public Object _$PINPOINT$_getObject4(); public void _$PINPOINT$_setObject4(Object value); } - public interface ObjectAccessor5 extends TraceValue { + public interface ObjectAccessor5 { public Object _$PINPOINT$_getObject5(); public void _$PINPOINT$_setObject5(Object value); } - public interface ObjectAccessor6 extends TraceValue { + public interface ObjectAccessor6 { public Object _$PINPOINT$_getObject6(); public void _$PINPOINT$_setObject6(Object value); } - public interface ObjectAccessor7 extends TraceValue { + public interface ObjectAccessor7 { public Object _$PINPOINT$_getObject7(); public void _$PINPOINT$_setObject7(Object value); } - public interface ObjectAccessor8 extends TraceValue { + public interface ObjectAccessor8 { public Object _$PINPOINT$_getObject8(); public void _$PINPOINT$_setObject8(Object value); } - public interface ObjectAccessor9 extends TraceValue { + public interface ObjectAccessor9 { public Object _$PINPOINT$_getObject9(); public void _$PINPOINT$_setObject9(Object value); } diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/InstrumentClass.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/InstrumentClass.java index 61651566d8da..d29337930386 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/InstrumentClass.java +++ b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/InstrumentClass.java @@ -90,9 +90,9 @@ public interface InstrumentClass { @Deprecated void addTraceVariable(String variableName, String setterName, String getterName, String variableType) throws InstrumentException; - void addTraceValue(Class traceValue, String initValue) throws InstrumentException; + void addTraceValue(Class traceValue, String initValue) throws InstrumentException; - void addTraceValue(Class traceValue) throws InstrumentException; + void addTraceValue(Class traceValue) throws InstrumentException; boolean insertCodeAfterConstructor(String[] args, String code); diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ApplicationServerProperty.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ApplicationServerProperty.java index 16a3175685ed..2d3744a672fa 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ApplicationServerProperty.java +++ b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ApplicationServerProperty.java @@ -14,10 +14,16 @@ */ package com.navercorp.pinpoint.bootstrap.plugin; +import com.navercorp.pinpoint.bootstrap.Agent; + /** * @author Jongho Moon * */ public enum ApplicationServerProperty { + /** + * If this property is set, the plugin have to manage pinpoint agent's life cycle. + * In other words, the plugin must invoke {@link Agent#start()} and {@link Agent#stop()} + */ MANAGE_PINPOINT_AGENT_LIFECYCLE; } diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Attribute.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Attribute.java index 06faf7e0fa2c..5410204df150 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Attribute.java +++ b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Attribute.java @@ -20,8 +20,9 @@ import java.lang.annotation.Target; /** + * Indicates that an attribute with given name have to be injected to the target. + * * @author Jongho Moon - * */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Cached.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Cached.java index 483cc45b5f69..8711ed42790a 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Cached.java +++ b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Cached.java @@ -19,7 +19,17 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import com.navercorp.pinpoint.bootstrap.instrument.MethodInfo; +import com.navercorp.pinpoint.bootstrap.interceptor.MethodDescriptor; + /** + * Indicates that the target have to be cached. + * + * For now, only {@link MethodDescriptor} can be cached. + * You can also annotate {@link MethodInfo} with this annotation + * but it makes the {@link MethodDescriptor} returned by {@link MethodInfo#getDescriptor()} cached + * not {@link MethodInfo} itself. + * * @author Jongho Moon * */ diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPlugin.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPlugin.java index 39a8ef539a9f..bab4f24cd849 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPlugin.java +++ b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPlugin.java @@ -16,9 +16,8 @@ package com.navercorp.pinpoint.bootstrap.plugin; -import com.navercorp.pinpoint.common.plugin.ServiceTypeProvider; -public interface ProfilerPlugin extends ServiceTypeProvider { - void setUp(PluginSetupContext context); +public interface ProfilerPlugin { + void setUp(ProfilerPluginSetupContext context); } diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/PluginContext.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPluginContext.java similarity index 85% rename from bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/PluginContext.java rename to bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPluginContext.java index 62460cefa248..f0986294d7c9 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/PluginContext.java +++ b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPluginContext.java @@ -14,11 +14,14 @@ */ package com.navercorp.pinpoint.bootstrap.plugin; +import com.navercorp.pinpoint.bootstrap.FieldSnooper; +import com.navercorp.pinpoint.bootstrap.MetadataAccessor; + /** * @author Jongho Moon * */ -public interface PluginContext { +public interface ProfilerPluginContext { public Object setAttribute(String key, Object value); public Object getAttribute(String key); diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/PluginSetupContext.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPluginSetupContext.java similarity index 86% rename from bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/PluginSetupContext.java rename to bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPluginSetupContext.java index e78727291789..0af6bb6bbd3f 100644 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/PluginSetupContext.java +++ b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/ProfilerPluginSetupContext.java @@ -15,15 +15,17 @@ package com.navercorp.pinpoint.bootstrap.plugin; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; +import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassEditor; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassEditorBuilder; /** * @author Jongho Moon * */ -public interface PluginSetupContext extends PluginContext { +public interface ProfilerPluginSetupContext extends ProfilerPluginContext { public ProfilerConfig getConfig(); public ClassEditorBuilder newClassEditorBuilder(); + public void addServerTypeDetector(ServerTypeDetector... detectors); } diff --git a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Snooper.java b/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Snooper.java deleted file mode 100644 index 30164ac2e2b7..000000000000 --- a/bootstrap/src/main/java/com/navercorp/pinpoint/bootstrap/plugin/Snooper.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2014 NAVER Corp. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.navercorp.pinpoint.bootstrap.plugin; - -/** - * @author Jongho Moon - * - */ -public interface Snooper { - -} diff --git a/commons/src/main/java/com/navercorp/pinpoint/common/plugin/PinpointPlugin.java b/commons/src/main/java/com/navercorp/pinpoint/common/plugin/PinpointPlugin.java deleted file mode 100644 index 8e31c8b9fd05..000000000000 --- a/commons/src/main/java/com/navercorp/pinpoint/common/plugin/PinpointPlugin.java +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2014 NAVER Corp. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.navercorp.pinpoint.common.plugin; - -/** - * All the Pinpoint plugin interfaces extends this interface to make {@link ServiceLoader} search only one type. - * If not, plugin have to contain a provider-configuration file per plugin types. - * - * @author Jongho Moon - * - */ -public interface PinpointPlugin { - -} diff --git a/commons/src/main/java/com/navercorp/pinpoint/common/plugin/PluginLoader.java b/commons/src/main/java/com/navercorp/pinpoint/common/plugin/PluginLoader.java index 2cdf8d171890..c91a4c20797c 100644 --- a/commons/src/main/java/com/navercorp/pinpoint/common/plugin/PluginLoader.java +++ b/commons/src/main/java/com/navercorp/pinpoint/common/plugin/PluginLoader.java @@ -42,7 +42,7 @@ public class PluginLoader { private static final SecurityManager SECURITY_MANAGER = System.getSecurityManager(); - public static List load(Class serviceType, URL[] urls) { + public static List load(Class serviceType, URL[] urls) { URLClassLoader classLoader = createPluginClassLoader(urls, ClassLoader.getSystemClassLoader()); return load(serviceType, classLoader); } @@ -59,14 +59,12 @@ public PluginClassLoader run() { } } - public static List load(Class serviceType, ClassLoader classLoader) { - ServiceLoader serviceLoader = ServiceLoader.load(PinpointPlugin.class, classLoader); + public static List load(Class serviceType, ClassLoader classLoader) { + ServiceLoader serviceLoader = ServiceLoader.load(serviceType, classLoader); List plugins = new ArrayList(); - for (PinpointPlugin plugin : serviceLoader) { - if (serviceType.isInstance(plugin)) { - plugins.add(serviceType.cast(plugin)); - } + for (T plugin : serviceLoader) { + plugins.add(serviceType.cast(plugin)); } return plugins; diff --git a/commons/src/main/java/com/navercorp/pinpoint/common/plugin/ServiceTypeProvider.java b/commons/src/main/java/com/navercorp/pinpoint/common/plugin/ServiceTypeProvider.java index 3a1e9603e6f5..284d52ad835b 100644 --- a/commons/src/main/java/com/navercorp/pinpoint/common/plugin/ServiceTypeProvider.java +++ b/commons/src/main/java/com/navercorp/pinpoint/common/plugin/ServiceTypeProvider.java @@ -19,6 +19,6 @@ * @author Jongho Moon * */ -public interface ServiceTypeProvider extends PinpointPlugin { +public interface ServiceTypeProvider { public void setUp(ServiceTypeSetupContext context); } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/ClassFileTransformerDispatcher.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/ClassFileTransformerDispatcher.java index 8a98e04c5a2d..95b5022a1dc5 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/ClassFileTransformerDispatcher.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/ClassFileTransformerDispatcher.java @@ -38,7 +38,7 @@ import com.navercorp.pinpoint.profiler.modifier.ModifierRegistry; import com.navercorp.pinpoint.profiler.plugin.ClassEditorAdaptor; import com.navercorp.pinpoint.profiler.plugin.PluginClassLoaderFactory; -import com.navercorp.pinpoint.profiler.plugin.ProfilerPluginContext; +import com.navercorp.pinpoint.profiler.plugin.DefaultProfilerPluginContext; import com.navercorp.pinpoint.profiler.util.JavaAssistUtils; /** @@ -62,7 +62,7 @@ public class ClassFileTransformerDispatcher implements ClassFileTransformer { private final ClassFileFilter skipFilter; - public ClassFileTransformerDispatcher(DefaultAgent agent, ByteCodeInstrumentor byteCodeInstrumentor, ClassFileRetransformer retransformer, List pluginContexts, URL[] pluginJars) { + public ClassFileTransformerDispatcher(DefaultAgent agent, ByteCodeInstrumentor byteCodeInstrumentor, ClassFileRetransformer retransformer, List pluginContexts, URL[] pluginJars) { if (agent == null) { throw new NullPointerException("agent must not be null"); } @@ -135,7 +135,7 @@ private ClassLoader getContextClassLoader(Thread thread) throws Throwable { } } - private ModifierRegistry createModifierRegistry(List pluginContexts, URL[] pluginJars) { + private ModifierRegistry createModifierRegistry(List pluginContexts, URL[] pluginJars) { DefaultModifierRegistry modifierRepository = new DefaultModifierRegistry(agent, byteCodeInstrumentor, retransformer); modifierRepository.addMethodModifier(); @@ -180,10 +180,10 @@ private void loadModifiers(DefaultModifierRegistry modifierRepository) { } } - private void loadEditorsFromPlugins(DefaultModifierRegistry modifierRepository, List pluginContexts, URL[] pluginJars) { + private void loadEditorsFromPlugins(DefaultModifierRegistry modifierRepository, List pluginContexts, URL[] pluginJars) { PluginClassLoaderFactory classLoaderFactory = new PluginClassLoaderFactory(pluginJars); - for (ProfilerPluginContext pluginContext : pluginContexts) { + for (DefaultProfilerPluginContext pluginContext : pluginContexts) { for (ClassEditor editor : pluginContext.getClassEditors(agent.getTraceContext(), byteCodeInstrumentor)) { if (editor instanceof DedicatedClassEditor) { DedicatedClassEditor dedicated = (DedicatedClassEditor)editor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/DefaultAgent.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/DefaultAgent.java index d4874e041d8c..636577f2b5ff 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/DefaultAgent.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/DefaultAgent.java @@ -49,7 +49,7 @@ import com.navercorp.pinpoint.profiler.interceptor.bci.JavaAssistByteCodeInstrumentor; import com.navercorp.pinpoint.profiler.logging.Slf4jLoggerBinder; import com.navercorp.pinpoint.profiler.monitor.AgentStatMonitor; -import com.navercorp.pinpoint.profiler.plugin.ProfilerPluginContext; +import com.navercorp.pinpoint.profiler.plugin.DefaultProfilerPluginContext; import com.navercorp.pinpoint.profiler.receiver.CommandDispatcher; import com.navercorp.pinpoint.profiler.receiver.service.EchoService; import com.navercorp.pinpoint.profiler.receiver.service.ThreadDumpService; @@ -122,7 +122,7 @@ public DefaultAgent(String agentArgs, Instrumentation instrumentation, ProfilerC this.profilerConfig = profilerConfig; - List pluginContexts = loadProfilerPlugins(profilerConfig, pluginJars); + List pluginContexts = loadProfilerPlugins(profilerConfig, pluginJars); final ApplicationServerTypeResolver typeResolver = new ApplicationServerTypeResolver(pluginContexts, profilerConfig.getApplicationServerType()); if (!typeResolver.resolve()) { @@ -180,14 +180,14 @@ public DefaultAgent(String agentArgs, Instrumentation instrumentation, ProfilerC } } - private List loadProfilerPlugins(ProfilerConfig profilerConfig, URL[] pluginJars) { + private List loadProfilerPlugins(ProfilerConfig profilerConfig, URL[] pluginJars) { List plugins = PluginLoader.load(ProfilerPlugin.class, pluginJars); - List pluginContexts = new ArrayList(plugins.size()); + List pluginContexts = new ArrayList(plugins.size()); for (ProfilerPlugin plugin : plugins) { logger.info("Loading plugin: {}", plugin.getClass().getName()); - ProfilerPluginContext context = new ProfilerPluginContext(profilerConfig); + DefaultProfilerPluginContext context = new DefaultProfilerPluginContext(profilerConfig); plugin.setUp(context); pluginContexts.add(context); } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/interceptor/bci/JavaAssistClass.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/interceptor/bci/JavaAssistClass.java index 8c861eede647..ab290ebf8a55 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/interceptor/bci/JavaAssistClass.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/interceptor/bci/JavaAssistClass.java @@ -21,10 +21,37 @@ import java.util.Arrays; import java.util.List; +import javassist.CannotCompileException; +import javassist.CtBehavior; +import javassist.CtClass; +import javassist.CtConstructor; +import javassist.CtField; +import javassist.CtMethod; +import javassist.CtNewMethod; +import javassist.NotFoundException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.navercorp.pinpoint.bootstrap.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.context.TraceContext; -import com.navercorp.pinpoint.bootstrap.instrument.*; -import com.navercorp.pinpoint.bootstrap.interceptor.*; -import com.navercorp.pinpoint.bootstrap.interceptor.tracevalue.TraceValue; +import com.navercorp.pinpoint.bootstrap.instrument.DefaultScopeDefinition; +import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; +import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; +import com.navercorp.pinpoint.bootstrap.instrument.MethodFilter; +import com.navercorp.pinpoint.bootstrap.instrument.MethodInfo; +import com.navercorp.pinpoint.bootstrap.instrument.NotFoundInstrumentException; +import com.navercorp.pinpoint.bootstrap.instrument.Scope; +import com.navercorp.pinpoint.bootstrap.instrument.ScopeDefinition; +import com.navercorp.pinpoint.bootstrap.instrument.Type; +import com.navercorp.pinpoint.bootstrap.interceptor.ByteCodeMethodDescriptorSupport; +import com.navercorp.pinpoint.bootstrap.interceptor.Interceptor; +import com.navercorp.pinpoint.bootstrap.interceptor.InterceptorRegistry; +import com.navercorp.pinpoint.bootstrap.interceptor.LoggingInterceptor; +import com.navercorp.pinpoint.bootstrap.interceptor.MethodDescriptor; +import com.navercorp.pinpoint.bootstrap.interceptor.SimpleAroundInterceptor; +import com.navercorp.pinpoint.bootstrap.interceptor.StaticAroundInterceptor; +import com.navercorp.pinpoint.bootstrap.interceptor.TraceContextSupport; import com.navercorp.pinpoint.profiler.interceptor.DebugScopeDelegateSimpleInterceptor; import com.navercorp.pinpoint.profiler.interceptor.DebugScopeDelegateStaticInterceptor; import com.navercorp.pinpoint.profiler.interceptor.DefaultMethodDescriptor; @@ -33,11 +60,6 @@ import com.navercorp.pinpoint.profiler.util.ApiUtils; import com.navercorp.pinpoint.profiler.util.JavaAssistUtils; -import javassist.*; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * @author emeroad * @author netspider @@ -177,16 +199,16 @@ private void addTraceVariable0(String variableName, String setterName, String ge } @Override - public void addTraceValue(Class traceValue) throws InstrumentException { + public void addTraceValue(Class traceValue) throws InstrumentException { addTraceValue0(traceValue, null); } @Override - public void addTraceValue(Class traceValue, String initValue) throws InstrumentException { + public void addTraceValue(Class traceValue, String initValue) throws InstrumentException { addTraceValue0(traceValue, initValue); } - public void addTraceValue0(Class traceValue, String initValue) throws InstrumentException { + public void addTraceValue0(Class traceValue, String initValue) throws InstrumentException { if (traceValue == null) { throw new NullPointerException("traceValue must not be null"); } @@ -194,12 +216,12 @@ public void addTraceValue0(Class traceValue, String initVa // TODO In unit test, we cannot use isAssignableFrom() because same class is loaded by different class loaders. // So we compare interface names implemented by traceValue. // We'd better find better solution. - final boolean marker = checkTraceValueMarker(traceValue); - if (!marker) { - throw new InstrumentException(traceValue + " marker interface not implements" ); - } +// final boolean marker = checkTraceValueMarker(traceValue); +// if (!marker) { +// throw new InstrumentException(traceValue + " marker interface not implements" ); +// } - if (traceValue.getClassLoader() != InstrumentClass.class.getClassLoader()) { + if (traceValue.getClassLoader() != MetadataAccessor.class.getClassLoader()) { throw new InstrumentException(traceValue + " must be loaded by the class loader which loaded pinpoint-bootstrap" ); } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/modifier/ModifierProvider.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/modifier/ModifierProvider.java index b6688dca577f..c3ec8f01d046 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/modifier/ModifierProvider.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/modifier/ModifierProvider.java @@ -21,7 +21,6 @@ import com.navercorp.pinpoint.bootstrap.Agent; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; import com.navercorp.pinpoint.bootstrap.plugin.ProfilerPlugin; -import com.navercorp.pinpoint.common.plugin.PinpointPlugin; /** * ModifierProvider is a temporary interface to provide additional modifiers to Pinpoint profiler. @@ -31,6 +30,6 @@ * @author lioolli */ @Deprecated -public interface ModifierProvider extends PinpointPlugin { +public interface ModifierProvider { List getModifiers(ByteCodeInstrumentor byteCodeInstrumentor, Agent agent); } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ProfilerPluginContext.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultProfilerPluginContext.java similarity index 90% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ProfilerPluginContext.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultProfilerPluginContext.java index 2a952c61f7db..1cdf397dc9bd 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ProfilerPluginContext.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultProfilerPluginContext.java @@ -23,18 +23,19 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import com.navercorp.pinpoint.bootstrap.FieldSnooper; +import com.navercorp.pinpoint.bootstrap.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; -import com.navercorp.pinpoint.bootstrap.plugin.FieldSnooper; -import com.navercorp.pinpoint.bootstrap.plugin.MetadataAccessor; -import com.navercorp.pinpoint.bootstrap.plugin.PluginContext; -import com.navercorp.pinpoint.bootstrap.plugin.PluginSetupContext; +import com.navercorp.pinpoint.bootstrap.plugin.ProfilerPluginContext; +import com.navercorp.pinpoint.bootstrap.plugin.ProfilerPluginSetupContext; import com.navercorp.pinpoint.bootstrap.plugin.ServerTypeDetector; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassEditor; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassEditorBuilder; +import com.navercorp.pinpoint.profiler.plugin.editor.DefaultClassEditorBuilder; -public class ProfilerPluginContext implements PluginSetupContext, PluginContext { +public class DefaultProfilerPluginContext implements ProfilerPluginSetupContext, ProfilerPluginContext { private final ProfilerConfig config; private final List serverTypeDetectors = new ArrayList(); @@ -47,7 +48,7 @@ public class ProfilerPluginContext implements PluginSetupContext, PluginContext private int metadataAccessorIndex = 0; private int fieldSnooperIndex = 0; - public ProfilerPluginContext(ProfilerConfig config) { + public DefaultProfilerPluginContext(ProfilerConfig config) { this.config = config; } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/FieldSnooperInjector.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/FieldSnooperInjector.java index dd9606d02b39..4f436e24b7c2 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/FieldSnooperInjector.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/FieldSnooperInjector.java @@ -16,9 +16,9 @@ package com.navercorp.pinpoint.profiler.plugin; +import com.navercorp.pinpoint.bootstrap.FieldSnooper; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; -import com.navercorp.pinpoint.bootstrap.plugin.FieldSnooper; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassRecipe; /** diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MetadataInjector.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MetadataInjector.java index 058752ee6fcd..ff8740cef515 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MetadataInjector.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MetadataInjector.java @@ -16,9 +16,9 @@ package com.navercorp.pinpoint.profiler.plugin; +import com.navercorp.pinpoint.bootstrap.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; -import com.navercorp.pinpoint.bootstrap.plugin.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassRecipe; import com.navercorp.pinpoint.exception.PinpointException; import com.navercorp.pinpoint.profiler.plugin.MetadataInitializationStrategy.ByConstructor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ClassCookBook.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ClassCookBook.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ClassCookBook.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ClassCookBook.java index a107fd38e493..7d1e298b205e 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ClassCookBook.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ClassCookBook.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import java.util.List; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConditionalClassEditor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConditionalClassEditor.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConditionalClassEditor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConditionalClassEditor.java index 767fb7a05670..e1b4e7ba9633 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConditionalClassEditor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConditionalClassEditor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassCondition; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConditionalMethodEditor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConditionalMethodEditor.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConditionalMethodEditor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConditionalMethodEditor.java index ea054547ad07..97bd40394afa 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConditionalMethodEditor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConditionalMethodEditor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConstructorEditor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConstructorEditor.java similarity index 75% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConstructorEditor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConstructorEditor.java index 4868b1b1ac0e..ff4050306f5c 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConstructorEditor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/ConstructorEditor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; @@ -24,17 +24,6 @@ public class ConstructorEditor implements MethodEditor { private final String[] targetParameterTypes; private final MethodRecipe recipe; - public static ConstructorEditor of(Class[] targetMethodParameterTypes, MethodRecipe recipe) { - int length = targetMethodParameterTypes.length; - String[] typeNames = new String[length]; - - for (int i = 0; i < length; i++) { - typeNames[i] = targetMethodParameterTypes[i].getName(); - } - - return new ConstructorEditor(typeNames, recipe); - } - public ConstructorEditor(String[] targetParameterTypes, MethodRecipe recipe) { this.targetParameterTypes = targetParameterTypes; this.recipe = recipe; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DedicatedMethodEditor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DedicatedMethodEditor.java similarity index 77% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DedicatedMethodEditor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DedicatedMethodEditor.java index 53eb32de70e2..39f61d787fb9 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DedicatedMethodEditor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DedicatedMethodEditor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import java.util.Arrays; @@ -27,25 +27,12 @@ public class DedicatedMethodEditor implements MethodEditor { private final String[] targetMethodParameterTypes; private final MethodRecipe recipe; - - public static DedicatedMethodEditor of(String targetMethodName, Class[] targetMethodParameterTypes, MethodRecipe recipe) { - int length = targetMethodParameterTypes.length; - String[] typeNames = new String[length]; - - for (int i = 0; i < length; i++) { - typeNames[i] = targetMethodParameterTypes[i].getName(); - } - - return new DedicatedMethodEditor(targetMethodName, typeNames, recipe); - } - public DedicatedMethodEditor(String targetMethodName, String[] targetMethodParameterTypes, MethodRecipe recipe) { this.targetMethodName = targetMethodName; this.targetMethodParameterTypes = targetMethodParameterTypes; this.recipe = recipe; } - @Override public void edit(ClassLoader classLoader, InstrumentClass target) throws InstrumentException { MethodInfo targetMethod = target.getDeclaredMethod(targetMethodName, targetMethodParameterTypes); diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultClassEditorBuilder.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DefaultClassEditorBuilder.java similarity index 93% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultClassEditorBuilder.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DefaultClassEditorBuilder.java index 1933968b6251..4d7791ad5af4 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultClassEditorBuilder.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DefaultClassEditorBuilder.java @@ -14,26 +14,32 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import java.util.ArrayList; import java.util.List; +import com.navercorp.pinpoint.bootstrap.FieldSnooper; +import com.navercorp.pinpoint.bootstrap.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; import com.navercorp.pinpoint.bootstrap.instrument.MethodFilter; -import com.navercorp.pinpoint.bootstrap.plugin.FieldSnooper; -import com.navercorp.pinpoint.bootstrap.plugin.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassCondition; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassEditorBuilder; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassRecipe; import com.navercorp.pinpoint.bootstrap.plugin.editor.ConstructorEditorBuilder; import com.navercorp.pinpoint.bootstrap.plugin.editor.DedicatedClassEditor; import com.navercorp.pinpoint.bootstrap.plugin.editor.MethodEditorBuilder; +import com.navercorp.pinpoint.profiler.plugin.FieldSnooperInjector; +import com.navercorp.pinpoint.profiler.plugin.MetadataInitializationStrategy; +import com.navercorp.pinpoint.profiler.plugin.MetadataInjector; +import com.navercorp.pinpoint.profiler.plugin.DefaultProfilerPluginContext; import com.navercorp.pinpoint.profiler.plugin.MetadataInitializationStrategy.ByConstructor; +import com.navercorp.pinpoint.profiler.plugin.interceptor.AnnotatedInterceptorInjector; +import com.navercorp.pinpoint.profiler.plugin.interceptor.TargetAnnotatedInterceptorInjector; public class DefaultClassEditorBuilder implements ClassEditorBuilder { - private final ProfilerPluginContext pluginContext; + private final DefaultProfilerPluginContext pluginContext; private final List recipes = new ArrayList(); private final List> recipeBuilders = new ArrayList>(); @@ -41,7 +47,7 @@ public class DefaultClassEditorBuilder implements ClassEditorBuilder { private String targetClassName; private ClassCondition condition; - public DefaultClassEditorBuilder(ProfilerPluginContext pluginContext) { + public DefaultClassEditorBuilder(DefaultProfilerPluginContext pluginContext) { this.pluginContext = pluginContext; } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultDedicatedClassEditor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DefaultDedicatedClassEditor.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultDedicatedClassEditor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DefaultDedicatedClassEditor.java index d76b345d24f9..82495dd80237 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultDedicatedClassEditor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/DefaultDedicatedClassEditor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassRecipe; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/FilteringMethodEditor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/FilteringMethodEditor.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/FilteringMethodEditor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/FilteringMethodEditor.java index 9ffa904461c3..69465c40dfd2 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/FilteringMethodEditor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/FilteringMethodEditor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodCookBook.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodCookBook.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodCookBook.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodCookBook.java index d4cebe5a6509..985e70571e4b 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodCookBook.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodCookBook.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import java.util.List; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodEditor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodEditor.java similarity index 93% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodEditor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodEditor.java index 8351208f87a8..fe3c1997e3a2 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodEditor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodEditor.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassRecipe; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodRecipe.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodRecipe.java similarity index 94% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodRecipe.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodRecipe.java index 4f3f28091922..93288e4ae260 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/MethodRecipe.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/editor/MethodRecipe.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.editor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AnnotatedInterceptorFactory.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/AnnotatedInterceptorFactory.java similarity index 81% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AnnotatedInterceptorFactory.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/AnnotatedInterceptorFactory.java index a887d410b00b..02dba1cf7d63 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AnnotatedInterceptorFactory.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/AnnotatedInterceptorFactory.java @@ -14,24 +14,26 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.MethodInfo; import com.navercorp.pinpoint.bootstrap.interceptor.Interceptor; +import com.navercorp.pinpoint.profiler.plugin.DefaultProfilerPluginContext; +import com.navercorp.pinpoint.profiler.plugin.objectfactory.AutoBindingObjectFactory; public class AnnotatedInterceptorFactory implements InterceptorFactory { private final TraceContext traceContext; - private final ProfilerPluginContext pluginContext; + private final DefaultProfilerPluginContext pluginContext; private final ByteCodeInstrumentor instrumentor; private final Class interceptorType; private final Object[] providedValues; - public AnnotatedInterceptorFactory(TraceContext traceContext, ProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, Class interceptorType, Object[] providedArguments) { + public AnnotatedInterceptorFactory(TraceContext traceContext, DefaultProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, Class interceptorType, Object[] providedArguments) { this.traceContext = traceContext; this.pluginContext = pluginContext; this.instrumentor = instrumentor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AnnotatedInterceptorInjector.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/AnnotatedInterceptorInjector.java similarity index 89% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AnnotatedInterceptorInjector.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/AnnotatedInterceptorInjector.java index 88fb7b64a257..c6017fe67e39 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AnnotatedInterceptorInjector.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/AnnotatedInterceptorInjector.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; @@ -23,6 +23,8 @@ import com.navercorp.pinpoint.bootstrap.plugin.Scope; import com.navercorp.pinpoint.bootstrap.plugin.Singleton; import com.navercorp.pinpoint.exception.PinpointException; +import com.navercorp.pinpoint.profiler.plugin.DefaultProfilerPluginContext; +import com.navercorp.pinpoint.profiler.plugin.TypeUtils; /** * @author Jongho Moon @@ -31,13 +33,13 @@ public class AnnotatedInterceptorInjector implements InterceptorInjector { private final TraceContext traceContext; - private final ProfilerPluginContext pluginContext; + private final DefaultProfilerPluginContext pluginContext; private final ByteCodeInstrumentor instrumentor; private final String interceptorName; private final Object[] providedArguments; - public AnnotatedInterceptorInjector(TraceContext traceContext, ProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, String interceptorName, Object[] providedArguments) { + public AnnotatedInterceptorInjector(TraceContext traceContext, DefaultProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, String interceptorName, Object[] providedArguments) { this.traceContext = traceContext; this.pluginContext = pluginContext; this.instrumentor = instrumentor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultInterceptorInjector.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/DefaultInterceptorInjector.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultInterceptorInjector.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/DefaultInterceptorInjector.java index 2fa657f66940..4d4002596088 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/DefaultInterceptorInjector.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/DefaultInterceptorInjector.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/InterceptorFactory.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/InterceptorFactory.java similarity index 94% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/InterceptorFactory.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/InterceptorFactory.java index 138d143d47e8..86fbcf8a229e 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/InterceptorFactory.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/InterceptorFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.MethodInfo; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/InterceptorInjector.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/InterceptorInjector.java similarity index 84% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/InterceptorInjector.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/InterceptorInjector.java index 76ae09f8d7b9..d020069819ba 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/InterceptorInjector.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/InterceptorInjector.java @@ -12,7 +12,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; + +import com.navercorp.pinpoint.profiler.plugin.editor.MethodRecipe; /** * @author Jongho Moon diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedInterceptorFactory.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedInterceptorFactory.java similarity index 97% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedInterceptorFactory.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedInterceptorFactory.java index ea5090a27fa9..251c1ba45b53 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedInterceptorFactory.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedInterceptorFactory.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedSimpleAroundInterceptor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedSimpleAroundInterceptor.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedSimpleAroundInterceptor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedSimpleAroundInterceptor.java index 90c5fe8305e9..97466e568578 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedSimpleAroundInterceptor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedSimpleAroundInterceptor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import com.navercorp.pinpoint.bootstrap.instrument.Scope; import com.navercorp.pinpoint.bootstrap.interceptor.SimpleAroundInterceptor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedStaticInterceptor.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedStaticInterceptor.java similarity index 97% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedStaticInterceptor.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedStaticInterceptor.java index d96686c6bbd6..0ec291f01305 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ScopedStaticInterceptor.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/ScopedStaticInterceptor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import com.navercorp.pinpoint.bootstrap.instrument.Scope; import com.navercorp.pinpoint.bootstrap.interceptor.StaticAroundInterceptor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/SingletonInterceptorInjector.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/SingletonInterceptorInjector.java similarity index 97% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/SingletonInterceptorInjector.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/SingletonInterceptorInjector.java index 075487aa0478..dfc3bf72b9ac 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/SingletonInterceptorInjector.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/SingletonInterceptorInjector.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentException; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/TargetAnnotatedInterceptorInjector.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/TargetAnnotatedInterceptorInjector.java similarity index 87% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/TargetAnnotatedInterceptorInjector.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/TargetAnnotatedInterceptorInjector.java index c227f3007965..db4eeed05bb5 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/TargetAnnotatedInterceptorInjector.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/interceptor/TargetAnnotatedInterceptorInjector.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.interceptor; import java.util.ArrayList; import java.util.List; @@ -29,6 +29,14 @@ import com.navercorp.pinpoint.bootstrap.plugin.Targets; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassRecipe; import com.navercorp.pinpoint.exception.PinpointException; +import com.navercorp.pinpoint.profiler.plugin.DefaultProfilerPluginContext; +import com.navercorp.pinpoint.profiler.plugin.TypeUtils; +import com.navercorp.pinpoint.profiler.plugin.editor.ClassCookBook; +import com.navercorp.pinpoint.profiler.plugin.editor.ConstructorEditor; +import com.navercorp.pinpoint.profiler.plugin.editor.DedicatedMethodEditor; +import com.navercorp.pinpoint.profiler.plugin.editor.FilteringMethodEditor; +import com.navercorp.pinpoint.profiler.plugin.editor.MethodEditor; +import com.navercorp.pinpoint.profiler.plugin.objectfactory.AutoBindingObjectFactory; /** * @author Jongho Moon @@ -37,13 +45,13 @@ public class TargetAnnotatedInterceptorInjector implements ClassRecipe { private final TraceContext traceContext; - private final ProfilerPluginContext pluginContext; + private final DefaultProfilerPluginContext pluginContext; private final ByteCodeInstrumentor instrumentor; private final String interceptorName; private final Object[] providedArguments; - public TargetAnnotatedInterceptorInjector(TraceContext traceContext, ProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, String interceptorName, Object[] providedArguments) { + public TargetAnnotatedInterceptorInjector(TraceContext traceContext, DefaultProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, String interceptorName, Object[] providedArguments) { this.traceContext = traceContext; this.pluginContext = pluginContext; this.instrumentor = instrumentor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AttributeResolver.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/AttributeResolver.java similarity index 84% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AttributeResolver.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/AttributeResolver.java index f20012bd30ea..fe3ff7363681 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AttributeResolver.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/AttributeResolver.java @@ -12,22 +12,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.objectfactory; import java.lang.annotation.Annotation; import com.navercorp.pinpoint.bootstrap.plugin.Attribute; -import com.navercorp.pinpoint.bootstrap.plugin.PluginContext; +import com.navercorp.pinpoint.bootstrap.plugin.ProfilerPluginContext; import com.navercorp.pinpoint.exception.PinpointException; +import com.navercorp.pinpoint.profiler.plugin.TypeUtils; /** * @author Jongho Moon * */ public class AttributeResolver implements ParameterResolver { - private final PluginContext context; + private final ProfilerPluginContext context; - public AttributeResolver(PluginContext context) { + public AttributeResolver(ProfilerPluginContext context) { this.context = context; } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AutoBindingObjectFactory.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/AutoBindingObjectFactory.java similarity index 87% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AutoBindingObjectFactory.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/AutoBindingObjectFactory.java index 891098542a05..48c0aec028ea 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/AutoBindingObjectFactory.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/AutoBindingObjectFactory.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.objectfactory; import java.lang.reflect.Constructor; import java.util.ArrayList; @@ -23,7 +23,7 @@ import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.MethodInfo; -import com.navercorp.pinpoint.bootstrap.plugin.PluginContext; +import com.navercorp.pinpoint.bootstrap.plugin.ProfilerPluginContext; import com.navercorp.pinpoint.exception.PinpointException; /** @@ -33,17 +33,17 @@ public class AutoBindingObjectFactory { private final TraceContext traceContext; - private final PluginContext pluginContext; + private final ProfilerPluginContext pluginContext; private final ByteCodeInstrumentor instrumentor; private final InstrumentClass targetClass; private final MethodInfo targetMethod; private final Object[] providedValues; - public AutoBindingObjectFactory(TraceContext traceContext, PluginContext pluginContext, ByteCodeInstrumentor instrumentor, InstrumentClass targetClass, Object[] providedValues) { + public AutoBindingObjectFactory(TraceContext traceContext, ProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, InstrumentClass targetClass, Object[] providedValues) { this(traceContext, pluginContext, instrumentor, targetClass, null, providedValues); } - public AutoBindingObjectFactory(TraceContext traceContext, PluginContext pluginContext, ByteCodeInstrumentor instrumentor, InstrumentClass targetClass, MethodInfo targetMethod, Object[] providedValues) { + public AutoBindingObjectFactory(TraceContext traceContext, ProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, InstrumentClass targetClass, MethodInfo targetMethod, Object[] providedValues) { this.traceContext = traceContext; this.pluginContext = pluginContext; this.instrumentor = instrumentor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConstructorResolver.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ConstructorResolver.java similarity index 98% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConstructorResolver.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ConstructorResolver.java index 495422ea7f29..fa96b236c249 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ConstructorResolver.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ConstructorResolver.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.objectfactory; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/JudgingParameterResolver.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/JudgingParameterResolver.java similarity index 92% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/JudgingParameterResolver.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/JudgingParameterResolver.java index 5b90bdf118d1..0657fddc2fc0 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/JudgingParameterResolver.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/JudgingParameterResolver.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.objectfactory; /** * @author Jongho Moon diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/Option.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/Option.java similarity index 96% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/Option.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/Option.java index 935178cbe5bf..8c2c1b0f8314 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/Option.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/Option.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.objectfactory; // TODO move package public abstract class Option { diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ParameterResolver.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ParameterResolver.java similarity index 92% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ParameterResolver.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ParameterResolver.java index 07f8fe74c821..8074d4560da6 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ParameterResolver.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ParameterResolver.java @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.objectfactory; import java.lang.annotation.Annotation; diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/PinpointTypeResolver.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/PinpointTypeResolver.java similarity index 82% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/PinpointTypeResolver.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/PinpointTypeResolver.java index a6fd160622c2..fc6e232b271b 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/PinpointTypeResolver.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/PinpointTypeResolver.java @@ -12,20 +12,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.objectfactory; import java.lang.annotation.Annotation; +import com.navercorp.pinpoint.bootstrap.FieldSnooper; +import com.navercorp.pinpoint.bootstrap.MetadataAccessor; +import com.navercorp.pinpoint.bootstrap.context.Trace; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; import com.navercorp.pinpoint.bootstrap.instrument.MethodInfo; import com.navercorp.pinpoint.bootstrap.interceptor.MethodDescriptor; import com.navercorp.pinpoint.bootstrap.plugin.Cached; -import com.navercorp.pinpoint.bootstrap.plugin.FieldSnooper; -import com.navercorp.pinpoint.bootstrap.plugin.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.plugin.Name; -import com.navercorp.pinpoint.bootstrap.plugin.PluginContext; +import com.navercorp.pinpoint.bootstrap.plugin.ProfilerPluginContext; +import com.navercorp.pinpoint.profiler.plugin.TypeUtils; /** * @author Jongho Moon @@ -33,12 +35,12 @@ */ public class PinpointTypeResolver implements ParameterResolver { private final TraceContext traceContext; - private final PluginContext pluginContext; + private final ProfilerPluginContext pluginContext; private final ByteCodeInstrumentor instrumentor; private final InstrumentClass targetClass; private final MethodInfo targetMethod; - public PinpointTypeResolver(TraceContext traceContext, PluginContext pluginContext, ByteCodeInstrumentor instrumentor, InstrumentClass targetClass, MethodInfo targetMethod) { + public PinpointTypeResolver(TraceContext traceContext, ProfilerPluginContext pluginContext, ByteCodeInstrumentor instrumentor, InstrumentClass targetClass, MethodInfo targetMethod) { this.traceContext = traceContext; this.pluginContext = pluginContext; this.instrumentor = instrumentor; @@ -51,9 +53,11 @@ public PinpointTypeResolver(TraceContext traceContext, PluginContext pluginConte */ @Override public Option resolve(int index, Class type, Annotation[] annotations) { - if (type == TraceContext.class) { + if (type == Trace.class) { + return Option.withValue(traceContext.currentTraceObject()); + } else if (type == TraceContext.class) { return Option.withValue(traceContext); - } else if (type == PluginContext.class) { + } else if (type == ProfilerPluginContext.class) { return Option.withValue(pluginContext); } else if (type == ByteCodeInstrumentor.class) { return Option.withValue(instrumentor); diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ProvidedValuesResolver.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ProvidedValuesResolver.java similarity index 93% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ProvidedValuesResolver.java rename to profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ProvidedValuesResolver.java index 5c9641eae96a..ae53ef61e73c 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/ProvidedValuesResolver.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/objectfactory/ProvidedValuesResolver.java @@ -12,10 +12,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.profiler.plugin.objectfactory; import java.lang.annotation.Annotation; +import com.navercorp.pinpoint.profiler.plugin.TypeUtils; + /** * @author Jongho Moon * diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/util/ApplicationServerTypeResolver.java b/profiler/src/main/java/com/navercorp/pinpoint/profiler/util/ApplicationServerTypeResolver.java index d18f2d046979..533bf7dde02f 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/util/ApplicationServerTypeResolver.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/profiler/util/ApplicationServerTypeResolver.java @@ -26,7 +26,7 @@ import com.navercorp.pinpoint.bootstrap.plugin.ApplicationServerProperty; import com.navercorp.pinpoint.bootstrap.plugin.ServerTypeDetector; import com.navercorp.pinpoint.common.ServiceType; -import com.navercorp.pinpoint.profiler.plugin.ProfilerPluginContext; +import com.navercorp.pinpoint.profiler.plugin.DefaultProfilerPluginContext; /** * @author emeroad @@ -47,10 +47,10 @@ public class ApplicationServerTypeResolver { */ private boolean manuallyStartupRequired = true; - public ApplicationServerTypeResolver(List plugins, ServiceType defaultType) { + public ApplicationServerTypeResolver(List plugins, ServiceType defaultType) { this.defaultType = defaultType; - for (ProfilerPluginContext context : plugins) { + for (DefaultProfilerPluginContext context : plugins) { detectors.addAll(context.getServerTypeDetectors()); } } diff --git a/profiler/src/main/java/com/navercorp/pinpoint/test/ClassTransformHelper.java b/profiler/src/main/java/com/navercorp/pinpoint/test/ClassTransformHelper.java index 000bee8040b3..40b4c69444f3 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/test/ClassTransformHelper.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/test/ClassTransformHelper.java @@ -17,7 +17,7 @@ package com.navercorp.pinpoint.test; import com.navercorp.pinpoint.profiler.modifier.Modifier; -import com.navercorp.pinpoint.profiler.plugin.BytecodeUtils; +import com.navercorp.pinpoint.test.util.BytecodeUtils; public class ClassTransformHelper { diff --git a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/BytecodeUtils.java b/profiler/src/main/java/com/navercorp/pinpoint/test/util/BytecodeUtils.java similarity index 98% rename from profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/BytecodeUtils.java rename to profiler/src/main/java/com/navercorp/pinpoint/test/util/BytecodeUtils.java index 105b8f2c3a77..9a6870be40e5 100644 --- a/profiler/src/main/java/com/navercorp/pinpoint/profiler/plugin/BytecodeUtils.java +++ b/profiler/src/main/java/com/navercorp/pinpoint/test/util/BytecodeUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.navercorp.pinpoint.profiler.plugin; +package com.navercorp.pinpoint.test.util; import java.io.Closeable; import java.io.IOException; diff --git a/profiler/src/test/java/com/navercorp/pinpoint/profiler/interceptor/bci/JavaAssistClassTest.java b/profiler/src/test/java/com/navercorp/pinpoint/profiler/interceptor/bci/JavaAssistClassTest.java index 660e37639ee0..9dfe17d81a64 100644 --- a/profiler/src/test/java/com/navercorp/pinpoint/profiler/interceptor/bci/JavaAssistClassTest.java +++ b/profiler/src/test/java/com/navercorp/pinpoint/profiler/interceptor/bci/JavaAssistClassTest.java @@ -30,6 +30,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.navercorp.pinpoint.bootstrap.FieldSnooper; import com.navercorp.pinpoint.bootstrap.config.ProfilerConfig; import com.navercorp.pinpoint.bootstrap.context.DatabaseInfo; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; @@ -42,7 +43,6 @@ import com.navercorp.pinpoint.bootstrap.interceptor.tracevalue.IntTraceValue; import com.navercorp.pinpoint.bootstrap.interceptor.tracevalue.ObjectTraceValue; import com.navercorp.pinpoint.bootstrap.logging.PLoggerFactory; -import com.navercorp.pinpoint.bootstrap.plugin.FieldSnooper; import com.navercorp.pinpoint.common.ServiceType; import com.navercorp.pinpoint.profiler.DefaultAgent; import com.navercorp.pinpoint.profiler.logging.Slf4jLoggerBinder; diff --git a/profiler/src/test/java/com/navercorp/pinpoint/profiler/modifier/spring/beans/BeanMethodModifierTest.java b/profiler/src/test/java/com/navercorp/pinpoint/profiler/modifier/spring/beans/BeanMethodModifierTest.java index 21dd9479041e..aa4014c7d74b 100644 --- a/profiler/src/test/java/com/navercorp/pinpoint/profiler/modifier/spring/beans/BeanMethodModifierTest.java +++ b/profiler/src/test/java/com/navercorp/pinpoint/profiler/modifier/spring/beans/BeanMethodModifierTest.java @@ -24,8 +24,8 @@ import com.navercorp.pinpoint.profiler.DefaultAgent; import com.navercorp.pinpoint.profiler.modifier.method.interceptor.MethodInterceptor; import com.navercorp.pinpoint.profiler.modifier.spring.beans.BeanMethodModifier; -import com.navercorp.pinpoint.profiler.plugin.BytecodeUtils; import com.navercorp.pinpoint.test.MockAgent; +import com.navercorp.pinpoint.test.util.BytecodeUtils; import org.junit.Test; diff --git a/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/BytecodeUtilsTest.java b/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/BytecodeUtilsTest.java index 9810b0c1b016..90b42b230f09 100644 --- a/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/BytecodeUtilsTest.java +++ b/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/BytecodeUtilsTest.java @@ -20,7 +20,7 @@ import org.junit.Test; -import com.navercorp.pinpoint.profiler.plugin.BytecodeUtils; +import com.navercorp.pinpoint.test.util.BytecodeUtils; import static org.junit.Assert.*; diff --git a/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/DefaultClassEditorBuilderTest.java b/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/DefaultClassEditorBuilderTest.java index ea479435fe3a..c3dbbf1264a7 100644 --- a/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/DefaultClassEditorBuilderTest.java +++ b/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/DefaultClassEditorBuilderTest.java @@ -21,6 +21,8 @@ import org.junit.Test; +import com.navercorp.pinpoint.bootstrap.FieldSnooper; +import com.navercorp.pinpoint.bootstrap.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.context.TraceContext; import com.navercorp.pinpoint.bootstrap.instrument.ByteCodeInstrumentor; import com.navercorp.pinpoint.bootstrap.instrument.InstrumentClass; @@ -28,10 +30,9 @@ import com.navercorp.pinpoint.bootstrap.instrument.Scope; import com.navercorp.pinpoint.bootstrap.interceptor.Interceptor; import com.navercorp.pinpoint.bootstrap.interceptor.MethodDescriptor; -import com.navercorp.pinpoint.bootstrap.plugin.FieldSnooper; -import com.navercorp.pinpoint.bootstrap.plugin.MetadataAccessor; import com.navercorp.pinpoint.bootstrap.plugin.editor.ClassEditor; import com.navercorp.pinpoint.bootstrap.plugin.editor.MethodEditorBuilder; +import com.navercorp.pinpoint.profiler.plugin.editor.DefaultClassEditorBuilder; public class DefaultClassEditorBuilderTest { public static final String SCOPE_NAME = "test"; @@ -57,7 +58,7 @@ public void test() throws Exception { when(aMethod.getDescriptor()).thenReturn(aDescriptor); when(aClass.addInterceptor(eq(methodName), eq(parameterTypeNames), isA(Interceptor.class))).thenReturn(0); - ProfilerPluginContext context = new ProfilerPluginContext(null); + DefaultProfilerPluginContext context = new DefaultProfilerPluginContext(null); DefaultClassEditorBuilder builder = new DefaultClassEditorBuilder(context); builder.injectMetadata("a", "java.util.HashMap"); builder.injectFieldSnooper("someField"); diff --git a/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/DefaultInterceptorFactoryTest.java b/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/DefaultInterceptorFactoryTest.java index 58f819eecf48..37c4dbb3ec88 100644 --- a/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/DefaultInterceptorFactoryTest.java +++ b/profiler/src/test/java/com/navercorp/pinpoint/profiler/plugin/DefaultInterceptorFactoryTest.java @@ -32,14 +32,14 @@ import com.navercorp.pinpoint.bootstrap.interceptor.Interceptor; import com.navercorp.pinpoint.bootstrap.interceptor.MethodDescriptor; import com.navercorp.pinpoint.exception.PinpointException; -import com.navercorp.pinpoint.profiler.plugin.AnnotatedInterceptorFactory; -import com.navercorp.pinpoint.profiler.plugin.ProfilerPluginContext; +import com.navercorp.pinpoint.profiler.plugin.DefaultProfilerPluginContext; import com.navercorp.pinpoint.profiler.plugin.TestInterceptors.TestInterceptor0; import com.navercorp.pinpoint.profiler.plugin.TestInterceptors.TestInterceptor1; import com.navercorp.pinpoint.profiler.plugin.TestInterceptors.TestInterceptor2; +import com.navercorp.pinpoint.profiler.plugin.interceptor.AnnotatedInterceptorFactory; public class DefaultInterceptorFactoryTest { - private final ProfilerPluginContext pluginContext = mock(ProfilerPluginContext.class); + private final DefaultProfilerPluginContext pluginContext = mock(DefaultProfilerPluginContext.class); private final ByteCodeInstrumentor instrumentor = mock(ByteCodeInstrumentor.class); private final TraceContext traceContext = mock(TraceContext.class); private final InstrumentClass aClass = mock(InstrumentClass.class);