]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-249 define default values of periods
authorsimonbrandhof <simon.brandhof@gmail.com>
Thu, 9 Dec 2010 13:14:21 +0000 (13:14 +0000)
committersimonbrandhof <simon.brandhof@gmail.com>
Thu, 9 Dec 2010 13:14:21 +0000 (13:14 +0000)
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/PastSnapshotFinder.java
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/timemachine/PastSnapshotFinderByDays.java
plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/timemachine/PastSnapshotFinderTest.java

index 5e994281585fc009909b85d2476a49919db1b37f..9cf09450d7f02a36bfd91e137718651cf2d99ad2 100644 (file)
@@ -116,35 +116,38 @@ import java.util.List;
     @Property(
         key = "sonar.timemachine.variation1",
         name = "Variation 1",
-        description = "Period used to compare measures and track new violations. Values are : <ul><li>Number of days before analysis, for example 5.</li><li>A custom date. Format is yyyy-MM-dd, for example 2010-12-25</li><li>'previous_analysis' to compare to previous analysis</li><li>A version, for example 1.2</li></ul>",
+        description = "Period used to compare measures and track new violations. Values are : <ul class='bullet'><li>Number of days before analysis, for example 5.</li><li>A custom date. Format is yyyy-MM-dd, for example 2010-12-25</li><li>'previous_analysis' to compare to previous analysis</li><li>A version, for example 1.2</li></ul>",
         project = false,
-        global = true
+        global = true,
+        defaultValue = PastSnapshotFinder.DEFAULT_VALUE_1
     ),
     @Property(
         key = "sonar.timemachine.variation2",
         name = "Variation 2",
-        description = "To be defined. For the moment the number of days",
+        description = "See the property 'Variation 1'",
         project = false,
-        global = true
+        global = true,
+        defaultValue = PastSnapshotFinder.DEFAULT_VALUE_2
     ),
     @Property(
         key = "sonar.timemachine.variation3",
         name = "Variation 3",
-        description = "To be defined. For the moment the number of days",
+        description = "See the property 'Variation 1'",
         project = false,
-        global = true
+        global = true,
+        defaultValue = PastSnapshotFinder.DEFAULT_VALUE_3
     ),
     @Property(
         key = "sonar.timemachine.variation4",
         name = "Variation 4",
-        description = "To be defined. For the moment the number of days",
+        description = "Period used to compare measures and track new violations. This property is specific to the project. Values are : <ul class='bullet'><li>Number of days before analysis, for example 5.</li><li>A custom date. Format is yyyy-MM-dd, for example 2010-12-25</li><li>'previous_analysis' to compare to previous analysis</li><li>A version, for example 1.2</li></ul>",
         project = true,
         global = false
     ),
     @Property(
         key = "sonar.timemachine.variation5",
         name = "Variation 5",
-        description = "To be defined. For the moment the number of days",
+        description = "See the property 'Variation 4'",
         project = true,
         global = false
     )
index 927af7ea361eb7dbb63484212b058014bc297ac5..22367050af1f094ce8857317bc6ba4d8397770aa 100644 (file)
@@ -28,6 +28,11 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 
 public class PastSnapshotFinder implements BatchExtension {
+
+  public static final String DEFAULT_VALUE_1 = PastSnapshotFinderByPreviousAnalysis.MODE;
+  public static final String DEFAULT_VALUE_2 = "5";
+  public static final String DEFAULT_VALUE_3 = "30";
+
   private PastSnapshotFinderByDays finderByDays;
   private PastSnapshotFinderByVersion finderByVersion;
   private PastSnapshotFinderByDate finderByDate;
@@ -42,7 +47,18 @@ public class PastSnapshotFinder implements BatchExtension {
   }
 
   public PastSnapshot find(Configuration conf, int index) {
-    return find(index, conf.getString("sonar.timemachine.variation" + index));
+    String propertyValue = getPropertyValue(conf, index);
+    return find(index, propertyValue);
+  }
+
+  static String getPropertyValue(Configuration conf, int index) {
+    String defaultValue = null;
+    switch (index) {
+      case 1: defaultValue = DEFAULT_VALUE_1; break;
+      case 2: defaultValue = DEFAULT_VALUE_2; break;
+      case 3: defaultValue = DEFAULT_VALUE_3; break;
+    }
+    return conf.getString("sonar.timemachine.variation" + index, defaultValue);
   }
 
   public PastSnapshot find(int index, String property) {
index 618a539307f211f747a81e7589a8b3adb6542d72..8daea1a6bd1b10141cd1f0a8678f3ea0e73ed10e 100644 (file)
@@ -31,6 +31,7 @@ public class PastSnapshotFinderByDays implements BatchExtension {
 
   public static final String MODE = "days";
 
+
   private Snapshot projectSnapshot; // TODO replace by PersistenceManager
   private DatabaseSession session;
 
index 048f34c2b32bf28952b9b11bd72f1e0a311f972c..6273998b7ccdc6dc142b40792033c2402bdbb7ad 100644 (file)
  */
 package org.sonar.plugins.core.timemachine;
 
+import org.apache.commons.configuration.PropertiesConfiguration;
 import org.hamcrest.BaseMatcher;
 import org.hamcrest.Description;
+import org.hamcrest.Matchers;
 import org.junit.Before;
 import org.junit.Test;
 import org.sonar.api.database.model.Snapshot;
@@ -161,4 +163,21 @@ public class PastSnapshotFinderTest {
     when(finderByPreviousAnalysis.findByPreviousAnalysis()).thenReturn(new PastSnapshot(PastSnapshotFinderByPreviousAnalysis.MODE, new Snapshot())); // should not be called
     assertNull(finder.find(2, "foooo"));
   }
+
+  @Test
+  public void shouldGetPropertyValue() {
+    PropertiesConfiguration conf = new PropertiesConfiguration();
+    conf.setProperty("sonar.timemachine.variation1", "5");
+
+    assertThat(PastSnapshotFinder.getPropertyValue(conf, 1), is("5"));
+    assertThat(PastSnapshotFinder.getPropertyValue(conf, 999), nullValue());
+  }
+
+  @Test
+  public void shouldGetDefaultPropertyValue() {
+    PropertiesConfiguration conf = new PropertiesConfiguration();
+    conf.setProperty("sonar.timemachine.variation1", "5");
+
+    assertThat(PastSnapshotFinder.getPropertyValue(conf, 2), is(PastSnapshotFinder.DEFAULT_VALUE_2));
+  }
 }