如何/何时在CQ5/AEM中使用CRX和Apache Jackrabbit?

Woo*_*fer 21 jackrabbit crx aem

最近,我花了一些时间试图更好地理解AEM技术堆栈.有这么多件,似乎很容易混淆.我一直在寻找AEM上的JCR实现.我一直在读它使用CRX.但是,我知道它也使用Apache Jackrabbit.它是否同时使用?使用这两种实现背后的逻辑是什么?何时何地使用?

一个更好的问题可能是CRX和Jackrabbit之间的关系是什么?

dif*_*ffa 29

JCR(JSR-170)是内容存储库的标准Java API.它为Java应用程序与内容库交互的接口,但它并没有提供一个仓库实现.

Apache Jackrabbit是一个完全实现JCR API的开源内容存储库实现.

Adobe CRX是AEM中使用的商业内容存储库组件,它使用Jackrabbit的一些元素(例如一些安全API).CRX提供了诸如开发工具集群功能等附加功能,并且具有自己的存储机制,这与Jackrabbit实现不同.

  • @Woodifer CRX实际上并没有分叉.它真的只是Jackrabbit,更换了一些部分,并添加了其他部分(主要是工具),就像diffa写的那样.(我是Jackrabbit和CRX的开发者之一.) (4认同)
  • 它当然使用了一些Jackrabbit(例如[UserManager](http://jackrabbit.apache.org/api/2.0/org/apache/jackrabbit/api/security/user/UserManager.html)).它取代了比特(如持久性机制),并且还添加了不属于Jackrabbit(例如CRXDE)的东西. (2认同)
  • Adobe构成了在Jackrabbit上工作的[团队](http://jackrabbit.apache.org/jackrabbit-team.html)的很大一部分.它是作为CRX的关键组件积极开发的,但是有一些东西是他们为商业产品留下的.当[Jackrabbit Oak](http://jackrabbit.apache.org/oak/)项目(实现替代存储机制)实现时,我希望这将被CRX采用. (2认同)