]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5221 Remove the Language column from measure filters
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 9 May 2014 14:04:09 +0000 (16:04 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 9 May 2014 14:04:25 +0000 (16:04 +0200)
13 files changed:
sonar-core/src/main/java/org/sonar/core/measure/MeasureFilterSort.java
sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
sonar-core/src/main/resources/org/sonar/l10n/core.properties
sonar-core/src/test/java/org/sonar/core/measure/MeasureFilterExecutorTest.java
sonar-core/src/test/resources/org/sonar/core/measure/MeasureFilterExecutorTest/escape_percent_and_underscore_when_filter_by_component_name_or_key.xml
sonar-core/src/test/resources/org/sonar/core/measure/MeasureFilterExecutorTest/ignore_person_measures.xml
sonar-core/src/test/resources/org/sonar/core/measure/MeasureFilterExecutorTest/ignore_quality_model_measures.xml
sonar-core/src/test/resources/org/sonar/core/measure/MeasureFilterExecutorTest/shared.xml
sonar-core/src/test/resources/org/sonar/core/measure/MeasureFilterExecutorTest/sort_by_alert.xml
sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter.rb
sonar-server/src/main/webapp/WEB-INF/app/views/measures/_display_list.html.erb
sonar-server/src/main/webapp/WEB-INF/db/migrate/534_update_measure_filters_on_language.rb [new file with mode: 0644]

index e085714397950bbb2e14dc9257edc530700be6ee..b8c09b1de16621ee61894bc23c52a834f9635085 100644 (file)
@@ -24,7 +24,7 @@ import org.sonar.api.measures.Metric;
 
 class MeasureFilterSort {
   public static enum Field {
-    KEY, NAME, VERSION, LANGUAGE, METRIC, SHORT_NAME, DESCRIPTION,
+    KEY, NAME, VERSION, METRIC, SHORT_NAME, DESCRIPTION,
     // Sort by last analysis date
     DATE,
     // Sort by project creation date
@@ -111,9 +111,6 @@ class MeasureFilterSort {
       case VERSION:
         column = "s.version";
         break;
-      case LANGUAGE:
-        column = "p.language";
-        break;
       case DATE:
         column = "s.created_at";
         break;
index f29fabf4839129b0c0736359ae0cd36b72512a45..ec1c58b94a041fbaeaddb5f022d1263d19585dd3 100644 (file)
@@ -33,7 +33,7 @@ import java.util.List;
  */
 public class DatabaseVersion implements BatchComponent, ServerComponent {
 
-  public static final int LAST_VERSION = 533;
+  public static final int LAST_VERSION = 534;
 
   public static enum Status {
     UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
index 4b4c50a33ae862502a968209d529a71329ac7dde..775af009c7435fb8c3612ef38611ed4d70dc87a8 100644 (file)
@@ -229,6 +229,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('530');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('531');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('532');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('533');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('534');
 
 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 c8ff38228ea10ff36670f005eefd1cc740544b37..155dc476775e5a97e62d96349ccf07ad0bd50dc9 100644 (file)
@@ -567,7 +567,6 @@ measure_filter.filter_list=Measures Filters
 measure_filter.col.date=Last Analysis
 measure_filter.col.description=Description
 measure_filter.col.key=Key
-measure_filter.col.language=Language
 measure_filter.col.links=Links
 measure_filter.col.name=Name
 measure_filter.col.short_name=Short Name
@@ -576,7 +575,6 @@ measure_filter.col.project_creation_date=First Analysis
 measure_filter.abbr.date=Last Analysis
 measure_filter.abbr.description=Description
 measure_filter.abbr.key=Key
-measure_filter.abbr.language=Lang.
 measure_filter.abbr.links=Links
 measure_filter.abbr.name=Name
 measure_filter.abbr.short_name=Name
index b2847c18ba7fa530385a918d68d937cb16a7bf23..97783f52f4d659456cf3e5e35b8c447a8bb580f7 100644 (file)
@@ -119,7 +119,7 @@ public class MeasureFilterExecutorTest {
   @Test
   public void projects_without_measure_conditions() throws SQLException {
     db.prepareDbUnit(getClass(), "shared.xml");
-    MeasureFilter filter = new MeasureFilter().setResourceQualifiers(Arrays.asList("TRK")).setSortOn(MeasureFilterSort.Field.LANGUAGE);
+    MeasureFilter filter = new MeasureFilter().setResourceQualifiers(Arrays.asList("TRK")).setSortOn(MeasureFilterSort.Field.DATE);
     List<MeasureFilterRow> rows = executor.execute(filter, new MeasureFilterContext());
 
     assertThat(rows).hasSize(2);
index 9b8d393278e660f463ac7f6688346170868307d0..2419fb9ef8b0cf5bc76745414c0cce065ecc692f 100644 (file)
@@ -3,7 +3,7 @@
   <!-- java project -->
   <projects kee="java_project:org.sonar.bar" long_name="org.sonar.bar" scope="FIL" qualifier="CLA" name="org.sonar.bar"
             id="1" root_id="[null]"
-            description="[null]" enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]"
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"
             created_at="2008-12-19 00:00:00.00"/>
 
   <projects kee="java_project:org.sonar.foo" scope="FIL" qualifier="CLA" long_name="org.sonar.foo" name="org.sonar.foo"
index f2932e5b1bffda40c3dba2edf53215f45649924d..c868a8d6933ca9344fea2f3443423dc551d5aa33 100644 (file)
@@ -6,7 +6,7 @@
 
   <projects kee="java_project" long_name="Java project" scope="PRJ" qualifier="TRK" name="Java project"
             id="1" root_id="[null]"
-            description="[null]" enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]"/>
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"/>
 
   <snapshots id="101" project_id="1" root_project_id="1" root_snapshot_id="[null]" parent_snapshot_id="[null]"
              scope="PRJ" qualifier="TRK" path="" depth="0"
@@ -41,4 +41,4 @@
                     RULE_ID="[null]" text_value="[null]" tendency="[null]" measure_date="[null]" project_id="[null]"
                     alert_status="[null]" description="[null]" characteristic_id="[null]"/>
 
-</dataset>
\ No newline at end of file
+</dataset>
index 1ccceb41d82118b473f89537f92d799aa0e430bf..6289fa9539e09323ccb1f30d075af921632387ed 100644 (file)
@@ -6,7 +6,7 @@
 
   <projects kee="java_project" long_name="Java project" scope="PRJ" qualifier="TRK" name="Java project"
             id="1" root_id="[null]"
-            description="[null]" enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]"/>
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"/>
 
   <snapshots id="101" project_id="1" root_project_id="1" root_snapshot_id="[null]" parent_snapshot_id="[null]"
              scope="PRJ" qualifier="TRK" path="" depth="0"
@@ -41,4 +41,4 @@
                     RULE_ID="[null]" text_value="[null]" tendency="[null]" measure_date="[null]" project_id="[null]"
                     alert_status="[null]" description="[null]" person_id="[null]"/>
 
-</dataset>
\ No newline at end of file
+</dataset>
index bcfe738a901c42ef704ef7a927215e35374c7b59..173b39e17d645ebe3270ab8843cb03181a4d6284 100644 (file)
   <!-- java project -->
   <projects kee="java_project" long_name="Java project" scope="PRJ" qualifier="TRK" name="Java project"
             id="1" root_id="[null]"
-            description="[null]" enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]"
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"
             created_at="2008-12-19 00:00:00.00"/>
 
   <projects kee="java_project:org.sonar.foo" scope="DIR" qualifier="PAC" long_name="org.sonar.foo" name="org.sonar.foo"
             id="2" root_id="1"
-            description="[null]" enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]"
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"
             created_at="2008-12-19 00:00:00.00"/>
 
   <projects kee="java_project:org.sonar.foo.Big" scope="FIL" qualifier="CLA" long_name="org.sonar.foo.Big"
   <!-- php project -->
   <projects kee="php_project" long_name="PHP project" scope="PRJ" qualifier="TRK" name="PHP project"
             id="10" root_id="[null]"
-            description="[null]" enabled="[true]" language="php" copy_resource_id="[null]" person_id="[null]"
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"
             created_at="2012-12-12 04:06:00.00"/>
 
 
   <properties id="3" prop_key="favourite" resource_id="1" text_value="[null]" user_id="1234"/>
   <properties id="4" prop_key="sonar.profile" resource_id="1" text_value="Sonar way" user_id="[null]"/>
 
-</dataset>
\ No newline at end of file
+</dataset>
index 292037eac7ac9fc36894826b56d0a4c886d44ed6..a8376646b7f3064d3c15c78731ea5c0da6ccfa65 100644 (file)
@@ -8,7 +8,7 @@
   <!-- java project -->
   <projects kee="java_project" long_name="Java project" scope="PRJ" qualifier="TRK" name="Java project"
             id="1" root_id="[null]"
-            description="[null]" enabled="[true]" language="java" copy_resource_id="[null]" person_id="[null]"
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"
             created_at="2008-12-19 00:00:00.00"/>
 
   <snapshots id="101" project_id="1" root_project_id="1" root_snapshot_id="[null]" parent_snapshot_id="[null]"
@@ -32,7 +32,7 @@
   <!-- php project -->
   <projects kee="php_project" long_name="PHP project" scope="PRJ" qualifier="TRK" name="PHP project"
             id="10" root_id="[null]"
-            description="[null]" enabled="[true]" language="php" copy_resource_id="[null]" person_id="[null]"
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"
             created_at="2012-12-12 04:06:00.00"/>
 
 
@@ -56,7 +56,7 @@
   <!-- js project -->
   <projects kee="js_project" long_name="JS project" scope="PRJ" qualifier="TRK" name="JS project"
             id="20" root_id="[null]"
-            description="[null]" enabled="[true]" language="js" copy_resource_id="[null]" person_id="[null]"
+            description="[null]" enabled="[true]" language="[null]" copy_resource_id="[null]" person_id="[null]"
             created_at="2012-12-12 04:06:00.00"/>
 
 
@@ -78,4 +78,4 @@
                     alert_status="[null]" description="[null]" characteristic_id="[null]"/>
 
 
-</dataset>
\ No newline at end of file
+</dataset>
index d716fbb4914834e2cbe8a0cd13052c916a207a03..a0a1a25fc0b1b9c77a006e199eeaeb952435a43f 100644 (file)
@@ -158,7 +158,8 @@ class MeasureFilter < ActiveRecord::Base
       @criteria = self.data.split(CRITERIA_SEPARATOR).inject(HashWithIndifferentAccess.new) do |h, s|
         k, v=s.split('=')
         if k && v
-          v=v.split(CRITERIA_KEY_VALUE_SEPARATOR) if v.include?(CRITERIA_KEY_VALUE_SEPARATOR)
+          # Empty values are removed
+          v=v.split(CRITERIA_KEY_VALUE_SEPARATOR).select{|v| !v.empty?} if v.include?(CRITERIA_KEY_VALUE_SEPARATOR)
           h[k]=v
         end
         h
index 06b9971f8792688abdb4454cc8b4c5b48fcce2a2..3dae12f9a0e940958a65fa6237d22138086c0535 100644 (file)
                                   [message('measure_filter.col.name'), 'name'],
                                   [message('measure_filter.col.short_name'), 'short_name'],
                                   [message('measure_filter.col.description'), 'description'],
-                                  [message('measure_filter.col.language'), 'language'],
                                   [message('measure_filter.col.version'), 'version'],
                                   [message('measure_filter.col.date'), 'date'],
                                   [message('measure_filter.col.project_creation_date'), 'project_creation_date'],
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/534_update_measure_filters_on_language.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/534_update_measure_filters_on_language.rb
new file mode 100644 (file)
index 0000000..31e67c5
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# 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-5221
+#
+class UpdateMeasureFiltersOnLanguage < ActiveRecord::Migration
+
+  class MeasureFilter < ActiveRecord::Base
+  end
+
+  def self.up
+    MeasureFilter.all(:conditions => "data LIKE '%language%'").each do |filter|
+      # Remove sort on language
+      filter.data = filter.data.sub('sort=language', '')
+
+      filter.data.scan(/cols=((.+?)(\||\z))?/) do |find|
+        cols_data = find[0]
+        # Remove display of language column
+        filter.data = filter.data.sub(cols_data, cols_data.gsub(/language/, ''))
+      end
+      filter.save!
+    end
+  end
+  
+end