]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1898: Instead of Plugin use PluginMetadata in ruby code
authorGodin <mandrikov@gmail.com>
Wed, 3 Nov 2010 17:18:06 +0000 (17:18 +0000)
committerGodin <mandrikov@gmail.com>
Wed, 3 Nov 2010 17:18:06 +0000 (17:18 +0000)
sonar-server/src/main/java/org/sonar/server/plugins/PluginDeployer.java
sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java
sonar-server/src/main/webapp/WEB-INF/app/controllers/settings_controller.rb
sonar-server/src/main/webapp/WEB-INF/app/views/settings/_plugins.html.erb

index 38030582443d5165d53a346c4379c37a735e8648..afe8c52387b4e5b68d9f491b25e6bbb800f3b1e6 100644 (file)
@@ -298,4 +298,8 @@ public final class PluginDeployer implements ServerComponent {
       throw new ServerStartException("Found plugin with empty key: " + plugin.getFilename());
     }
   }
+
+  public Collection<PluginMetadata> getPluginsMetadata() {
+    return pluginByKeys.values();
+  }
 }
index 883f5e34b63298ada8c908a549a5443d43fb55d8..bba95c8fdc768a2bb4ca7e666ba65e9116726047 100644 (file)
@@ -22,7 +22,6 @@ package org.sonar.server.ui;
 import org.apache.commons.configuration.Configuration;
 import org.picocontainer.PicoContainer;
 import org.slf4j.LoggerFactory;
-import org.sonar.api.Plugin;
 import org.sonar.api.Plugins;
 import org.sonar.api.Property;
 import org.sonar.api.ServerComponent;
@@ -32,11 +31,7 @@ import org.sonar.api.resources.Language;
 import org.sonar.api.rules.DefaultRulesManager;
 import org.sonar.api.rules.RuleRepository;
 import org.sonar.api.utils.ValidationMessages;
-import org.sonar.api.web.Footer;
-import org.sonar.api.web.NavigationSection;
-import org.sonar.api.web.Page;
-import org.sonar.api.web.RubyRailsWebservice;
-import org.sonar.api.web.Widget;
+import org.sonar.api.web.*;
 import org.sonar.jpa.dao.AsyncMeasuresService;
 import org.sonar.jpa.dialect.Dialect;
 import org.sonar.jpa.session.DatabaseConnector;
@@ -48,7 +43,6 @@ import org.sonar.server.filters.FilterExecutor;
 import org.sonar.server.filters.FilterResult;
 import org.sonar.server.platform.Platform;
 import org.sonar.server.plugins.*;
-import org.sonar.server.plugins.UpdateCenterMatrix;
 import org.sonar.server.rules.ProfilesConsole;
 import org.sonar.server.rules.RulesConsole;
 import org.sonar.updatecenter.common.Version;
@@ -63,7 +57,7 @@ public final class JRubyFacade implements ServerComponent {
   }
 
   /* UPDATE CENTER */
-  
+
   public void downloadPlugin(String pluginKey, String pluginVersion) {
     getContainer().getComponent(PluginDownloader.class).download(pluginKey, Version.create(pluginVersion));
   }
@@ -92,9 +86,20 @@ public final class JRubyFacade implements ServerComponent {
     return getContainer().getComponent(UpdateCenterMatrixFactory.class).getMatrix(forceReload);
   }
 
+  /* PLUGINS */
 
+  public Property[] getPluginProperties(PluginMetadata metadata) {
+    Plugins plugins = getContainer().getComponent(Plugins.class);
+    return plugins.getProperties(plugins.getPlugin(metadata.getKey()));
+  }
 
+  public boolean hasPlugin(String key) {
+    return getContainer().getComponent(Plugins.class).getPlugin(key) != null;
+  }
 
+  public Collection<PluginMetadata> getPluginsMetadata() {
+    return getContainer().getComponent(PluginDeployer.class).getPluginsMetadata();
+  }
 
   public String colorizeCode(String code, String language) {
     try {
@@ -118,7 +123,6 @@ public final class JRubyFacade implements ServerComponent {
     return getContainer().getComponent(Views.class).getWidget(id);
   }
 
-
   public List<ViewProxy<Page>> getPages(String section, String resourceScope, String resourceQualifier, String resourceLanguage) {
     return getContainer().getComponent(Views.class).getPages(section, resourceScope, resourceQualifier, resourceLanguage);
   }
@@ -143,14 +147,6 @@ public final class JRubyFacade implements ServerComponent {
     return getContainer().getComponent(DatabaseConnector.class).getDialect();
   }
 
-  public boolean hasPlugin(String key) {
-    return getContainer().getComponent(Plugins.class).getPlugin(key) != null;
-  }
-
-  public Collection<Plugin> getPlugins() {
-    return getContainer().getComponent(Plugins.class).getPlugins();
-  }
-
   /* PROFILES CONSOLE : RULES AND METRIC THRESHOLDS */
 
   public List<RuleRepository> getRuleRepositories() {
@@ -217,10 +213,6 @@ public final class JRubyFacade implements ServerComponent {
     getAsyncMeasuresService().deleteMeasure(asyncMeasureId);
   }
 
-  public Property[] getPluginProperties(Plugin plugin) {
-    return getContainer().getComponent(Plugins.class).getProperties(plugin);
-  }
-
   private DefaultRulesManager getRulesManager() {
     return getContainer().getComponent(DefaultRulesManager.class);
   }
index 766eb5135b0241a6a8fc25fe491210acb63bf82c..42d98aaf49fd40dfb548334f99d891e0ee8bfdaf 100644 (file)
@@ -34,7 +34,7 @@ class SettingsController < ApplicationController
       resource_id=project.id
     end
 
-    plugins = java_facade.getPlugins()
+    plugins = java_facade.getPluginsMetadata()
     plugins.each do |plugin|
       properties=java_facade.getPluginProperties(plugin)
       properties.each do |property|
index f47ce1da745b3262bd6acff26f0bf3e8e7aeb36f..e4bc30eb9614ea6dca092aa66635435cb26c5b79 100644 (file)
@@ -21,7 +21,7 @@
 </style>
 <div id="plugins">
     <% form_tag :controller => :settings, :action => :update do
-      plugins = controller.java_facade.getPlugins().sort {|p1,p2| p1.getName() <=> p2.getName()}
+      plugins = controller.java_facade.getPluginsMetadata().sort {|p1,p2| p1.getName() <=> p2.getName()}
       plugin_properties={}
       plugins.each do |plugin|
         properties = controller.java_facade.getPluginProperties(plugin).select do |property|