jcr - Apache Jackrabbit 和 Jackrabbit Oak 有什么区别?

标签 jcr jackrabbit jackrabbit-oak

如果这听起来很愚蠢,我很抱歉,但是 Jackrabbit 和 Oak 之间有什么区别?我正在研究 JCR170,特别是如何在两个 jackrabbit 安装之间迁移内容,我遇到了 JackRabbit 和 Oak。

The Apache Jackrabbit™ content repository is a fully conforming implementation of the Content Repository for Java Technology API (JCR, specified in JSR 170 and JSR 283).

A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more.

Jackrabbit Oak is a complementary implementation of the JCR specification. It is an effort to implement a scalable and performant hierarchical content repository for use as the foundation of modern world-class web sites and other demanding content applications. See the Jackrabbit Oak website for more information.

Apache Jackrabbit is a project of the Apache Software Foundation



http://jackrabbit.apache.org/jcr/index.html

他们自己的主页说 Jackrabbit 是一个实现 JCR 的内容存储库,Oak 是 JCR 的一个补充实现。为什么同一个项目有两个 JCR 实现?

最佳答案

正如评论中提到的 awd,Oak 只是 Jackrabbit 的最新版本。它不仅仅是更新,而是相同 JSR170 的新实现。所以 API 不会改变,但底层的内部工作方式有点不同。正如 Julian 提到的,您可以在文档中找到很多内容。一些主要的变化是:

  • session 处理:每个 session 在创建时都会获取存储库的快照,以防止对存储库进行并发更改:http://jackrabbit.apache.org/oak/docs/architecture/transactional-model.html
  • MicroKernels:您可以使用它来定义存储库的存储方式。目前和以前一样使用名为 tarMK 的 tar 文件或带有 mongoMK 的 NoSQL DB MongoDB。

  • 以下是更改的概述:http://jackrabbit.apache.org/oak/docs/differences.html

    还有一个简短的幻灯片:
    https://www.slideshare.net/jukka/oak-the-architecture-of-apache-jackrabbit-3

    关于jcr - Apache Jackrabbit 和 Jackrabbit Oak 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49557340/

    相关文章:

    jackrabbit - JCR 2.0 更新节点内容

    mysql - 从 MySQL 数据库迁移到 Jackrabbit 的过程

    java - 使用 jackrabbit 存储图像等静态内容并使用 servlet 读取它们并将其作为图像流传输给用户对性能有何影响?

    versioning - 如何在 jackrabbit/JCR 中标记特定版本?

    adobe - 克服 cq :Page nodes in AEM 6. 1 的 1000+ 节点限制

    java - 如何在 postgres 服务器上运行 Oak-run 控制台

    authentication - CQ 如何验证每个请求?

    java - 如何在 JBoss 的默认 RMI 注册表中注册服务器并从运行在另一个 JVM 中的客户端访问它?

    aem - JCR中的附加文件