在我的项目中,我需要将 Jackrabbit 1.3 更改为 Jackrabbit 2.1.1。我的工作是为查询工作。如果索引格式和查询格式有变化,请建议我。Jackrabbit 2.1.1 中使用了 Lucene 2.4,而 Jackrabbit 1.3 中使用了 Lucene 2.2。
2 回答
让我们将您的升级分为以下几个部分:
将 1.3 升级到 1.5(参见Class IndexMigration):
IndexMigration 实现了将 Jackrabbit 1.4.x 索引迁移到 1.5 版的实用程序。在 1.4.x 版本之前,索引使用字符 '' 将属性的名称与值分开。从 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。
- 已使用作为 Jackrabbit 1.5 和 1.6 中的开发预览版包含的新 JSR 283 安全功能的存储库在升级到 Jackrabbit 2.0 时可能会遇到问题。更多细节请参见JCR-1944和JCR-2313 。
- JCR-RMI 层不再实现 Jackrabbit API 扩展。将 JCR-RMI 用于分布式事务或用于创建工作空间或注册节点类型等管理操作的代码需要相应更新。
- Jackrabbit 2.0 中的 JCR-RMI 层仅支持 JCR 2.0 存储库。要通过 RMI 访问 JCR 1.0 存储库实现,例如 Jackrabbit 1.x,您需要使用 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页面之一。