test_class.declarator: originalConfiguration
test_class.modifier: private static
test_class.original_string: private static ConfigurationRegistry originalConfiguration;
test_class.type: ConfigurationRegistry
test_class.var_name: originalConfiguration
test_class.declarator: healthCheckRegistry = Stagemonitor.getHealthCheckRegistry()
test_class.modifier: private final
test_class.original_string: private final HealthCheckRegistry healthCheckRegistry = Stagemonitor.getHealthCheckRegistry();
test_class.type: HealthCheckRegistry
test_class.var_name: healthCheckRegistry
test_class.declarator: configuration = mock(ConfigurationRegistry.class)
test_class.modifier: private
test_class.original_string: private ConfigurationRegistry configuration = mock(ConfigurationRegistry.class);
test_class.type: ConfigurationRegistry
test_class.var_name: configuration
test_class.declarator: corePlugin = mock(CorePlugin.class)
test_class.modifier: private
test_class.original_string: private CorePlugin corePlugin = mock(CorePlugin.class);
test_class.type: CorePlugin
test_class.var_name: corePlugin
test_class.file: stagemonitor-core/src/test/java/org/stagemonitor/core/StagemonitorTest.java
test_class.identifier: StagemonitorTest
test_case.body: @Test
  	public void testInitPluginsCyclicDependency() {
  		final List<StagemonitorPlugin> plugins = Arrays.asList(new PluginNoDependency(), new PluginCyclicA(), new PluginCyclicB());
  		assertThatThrownBy(() -> Stagemonitor.initializePluginsInOrder(Collections.emptyList(), plugins))
  				.isInstanceOf(IllegalStateException.class)
  				.hasMessageContaining("PluginCyclicA")
  				.hasMessageContaining("PluginCyclicB");
  	}
