Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

local repository access with sling resource resolver

Avatar

Not applicable

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);

....

1 Accepted Solution

Avatar

Correct answer by
Level 8
3 Replies

Avatar

Correct answer by
Level 8

Avatar

Level 3

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.

Avatar

Not applicable

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).