AEM 6.4 beta, Apache Sling JCR Resource Resolver not present | Community
Skip to main content
New Participant
February 1, 2018
Solved

AEM 6.4 beta, Apache Sling JCR Resource Resolver not present

  • February 1, 2018
  • 25 replies
  • 16463 views

Hi all

I'm trying to migrate an app so it works on AEM 6.4 beta, but I ran into the following problem:
When I install my bundle. I get the following error:

org.apache.sling.jcr.resource,version=[2.4,3) -- Cannot be resolved

Right now, I'm using version 2.9.2 of org.apache.sling.jcr.resource. Here's the pom dependency:

<dependency>

    <groupId>org.apache.sling</groupId>

    <artifactId>org.apache.sling.jcr.resource</artifactId>

    <version>2.9.2</version>

    <scope>provided</scope>

</dependency>

I checked in AEM's web console, and searched for that dependency using the dependency finder ( http://localhost:4502/system/console/depfinder ), and It turns out that package "org.apache.sling.jcr.resource" cannot be found in AEM 6.4 beta:

I checked in AEM 6.3, but I do get a result there:

It is because of this that I suspect that the problem is that this dependency is not present in AEM 6.4 beta. But still, I'm not an expert on dependencies so I'm not sure if this is the case, or if it's a problem on my project.


I'd appreciate if someone can point me in the right direction on this. Basically I want to check if the problem is related to AEM 6.4 beta dependencies.

Thanks!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Altham

Hi,

Actually these issues are due to changes in uber jar file i.e. interfaces and classes has been restructured in uber jar 6.4.

You can decompile uber jar and see the changes by yourself.

Taking an example of org.apache.sling.jcr.resource ....

org.apache.sling.jcr.resource.JcrResourceUtil is changed to com.day.cq.commons.jcr.JcrUtil

org.apache.sling.jcr.resource.JcrResourceConstants changed to org.apache.sling.jcr.resource.api.JcrResourceConstants

Links to figure out deprecated API's

https://helpx.adobe.com/experience-manager/6-4/sites/developing/using/reference-materials/javadoc/deprecated-list.html

https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/reference-materials/javadoc/deprecated-list.html

25 replies

sindhug14537977
New Participant
August 28, 2018

atulj26424737​ Thanks! It worked.!

AlthamAccepted solution
New Participant
August 27, 2018

Hi,

Actually these issues are due to changes in uber jar file i.e. interfaces and classes has been restructured in uber jar 6.4.

You can decompile uber jar and see the changes by yourself.

Taking an example of org.apache.sling.jcr.resource ....

org.apache.sling.jcr.resource.JcrResourceUtil is changed to com.day.cq.commons.jcr.JcrUtil

org.apache.sling.jcr.resource.JcrResourceConstants changed to org.apache.sling.jcr.resource.api.JcrResourceConstants

Links to figure out deprecated API's

https://helpx.adobe.com/experience-manager/6-4/sites/developing/using/reference-materials/javadoc/deprecated-list.html

https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/reference-materials/javadoc/deprecated-list.html

sindhug14537977
New Participant
August 27, 2018

i got the same issue while upgrading to 6.4.

is there a link to the above mentioned article.

Thanks!

smacdonald2008
New Participant
April 27, 2018

Been successful creating an HTL component that pulls data from the JCR using these APIs:

We will release this article next week.

This uses Maven Arch 13. UBER 6.4, a system user, Java code,  and HTL.

New Participant
April 27, 2018

Aaah, understood.

joerghoh
Employee
April 27, 2018

The compatibility package allows you to run your AEM 6.3 application unchanged (no recompilation required) on AEM 6.4. Therfor you should not update to the 6.4 uber.jar

Jörg

smacdonald2008
New Participant
April 27, 2018

We need a 6.4 article that uses this JAVA to pull data from the JCR and display in an HTL component:

Map<String, Object> param = new HashMap<String, Object>();

param.put(ResourceResolverFactory.SUBSERVICE, "datawrite");

ResourceResolver resolver = null;


try {

          

    //Invoke the adaptTo method to create a Session used to create a QueryManager

  resolver = resolverFactory.getServiceResourceResolver(param);

    session = resolver.adaptTo(Session.class);

New Participant
April 27, 2018

Thank you smacdonald2008 this information will definitely help.

I am facing this issue at package compilation time itself. (mvn clean install)

The compatibility package goes directly on the server through package manager, but I am not able to make my package ready & compatible with 6.4 after adding 6.4.0 uber jar in the pom.xml.

I am trying to follow this document.. Upgrading Code and Customizations

joerghoh
Employee
April 27, 2018

Check the documentation at Backward Compatibility in AEM 6.4​.

Jörg

smacdonald2008
New Participant
April 27, 2018

I will update a HELPX article to AEM 6.4 that uses this data type. I will post back results.