test_case.class_method_signature: StagemonitorTest.testInitPluginsCyclicDependency()
test_case.full_signature: @Test public void testInitPluginsCyclicDependency()
test_case.identifier: testInitPluginsCyclicDependency
test_case.invocations: asList hasMessageContaining hasMessageContaining isInstanceOf assertThatThrownBy initializePluginsInOrder emptyList
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testInitPluginsCyclicDependency()
focal_class.declarator: logger = LoggerFactory.getLogger(Stagemonitor.class)
focal_class.modifier: private static
focal_class.original_string: private static Logger logger = LoggerFactory.getLogger(Stagemonitor.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: configuration
focal_class.modifier: private static
focal_class.original_string: private static ConfigurationRegistry configuration;
focal_class.type: ConfigurationRegistry
focal_class.var_name: configuration
focal_class.declarator: initialized
focal_class.modifier: private static
focal_class.original_string: private static boolean initialized;
focal_class.type: boolean
focal_class.var_name: initialized
focal_class.declarator: started
focal_class.modifier: private static
focal_class.original_string: private static boolean started;
focal_class.type: boolean
focal_class.var_name: started
focal_class.declarator: disabled
focal_class.modifier: private static
focal_class.original_string: private static boolean disabled;
focal_class.type: boolean
focal_class.var_name: disabled
focal_class.declarator: measurementSession = new MeasurementSession(null, null, null)
focal_class.modifier: private static
focal_class.original_string: private static MeasurementSession measurementSession = new MeasurementSession(null, null, null);
focal_class.type: MeasurementSession
focal_class.var_name: measurementSession
focal_class.declarator: pathsOfWidgetMetricTabPlugins = Collections.emptyList()
focal_class.modifier: private static
focal_class.original_string: private static List<String> pathsOfWidgetMetricTabPlugins = Collections.emptyList();
focal_class.type: List<String>
focal_class.var_name: pathsOfWidgetMetricTabPlugins
focal_class.declarator: pathsOfWidgetTabPlugins = Collections.emptyList()
focal_class.modifier: private static
focal_class.original_string: private static List<String> pathsOfWidgetTabPlugins = Collections.emptyList();
focal_class.type: List<String>
focal_class.var_name: pathsOfWidgetTabPlugins
focal_class.declarator: plugins
focal_class.modifier: private static
focal_class.original_string: private static Iterable<StagemonitorPlugin> plugins;
focal_class.type: Iterable<StagemonitorPlugin>
focal_class.var_name: plugins
focal_class.declarator: onShutdownActions = new CopyOnWriteArrayList<Runnable>()
focal_class.modifier: private static
focal_class.original_string: private static List<Runnable> onShutdownActions = new CopyOnWriteArrayList<Runnable>();
focal_class.type: List<Runnable>
focal_class.var_name: onShutdownActions
focal_class.declarator: metric2Registry = new Metric2Registry(SharedMetricRegistries.getOrCreate("stagemonitor"))
focal_class.modifier: private static
focal_class.original_string: private static Metric2Registry metric2Registry = new Metric2Registry(SharedMetricRegistries.getOrCreate("stagemonitor"));
focal_class.type: Metric2Registry
focal_class.var_name: metric2Registry
focal_class.declarator: healthCheckRegistry = new OverridableHealthCheckRegistry()
focal_class.modifier: private static
focal_class.original_string: private static HealthCheckRegistry healthCheckRegistry = new OverridableHealthCheckRegistry();
focal_class.type: HealthCheckRegistry
focal_class.var_name: healthCheckRegistry
focal_class.file: stagemonitor-core/src/main/java/org/stagemonitor/core/Stagemonitor.java
focal_class.identifier: Stagemonitor
focal_class.class_method_signature: Stagemonitor.Stagemonitor()
focal_class.full_signature: private  Stagemonitor()
focal_class.identifier: Stagemonitor
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Stagemonitor()
focal_class.class_method_signature: Stagemonitor.init()
focal_class.full_signature: public static synchronized void init()
focal_class.identifier: init
focal_class.modifiers: public static synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void init()
focal_class.class_method_signature: Stagemonitor.startMonitoring(MeasurementSession measurementSession)
focal_class.full_signature: private static void startMonitoring(MeasurementSession measurementSession)
focal_class.identifier: startMonitoring
focal_class.modifiers: private static
focal_class.parameters: (MeasurementSession measurementSession)
focal_class.return: void
focal_class.signature: void startMonitoring(MeasurementSession measurementSession)
focal_class.class_method_signature: Stagemonitor.doStartMonitoring()
focal_class.full_signature: private static void doStartMonitoring()
focal_class.identifier: doStartMonitoring
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void doStartMonitoring()
focal_class.class_method_signature: Stagemonitor.start()
focal_class.full_signature: private static void start()
focal_class.identifier: start
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void start()
focal_class.class_method_signature: Stagemonitor.logStatus()
focal_class.full_signature: private static void logStatus()
focal_class.identifier: logStatus
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void logStatus()
focal_class.class_method_signature: Stagemonitor.getJvmAndOsVersionString()
focal_class.full_signature: private static String getJvmAndOsVersionString()
focal_class.identifier: getJvmAndOsVersionString
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getJvmAndOsVersionString()
focal_class.class_method_signature: Stagemonitor.initializePlugins()
focal_class.full_signature: private static void initializePlugins()
focal_class.identifier: initializePlugins
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void initializePlugins()
focal_class.class_method_signature: Stagemonitor.initializePluginsInOrder(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_class.full_signature: static void initializePluginsInOrder(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_class.identifier: initializePluginsInOrder
focal_class.modifiers: static
focal_class.parameters: (Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_class.return: void
focal_class.signature: void initializePluginsInOrder(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_class.class_method_signature: Stagemonitor.getPluginsToInit(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_class.full_signature: private static Set<StagemonitorPlugin> getPluginsToInit(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_class.identifier: getPluginsToInit
focal_class.modifiers: private static
focal_class.parameters: (Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_class.return: Set<StagemonitorPlugin>
focal_class.signature: Set<StagemonitorPlugin> getPluginsToInit(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_class.class_method_signature: Stagemonitor.initializePlugin(final StagemonitorPlugin stagemonitorPlugin)
focal_class.full_signature: private static void initializePlugin(final StagemonitorPlugin stagemonitorPlugin)
focal_class.identifier: initializePlugin
focal_class.modifiers: private static
focal_class.parameters: (final StagemonitorPlugin stagemonitorPlugin)
focal_class.return: void
focal_class.signature: void initializePlugin(final StagemonitorPlugin stagemonitorPlugin)
focal_class.class_method_signature: Stagemonitor.shutDown()
focal_class.full_signature: public static synchronized void shutDown()
focal_class.identifier: shutDown
focal_class.modifiers: public static synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutDown()
focal_class.class_method_signature: Stagemonitor.getMetricRegistry()
focal_class.full_signature: @Deprecated public static MetricRegistry getMetricRegistry()
focal_class.identifier: getMetricRegistry
focal_class.modifiers: @Deprecated public static
focal_class.parameters: ()
focal_class.return: MetricRegistry
focal_class.signature: MetricRegistry getMetricRegistry()
focal_class.class_method_signature: Stagemonitor.getMetric2Registry()
focal_class.full_signature: public static Metric2Registry getMetric2Registry()
focal_class.identifier: getMetric2Registry
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: Metric2Registry
focal_class.signature: Metric2Registry getMetric2Registry()
focal_class.class_method_signature: Stagemonitor.getHealthCheckRegistry()
focal_class.full_signature: public static HealthCheckRegistry getHealthCheckRegistry()
focal_class.identifier: getHealthCheckRegistry
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: HealthCheckRegistry
focal_class.signature: HealthCheckRegistry getHealthCheckRegistry()
focal_class.class_method_signature: Stagemonitor.getConfiguration()
focal_class.full_signature: public static ConfigurationRegistry getConfiguration()
focal_class.identifier: getConfiguration
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: ConfigurationRegistry
focal_class.signature: ConfigurationRegistry getConfiguration()
focal_class.class_method_signature: Stagemonitor.getPlugin(Class<T> plugin)
focal_class.full_signature: public static T getPlugin(Class<T> plugin)
focal_class.identifier: getPlugin
focal_class.modifiers: public static
focal_class.parameters: (Class<T> plugin)
focal_class.return: T
focal_class.signature: T getPlugin(Class<T> plugin)
focal_class.class_method_signature: Stagemonitor.getConfiguration(Class<T> plugin)
focal_class.full_signature: @Deprecated public static T getConfiguration(Class<T> plugin)
focal_class.identifier: getConfiguration
focal_class.modifiers: @Deprecated public static
focal_class.parameters: (Class<T> plugin)
focal_class.return: T
focal_class.signature: T getConfiguration(Class<T> plugin)
focal_class.class_method_signature: Stagemonitor.setConfiguration(ConfigurationRegistry configuration)
focal_class.full_signature: static void setConfiguration(ConfigurationRegistry configuration)
focal_class.identifier: setConfiguration
focal_class.modifiers: static
focal_class.parameters: (ConfigurationRegistry configuration)
focal_class.return: void
focal_class.signature: void setConfiguration(ConfigurationRegistry configuration)
focal_class.class_method_signature: Stagemonitor.getMeasurementSession()
focal_class.full_signature: public static MeasurementSession getMeasurementSession()
focal_class.identifier: getMeasurementSession
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: MeasurementSession
focal_class.signature: MeasurementSession getMeasurementSession()
focal_class.class_method_signature: Stagemonitor.isStarted()
focal_class.full_signature: public static boolean isStarted()
focal_class.identifier: isStarted
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isStarted()
focal_class.class_method_signature: Stagemonitor.isDisabled()
focal_class.full_signature: static boolean isDisabled()
focal_class.identifier: isDisabled
focal_class.modifiers: static
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isDisabled()
focal_class.class_method_signature: Stagemonitor.setLogger(Logger logger)
focal_class.full_signature: static void setLogger(Logger logger)
focal_class.identifier: setLogger
focal_class.modifiers: static
focal_class.parameters: (Logger logger)
focal_class.return: void
focal_class.signature: void setLogger(Logger logger)
focal_class.class_method_signature: Stagemonitor.getPathsOfWidgetTabPlugins()
focal_class.full_signature: public static List<String> getPathsOfWidgetTabPlugins()
focal_class.identifier: getPathsOfWidgetTabPlugins
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> getPathsOfWidgetTabPlugins()
focal_class.class_method_signature: Stagemonitor.getPathsOfWidgetMetricTabPlugins()
focal_class.full_signature: public static List<String> getPathsOfWidgetMetricTabPlugins()
focal_class.identifier: getPathsOfWidgetMetricTabPlugins
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> getPathsOfWidgetMetricTabPlugins()
focal_class.class_method_signature: Stagemonitor.reset()
focal_class.full_signature: @Deprecated public static void reset()
focal_class.identifier: reset
focal_class.modifiers: @Deprecated public static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void reset()
focal_class.class_method_signature: Stagemonitor.reset(MeasurementSession measurementSession)
focal_class.full_signature: @Deprecated public static void reset(MeasurementSession measurementSession)
focal_class.identifier: reset
focal_class.modifiers: @Deprecated public static
focal_class.parameters: (MeasurementSession measurementSession)
focal_class.return: void
focal_class.signature: void reset(MeasurementSession measurementSession)
focal_class.class_method_signature: Stagemonitor.reloadPluginsAndConfiguration()
focal_class.full_signature: private static void reloadPluginsAndConfiguration()
focal_class.identifier: reloadPluginsAndConfiguration
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void reloadPluginsAndConfiguration()
focal_method.body: static void initializePluginsInOrder(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins) {
  		Set<Class<? extends StagemonitorPlugin>> alreadyInitialized = new HashSet<Class<? extends StagemonitorPlugin>>();
  		Set<StagemonitorPlugin> notYetInitialized = getPluginsToInit(disabledPlugins, plugins);
  		while (!notYetInitialized.isEmpty()) {
  			int countNotYetInitialized = notYetInitialized.size();
  			// try to init plugins which are
  			for (Iterator<StagemonitorPlugin> iterator = notYetInitialized.iterator(); iterator.hasNext(); ) {
  				StagemonitorPlugin stagemonitorPlugin = iterator.next();
  				{
  					final List<Class<? extends StagemonitorPlugin>> dependencies = stagemonitorPlugin.dependsOn();
  					if (dependencies.isEmpty() || alreadyInitialized.containsAll(dependencies)) {
  						initializePlugin(stagemonitorPlugin);
  						iterator.remove();
  						alreadyInitialized.add(stagemonitorPlugin.getClass());
  					}
  				}
  			}
  			if (countNotYetInitialized == notYetInitialized.size()) {
  				// no plugins could be initialized in this try. this probably means there is a cyclic dependency
  				throw new IllegalStateException("Cyclic dependencies detected: " + notYetInitialized);
  			}
  		}
  	}
focal_method.class_method_signature: Stagemonitor.initializePluginsInOrder(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_method.full_signature: static void initializePluginsInOrder(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_method.identifier: initializePluginsInOrder
focal_method.invocations: getPluginsToInit isEmpty size iterator hasNext next dependsOn isEmpty containsAll initializePlugin remove add getClass size
focal_method.modifiers: static
focal_method.parameters: (Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)
focal_method.return: void
focal_method.signature: void initializePluginsInOrder(Collection<String> disabledPlugins, Iterable<StagemonitorPlugin> plugins)