【发布时间】:2010-12-07 13:36:47
【问题描述】:
在我的项目中,我需要将 Jackrabbit 1.3 更改为 Jackrabbit 2.1.1。我的工作是为查询工作。如果索引格式和查询格式有变化,请建议我。 Jackrabbit 2.1.1 使用 Lucene 2.4,而 Jackrabbit 1.3 使用 Lucene 2.2。
【问题讨论】:
标签: java upgrade backwards-compatibility lucene jackrabbit
在我的项目中,我需要将 Jackrabbit 1.3 更改为 Jackrabbit 2.1.1。我的工作是为查询工作。如果索引格式和查询格式有变化,请建议我。 Jackrabbit 2.1.1 使用 Lucene 2.4,而 Jackrabbit 1.3 使用 Lucene 2.2。
【问题讨论】:
标签: java upgrade backwards-compatibility lucene jackrabbit
让我们将您的升级分为以下几个部分:
将 1.3 升级到 1.5(请参阅 Class IndexMigration):
IndexMigration 实现了一个实用程序,可将 Jackrabbit 1.4.x 索引迁移到 1.5 版。在 1.4.x 版本之前,indexes 使用字符 '' 将属性的名称与值分开。从 Lucene 2.3 开始,这不再起作用。请参阅 LUCENE-1221。 Jackrabbit >= 1.5 使用字符 '[' 作为分隔符。每当从磁盘打开索引时,都会运行快速检查以确定是否需要迁移。有关详细信息,另请参阅 JCR-1363。
将 1.5 升级到 2.0.0(参见 RELEASE-NOTES.txt):
向后兼容性
Jackrabbit 2.0 旨在与现有 Jackrabbit 兼容 1.x 客户端和存储库。此目标的主要例外是:
- 删除了已弃用的类和功能。 Jackrabbit 2.0 不是 向后兼容使用类或特性的客户端代码 在 1.x 发布周期中已被弃用。最为显着地 临时 org.apache.jackrabbit.api.jsr283 接口已 删除以支持 javax.jcr 中的官方 JCR 2.0 API。
- 包含使用新 JSR 283 安全功能的存储库 作为 Jackrabbit 1.5 和 1.6 中的开发预览版可能会遇到问题 升级到 Jackrabbit 2.0 时。尤其见JCR-1944 和JCR-2313 了解更多详情。
- JCR-RMI 层不再实现 Jackrabbit API 扩展。 将 JCR-RMI 用于分布式事务或用于管理的代码 创建工作空间或注册节点类型等操作需要 相应更新。
- Jackrabbit 2.0 中的 JCR-RMI 层仅支持 JCR 2.0 存储库。 要访问 JCR 1.0 存储库实现,例如 Jackrabbit 1.x RMI,您需要使用 JCR-RMI 的 1.x 版本。
将 2.0.0 升级到 2.1.1(2.x 分支定位为拥有稳定的 API):
这是 Apache Jackrabbit 2.0.0,完全兼容且可用于生产 实现 Java 技术 API 的内容存储库,版本 2.0
另请参阅 Jackrabbit 和 Lucene API 的兼容性表。
【讨论】:
有多种方法可以从 Jackrabbit 1.x 迁移到 2.x。可能最好的文档可以在Jackrabbit Wiki 中找到,Backup and Migration 页面之一。
【讨论】: