aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2015-04-17 00:25:01 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2015-04-17 18:19:44 +0200
commit37b5e0d4790dada05da80884689ebbbea9eb0794 (patch)
tree8aa45260bf8344ea7daab2167d97fb5539c75906 /server
parent5b0536c483d31018ec930b8a540306d36c29b243 (diff)
downloadsonarqube-37b5e0d4790dada05da80884689ebbbea9eb0794.tar.gz
sonarqube-37b5e0d4790dada05da80884689ebbbea9eb0794.zip
Fix quality flaw in quality gate web services
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/BaseQGateWsAction.java8
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesAppAction.java15
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCopyAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesCreateConditionAction.java10
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeleteConditionAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDeselectAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesDestroyAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesListAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesRenameAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSearchAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSelectAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesSetAsDefaultAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesShowAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUnsetDefaultAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesUpdateConditionAction.java10
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGatesWs.java66
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/package-info.java1
18 files changed, 69 insertions, 113 deletions
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;
+