aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-07-01 11:19:43 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-07-01 11:19:43 +0200
commit5fbf1cf28418d2914f18ac89923ba0695d4dfcaa (patch)
tree1907acc696d572cbf5f1c9bb3ce2fbda8438a5de /sonar-server
parented8b193aabca70842f9210e46464a26144dc9da5 (diff)
downloadsonarqube-5fbf1cf28418d2914f18ac89923ba0695d4dfcaa.tar.gz
sonarqube-5fbf1cf28418d2914f18ac89923ba0695d4dfcaa.zip
SONAR-4514 Add a default severity when creating manual rules
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/rule/RuleCreator.java2
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/556_update_manual_rules_without_severity.rb34
-rw-r--r--sonar-server/src/test/java/org/sonar/server/rule/DefaultRuleFinderMediumTest.java2
-rw-r--r--sonar-server/src/test/java/org/sonar/server/rule/RuleCreatorMediumTest.java2
4 files changed, 38 insertions, 2 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/RuleCreator.java b/sonar-server/src/main/java/org/sonar/server/rule/RuleCreator.java
index 30dd0f2c058..639adf6e2e1 100644
--- a/sonar-server/src/main/java/org/sonar/server/rule/RuleCreator.java
+++ b/sonar-server/src/main/java/org/sonar/server/rule/RuleCreator.java
@@ -187,7 +187,7 @@ public class RuleCreator implements ServerComponent {
RuleDto ruleDto = RuleDto.createFor(ruleKey)
.setName(newRule.name())
.setDescription(newRule.htmlDescription())
- .setSeverity(newRule.severity())
+ .setSeverity(newRule.severity() != null ? newRule.severity() : Severity.MAJOR)
.setStatus(RuleStatus.READY);
dbClient.ruleDao().insert(dbSession, ruleDto);
return ruleKey;
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/556_update_manual_rules_without_severity.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/556_update_manual_rules_without_severity.rb
new file mode 100644
index 00000000000..39683486400
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/556_update_manual_rules_without_severity.rb
@@ -0,0 +1,34 @@
+#
+# SonarQube, open source software quality management tool.
+# Copyright (C) 2008-2014 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# SonarQube is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# SonarQube is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
+#
+# SonarQube 4.4
+# SONAR-4514
+#
+class UpdateManualRulesWithoutSeverity < ActiveRecord::Migration
+
+ class Rule < ActiveRecord::Base
+ end
+
+ def self.up
+ Rule.reset_column_information
+ Rule.update_all({:priority => 2, :updated_at => Time.now}, "priority IS NULL AND plugin_name = 'manual'")
+ end
+end
diff --git a/sonar-server/src/test/java/org/sonar/server/rule/DefaultRuleFinderMediumTest.java b/sonar-server/src/test/java/org/sonar/server/rule/DefaultRuleFinderMediumTest.java
index c683d6234f0..6093e9b1be1 100644
--- a/sonar-server/src/test/java/org/sonar/server/rule/DefaultRuleFinderMediumTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rule/DefaultRuleFinderMediumTest.java
@@ -45,10 +45,12 @@ public class DefaultRuleFinderMediumTest {
public static ServerTester tester = new ServerTester();
private DefaultRuleFinder finder;
+ private DbClient dbClient;
private DbSession session;
@Before
public void setup() {
+ dbClient = tester.get(DbClient.class);
finder = tester.get(DefaultRuleFinder.class);
session = tester.get(DbClient.class).openSession(false);
diff --git a/sonar-server/src/test/java/org/sonar/server/rule/RuleCreatorMediumTest.java b/sonar-server/src/test/java/org/sonar/server/rule/RuleCreatorMediumTest.java
index 9cc91b2c0b2..d258d6c1768 100644
--- a/sonar-server/src/test/java/org/sonar/server/rule/RuleCreatorMediumTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rule/RuleCreatorMediumTest.java
@@ -409,7 +409,7 @@ public class RuleCreatorMediumTest {
assertThat(rule.key()).isEqualTo(RuleKey.of("manual", "MANUAL_RULE"));
assertThat(rule.name()).isEqualTo("My manual");
assertThat(rule.htmlDescription()).isEqualTo("Some description");
- assertThat(rule.severity()).isNull();
+ assertThat(rule.severity()).isEqualTo(Severity.MAJOR);
assertThat(rule.status()).isEqualTo(RuleStatus.READY);
assertThat(rule.language()).isNull();
assertThat(rule.internalKey()).isNull();