use of org.graylog2.plugin.PluginModule in project graylog2-server by Graylog2.
the class PluginBindings method configure.
@Override
protected void configure() {
final Multibinder<Plugin> pluginbinder = Multibinder.newSetBinder(binder(), Plugin.class);
final Multibinder<PluginMetaData> pluginMetaDataBinder = Multibinder.newSetBinder(binder(), PluginMetaData.class);
// Make sure there is a binding for the plugin rest resource classes to avoid binding errors when running
// without plugins.
MapBinder.newMapBinder(binder(), new TypeLiteral<String>() {
}, new TypeLiteral<Class<? extends PluginRestResource>>() {
}).permitDuplicates();
// Make sure there is a binding for the PluginUISettingsProvider classes to avoid binding errors when running
// without plugins
MapBinder.newMapBinder(binder(), String.class, PluginUISettingsProvider.class).permitDuplicates();
for (final Plugin plugin : plugins) {
pluginbinder.addBinding().toInstance(plugin);
for (final PluginModule pluginModule : plugin.modules()) {
binder().install(pluginModule);
}
pluginMetaDataBinder.addBinding().toInstance(plugin.metadata());
}
}
use of org.graylog2.plugin.PluginModule in project graylog2-server by Graylog2.
the class CmdLineTool method installPluginConfigAndBindings.
private PluginBindings installPluginConfigAndBindings(String pluginPath, ChainingClassLoader classLoader) {
final Set<Plugin> plugins = loadPlugins(pluginPath, classLoader);
final PluginBindings pluginBindings = new PluginBindings(plugins);
for (final Plugin plugin : plugins) {
for (final PluginModule pluginModule : plugin.modules()) {
for (final PluginConfigBean configBean : pluginModule.getConfigBeans()) {
jadConfig.addConfigurationBean(configBean);
}
}
}
return pluginBindings;
}
Aggregations