From d1f184b66a862f72a516d5f62cd15b8346a51f39 Mon Sep 17 00:00:00 2001 From: simonbrandhof Date: Fri, 24 Sep 2010 11:32:13 +0000 Subject: [PATCH] remove a useless nested RuntimeException when an error occur during loading of plugins --- .../org/sonar/server/platform/Platform.java | 24 +++++++------------ .../plugins/ServerPluginRepository.java | 23 ++++++++++-------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java index bd154a4f770..bf8b923b6b9 100644 --- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java +++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java @@ -56,8 +56,6 @@ import org.sonar.server.ui.AuthenticatorFactory; import org.sonar.server.ui.CodeColorizers; import org.sonar.server.ui.Views; -import java.io.IOException; - /** * @since 2.2 */ @@ -92,17 +90,13 @@ public final class Platform { } public void start() { - try { - if (!started && isConnectedToDatabase()) { - TimeProfiler profiler = new TimeProfiler().start("Start services"); - startCoreComponents(); - startServiceComponents(); - executeStartupTasks(); - started = true; - profiler.stop(); - } - } catch (Exception e) { - throw new ServerStartException(e); + if (!started && isConnectedToDatabase()) { + TimeProfiler profiler = new TimeProfiler().start("Start services"); + startCoreComponents(); + startServiceComponents(); + executeStartupTasks(); + started = true; + profiler.stop(); } } @@ -149,7 +143,7 @@ public final class Platform { /** * plugin extensions + all the components that depend on plugin extensions */ - private void startServiceComponents() throws ClassNotFoundException, IOException, InstantiationException, IllegalAccessException { + private void startServiceComponents() { servicesContainer = coreContainer.makeChildContainer(); ServerPluginRepository pluginRepository = servicesContainer.getComponent(ServerPluginRepository.class); @@ -182,7 +176,7 @@ public final class Platform { servicesContainer.as(Characteristics.CACHE).addComponent(DeprecatedProfileImporters.class); servicesContainer.as(Characteristics.CACHE).addComponent(ProfilesConsole.class); servicesContainer.as(Characteristics.CACHE).addComponent(RulesConsole.class); - + servicesContainer.start(); } diff --git a/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java b/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java index ee37550b9e8..980898bc0eb 100644 --- a/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java +++ b/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java @@ -23,11 +23,10 @@ import org.picocontainer.Characteristics; import org.picocontainer.MutablePicoContainer; import org.sonar.api.Plugin; import org.sonar.api.ServerExtension; -import org.sonar.core.plugin.JpaPluginDao; -import org.sonar.core.plugin.JpaPlugin; import org.sonar.api.platform.PluginRepository; - -import java.io.IOException; +import org.sonar.api.utils.SonarException; +import org.sonar.core.plugin.JpaPlugin; +import org.sonar.core.plugin.JpaPluginDao; /** * @since 2.2 @@ -42,13 +41,17 @@ public class ServerPluginRepository extends PluginRepository { this.classloaders = classloaders; } - public void registerPlugins(MutablePicoContainer pico) throws ClassNotFoundException, IllegalAccessException, - InstantiationException, IOException { + public void registerPlugins(MutablePicoContainer pico) { for (JpaPlugin jpaPlugin : dao.getPlugins()) { - Class pluginClass = classloaders.getClassLoader(jpaPlugin.getKey()).loadClass(jpaPlugin.getPluginClass()); - pico.as(Characteristics.CACHE).addComponent(pluginClass); - Plugin plugin = (Plugin) pico.getComponent(pluginClass); - registerPlugin(pico, plugin, ServerExtension.class); + try { + Class pluginClass = classloaders.getClassLoader(jpaPlugin.getKey()).loadClass(jpaPlugin.getPluginClass()); + pico.as(Characteristics.CACHE).addComponent(pluginClass); + Plugin plugin = (Plugin) pico.getComponent(pluginClass); + registerPlugin(pico, plugin, ServerExtension.class); + + } catch (ClassNotFoundException e) { + throw new SonarException("Please check the plugin manifest. The main plugin class does not exist: " + jpaPlugin.getPluginClass(), e); + } } } -- 2.39.5