use of com.navercorp.pinpoint.profiler.plugin.PluginJar in project pinpoint by naver.
the class ConfigModule method configure.
@Override
protected void configure() {
logger.info("configure {}", this.getClass().getSimpleName());
binder().requireExplicitBindings();
binder().requireAtInjectOnConstructors();
binder().disableCircularProxies();
ProfilerConfig profilerConfig = agentOption.getProfilerConfig();
bind(ProfilerConfig.class).toInstance(profilerConfig);
Properties properties = profilerConfig.getProperties();
ConfigurationLoader configurationLoader = new ConfigurationLoader(properties);
ContextConfig contextConfig = new DefaultContextConfig();
configurationLoader.load(contextConfig);
logger.info("{}", contextConfig);
bind(ContextConfig.class).toInstance(contextConfig);
bindConstants(contextConfig);
PluginLoadingConfig pluginLoadingConfig = new DefaultPluginLoadingConfig();
configurationLoader.load(pluginLoadingConfig);
logger.info("{}", pluginLoadingConfig);
bind(PluginLoadingConfig.class).toInstance(pluginLoadingConfig);
InstrumentConfig instrumentConfig = new DefaultInstrumentConfig();
configurationLoader.load(instrumentConfig);
logger.info("{}", instrumentConfig);
bind(InstrumentConfig.class).toInstance(instrumentConfig);
InstrumentMatcherCacheConfig instrumentMatcherCacheConfig = new DefaultInstrumentMatcherCacheConfig();
configurationLoader.load(instrumentMatcherCacheConfig);
logger.info("{}", instrumentMatcherCacheConfig);
bind(InstrumentMatcherCacheConfig.class).toInstance(instrumentMatcherCacheConfig);
MonitorConfig monitorConfig = new DefaultMonitorConfig();
configurationLoader.load(monitorConfig);
logger.info("{}", monitorConfig);
bind(MonitorConfig.class).toInstance(monitorConfig);
bind(TransportModule.class).toInstance(profilerConfig.getTransportModule());
bind(Instrumentation.class).toInstance(agentOption.getInstrumentation());
bind(InterceptorRegistryBinder.class).toProvider(InterceptorRegistryBinderProvider.class).in(Scopes.SINGLETON);
TypeLiteral<List<String>> pluginJarFile = new TypeLiteral<List<String>>() {
};
bind(pluginJarFile).annotatedWith(PluginJarPaths.class).toInstance(agentOption.getPluginJars());
TypeLiteral<List<PluginJar>> pluginJars = new TypeLiteral<List<PluginJar>>() {
};
bind(pluginJars).annotatedWith(PluginJars.class).toProvider(PluginJarsProvider.class).in(Scopes.SINGLETON);
bindBootstrapCoreInformation();
bindAgentInformation(agentOption.getAgentId(), agentOption.getAgentName(), agentOption.getApplicationName(), agentOption.isContainer());
bindShutdownHook(contextConfig);
}
use of com.navercorp.pinpoint.profiler.plugin.PluginJar in project pinpoint by naver.
the class JarProfilerPluginClassInjectorTest method getMockPlugin.
private Plugin<?> getMockPlugin(Class<?> clazz) throws Exception {
final URL location = CodeSourceUtils.getCodeLocation(clazz);
logger.debug("url:{}", location);
PluginJar pluginJar = PluginJar.fromFilePath(location.getFile());
return new JarPlugin<>(pluginJar, Collections.emptyList(), Collections.<String>emptyList());
}
use of com.navercorp.pinpoint.profiler.plugin.PluginJar in project pinpoint by naver.
the class PluginJarsProvider method sort.
private List<PluginJar> sort(List<PluginJar> pluginList, List<String> orderedPluginIdList) {
Map<String, PluginJar> orderedPlugins = getOrderedPlugins(orderedPluginIdList);
List<PluginJar> unorderedPlugins = new ArrayList<>();
for (PluginJar pluginJar : pluginList) {
String pluginId = pluginJar.getPluginId();
if (orderedPlugins.containsKey(pluginId)) {
PluginJar prev = orderedPlugins.put(pluginId, pluginJar);
if (prev != null) {
throw new IllegalStateException("Duplicate order found for plugin : " + pluginId);
}
} else {
unorderedPlugins.add(pluginJar);
}
}
List<PluginJar> pluginJars = new ArrayList<>();
for (PluginJar orderedPlugin : orderedPlugins.values()) {
if (orderedPlugin != null) {
pluginJars.add(orderedPlugin);
}
}
pluginJars.addAll(unorderedPlugins);
return pluginJars;
}
use of com.navercorp.pinpoint.profiler.plugin.PluginJar in project pinpoint by naver.
the class PluginJarsProvider method filter.
private List<PluginJar> filter(List<String> pluginJarPaths, PluginFilter pluginFilter) {
List<PluginJar> list = new ArrayList<>();
for (String pluginJarPath : pluginJarPaths) {
PluginJar pluginJar = PluginJar.fromFilePath(pluginJarPath);
if (!pluginFilter.accept(pluginJar)) {
continue;
}
list.add(pluginJar);
}
return list;
}
Aggregations