public void injectExtensions() { // add extensions from classpath (non plugin) Set<String> extensionClassNames = pluginManager.getExtensionClassNames(null); for (String extensionClassName : extensionClassNames) { try { log.debug("Register extension '{}' as bean", extensionClassName); Class<?> extensionClass = getClass().getClassLoader().loadClass(extensionClassName); registerExtension(extensionClass); } catch (ClassNotFoundException e) { log.error(e.getMessage(), e); } } // add extensions for each started plugin List<PluginWrapper> startedPlugins = pluginManager.getStartedPlugins(); for (PluginWrapper plugin : startedPlugins) { log.debug("Registering extensions of the plugin '{}' as beans", plugin.getPluginId()); extensionClassNames = pluginManager.getExtensionClassNames(plugin.getPluginId()); for (String extensionClassName : extensionClassNames) { try { log.debug("Register extension '{}' as bean", extensionClassName); Class<?> extensionClass = plugin.getPluginClassLoader().loadClass(extensionClassName); registerExtension(extensionClass); } catch (ClassNotFoundException e) { log.error(e.getMessage(), e); } } } }