@@ -0,0 +1,8 @@ | |||
package org.sonar.server.qualitygate.ws; | |||
import org.sonar.server.ws.WsAction; | |||
public interface BaseQGateWsAction extends WsAction { | |||
// Marker interface | |||
} |
@@ -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(); | |||
} | |||
} |
@@ -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) |
@@ -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") |
@@ -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(); | |||
} | |||
} |
@@ -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) |
@@ -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) |
@@ -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") |
@@ -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") |
@@ -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) |
@@ -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") |
@@ -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) |
@@ -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") |
@@ -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") |
@@ -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") |
@@ -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(); | |||
} | |||
} |
@@ -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(); | |||
} |
@@ -21,3 +21,4 @@ | |||
package org.sonar.server.qualitygate.ws; | |||
import javax.annotation.ParametersAreNonnullByDefault; | |||