public Resource initResource()

in src/main/java/org/apache/sling/engine/impl/request/RequestData.java [213:243]


    public Resource initResource(ResourceResolver resourceResolver) {
        // keep the resource resolver for request processing
        this.resourceResolver = resourceResolver;

        // resolve the resource
        requestProgressTracker.startTimer("ResourceResolution");
        final SlingJakartaHttpServletRequest request = getSlingRequest();

        StringBuffer requestURL = servletRequest.getRequestURL();
        String path = request.getPathInfo();
        if (requestURL.indexOf(";") > -1 && !path.contains(";")) {
            try {
                final URL rUrl = new URL(requestURL.toString());
                final String prefix = request.getContextPath().concat(request.getServletPath());
                path = rUrl.getPath().substring(prefix.length());
            } catch (final MalformedURLException e) {
                // ignore
            }
        }

        Resource resource = resourceResolver.resolve(request, path);
        if (request.getAttribute(REQUEST_RESOURCE_PATH_ATTR) == null) {
            request.setAttribute(REQUEST_RESOURCE_PATH_ATTR, resource.getPath());
        }
        requestProgressTracker.logTimer(
                "ResourceResolution",
                "URI={0} resolves to Resource={1}",
                getServletRequest().getRequestURI(),
                resource);
        return resource;
    }