]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4514 Add a default severity when creating manual rules
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 1 Jul 2014 09:19:43 +0000 (11:19 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 1 Jul 2014 09:19:43 +0000 (11:19 +0200)
sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
sonar-server/src/main/java/org/sonar/server/rule/RuleCreator.java
sonar-server/src/main/webapp/WEB-INF/db/migrate/556_update_manual_rules_without_severity.rb [new file with mode: 0644]
sonar-server/src/test/java/org/sonar/server/rule/DefaultRuleFinderMediumTest.java
sonar-server/src/test/java/org/sonar/server/rule/RuleCreatorMediumTest.java

index c7ff86a5f0c1598bef0b96ef93371676baaebd55..2eeaa8c21ddd9101356419da86a9b5cc311bb167 100644 (file)
@@ -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
index e93794de62f46405aab0cf722930c74f07aacfc8..cfc4e72849d1044d6d24f9bb01a37afd0cb5aad2 100644 (file)
@@ -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;
index 30dd0f2c058817ab0462ea6e4a64c9511a9440ae..639adf6e2e1f3feb7f23fd39167ffdb12d230a36 100644 (file)
@@ -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 (file)
index 0000000..3968348
--- /dev/null
@@ -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
index c683d6234f00ed711c4d49b625ef8bc95c657c03..6093e9b1be1e3faac136d52800f7158c59147632 100644 (file)
@@ -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);
index 9cc91b2c0b214a7c036876d59f0db1df3022ef10..d258d6c176837912e87feac19d46db8176c2e347 100644 (file)
@@ -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();