]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-16039 added new metric analysis_from_sonarqube_9_4
authorLukasz Jarocki <lukasz.jarocki@sonarsource.com>
Mon, 28 Mar 2022 12:48:43 +0000 (14:48 +0200)
committersonartech <sonartech@sonarsource.com>
Thu, 31 Mar 2022 20:02:59 +0000 (20:02 +0000)
sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java
sonar-plugin-api/src/main/java/org/sonar/api/measures/Metric.java
sonar-plugin-api/src/test/java/org/sonar/api/resources/CoreMetricsTest.java

index 59da67cd785af3be02294b7a8f1b871a3d48ef50..dcde928286b52dae303add0ee2dcfcd0d6b6ce77 100644 (file)
@@ -26,6 +26,8 @@ import java.util.List;
 import java.util.NoSuchElementException;
 import org.sonar.api.utils.SonarException;
 
+import static org.sonar.api.measures.Metric.ValueType.BOOL;
+
 /**
  * @since 1.10
  */
@@ -1809,6 +1811,25 @@ public final class CoreMetrics {
     .setHidden(true)
     .create();
 
+  /**
+   * @since 9.4
+   */
+  public static final String ANALYSIS_FROM_SONARQUBE_9_4_KEY = "analysis_from_sonarqube_9_4";
+
+  /**
+   * @since 9.4
+   *
+   * This hidden metric that is only needed to fully fix the issue with identifying new issues when using reference branch
+   * that was haunting us in 9.3 and before. More details in the ticket SONAR-16039
+   */
+  public static final Metric<Integer> ANALYSIS_FROM_SONARQUBE_9_4 = new Metric.Builder(ANALYSIS_FROM_SONARQUBE_9_4_KEY,
+    "Analysis From SonarQube 9.4", BOOL)
+    .setDescription("Indicates whether the analysis has been run after the upgrade to SonarQube 9.4. It affects how the issues " +
+      "will be detected for branches that use reference branch as the strategy for detecting new code.")
+    .setDomain(CoreMetrics.DOMAIN_ISSUES)
+    .setHidden(true)
+    .create();
+
   private static final List<Metric> METRICS;
 
   static {
index 4ebd3f6f3dc0521014de39f4ccd111fdd4c8cfd3..c8fb2d557784f77dc592c59d055be414cfa90429 100644 (file)
@@ -681,7 +681,7 @@ public class Metric<G extends Serializable> implements Serializable, org.sonar.a
     }
 
     /**
-     * Sets whether the metric should be hidden in Web UI (e.g. in Time Machine). Default is false.
+     * Sets whether the metric should be hidden in Web UI. Default is false.
      *
      * @param b true if the metric should be hidden.
      * @return the builder
index c7e171ea1b6ce7e3d036d5c8569ea7d39134b04b..647cd3afad93a21ae8bc7ccea2115e2d1f00b658 100644 (file)
@@ -51,4 +51,10 @@ public class CoreMetricsTest {
     assertThatThrownBy(() -> getMetric("unknown"))
       .isInstanceOf(NoSuchElementException.class);
   }
+
+  @Test
+  public void someMetricsAreMeantToBeHidden() {
+    Metric metric = getMetric("analysis_from_sonarqube_9_4");
+    assertThat(metric.isHidden()).isTrue();
+  }
 }