Created
October 9, 2015 03:44
-
-
Save nateyolles/1dc9f8699fce70916764 to your computer and use it in GitHub Desktop.
Get the HTML markup for a resource in AEM / CQ.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.nateyolles.aem; | |
import org.apache.felix.scr.annotations.Reference; | |
import org.apache.felix.scr.annotations.sling.SlingServlet; | |
import org.apache.sling.api.SlingHttpServletRequest; | |
import org.apache.sling.api.SlingHttpServletResponse; | |
import org.apache.sling.api.servlets.SlingSafeMethodsServlet; | |
import org.apache.sling.engine.SlingRequestProcessor; | |
import com.day.cq.contentsync.handler.util.RequestResponseFactory; | |
import com.day.cq.wcm.api.WCMMode; | |
import javax.servlet.ServletException; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletResponse; | |
import java.io.ByteArrayOutputStream; | |
import java.io.IOException; | |
@SlingServlet(paths={"/bin/foo"}) | |
public class AemResourceResolutionServlet extends SlingSafeMethodsServlet { | |
/** Service to create HTTP Servlet requests and responses */ | |
@Reference | |
private RequestResponseFactory requestResponseFactory; | |
/** Service to process requests through Sling */ | |
@Reference | |
private SlingRequestProcessor requestProcessor; | |
@Override | |
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { | |
/* The resource path to resolve. Use any selectors or extension. */ | |
String requestPath = "/content/myapp/us/en/index/jcr:content/myparsys/mycomponent_f93d.html"; | |
/* Setup request */ | |
HttpServletRequest req = requestResponseFactory.createRequest("GET", requestPath); | |
WCMMode.DISABLED.toRequest(req); | |
/* Setup response */ | |
ByteArrayOutputStream out = new ByteArrayOutputStream(); | |
HttpServletResponse resp = requestResponseFactory.createResponse(out); | |
/* Process request through Sling */ | |
requestProcessor.processRequest(req, resp, request.getResourceResolver()); | |
String html = out.toString(); | |
} | |
} |
resp.getWriter().flush(); should be used
com.day.cq.contentsync.handler.util.RequestResponseFactory; is deprecated.
what is the alternative for this API ?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm working on something very similar for generating page preview without using ContentSync. The idea works as long as the resources are not clientlibs. See my fork.
Any ideas ?
I got around the issue by using HTMLLibraryManager to write the includes, but hoping to see a better way of doing that.