From 6843aa6703697e7fd9073b26d1b8413170e7248f Mon Sep 17 00:00:00 2001 From: simonbrandhof Date: Tue, 22 Feb 2011 16:25:17 +0100 Subject: [PATCH] SONAR-2205 Web service /api/rules should provide configKey --- .../app/controllers/api/rules_controller.rb | 2 +- .../src/main/webapp/WEB-INF/app/models/rule.rb | 12 ++++++++---- .../WEB-INF/app/models/rules_parameter.rb | 3 +-- .../java/org/sonar/wsclient/services/Rule.java | 17 +++++++++++++++++ .../unmarshallers/RuleUnmarshaller.java | 1 + 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/rules_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/rules_controller.rb index 0d9a4bb5394..6b5b0d52b17 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/rules_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/rules_controller.rb @@ -80,7 +80,7 @@ class Api::RulesController < Api::RestController xml.instruct! xml.rules do rules.each do |rule| - xml << rule.to_xml(profile) + rule.to_xml(profile, xml) end end end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/rule.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/rule.rb index c485d0d0736..6b2a91db46d 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/rule.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/rule.rb @@ -57,6 +57,10 @@ class Rule < ActiveRecord::Base def <=>(rule) name<=>rule.name end + + def config_key + plugin_config_key + end def self.to_i(key_or_id) id=key_or_id.to_i @@ -87,7 +91,7 @@ class Rule < ActiveRecord::Base end def to_hash_json(profile) - json = {'title' => name, 'key' => key, 'plugin' => plugin_name} + json = {'title' => name, 'key' => key, 'plugin' => plugin_name, 'config_key' => config_key} json['description'] = description active_rule = nil if profile @@ -106,11 +110,11 @@ class Rule < ActiveRecord::Base json end - def to_xml(profile) - xml = Builder::XmlMarkup.new + def to_xml(profile, xml) xml.rule do xml.title(name) xml.key(key) + xml.config_key(config_key) xml.plugin(plugin_name) xml.description {xml.cdata!(description)} active_rule = nil @@ -127,7 +131,7 @@ class Rule < ActiveRecord::Base xml.priority(priority_text) end parameters.each do |parameter| - xml << parameter.to_xml(active_rule) + parameter.to_xml(active_rule, xml) end end end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/rules_parameter.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/rules_parameter.rb index 1bcc7fd012d..d7c67334baa 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/rules_parameter.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/rules_parameter.rb @@ -109,8 +109,7 @@ class RulesParameter < ActiveRecord::Base json end - def to_xml(active_rule) - xml = Builder::XmlMarkup.new + def to_xml(active_rule, xml) xml.param do xml.name(name) xml.description {xml.cdata!(description)} diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/Rule.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/Rule.java index 9407dd776cf..d7b4d267b88 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/Rule.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/Rule.java @@ -28,6 +28,7 @@ public class Rule extends Model { private String title = null; private String key = null; + private String configKey = null; private String repository = null; private String description = null; private String severity = null; @@ -52,6 +53,22 @@ public class Rule extends Model { return this; } + /** + * @since 2.7 + */ + public String getConfigKey() { + return configKey; + } + + /** + * @since 2.7 + */ + + public Rule setConfigKey(String s) { + this.configKey = s; + return this; + } + public String getRepository() { return repository; } diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/RuleUnmarshaller.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/RuleUnmarshaller.java index 4d9c391f7d4..7c982e57ac1 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/RuleUnmarshaller.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/RuleUnmarshaller.java @@ -44,6 +44,7 @@ public class RuleUnmarshaller extends AbstractUnmarshaller { rule.setTitle(utils.getString(json, "title")) .setKey(utils.getString(json, "key")) + .setConfigKey(utils.getString(json, "config_key")) .setRepository(utils.getString(json, "plugin")) .setDescription(utils.getString(json, "description")) .setSeverity(utils.getString(json, "priority")) -- 2.39.5