protected void service()

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


    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 (method == null || method.isBlank()) {
            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 (url != null && !url.isBlank()) {
                    printJSONDecomposedURLElement(pw, requestPathInfo);
                }
                if (requestPathInfo.getResourcePath() != null
                        && !requestPathInfo.getResourcePath().isBlank()) {
                    printJSONCandidatesElement(pw, resourceResolver, requestPathInfo, method);
                }
                pw.printf("  \"method\" : \"%s\"%n", Encode.forJavaScript(method));
                pw.print("}");

                response.setContentType("application/json");
            } else {
                printHTMLInputElements(pw, url);
                if (url != null && !url.isBlank()) {
                    printHTMLDecomposedURLElement(pw, requestPathInfo);
                }

                if (requestPathInfo.getResourcePath() != null
                        && !requestPathInfo.getResourcePath().isBlank()) {
                    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(Encode.forHtml(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(Encode.forHtml(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);
        }
    }