in src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java [72:123]
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response)
throws ServletException, IOException {
String operation = request.getParameter("operation");
DistributionQueue queue = request.getResource().adaptTo(DistributionQueue.class);
ResourceResolver resourceResolver = request.getResourceResolver();
if ("delete".equals(operation)) {
String limitParam = request.getParameter("limit");
String[] idParam = request.getParameterValues("id");
if (idParam != null) {
assertCapability(queue, REMOVABLE);
deleteItems(resourceResolver, queue, new HashSet<String>(Arrays.asList(idParam)));
} else {
int limit = 1;
try {
limit = Integer.parseInt(limitParam);
} catch (NumberFormatException ex) {
log.warn("limit param malformed : "+limitParam, ex);
}
assertCapability(queue, CLEARABLE);
clearItems(resourceResolver, queue, limit);
}
} else if ("copy".equals(operation)) {
String from = request.getParameter("from");
String[] idParam = request.getParameterValues("id");
if (idParam != null && from != null) {
assertCapability(queue, APPENDABLE);
DistributionAgent agent = request.getResource().getParent().getParent().adaptTo(DistributionAgent.class);
DistributionQueue sourceQueue = getQueueOrThrow(agent,from);
addItems(resourceResolver, queue, sourceQueue, idParam);
}
} else if ("move".equals(operation)) {
String from = request.getParameter("from");
String[] idParam = request.getParameterValues("id");
if (idParam != null && from != null) {
assertCapability(queue, APPENDABLE);
DistributionAgent agent = request.getResource().getParent().getParent().adaptTo(DistributionAgent.class);
DistributionQueue sourceQueue = getQueueOrThrow(agent,from);
assertCapability(sourceQueue, REMOVABLE);
addItems(resourceResolver, queue, sourceQueue, idParam);
deleteItems(resourceResolver, sourceQueue, new HashSet<String>(Arrays.asList(idParam)));
}
}
}