public void render()

in src/main/java/org/apache/sling/servlets/get/impl/helpers/XMLRenderer.java [46:99]


    public void render(SlingHttpServletRequest req,
                         SlingHttpServletResponse resp)
    throws IOException {
        final Resource r = req.getResource();

        if (ResourceUtil.isNonExistingResource(r)) {
            throw new ResourceNotFoundException("No data to render.");
        }

        resp.setContentType(req.getResponseContentType());
        resp.setCharacterEncoding("UTF-8");

        // are we included?
        final boolean isIncluded = req.getAttribute(SlingConstants.ATTR_REQUEST_SERVLET) != null;

        try {
            final Node node = r.adaptTo(Node.class);
            if ( node != null ) {
                try {
                    if ( req.getRequestPathInfo().getSelectorString() == null
                         || req.getRequestPathInfo().getSelectorString().equals(DOCVIEW) ) {
                        // check if response is adaptable to a content handler
                        final ContentHandler ch = resp.adaptTo(ContentHandler.class);
                        if ( ch == null ) {
                            node.getSession().exportDocumentView(node.getPath(), resp.getOutputStream(), false, false);
                        } else {
                            node.getSession().exportDocumentView(node.getPath(), ch, false, false);
                        }
                    } else if ( req.getRequestPathInfo().getSelectorString().equals(SYSVIEW) ) {
                        // check if response is adaptable to a content handler
                        final ContentHandler ch = resp.adaptTo(ContentHandler.class);
                        if ( ch == null ) {
                            node.getSession().exportSystemView(node.getPath(), resp.getOutputStream(), false, false);
                        } else {
                            node.getSession().exportSystemView(node.getPath(), ch, false, false);
                        }
                    } else {
                        resp.sendError(HttpServletResponse.SC_NO_CONTENT); // NO Content
                    }
                } catch (Exception e) {
                    throw new ServletException("Unable to export resource as xml: " + r, e);
                }
            } else {
                if ( !isIncluded ) {
                    resp.sendError(HttpServletResponse.SC_NO_CONTENT); // NO Content
                }
            }
        } catch ( final Throwable t) {
            // if the JCR api is not available, we get here
            if ( !isIncluded ) {
                resp.sendError(HttpServletResponse.SC_NO_CONTENT); // NO Content
            }
        }
    }