import org.sonar.server.ui.CodeColorizers;
import org.sonar.server.ui.Views;
-import java.io.IOException;
-
/**
* @since 2.2
*/
}
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();
}
}
/**
* 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);
servicesContainer.as(Characteristics.CACHE).addComponent(DeprecatedProfileImporters.class);
servicesContainer.as(Characteristics.CACHE).addComponent(ProfilesConsole.class);
servicesContainer.as(Characteristics.CACHE).addComponent(RulesConsole.class);
-
+
servicesContainer.start();
}
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
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);
+ }
}
}