aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db/src
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2015-12-04 11:41:15 +0100
committerSimon Brandhof <simon.brandhof@sonarsource.com>2015-12-07 17:26:43 +0100
commit6cf62f0adc9677404df3ff457135591c17ad89a5 (patch)
tree08b31db10e52e92575a6343768f93e46b13266b7 /sonar-db/src
parent541c15654fc024534c45710b30b9cfc8ec551d96 (diff)
downloadsonarqube-6cf62f0adc9677404df3ff457135591c17ad89a5.tar.gz
sonarqube-6cf62f0adc9677404df3ff457135591c17ad89a5.zip
SONAR-6939 ability for plugins to override the decimal scale of float
measures
Diffstat (limited to 'sonar-db/src')
-rw-r--r--sonar-db/src/main/java/org/sonar/db/metric/MetricDto.java11
-rw-r--r--sonar-db/src/main/java/org/sonar/db/version/DatabaseVersion.java2
-rw-r--r--sonar-db/src/main/resources/org/sonar/db/metric/MetricMapper.xml11
-rw-r--r--sonar-db/src/main/resources/org/sonar/db/version/rows-h2.sql1
-rw-r--r--sonar-db/src/main/resources/org/sonar/db/version/schema-h2.ddl3
-rw-r--r--sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java1
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/shared.xml6
7 files changed, 26 insertions, 9 deletions
diff --git a/sonar-db/src/main/java/org/sonar/db/metric/MetricDto.java b/sonar-db/src/main/java/org/sonar/db/metric/MetricDto.java
index 9822dabaa84..c5bace1c447 100644
--- a/sonar-db/src/main/java/org/sonar/db/metric/MetricDto.java
+++ b/sonar-db/src/main/java/org/sonar/db/metric/MetricDto.java
@@ -55,6 +55,8 @@ public class MetricDto {
private boolean enabled;
+ private Integer decimalScale;
+
public Integer getId() {
return id;
}
@@ -196,4 +198,13 @@ public class MetricDto {
return this;
}
+ @CheckForNull
+ public Integer getDecimalScale() {
+ return decimalScale;
+ }
+
+ public MetricDto setDecimalScale(@Nullable Integer i) {
+ this.decimalScale = i;
+ return this;
+ }
}
diff --git a/sonar-db/src/main/java/org/sonar/db/version/DatabaseVersion.java b/sonar-db/src/main/java/org/sonar/db/version/DatabaseVersion.java
index a9180d4e9c8..7bc2b344ce2 100644
--- a/sonar-db/src/main/java/org/sonar/db/version/DatabaseVersion.java
+++ b/sonar-db/src/main/java/org/sonar/db/version/DatabaseVersion.java
@@ -29,7 +29,7 @@ import org.sonar.db.MyBatis;
public class DatabaseVersion {
- public static final int LAST_VERSION = 1003;
+ public static final int LAST_VERSION = 1005;
/**
* The minimum supported version which can be upgraded. Lower
diff --git a/sonar-db/src/main/resources/org/sonar/db/metric/MetricMapper.xml b/sonar-db/src/main/resources/org/sonar/db/metric/MetricMapper.xml
index adf0d7544cb..58518e16eb7 100644
--- a/sonar-db/src/main/resources/org/sonar/db/metric/MetricMapper.xml
+++ b/sonar-db/src/main/resources/org/sonar/db/metric/MetricMapper.xml
@@ -18,7 +18,8 @@
m.best_value as bestValue,
m.optimized_best_value as optimizedBestValue,
m.hidden,
- m.delete_historical_data as deleteHistoricalData
+ m.delete_historical_data as deleteHistoricalData,
+ m.decimal_scale as decimalScale
</sql>
<select id="selectByKey" parameterType="map" resultType="org.sonar.db.metric.MetricDto">
@@ -86,13 +87,14 @@
keyProperty="id">
INSERT INTO metrics (
name, description, direction, domain, short_name, qualitative, val_type, user_managed, enabled, worst_value,
- best_value, optimized_best_value, hidden, delete_historical_data)
+ best_value, optimized_best_value, hidden, delete_historical_data, decimal_scale)
VALUES (
#{kee, jdbcType=VARCHAR}, #{description, jdbcType=VARCHAR}, #{direction, jdbcType=INTEGER},
#{domain, jdbcType=VARCHAR}, #{shortName, jdbcType=VARCHAR}, #{qualitative, jdbcType=BOOLEAN},
#{valueType, jdbcType=VARCHAR}, #{userManaged, jdbcType=BOOLEAN}, #{enabled, jdbcType=BOOLEAN},
#{worstValue, jdbcType=DOUBLE}, #{bestValue, jdbcType=DOUBLE},
- #{optimizedBestValue, jdbcType=BOOLEAN}, #{hidden, jdbcType=BOOLEAN}, #{deleteHistoricalData, jdbcType=BOOLEAN}
+ #{optimizedBestValue, jdbcType=BOOLEAN}, #{hidden, jdbcType=BOOLEAN}, #{deleteHistoricalData, jdbcType=BOOLEAN},
+ #{decimalScale, jdbcType=INTEGER}
)
</insert>
@@ -107,7 +109,8 @@
description=#{description, jdbcType=VARCHAR},
direction=#{direction, jdbcType=INTEGER},
hidden=#{hidden, jdbcType=BOOLEAN},
- qualitative=#{qualitative, jdbcType=BOOLEAN}
+ qualitative=#{qualitative, jdbcType=BOOLEAN},
+ decimal_scale=#{decimalScale, jdbcType=INTEGER}
where id=#{id}
</update>
diff --git a/sonar-db/src/main/resources/org/sonar/db/version/rows-h2.sql b/sonar-db/src/main/resources/org/sonar/db/version/rows-h2.sql
index 0b770f42727..1e3e3a14b43 100644
--- a/sonar-db/src/main/resources/org/sonar/db/version/rows-h2.sql
+++ b/sonar-db/src/main/resources/org/sonar/db/version/rows-h2.sql
@@ -364,6 +364,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('1000');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('1001');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('1002');
INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('1003');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('1005');
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', '1418215735482', '1418215735482', null, null);
ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2;
diff --git a/sonar-db/src/main/resources/org/sonar/db/version/schema-h2.ddl b/sonar-db/src/main/resources/org/sonar/db/version/schema-h2.ddl
index d71d0d7399d..bda06b21a81 100644
--- a/sonar-db/src/main/resources/org/sonar/db/version/schema-h2.ddl
+++ b/sonar-db/src/main/resources/org/sonar/db/version/schema-h2.ddl
@@ -351,7 +351,8 @@ CREATE TABLE "METRICS" (
"BEST_VALUE" DOUBLE,
"OPTIMIZED_BEST_VALUE" BOOLEAN,
"HIDDEN" BOOLEAN,
- "DELETE_HISTORICAL_DATA" BOOLEAN
+ "DELETE_HISTORICAL_DATA" BOOLEAN,
+ "DECIMAL_SCALE" INTEGER
);
CREATE TABLE "LOADED_TEMPLATES" (
diff --git a/sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java b/sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java
index eb3940fa9ae..473e83889b5 100644
--- a/sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java
+++ b/sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java
@@ -82,6 +82,7 @@ public class MetricDaoTest {
assertThat(result.isDeleteHistoricalData()).isFalse();
assertThat(result.isHidden()).isFalse();
assertThat(result.isEnabled()).isTrue();
+ assertThat(result.getDecimalScale()).isEqualTo(3);
// Disabled metrics are returned
result = underTest.selectByKey(session, "disabled");
diff --git a/sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/shared.xml b/sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/shared.xml
index dda5d3bbb88..1a43f8ed39e 100644
--- a/sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/shared.xml
+++ b/sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/shared.xml
@@ -2,14 +2,14 @@
<metrics id="1" name="ncloc" val_type="INT" description="Non Commenting Lines of Code" domain="Size" short_name="Lines of code"
qualitative="[false]" enabled="[true]" worst_value="[null]" optimized_best_value="[null]" best_value="[null]" direction="-1" hidden="[false]"
- delete_historical_data="[false]" user_managed="[false]"/>
+ delete_historical_data="[false]" user_managed="[false]" decimal_scale="[null]"/>
<metrics id="2" name="coverage" val_type="PERCENT" description="Coverage by unit tests" domain="Tests" short_name="Coverage"
qualitative="[true]" enabled="[true]" worst_value="0" optimized_best_value="[false]" best_value="100" direction="1" hidden="[false]"
- delete_historical_data="[false]" user_managed="[false]"/>
+ delete_historical_data="[false]" user_managed="[false]" decimal_scale="3"/>
<metrics id="3" name="disabled" val_type="INT" description="[null]" domain="[null]" short_name="disabled"
qualitative="[false]" enabled="[false]" worst_value="0" optimized_best_value="[true]" best_value="100" direction="1" hidden="[false]"
- delete_historical_data="[false]" user_managed="[false]"/>
+ delete_historical_data="[false]" user_managed="[false]" decimal_scale="[null]"/>
</dataset>