private static void initializePlugin(final StagemonitorPlugin stagemonitorPlugin) { final String pluginName = stagemonitorPlugin.getClass().getSimpleName(); try { stagemonitorPlugin.initializePlugin(new StagemonitorPlugin.InitArguments(metric2Registry, getConfiguration(), measurementSession, healthCheckRegistry)); stagemonitorPlugin.initialized = true; for (Runnable onInitCallback : stagemonitorPlugin.onInitCallbacks) { onInitCallback.run(); } stagemonitorPlugin.registerWidgetTabPlugins(new StagemonitorPlugin.WidgetTabPluginsRegistry(pathsOfWidgetTabPlugins)); stagemonitorPlugin.registerWidgetMetricTabPlugins(new StagemonitorPlugin.WidgetMetricTabPluginsRegistry(pathsOfWidgetMetricTabPlugins)); healthCheckRegistry.register(pluginName, ImmediateResult.of(HealthCheck.Result.healthy("version " + stagemonitorPlugin.getVersion()))); } catch (final Exception e) { healthCheckRegistry.register(pluginName, ImmediateResult.of(HealthCheck.Result.unhealthy(e))); logger.warn("Error while initializing plugin " + pluginName + " (this exception is ignored)", e); } }