summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsimonbrandhof <simon.brandhof@gmail.com>2011-07-14 19:14:43 +0200
committersimonbrandhof <simon.brandhof@gmail.com>2011-07-14 19:15:41 +0200
commit896ec343357c59433b6f320a63296516a617c269 (patch)
treeec49220bad32fb2c5bb6658b1b02b924f75c8c42
parentf8048e6b80c360e2c2486dae47f6dfd6a47ea895 (diff)
downloadsonarqube-896ec343357c59433b6f320a63296516a617c269.tar.gz
sonarqube-896ec343357c59433b6f320a63296516a617c269.zip
SONAR-2610 support url and description of manual measures
-rw-r--r--plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualMeasureDecorator.java2
-rw-r--r--plugins/sonar-core-plugin/src/test/resources/org/sonar/plugins/core/sensors/ManualMeasureDecoratorTest/testCopyManualMeasures.xml4
-rw-r--r--sonar-core/src/main/java/org/sonar/jpa/entity/ManualMeasure.java18
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/controllers/api/manual_measures_controller.rb4
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb2
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/211_create_manual_measures.rb2
6 files changed, 29 insertions, 3 deletions
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualMeasureDecorator.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualMeasureDecorator.java
index 5d26067deee..91935f4c6f7 100644
--- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualMeasureDecorator.java
+++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualMeasureDecorator.java
@@ -59,6 +59,8 @@ public class ManualMeasureDecorator implements Decorator {
Measure measure = new Measure(metricFinder.findById(manualMeasure.getMetricId()));
measure.setValue(manualMeasure.getValue(), 5);
measure.setData(manualMeasure.getTextValue());
+ measure.setDescription(manualMeasure.getDescription());
+ measure.setUrl(manualMeasure.getUrl());
return measure;
}
diff --git a/plugins/sonar-core-plugin/src/test/resources/org/sonar/plugins/core/sensors/ManualMeasureDecoratorTest/testCopyManualMeasures.xml b/plugins/sonar-core-plugin/src/test/resources/org/sonar/plugins/core/sensors/ManualMeasureDecoratorTest/testCopyManualMeasures.xml
index 9c772983186..78f114c5c0a 100644
--- a/plugins/sonar-core-plugin/src/test/resources/org/sonar/plugins/core/sensors/ManualMeasureDecoratorTest/testCopyManualMeasures.xml
+++ b/plugins/sonar-core-plugin/src/test/resources/org/sonar/plugins/core/sensors/ManualMeasureDecoratorTest/testCopyManualMeasures.xml
@@ -5,7 +5,7 @@
enabled="true" worst_value="[null]" optimized_best_value="[null]" best_value="[null]" direction="0" hidden="false"/>
- <manual_measures id="1" metric_id="2" resource_id="30" value="3.14" text_value="pi" created_at="[null]" updated_at="[null]"/>
- <manual_measures id="2" metric_id="2" resource_id="40" value="6" text_value="six" created_at="[null]" updated_at="[null]"/>
+ <manual_measures id="1" metric_id="2" resource_id="30" value="3.14" text_value="pi" created_at="[null]" updated_at="[null]" description="this is pi" url="http://pi"/>
+ <manual_measures id="2" metric_id="2" resource_id="40" value="6" text_value="six" created_at="[null]" updated_at="[null]" description="this is six" url="http://six"/>
</dataset> \ No newline at end of file
diff --git a/sonar-core/src/main/java/org/sonar/jpa/entity/ManualMeasure.java b/sonar-core/src/main/java/org/sonar/jpa/entity/ManualMeasure.java
index 9f0bbf94ba9..3e3544df582 100644
--- a/sonar-core/src/main/java/org/sonar/jpa/entity/ManualMeasure.java
+++ b/sonar-core/src/main/java/org/sonar/jpa/entity/ManualMeasure.java
@@ -25,6 +25,8 @@ import java.util.Date;
@Entity
@Table(name = "manual_measures")
public final class ManualMeasure {
+ private static final int MAX_TEXT_SIZE = 4000;
+
@Id
@Column(name = "id")
@GeneratedValue
@@ -33,7 +35,7 @@ public final class ManualMeasure {
@Column(name = "value", updatable = true, nullable = true, precision = 30, scale = 20)
private Double value = null;
- @Column(name = "text_value", updatable = true, nullable = true, length = 4000)
+ @Column(name = "text_value", updatable = true, nullable = true, length = MAX_TEXT_SIZE)
private String textValue;
@Column(name = "metric_id", updatable = false, nullable = false)
@@ -42,6 +44,12 @@ public final class ManualMeasure {
@Column(name = "resource_id", updatable = true, nullable = true)
private Integer resourceId;
+ @Column(name = "description", updatable = true, nullable = true, length = MAX_TEXT_SIZE)
+ private String description;
+
+ @Column(name = "url", updatable = true, nullable = true, length = MAX_TEXT_SIZE)
+ private String url;
+
@Column(name = "created_at", updatable = true, nullable = true)
private Date createdAt;
@@ -60,6 +68,14 @@ public final class ManualMeasure {
return textValue;
}
+ public String getDescription() {
+ return description;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
public Integer getMetricId() {
return metricId;
}
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/manual_measures_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/manual_measures_controller.rb
index e5ad10169e6..e131f23c309 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/manual_measures_controller.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/manual_measures_controller.rb
@@ -65,6 +65,8 @@ class Api::ManualMeasuresController < Api::ApiController
measure.value = value
measure.text_value = params[:text]
+ measure.description = params[:desc]
+ measure.url = params[:url]
measure.save!
respond_to do |format|
@@ -102,6 +104,8 @@ class Api::ManualMeasuresController < Api::ApiController
hash={:id => manual_measure.id, :metric => manual_measure.metric.key}
hash[:val]=manual_measure.value if manual_measure.value
hash[:text]=manual_measure.text_value if manual_measure.text_value
+ hash[:desc]=manual_measure.description if manual_measure.description
+ hash[:url]=manual_measure.url if manual_measure.url
hash[:created_at]=format_datetime(manual_measure.created_at)
hash[:updated_at]=format_datetime(manual_measure.updated_at) if manual_measure.updated_at
if manual_measure.user
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb
index b458c336e2a..e5500e0d5f9 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb
@@ -22,6 +22,8 @@ class ManualMeasure < ActiveRecord::Base
belongs_to :user
validates_uniqueness_of :metric_id, :scope => :resource_id
validates_length_of :text_value, :maximum => 4000, :allow_nil => true, :allow_blank => true
+ validates_length_of :url, :maximum => 4000, :allow_nil => true, :allow_blank => true
+ validates_length_of :description, :maximum => 4000, :allow_nil => true, :allow_blank => true
validate :validate_metric
def metric
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/211_create_manual_measures.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/211_create_manual_measures.rb
index 9a10482fa55..cc3dee143af 100644
--- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/211_create_manual_measures.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/211_create_manual_measures.rb
@@ -30,6 +30,8 @@ class CreateManualMeasures < ActiveRecord::Migration
t.column 'value', :decimal, :null => true, :precision => 30, :scale => 20
t.column 'text_value', :string, :null => true, :limit => 4000
t.column 'user_id', :integer, :null => true
+ t.column 'description', :string, :null => true, :limit => 4000
+ t.column 'url', :string, :null => true, :limit => 4000
t.timestamps
end
alter_to_big_primary_key('manual_measures')