use of com.navercorp.pinpoint.profiler.instrument.classloading.JarProfilerPluginClassInjector 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;
}
Aggregations