]> source.dussan.org Git - sonarqube.git/commitdiff
Minor fixes
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Mon, 18 Feb 2019 16:01:41 +0000 (10:01 -0600)
committerSonarTech <sonartech@sonarsource.com>
Mon, 11 Mar 2019 19:21:03 +0000 (20:21 +0100)
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/FillComponentIssuesVisitorRule.java
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentAction.java
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeData.java
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SnapshotDtoToWsPeriod.java [new file with mode: 0644]
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SnapshotDtoToWsPeriods.java [deleted file]

index 77a5775e411a8279516753c7537b2d3362bcba9c..529ca5f54ef3a4dd9858a423a2a778c33ebb0297 100644 (file)
@@ -65,11 +65,6 @@ public class FillComponentIssuesVisitorRule extends TypeAwareVisitorAdapter impl
     };
   }
 
-  public void setIssues(Component component, DefaultIssue... issues) {
-    checkNotNull(component, "component cannot be null");
-    setIssues(component.getReportAttributes().getRef(), issues);
-  }
-
   public void setIssues(int componentRef, DefaultIssue... issues) {
     Component component = treeRootHolder.getComponentByRef(componentRef);
     checkArgument(component != null, String.format("Component '%s' does not exists in the report ", componentRef));
index d0dd316830c27883913682ae10202d2073038859..042f746c35d040302ac60e52ef7db674b8a8453c 100644 (file)
@@ -76,7 +76,7 @@ import static org.sonar.server.measure.ws.MeasuresWsParametersBuilder.createAddi
 import static org.sonar.server.measure.ws.MeasuresWsParametersBuilder.createDeveloperParameters;
 import static org.sonar.server.measure.ws.MeasuresWsParametersBuilder.createMetricKeysParameter;
 import static org.sonar.server.measure.ws.MetricDtoToWsMetric.metricDtoToWsMetric;
-import static org.sonar.server.measure.ws.SnapshotDtoToWsPeriods.snapshotToWsPeriods;
+import static org.sonar.server.measure.ws.SnapshotDtoToWsPeriod.snapshotToWsPeriods;
 import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;
 import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
 import static org.sonar.server.ws.KeyExamples.KEY_PULL_REQUEST_EXAMPLE_001;
@@ -154,10 +154,10 @@ public class ComponentAction implements MeasuresWsAction {
       checkPermissions(component);
       SnapshotDto analysis = dbClient.snapshotDao().selectLastAnalysisByRootComponentUuid(dbSession, component.projectUuid()).orElse(null);
       List<MetricDto> metrics = searchMetrics(dbSession, request);
-      List<Measures.Period> periods = snapshotToWsPeriods(analysis);
+      Optional<Measures.Period> period = snapshotToWsPeriods(analysis);
       List<LiveMeasureDto> measures = searchMeasures(dbSession, component, metrics);
 
-      return buildResponse(request, component, refComponent, measures, metrics, periods);
+      return buildResponse(request, component, refComponent, measures, metrics, period);
     }
   }
 
@@ -183,8 +183,8 @@ public class ComponentAction implements MeasuresWsAction {
     return dbClient.componentDao().selectByUuid(dbSession, component.getCopyResourceUuid());
   }
 
