local repository access with sling resource resolver



I like to create test classes which can be started on local system connecting to an AEM repository. To be able to use same code as running inside repository, I need to have a proper ResourceResolver initialized. Of course, inside a running AEM instance, I just get it from the SlingHttpServletRequest. How can I get a ResourceResolver from local test class?


Sample code:

ResourceResolver resResolver = ????

PageManager pageMgr = resResolver.adaptTo(PageManager.class);


Answers (2)

Answers (2)



thanks for the reply.

I want to run the code outside of the Repository instance (outside of AEM). I don't want to run any tests remotely, i.e. like in a JSP that still resides on the AEM itself.

My goal is just to open a connection to the repository like I can do with JcrUtils.getRepository(). This way I still can connect and operate to any JCR nodes directly. But I like to use the Sling Features (i.e. adaptTo).



There can be two approach to solve your problem

a) Considering the test class resides inside OSGI, you can inject a reference to this service [1]

b) If you still need a slingRequest Object(from current user session), you can make a rest end point(write all ur test class code in jsp) and hit this rest end point. For this you can refer [2] [3]

[1] http://docs.adobe.com/docs/en/cq/5-5/javadoc/org/apache/sling/api/resource/ResourceResolverFactory.h...

[2] http://sling.apache.org/documentation/development/sling-testing-tools.html

[3] https://svn.apache.org/repos/asf/sling/trunk/testing/tools/src/main/java/org/apache/sling/testing/to....

Let me know if you still face any problem.