]> source.dussan.org Git - sonarqube.git/commitdiff
remove a useless nested RuntimeException when an error occur during loading of plugins
authorsimonbrandhof <simon.brandhof@gmail.com>
Fri, 24 Sep 2010 11:32:13 +0000 (11:32 +0000)
committersimonbrandhof <simon.brandhof@gmail.com>
Fri, 24 Sep 2010 11:32:13 +0000 (11:32 +0000)
sonar-server/src/main/java/org/sonar/server/platform/Platform.java
sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java

index bd154a4f770b8cd7097af5b8fe2494f24f6ba560..bf8b923b6b989f19f6710c3d00cd1e1797b4dbd3 100644 (file)
@@ -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();
   }
 
index ee37550b9e8d48a7da00540ed5f8f67d513321f2..980898bc0eb1f0ca64f599902ee5f0e52bd6e5d1 100644 (file)
@@ -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);
+      }
     }
   }