use of com.navercorp.pinpoint.profiler.instrument.classloading.ClassInjector in project pinpoint by naver.
the class ProfilerPluginLoader method load.
public List<SetupResult> load(URL[] pluginJars) {
List<SetupResult> pluginContexts = new ArrayList<SetupResult>(pluginJars.length);
for (URL pluginJar : pluginJars) {
final JarFile pluginJarFile = createJarFile(pluginJar);
final List<String> pluginPackageList = getPluginPackage(pluginJarFile);
final ClassNameFilter pluginFilterChain = createPluginFilterChain(pluginPackageList);
final List<ProfilerPlugin> original = PluginLoader.load(ProfilerPlugin.class, new URL[] { pluginJar });
List<ProfilerPlugin> plugins = filterDisablePlugin(original);
for (ProfilerPlugin plugin : plugins) {
if (logger.isInfoEnabled()) {
logger.info("{} Plugin {}:{}", plugin.getClass(), PluginConfig.PINPOINT_PLUGIN_PACKAGE, pluginPackageList);
}
logger.info("Loading plugin:{} pluginPackage:{}", plugin.getClass().getName(), plugin);
PluginConfig pluginConfig = new PluginConfig(pluginJar, pluginFilterChain);
final ClassInjector classInjector = new JarProfilerPluginClassInjector(pluginConfig, instrumentEngine);
final SetupResult result = pluginSetup.setupPlugin(plugin, classInjector);
pluginContexts.add(result);
}
}
return pluginContexts;
}
use of com.navercorp.pinpoint.profiler.instrument.classloading.ClassInjector in project pinpoint by naver.
the class MockPluginContextLoadResult method load.
private List<SetupResult> load() {
List<ProfilerPlugin> plugins = PluginLoader.load(ProfilerPlugin.class, ClassLoader.getSystemClassLoader());
List<SetupResult> pluginContexts = new ArrayList<SetupResult>();
ClassInjector classInjector = new TestProfilerPluginClassLoader();
PluginSetup pluginSetup = new MockPluginSetup(profilerConfig, instrumentEngine, dynamicTransformTrigger);
for (ProfilerPlugin plugin : plugins) {
SetupResult context = pluginSetup.setupPlugin(plugin, classInjector);
pluginContexts.add(context);
}
return pluginContexts;
}
use of com.navercorp.pinpoint.profiler.instrument.classloading.ClassInjector in project pinpoint by naver.
the class DebugTransformerRegistry method newDebugTransformer.
private DebugTransformer newDebugTransformer(ProfilerConfig profilerConfig, InstrumentEngine instrumentEngine, DynamicTransformTrigger dynamicTransformTrigger) {
ClassInjector classInjector = newClassInjector(profilerConfig);
ClassFileTransformerLoader transformerRegistry = new ClassFileTransformerLoader(profilerConfig, dynamicTransformTrigger);
InstrumentContext debugContext = new PluginInstrumentContext(profilerConfig, instrumentEngine, dynamicTransformTrigger, classInjector, transformerRegistry);
return new DebugTransformer(instrumentEngine, debugContext);
}
Aggregations