protected void service()

in src/main/java/org/apache/sling/servlets/resolver/internal/console/WebConsolePlugin.java [118:182]


    protected void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
        final String url = request.getParameter(PARAMETER_URL);
        
        String method = request.getParameter(PARAMETER_METHOD);
        if (StringUtils.isBlank(method)) {
            method = "GET";
        }

        String requestURI = request.getRequestURI();
        try (final ResourceResolver resourceResolver = resourceResolverFactory.getServiceResourceResolver(Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, (Object)SERVICE_USER_CONSOLE))) {
            final PrintWriter pw = response.getWriter();
            final RequestPathInfo requestPathInfo = getRequestPathInfo(url, resourceResolver);
            if (requestURI.endsWith("json")) {
                pw.println("{");
                if (StringUtils.isNotBlank(url)) {
                    printJSONDecomposedURLElement(pw, requestPathInfo);
                }
                if (StringUtils.isNotBlank(requestPathInfo.getResourcePath())) {
                    printJSONCandidatesElement(pw, resourceResolver, requestPathInfo, method);
                }
                pw.printf("  \"method\" : \"%s\"%n", StringEscapeUtils.escapeJson(method));
                pw.print("}");

                response.setContentType("application/json");
            } else {
                printHTMLInputElements(pw, url);
                if (StringUtils.isNotBlank(url)) {
                    printHTMLDecomposedURLElement(pw, requestPathInfo);
                }

                if (StringUtils.isNotBlank(requestPathInfo.getResourcePath())) {
                    Resource resource = resourceResolver.resolve(requestPathInfo.getResourcePath());
                    final Collection<Resource> servlets = resolveServlets(resourceResolver, requestPathInfo, resource,
                            method);

                    tr(pw);
                    tdLabel(pw, "Candidates");
                    tdContent(pw);
                    if (servlets == null || servlets.isEmpty()) {
                        pw.println("Could not find a suitable servlet for this request!");
                    } else {
                        // check for non-existing resources
                        if (ResourceUtil.isNonExistingResource(resource)) {
                            pw.println("The resource given by path '");
                            pw.println(ResponseUtil.escapeXml(resource.getPath()));
                            pw.println("' does not exist. Therefore no resource type could be determined!<br/>");
                        }
                        pw.print("Candidate servlets and scripts in order of preference for method ");
                        pw.print(ResponseUtil.escapeXml(method));
                        pw.println(":<br/>");
                        pw.println("<ol class='servlets'>");
                        outputHTMLServlets(pw, servlets.iterator());
                        pw.println("</ol>");
                    }
                    closeTd(pw);
                    closeTr(pw);
                }

                pw.println("</table>");
                pw.print("</form>");
            }
        } catch (final LoginException e) {
            throw new ServletException(e);
        }
    }