-  private static ComponentWsResponse buildResponse(ComponentRequest request, ComponentDto component, Optional<ComponentDto> refComponent, List<LiveMeasureDto> measures,
-    List<MetricDto> metrics, List<Measures.Period> periods) {
+  private static ComponentWsResponse buildResponse(ComponentRequest request, ComponentDto component, Optional<ComponentDto> refComponent,
+    List<LiveMeasureDto> measures, List<MetricDto> metrics, Optional<Measures.Period> period) {
     ComponentWsResponse.Builder response = ComponentWsResponse.newBuilder();
     Map<Integer, MetricDto> metricsById = Maps.uniqueIndex(metrics, MetricDto::getId);
     Map<MetricDto, LiveMeasureDto> measuresByMetric = new HashMap<>();
@@ -205,8 +205,8 @@ public class ComponentAction implements MeasuresWsAction {
           response.getMetricsBuilder().addMetrics(metricDtoToWsMetric(metric));
         }
       }
-      if (additionalFields.contains(ADDITIONAL_PERIODS)) {
-        response.getPeriodsBuilder().addAllPeriods(periods);
+      if (additionalFields.contains(ADDITIONAL_PERIODS) && period.isPresent()) {
+        response.getPeriodsBuilder().addPeriods(period.get());
       }
     }
 
@@ -282,8 +282,6 @@ public class ComponentAction implements MeasuresWsAction {
     private String pullRequest;
     private List<String> metricKeys;
     private List<String> additionalFields;
-    private String developerId;
-    private String developerKey;
 
     /**
      * @deprecated since 6.6, please use {@link #getComponent()} instead
@@ -351,25 +349,5 @@ public class ComponentAction implements MeasuresWsAction {
       this.additionalFields = additionalFields;
       return this;
     }
-
-    @CheckForNull
-    private String getDeveloperId() {
-      return developerId;
-    }
-
-    private ComponentRequest setDeveloperId(@Nullable String developerId) {
-      this.developerId = developerId;
-      return this;
-    }
-
-    @CheckForNull
-    private String getDeveloperKey() {
-      return developerKey;
-    }
-
-    private ComponentRequest setDeveloperKey(@Nullable String developerKey) {
-      this.developerKey = developerKey;
-      return this;
-    }
   }
 }
index 0af53195acd140f76bc629ece637335c3ee1598b..dd5a447e4c536a413765d19813dd716f2b3a1e5f 100644 (file)
@@ -107,12 +107,12 @@ import static org.sonar.server.measure.ws.MeasuresWsParametersBuilder.createAddi
 import static org.sonar.server.measure.ws.MeasuresWsParametersBuilder.createDeveloperParameters;
 import static org.sonar.server.measure.ws.MeasuresWsParametersBuilder.createMetricKeysParameter;
 import static org.sonar.server.measure.ws.MetricDtoToWsMetric.metricDtoToWsMetric;
-import static org.sonar.server.measure.ws.SnapshotDtoToWsPeriods.snapshotToWsPeriods;
+import static org.sonar.server.measure.ws.SnapshotDtoToWsPeriod.snapshotToWsPeriods;
 import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;
 import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
 import static org.sonar.server.ws.KeyExamples.KEY_PULL_REQUEST_EXAMPLE_001;
-import static org.sonar.server.ws.WsParameterBuilder.createQualifiersParameter;
 import static org.sonar.server.ws.WsParameterBuilder.QualifierParameterContext.newQualifierParameterContext;
+import static org.sonar.server.ws.WsParameterBuilder.createQualifiersParameter;
 import static org.sonar.server.ws.WsUtils.checkRequest;
 import static org.sonar.server.ws.WsUtils.writeProtobuf;
 
@@ -121,15 +121,15 @@ import static org.sonar.server.ws.WsUtils.writeProtobuf;
  * To limit the number of rows in database, a best value algorithm exists in database.</p>
  * A measure is not stored in database if:
  * <ul>
- *   <li>the component is a file (production or test)</li>
- *   <li>optimization algorithm is enabled on the metric</li>
- *   <li>the measure computed equals the metric best value</li>
- *   <li>the period values are all equal to 0</li>
+ * <li>the component is a file (production or test)</li>
+ * <li>optimization algorithm is enabled on the metric</li>
+ * <li>the measure computed equals the metric best value</li>
+ * <li>the period values are all equal to 0</li>
  * </ul>
  * To recreate a best value 2 different cases:
  * <ul>
- *   <li>Metric starts with 'new_' (ex: new_violations): the best value measure doesn't have a value and period values are all equal to 0</li>
- *   <li>Other metrics: the best value measure has a value of 0 and no period value</li>
+ * <li>Metric starts with 'new_' (ex: new_violations): the best value measure doesn't have a value and period values are all equal to 0</li>
+ * <li>Other metrics: the best value measure has a value of 0 and no period value</li>
  * </ul>
  */
 public class ComponentTreeAction implements MeasuresWsAction {
@@ -177,8 +177,8 @@ public class ComponentTreeAction implements MeasuresWsAction {
   public void define(WebService.NewController context) {
     WebService.NewAction action = context.createAction(ACTION_COMPONENT_TREE)
       .setDescription(format("Navigate through components based on the chosen strategy with specified measures. The %s or the %s parameter must be provided.<br>" +
-        "Requires the following permission: 'Browse' on the specified project.<br>" +
-        "When limiting search with the %s parameter, directories are not returned.",
+          "Requires the following permission: 'Browse' on the specified project.<br>" +
+          "When limiting search with the %s parameter, directories are not returned.",
         DEPRECATED_PARAM_BASE_COMPONENT_ID, PARAM_COMPONENT, Param.TEXT_QUERY))
       .setResponseExample(getClass().getResource("component_tree-example.json"))
       .setSince("5.4")
@@ -316,8 +316,8 @@ public class ComponentTreeAction implements MeasuresWsAction {
       }
     }
 
-    if (arePeriodsInResponse(request)) {
-      response.getPeriodsBuilder().addAllPeriods(data.getPeriods());
+    if (arePeriodsInResponse(request) && data.getPeriod() != null) {
+      response.getPeriodsBuilder().addPeriods(data.getPeriod());
     }
 
     return response.build();
@@ -431,7 +431,7 @@ public class ComponentTreeAction implements MeasuresWsAction {
         .setComponentCount(componentCount)
         .setMeasuresByComponentUuidAndMetric(measuresByComponentUuidAndMetric)
         .setMetrics(metrics)
-        .setPeriods(snapshotToWsPeriods(baseSnapshot.get()))
+        .setPeriod(snapshotToWsPeriods(baseSnapshot.get()).orElse(null))
         .setReferenceComponentsByUuid(searchReferenceComponentsById(dbSession, components))
         .build();
     }
index 4b963673c701acd620ffda8f6c5f87d821a30e72..6f01434455af77d40c6d535779ea1af9152ee316 100644 (file)
@@ -39,7 +39,7 @@ class ComponentTreeData {
   private final int componentCount;
   private final Map<String, ComponentDto> referenceComponentsByUuid;
   private final List<MetricDto> metrics;
-  private final List<Measures.Period> periods;
+  private final Measures.Period period;
   private final Table<String, MetricDto, Measure> measuresByComponentUuidAndMetric;
 
   private ComponentTreeData(Builder builder) {
@@ -49,7 +49,7 @@ class ComponentTreeData {
     this.referenceComponentsByUuid = builder.referenceComponentsByUuid;
     this.metrics = builder.metrics;
     this.measuresByComponentUuidAndMetric = builder.measuresByComponentUuidAndMetric;
-    this.periods = builder.periods;
+    this.period = builder.period;
   }
 
   public ComponentDto getBaseComponent() {
@@ -77,8 +77,8 @@ class ComponentTreeData {
   }
 
   @CheckForNull
-  List<Measures.Period> getPeriods() {
-    return periods;
+  Measures.Period getPeriod() {
+    return period;
   }
 
   @CheckForNull
@@ -96,7 +96,7 @@ class ComponentTreeData {
     private Map<String, ComponentDto> referenceComponentsByUuid;
     private int componentCount;
     private List<MetricDto> metrics;
-    private List<Measures.Period> periods;
+    private Measures.Period period;
     private Table<String, MetricDto, Measure> measuresByComponentUuidAndMetric;
 
     private Builder() {
@@ -123,8 +123,8 @@ class ComponentTreeData {
       return this;
     }
 
-    public Builder setPeriods(List<Measures.Period> periods) {
-      this.periods = periods;
+    public Builder setPeriod(@Nullable Measures.Period period) {
+      this.period = period;
       return this;
     }
 
diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/ws/SnapshotDtoToWsPeriod.java b/server/sonar-server/src/main/java/org/sonar/server/measure/ws/SnapshotDtoToWsPeriod.java
new file mode 100644 (file)
index 0000000..1143d7d
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2019 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+package org.sonar.server.measure.ws;
+
+import java.util.Optional;
+import javax.annotation.Nullable;
+import org.sonar.db.component.SnapshotDto;
+import org.sonarqube.ws.Measures;
+
+import static org.sonar.api.utils.DateUtils.formatDateTime;
+
+class SnapshotDtoToWsPeriod {
+  private SnapshotDtoToWsPeriod() {
+    // prevent instantiation
+  }
+
+  static Optional<Measures.Period> snapshotToWsPeriods(@Nullable SnapshotDto snapshot) {
+    if (snapshot == null) {
+      return Optional.empty();
+    }
+
+    if (snapshot.getPeriodDate() != null) {
+      return Optional.of(snapshotDtoToWsPeriod(snapshot));
+    }
+
+    return Optional.empty();
+  }
+
+  private static Measures.Period snapshotDtoToWsPeriod(SnapshotDto snapshot) {
+    Measures.Period.Builder period = Measures.Period.newBuilder();
+    period.setIndex(1);
+    String periodMode = snapshot.getPeriodMode();
+    if (periodMode != null) {
+      period.setMode(periodMode);
+    }
+    String periodModeParameter = snapshot.getPeriodModeParameter();
+    if (periodModeParameter != null) {
+      period.setParameter(periodModeParameter);
+    }
+    Long periodDate = snapshot.getPeriodDate();
+    if (periodDate != null) {
+      period.setDate(formatDateTime(periodDate));
+    }
+    return period.build();
+  }
+}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/ws/SnapshotDtoToWsPeriods.java b/server/sonar-server/src/main/java/org/sonar/server/measure/ws/SnapshotDtoToWsPeriods.java
deleted file mode 100644 (file)
index 26e5fce..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2019 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.server.measure.ws;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.annotation.Nullable;
-import org.sonar.db.component.SnapshotDto;
-import org.sonarqube.ws.Measures;
-
-import static java.util.Collections.emptyList;
-import static org.sonar.api.utils.DateUtils.formatDateTime;
-
-class SnapshotDtoToWsPeriods {
-  private SnapshotDtoToWsPeriods() {
-    // prevent instantiation
-  }
-
-  static List<Measures.Period> snapshotToWsPeriods(@Nullable SnapshotDto snapshot) {
-    if (snapshot == null) {
-      return emptyList();
-    }
-
-    List<Measures.Period> periods = new ArrayList<>();
-    if (snapshot.getPeriodDate() != null) {
-      periods.add(snapshotDtoToWsPeriod(snapshot));
-    }
-
-    return periods;
-  }
-
-  private static Measures.Period snapshotDtoToWsPeriod(SnapshotDto snapshot) {
-    Measures.Period.Builder period = Measures.Period.newBuilder();
-    period.setIndex(1);
-    String periodMode = snapshot.getPeriodMode();
-    if (periodMode != null) {
-      period.setMode(periodMode);
-    }
-    String periodModeParameter = snapshot.getPeriodModeParameter();
-    if (periodModeParameter != null) {
-      period.setParameter(periodModeParameter);
-    }
-    Long periodDate = snapshot.getPeriodDate();
-    if (periodDate != null) {
-      period.setDate(formatDateTime(periodDate));
-    }
-    return period.build();
-  }
-}