From: Simon Brandhof Date: Thu, 16 Apr 2015 22:25:01 +0000 (+0200) Subject: Fix quality flaw in quality gate web services X-Git-Tag: 5.2-RC1~2206 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=37b5e0d4790dada05da80884689ebbbea9eb0794;p=sonarqube.git Fix quality flaw in quality gate web services --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/BaseQGateWsAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/BaseQGateWsAction.java new file mode 100644 index 00000000000..73f69fab14c --- /dev/null +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/BaseQGateWsAction.java @@ -0,0 +1,8 @@ +package org.sonar.server.qualitygate.ws; + +import org.sonar.server.ws.WsAction; + +public interface BaseQGateWsAction extends WsAction { + + // Marker interface +} diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesAppAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesAppAction.java index 2e9b6b594ff..825a7e22308 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesAppAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesAppAction.java @@ -23,7 +23,6 @@ import org.apache.commons.lang.BooleanUtils; import org.sonar.api.i18n.I18n; import org.sonar.api.measures.Metric; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; @@ -32,7 +31,7 @@ import org.sonar.server.qualitygate.QualityGates; import java.util.Locale; -public class QGatesAppAction implements RequestHandler { +public class QGatesAppAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -46,7 +45,8 @@ public class QGatesAppAction implements RequestHandler { this.i18n = i18n; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { controller.createAction("app") .setInternal(true) .setDescription("Get initialization items for the admin UI. For internal use") @@ -69,7 +69,7 @@ public class QGatesAppAction implements RequestHandler { private void addPeriods(JsonWriter writer) { writer.name("periods").beginArray(); - for (int i=0; i < 3; i ++) { + for (int i = 0; i < 3; i++) { writer.beginObject().prop("key", (long) i + 1).prop("text", periods.label(i + 1)).endObject(); } addProjectPeriod(4, writer); @@ -80,12 +80,12 @@ public class QGatesAppAction implements RequestHandler { private void addProjectPeriod(int periodIndex, JsonWriter writer) { writer.beginObject().prop("key", periodIndex).prop("text", i18n.message(Locale.getDefault(), "quality_gates.project_period", "Period " + periodIndex, periodIndex) - ).endObject(); + ).endObject(); } private void addMetrics(JsonWriter writer) { writer.name("metrics").beginArray(); - for (Metric metric: qualityGates.gateMetrics()) { + for (Metric metric : qualityGates.gateMetrics()) { writer.beginObject() .prop("id", metric.getId()) .prop("key", metric.getKey()) @@ -93,10 +93,9 @@ public class QGatesAppAction implements RequestHandler { .prop("type", metric.getType().toString()) .prop("domain", metric.getDomain()) .prop("hidden", BooleanUtils.isNotFalse(metric.isHidden())) - .endObject(); + .endObject(); } writer.endArray(); } - } diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCopyAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCopyAction.java index bef3d32a92b..237513b2edb 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCopyAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCopyAction.java @@ -21,14 +21,13 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; import org.sonar.core.qualitygate.db.QualityGateDto; import org.sonar.server.qualitygate.QualityGates; -public class QGatesCopyAction implements RequestHandler { +public class QGatesCopyAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -36,7 +35,8 @@ public class QGatesCopyAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("copy") .setDescription("Copy a Quality Gate. Require Administer Quality Profiles and Gates permission") .setPost(true) diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateAction.java index c21e433c51f..c9c15aa0ffe 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateAction.java @@ -21,14 +21,13 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; import org.sonar.core.qualitygate.db.QualityGateDto; import org.sonar.server.qualitygate.QualityGates; -public class QGatesCreateAction implements RequestHandler { +public class QGatesCreateAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -36,7 +35,8 @@ public class QGatesCreateAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("create") .setDescription("Create a Quality Gate. Require Administer Quality Profiles and Gates permission") .setSince("4.3") diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateConditionAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateConditionAction.java index 053df901342..46bb19693f8 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateConditionAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateConditionAction.java @@ -21,12 +21,11 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.server.qualitygate.QualityGates; -public class QGatesCreateConditionAction implements RequestHandler { +public class QGatesCreateConditionAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -34,7 +33,8 @@ public class QGatesCreateConditionAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction createCondition = controller.createAction("create_condition") .setDescription("Add a new condition to a quality gate. Require Administer Quality Profiles and Gates permission") .setPost(true) @@ -60,8 +60,8 @@ public class QGatesCreateConditionAction implements RequestHandler { request.param(QGatesWs.PARAM_WARNING), request.param(QGatesWs.PARAM_ERROR), request.paramAsInt(QGatesWs.PARAM_PERIOD) - ), response.newJsonWriter() - ).close(); + ), response.newJsonWriter() + ).close(); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeleteConditionAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeleteConditionAction.java index ae806fde47f..79e5cbf6c95 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeleteConditionAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeleteConditionAction.java @@ -21,12 +21,11 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.server.qualitygate.QualityGates; -public class QGatesDeleteConditionAction implements RequestHandler { +public class QGatesDeleteConditionAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -34,7 +33,8 @@ public class QGatesDeleteConditionAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction createCondition = controller.createAction("delete_condition") .setDescription("Delete a condition from a quality gate. Require Administer Quality Profiles and Gates permission") .setPost(true) diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeselectAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeselectAction.java index 436d87c4d15..24f3946612c 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeselectAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeselectAction.java @@ -21,12 +21,11 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.server.qualitygate.QualityGates; -public class QGatesDeselectAction implements RequestHandler { +public class QGatesDeselectAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -34,7 +33,8 @@ public class QGatesDeselectAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("deselect") .setDescription("Remove the association of a project from a quality gate. Require Administer Quality Profiles and Gates permission") .setPost(true) diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDestroyAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDestroyAction.java index c67029ddc77..d48762807c7 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDestroyAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDestroyAction.java @@ -21,12 +21,11 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.server.qualitygate.QualityGates; -public class QGatesDestroyAction implements RequestHandler { +public class QGatesDestroyAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -34,7 +33,8 @@ public class QGatesDestroyAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("destroy") .setDescription("Delete a Quality Gate. Require Administer Quality Profiles and Gates permission") .setSince("4.3") diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesListAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesListAction.java index 98c95e70e34..8d28a4bc5f2 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesListAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesListAction.java @@ -22,14 +22,13 @@ package org.sonar.server.qualitygate.ws; import com.google.common.io.Resources; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; import org.sonar.core.qualitygate.db.QualityGateDto; import org.sonar.server.qualitygate.QualityGates; -public class QGatesListAction implements RequestHandler { +public class QGatesListAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -37,7 +36,8 @@ public class QGatesListAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { controller.createAction("list") .setDescription("Get a list of quality gates") .setSince("4.3") diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesRenameAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesRenameAction.java index d0c0905fd7f..a091fc252a6 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesRenameAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesRenameAction.java @@ -21,14 +21,13 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; import org.sonar.core.qualitygate.db.QualityGateDto; import org.sonar.server.qualitygate.QualityGates; -public class QGatesRenameAction implements RequestHandler { +public class QGatesRenameAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -36,7 +35,8 @@ public class QGatesRenameAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("rename") .setDescription("Rename a Quality Gate. Require Administer Quality Profiles and Gates permission") .setPost(true) diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSearchAction.java index 35d1768348f..be456a36f8b 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSearchAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSearchAction.java @@ -22,7 +22,6 @@ package org.sonar.server.qualitygate.ws; import com.google.common.io.Resources; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; @@ -30,7 +29,7 @@ import org.sonar.core.qualitygate.db.ProjectQgateAssociation; import org.sonar.core.qualitygate.db.ProjectQgateAssociationQuery; import org.sonar.server.qualitygate.QgateProjectFinder; -public class QGatesSearchAction implements RequestHandler { +public class QGatesSearchAction implements BaseQGateWsAction { private final QgateProjectFinder projectFinder; @@ -38,7 +37,8 @@ public class QGatesSearchAction implements RequestHandler { this.projectFinder = projectFinder; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("search") .setDescription("Search for projects associated (or not) to a quality gate") .setSince("4.3") diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSelectAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSelectAction.java index 678934b7cbe..27d0da8a1c9 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSelectAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSelectAction.java @@ -21,12 +21,11 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.server.qualitygate.QualityGates; -public class QGatesSelectAction implements RequestHandler { +public class QGatesSelectAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -34,7 +33,8 @@ public class QGatesSelectAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("select") .setDescription("Associate a project to a quality gate. Require Administer Quality Profiles and Gates permission") .setPost(true) diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSetAsDefaultAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSetAsDefaultAction.java index 2d8b3b2785c..3d60abb07dc 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSetAsDefaultAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSetAsDefaultAction.java @@ -21,12 +21,11 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.server.qualitygate.QualityGates; -public class QGatesSetAsDefaultAction implements RequestHandler { +public class QGatesSetAsDefaultAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -34,7 +33,8 @@ public class QGatesSetAsDefaultAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("set_as_default") .setDescription("Set a quality gate as the default quality gate. Require Administer Quality Profiles and Gates permission") .setSince("4.3") diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesShowAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesShowAction.java index 816589ed0a3..18bdee9ecab 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesShowAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesShowAction.java @@ -22,7 +22,6 @@ package org.sonar.server.qualitygate.ws; import com.google.common.io.Resources; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.api.utils.text.JsonWriter; @@ -35,7 +34,7 @@ import javax.annotation.Nullable; import java.util.Collection; -public class QGatesShowAction implements RequestHandler { +public class QGatesShowAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -43,7 +42,8 @@ public class QGatesShowAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("show") .setDescription("Display the details of a quality gate") .setSince("4.3") diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUnsetDefaultAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUnsetDefaultAction.java index d796efcbeab..e497c3db78d 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUnsetDefaultAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUnsetDefaultAction.java @@ -21,12 +21,11 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.server.qualitygate.QualityGates; -public class QGatesUnsetDefaultAction implements RequestHandler { +public class QGatesUnsetDefaultAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -34,7 +33,8 @@ public class QGatesUnsetDefaultAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction action = controller.createAction("unset_default") .setDescription("Unset a quality gate as the default quality gate. Require Administer Quality Profiles and Gates permission") .setSince("4.3") diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUpdateConditionAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUpdateConditionAction.java index f9222d7f9ee..090d00eca3e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUpdateConditionAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUpdateConditionAction.java @@ -21,12 +21,11 @@ package org.sonar.server.qualitygate.ws; import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; import org.sonar.server.qualitygate.QualityGates; -public class QGatesUpdateConditionAction implements RequestHandler { +public class QGatesUpdateConditionAction implements BaseQGateWsAction { private final QualityGates qualityGates; @@ -34,7 +33,8 @@ public class QGatesUpdateConditionAction implements RequestHandler { this.qualityGates = qualityGates; } - void define(WebService.NewController controller) { + @Override + public void define(WebService.NewController controller) { WebService.NewAction createCondition = controller.createAction("update_condition") .setDescription("Update a condition attached to a quality gate. Require Administer Quality Profiles and Gates permission") .setPost(true) @@ -60,8 +60,8 @@ public class QGatesUpdateConditionAction implements RequestHandler { request.param(QGatesWs.PARAM_WARNING), request.param(QGatesWs.PARAM_ERROR), request.paramAsInt(QGatesWs.PARAM_PERIOD) - ), response.newJsonWriter() - ).close(); + ), response.newJsonWriter() + ).close(); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesWs.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesWs.java index 9ced94a130c..3a47200d124 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesWs.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesWs.java @@ -42,46 +42,10 @@ public class QGatesWs implements WebService { static final String PARAM_PROJECT_ID = "projectId"; static final String PARAM_ID = "id"; - private final QGatesListAction listAction; - private final QGatesShowAction showAction; - private final QGatesSearchAction searchAction; - - private final QGatesCreateAction createAction; - private final QGatesCopyAction copyAction; - private final QGatesSetAsDefaultAction setAsDefaultAction; - private final QGatesUnsetDefaultAction unsetAction; - private final QGatesDestroyAction destroyAction; - private final QGatesRenameAction renameAction; - - private final QGatesCreateConditionAction createConditionAction; - private final QGatesUpdateConditionAction updateConditionAction; - private final QGatesDeleteConditionAction deleteConditionAction; - - private final QGatesSelectAction selectAction; - private final QGatesDeselectAction deselectAction; - - private final QGatesAppAction appAction; - - public QGatesWs(QGatesListAction listAction, QGatesShowAction showAction, QGatesSearchAction searchAction, - QGatesCreateAction createAction, QGatesCopyAction copyAction, QGatesDestroyAction destroyAction, QGatesRenameAction renameAction, - QGatesSetAsDefaultAction setAsDefaultAction, QGatesUnsetDefaultAction unsetAction, - QGatesCreateConditionAction createConditionAction, QGatesUpdateConditionAction updateConditionAction, QGatesDeleteConditionAction deleteConditionAction, - QGatesSelectAction selectAction, QGatesDeselectAction deselectAction, QGatesAppAction appAction) { - this.listAction = listAction; - this.showAction = showAction; - this.searchAction = searchAction; - this.createAction = createAction; - this.destroyAction = destroyAction; - this.renameAction = renameAction; - this.unsetAction = unsetAction; - this.createConditionAction = createConditionAction; - this.updateConditionAction = updateConditionAction; - this.deleteConditionAction = deleteConditionAction; - this.selectAction = selectAction; - this.deselectAction = deselectAction; - this.copyAction = copyAction; - this.setAsDefaultAction = setAsDefaultAction; - this.appAction = appAction; + private final BaseQGateWsAction[] actions; + + public QGatesWs(BaseQGateWsAction... actions) { + this.actions = actions; } @Override @@ -90,25 +54,9 @@ public class QGatesWs implements WebService { .setSince("4.3") .setDescription("This service manages quality gates, including conditions and project association"); - listAction.define(controller); - showAction.define(controller); - searchAction.define(controller); - - createAction.define(controller); - renameAction.define(controller); - copyAction.define(controller); - destroyAction.define(controller); - setAsDefaultAction.define(controller); - unsetAction.define(controller); - - createConditionAction.define(controller); - updateConditionAction.define(controller); - deleteConditionAction.define(controller); - - selectAction.define(controller); - deselectAction.define(controller); - - appAction.define(controller); + for (BaseQGateWsAction action : actions) { + action.define(controller); + } controller.done(); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/package-info.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/package-info.java index 516341842a7..510db161908 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/package-info.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/package-info.java @@ -21,3 +21,4 @@ package org.sonar.server.qualitygate.ws; import javax.annotation.ParametersAreNonnullByDefault; +