--- /dev/null
+package org.sonar.server.qualitygate.ws;
+
+import org.sonar.server.ws.WsAction;
+
+public interface BaseQGateWsAction extends WsAction {
+
+ // Marker interface
+}
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;
import java.util.Locale;
-public class QGatesAppAction implements RequestHandler {
+public class QGatesAppAction implements BaseQGateWsAction {
private final QualityGates qualityGates;
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")
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);
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())
.prop("type", metric.getType().toString())
.prop("domain", metric.getDomain())
.prop("hidden", BooleanUtils.isNotFalse(metric.isHidden()))
- .endObject();
+ .endObject();
}
writer.endArray();
}
-
}
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;
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)
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;
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")
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;
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)
request.param(QGatesWs.PARAM_WARNING),
request.param(QGatesWs.PARAM_ERROR),
request.paramAsInt(QGatesWs.PARAM_PERIOD)
- ), response.newJsonWriter()
- ).close();
+ ), response.newJsonWriter()
+ ).close();
}
}
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;
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)
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;
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)
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;
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")
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;
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")
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;
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)
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.ProjectQgateAssociationQuery;
import org.sonar.server.qualitygate.QgateProjectFinder;
-public class QGatesSearchAction implements RequestHandler {
+public class QGatesSearchAction implements BaseQGateWsAction {
private final QgateProjectFinder projectFinder;
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")
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;
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)
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;
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")
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 java.util.Collection;
-public class QGatesShowAction implements RequestHandler {
+public class QGatesShowAction implements BaseQGateWsAction {
private final QualityGates qualityGates;
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")
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;
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")
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;
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)
request.param(QGatesWs.PARAM_WARNING),
request.param(QGatesWs.PARAM_ERROR),
request.paramAsInt(QGatesWs.PARAM_PERIOD)
- ), response.newJsonWriter()
- ).close();
+ ), response.newJsonWriter()
+ ).close();
}
}
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
.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();
}
package org.sonar.server.qualitygate.ws;
import javax.annotation.ParametersAreNonnullByDefault;
+