protected void doPost()

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)));
            }
        }
    }