4

I can see in AEM technology stack there are multiple frameworks like OSGi, JCR, CRX, Granite. but am unclear about the usage and the involvement of JCR vs CRX. Can anybody explain me whats the role of JCR & CRX in AEM?

krish
  • 469
  • 1
  • 15
  • 34
  • 6
    Possible duplicate of [How/When is CRX and Apache Jackrabbit used in CQ5/AEM?](http://stackoverflow.com/questions/17535911/how-when-is-crx-and-apache-jackrabbit-used-in-cq5-aem) – VAr Mar 29 '17 at 16:00

2 Answers2

6

JCR is the Java Content Repository standard, Apache JackRabbit implements the standard and CRX is a Repository based on JackRabbit.

Florian Salihovic
  • 3,921
  • 2
  • 19
  • 26
  • I guess we can say that CRX is just an implementation of JCR. – dzuma Apr 05 '18 at 19:01
  • No, it is not. Apache JackRabbit and Apache OAK are implementations of JCR. CRX sits on top. – Florian Salihovic Apr 06 '18 at 05:50
  • 1
    I don't want to argue, but due to wikipedia: "Day had both a commercial JCR implementation called Content Repository Extreme (CRX) and was involved in the open source Apache Jackrabbit JCR". – dzuma Apr 11 '18 at 10:54
  • Then we should not argue an rely on my quote from wikipedia: "Adobe Content Repository Extreme (Adobe CRX)[2] is a content repository that implements the content repository API for Java (JSR-170). It is based on the open source reference implementation Apache Jackrabbit and serves as the foundation of all other products by Day Software." [https://en.wikipedia.org/wiki/Day_Software]. – Florian Salihovic Apr 12 '18 at 00:05
  • Or we use Adobe's definition from their website: "Experience Server (CRX) and Jackrabbit The Experience Server provides the Experience Services which AEM is built on, and which can be leveraged to build custom applications, and it embeds the Content Repository based on Jackrabbit. Apache Jackrabbit is an open source, fully conforming, implementation of the JCR API 2.0." [https://helpx.adobe.com/experience-manager/6-3/sites/developing/using/the-basics.html#ExperienceServerCRXandJackrabbit] – Florian Salihovic Apr 12 '18 at 00:05
  • A guy working on Jackrabbit and CRX says it is Jackrabbit with some parts replaced or added, so I would say it is the implementation of JCR: https://stackoverflow.com/questions/17535911/how-when-is-crx-and-apache-jackrabbit-used-in-cq5-aem#comment25515420_17537222. The sentence that CRX embeds the Content Repository based on Jackrabbit doesn't mean it is not an implementation of JCR. – Karol Lewandowski Sep 07 '19 at 09:37
  • And just noticed it when you go to /crx/explorer: https://i.imgur.com/jwUqbwQ.png – Karol Lewandowski Sep 07 '19 at 10:17
  • that is correct. Apache Jackrabbit is the open source implementation of JCR specifications. Content Repository Extreme(CRX) is a commercial flavour on JCR on top of what Jackrabbit already provides. CRX has some additional functionality like an IDE like support for jsp and Java classes on browser(called crx/de), a package management system etc. originally built by Day and then improved by Adobe, CRX is one of the key features of Adobe experience manager. – Shashi Nov 20 '20 at 08:27
1

Apache Jackrabbit is an open source content repository implementation that fully implements the JCR API.

JCR (JSR-170) is the a standard Java API for content repositories. It provides an interface for Java applications to interact with content repositories, however it does not provide a repository implementation.

Adobe CRX is the commercial content repository component used in the AEM, which uses some elements of Jackrabbit (e.g. some of the security APIs). CRX provides additional features such as development tools & clustering capabilities and has its own storage mechanism which differs from the Jackrabbit implementation.

dubes
  • 5,324
  • 3
  • 34
  • 47
kedar
  • 11
  • 1