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

22

最近,我花了一些时间尝试更好地理解AEM技术栈。它有很多组成部分,似乎很容易混淆。我一直在研究AEM上的JCR实现。我不停地看到它使用CRX。然而,我知道它也使用了Apache Jackrabbit。它是同时使用两者吗?使用这两种实现背后的逻辑是什么?每种何时和何处使用?

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

2个回答

30

JCR(JSR-170)是一个用于内容仓库的标准Java API。它提供了Java应用程序与内容仓库交互的接口,但是它并不提供仓库实现

Apache Jackrabbit 是一个开源的内容仓库实现,完全实现了JCR API。

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


1
在Felix控制台查看Day CRX API bundle,它显示导入了Jackrabbit。据我所知(如果我错了请纠正),CRX只是在Jackrabbit的基础上提供了额外的功能? - Woodifer
3
它确实使用了Jackrabbit的一些部分,例如UserManager。它替换了某些部分(例如持久化机制),还添加了一些不属于Jackrabbit的东西(例如CRXDE)。 - diffa
1
除了额外的工具之外,它感觉就像是jackrabbit的分支版本。 - Woodifer
2
Adobe是Jackrabbit团队的重要成员之一(http://jackrabbit.apache.org/jackrabbit-team.html)。它作为CRX的关键组件而得到积极开发,但是他们会保留一些商业产品所需的功能。当实现另一种存储机制的Jackrabbit Oak项目(http://jackrabbit.apache.org/oak/)完成后,我预计CRX将采用该项目。 - diffa
6
@Woodifer CRX实际上并没有被分叉。它确实只是Jackrabbit,有一些部分被替换和其他部分被添加(主要是工具),就像diffa写的那样。(我是Jackrabbit和CRX的开发人员之一。) - Thomas Mueller
很好的解释。谢谢! - ezhil

3

CRX是Apache Jackrabbit的商业实现,具有以下功能:

  • TarPM
  • 列表项
  • 共享无集群
  • LDAP集成
  • 内容包管理

共享无集群3 / LDAP集成4 / 内容包管理

请参考Adobe论坛中的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接