From 5fbf1cf28418d2914f18ac89923ba0695d4dfcaa Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Tue, 1 Jul 2014 11:19:43 +0200 Subject: [PATCH] SONAR-4514 Add a default severity when creating manual rules --- .../core/persistence/DatabaseVersion.java | 2 +- .../org/sonar/core/persistence/rows-h2.sql | 1 + .../org/sonar/server/rule/RuleCreator.java | 2 +- ...56_update_manual_rules_without_severity.rb | 34 +++++++++++++++++++ .../rule/DefaultRuleFinderMediumTest.java | 2 ++ .../server/rule/RuleCreatorMediumTest.java | 2 +- 6 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 sonar-server/src/main/webapp/WEB-INF/db/migrate/556_update_manual_rules_without_severity.rb diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java index c7ff86a5f0c..2eeaa8c21dd 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java @@ -33,7 +33,7 @@ import java.util.List; */ public class DatabaseVersion implements BatchComponent, ServerComponent { - public static final int LAST_VERSION = 555; + public static final int LAST_VERSION = 556; public static enum Status { UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql index e93794de62f..cfc4e72849d 100644 --- a/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql @@ -248,6 +248,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('552'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('553'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('554'); INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('555'); +INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('556'); INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '2011-09-26 22:27:48.0', '2011-09-26 22:27:48.0', null, null); ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2; 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(); -- 2.39.5