From: Julien Lancelot Date: Wed, 19 Apr 2017 16:35:34 +0000 (+0200) Subject: SONAR-9048 Use metadata 'maximumValues' to limit number of metrics X-Git-Tag: 6.4-RC1~299 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=eaecad3ca1d52d1845627ce4cf28c247eb4dc9f2;p=sonarqube.git SONAR-9048 Use metadata 'maximumValues' to limit number of metrics --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java b/server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java index cbada12072d..5ceb61ff331 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java @@ -28,6 +28,7 @@ import java.util.Map; import java.util.Set; import org.sonar.api.i18n.I18n; import org.sonar.api.resources.ResourceTypes; +import org.sonar.api.server.ws.Change; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; @@ -112,7 +113,7 @@ public class ComponentTreeAction implements MeasuresWsAction { static final Set METRIC_SORT_FILTERS = ImmutableSortedSet.of(ALL_METRIC_SORT_FILTER, WITH_MEASURES_ONLY_METRIC_SORT_FILTER); static final Set FORBIDDEN_METRIC_TYPES = ImmutableSet.of(DISTRIB.name(), DATA.name()); private static final int MAX_METRIC_KEYS = 15; - private static final Joiner COMMA_JOINER = Joiner.on(" , "); + private static final Joiner COMMA_JOINER = Joiner.on(", "); private final ComponentTreeDataLoader dataLoader; private final I18n i18n; @@ -135,7 +136,8 @@ public class ComponentTreeAction implements MeasuresWsAction { .setResponseExample(getClass().getResource("component_tree-example.json")) .setSince("5.4") .setHandler(this) - .addPagingParams(100, MAX_SIZE); + .addPagingParams(100, MAX_SIZE) + .setChangelog(new Change("6.3", format("Number of metric keys is limited to %s", MAX_METRIC_KEYS))); action.createSortParams(SORTS, NAME_SORT, true) .setDescription("Comma-separated list of sort fields") @@ -177,8 +179,9 @@ public class ComponentTreeAction implements MeasuresWsAction { .setDefaultValue(ALL_METRIC_SORT_FILTER) .setPossibleValues(METRIC_SORT_FILTERS); - createMetricKeysParameter(action).setDescription("Metric keys, maximum %s values can bet set. Types %s are not allowed", MAX_METRIC_KEYS, - COMMA_JOINER.join(FORBIDDEN_METRIC_TYPES)); + createMetricKeysParameter(action) + .setDescription("Metric keys. Types %s are not allowed", COMMA_JOINER.join(FORBIDDEN_METRIC_TYPES)) + .setMaxValuesAllowed(MAX_METRIC_KEYS); createAdditionalFieldsParameter(action); createDeveloperParameters(action); createQualifiersParameter(action, newQualifierParameterContext(i18n, resourceTypes)); diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java index 1a58f688cf3..8ebad37a738 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java @@ -610,7 +610,7 @@ public class ComponentTreeActionTest { db.commit(); expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Number of metrics keys is limited to 15, got 20"); + expectedException.expectMessage("'metricKeys' can contains only 15 values, got 20"); ws.newRequest() .setParam(PARAM_BASE_COMPONENT_ID, "project-uuid")