aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/platform/Platform.java24
-rw-r--r--sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java23
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);
+ }
}
}