]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6236 Put a warning when a widget is not on any dashboard (unsatisfied untold... 159/head
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Thu, 19 Mar 2015 13:17:06 +0000 (14:17 +0100)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Thu, 19 Mar 2015 13:17:06 +0000 (14:17 +0100)
server/sonar-server/src/main/java/org/sonar/server/startup/RenameIssueWidgets.java
server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/after.xml
server/sonar-server/src/test/resources/org/sonar/server/startup/RenameIssueWidgetsTest/before.xml

index 5ae53e4f8475a0a9086650a5b48f9ab313a1b43f..629edcb22cabe408834cc61bdebb5cc7d171dc40 100644 (file)
@@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import org.picocontainer.Startable;
 import org.sonar.api.utils.System2;
+import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
 import org.sonar.core.dashboard.DashboardDto;
 import org.sonar.core.dashboard.WidgetDto;
@@ -39,6 +40,8 @@ import java.util.Map;
 
 public class RenameIssueWidgets implements Startable {
 
+  private static final Logger LOGGER = Loggers.get(RenameIssueWidgets.class);
+
   private static final String TASK_KEY = "RenameIssueWidgets";
 
   private static final String WIDGET_FALSE_POSITIVES = "false_positive_reviews";
@@ -81,7 +84,7 @@ public class RenameIssueWidgets implements Startable {
         WIDGET_UNRESOLVED_BY_STATUS, "statuses"
       );
 
-      Loggers.get(getClass()).info("Replacing issue related widgets with issue filter widgets");
+      LOGGER.info("Replacing issue related widgets with issue filter widgets");
 
       List<Long> updatedWidgetIds = Lists.newArrayList();
       List<WidgetPropertyDto> newWidgetProperties = Lists.newArrayList();
@@ -146,6 +149,9 @@ public class RenameIssueWidgets implements Startable {
 
   private String getReplacementWidgetKey(DbSession session, WidgetDto widget) {
     DashboardDto dashboard = dbClient.dashboardDao().getNullableByKey(session, widget.getDashboardId());
+    if (dashboard == null) {
+      LOGGER.warn(String.format("Widget with ID=%d is not displayed on any dashboard, updating nevertheless", widget.getId()));
+    }
     boolean isOnGlobalDashboard = dashboard != null && dashboard.getGlobal();
 
     return isOnGlobalDashboard && widget.getResourceId() == null ? WIDGET_ISSUE_FILTER : WIDGET_PROJECT_ISSUE_FILTER;
index d97feacbf3fddf7d38c6067fcd9d36782874e6e9..f7b741fe7ff276a6f6aae77a6a2db5955aa46034 100644 (file)
   <widget_properties id="10" widget_id="5" kee="distributionAxis" text_value="statuses"/>
 
 
+  <!-- 'Unresolved Issues Per Status' - dashboard not found, still replaced by issue_filter w/ 'Unresolved Issues' filter -->
+  <widgets id="6" dashboard_id="3" widget_key="project_issue_filter" name="[null]" description="[null]"
+     column_index="1" row_index="1" configured="[true]" created_at="[null]" updated_at="2003-03-23 01:23:45" resource_id="[null]"/>
+
+  <!-- filter = 'Unresolved Issues' -->
+  <widget_properties id="11" widget_id="6" kee="filter" text_value="1"/>
+  <!-- distributionAxis is 'assignees' -->
+  <widget_properties id="12" widget_id="6" kee="distributionAxis" text_value="statuses"/>
+
+
   <loaded_templates id="1" template_type="ONE_SHOT_TASK" kee="RenameIssueWidgets"/>
 
 </dataset>
index 65644a5dd54db10606754da4cd554242ddb64e01..030e722c0dcbfeef3a75d00c6f316c9133bcbb1f 100644 (file)
@@ -86,5 +86,9 @@
   <widgets id="5" dashboard_id="2" widget_key="unresolved_issues_statuses" name="[null]" description="[null]"
      column_index="1" row_index="5" configured="[true]" created_at="[null]" updated_at="[null]" resource_id="[null]"/>
 
+  <!-- 'Unresolved Issues Per Status' - dashboard not found, still replaced by issue_filter w/ 'Unresolved Issues' filter -->
+  <widgets id="6" dashboard_id="3" widget_key="unresolved_issues_statuses" name="[null]" description="[null]"
+     column_index="1" row_index="1" configured="[true]" created_at="[null]" updated_at="[null]" resource_id="[null]"/>
+
 
 </dataset>