Apache Jackrabbit发布1.4版本

ApacheJackrabbit1.4版本发布,此版本包括220项新特性及改进,如更友好的Web应用界面、对象/内容映射框架、JCR服务提供者接口等。查询引擎得到显著优化,提升了查询速度。

Apache Jackrabbit是一个完全遵守Java API版的内容存储规范(JCR)的实现,在经历9个多月的辛苦工作后它发布了1.4版本。

版本注释中,包含有220个新的特性、改进和对1.3版本的bug修补,这使得1.4版本成为目前最为完整的一个版本。Jukka Zitting特别提到了一些1.4的新特性:

  • 更加友好的Jackrabbit Web应用。现在的jackrabbit-webapp组件具有更加优美的用户界面、更好的错误处理,以及改进了对本地和远程客户端的存储连接。
  • 对象/内容映射框架。jackrabbit-ocm组件将Java对象和JCR节点彼此映射,这使得将Java对象持久化到内容存储中成为可能。
  • JCR的服务提供者接口。jackrabbit-spi组件在JCR API之下定义了一个架构层。SPI层专门为远程访问而设计,并为我们提供了一种方式,来避免运行在JCR上的JCR-RMI所带来的性能限制。
  • 对二进制内容的优化存储。jackrabbit-core中新的DataStore特性避免了所有不必要的二进制内容的拷贝,并保证对版本和拷贝操作有很大的性能提升。DataStore是Jackrabbit 1.4中beta级别的特性,缺省是不可用状态。
  • 改善的查询引擎。jackrabbit-core组件扩展了一些新特性,比如配置索引同义词相形词查询以及拼写检查。感谢这么多性能的提升,许多典型的查询现在比以前都明显快了很多。
### Apache Jackrabbit 版本控制系统使用指南 #### 1. 初始化版本化节点 为了使某个节点能够被版本控制,该节点必须属于一个支持`versionable`特性的节点类型。通常情况下,这可以通过设置节点类型的`mix:versionable`混合类型来实现。 ```java Node node = session.getRootNode().addNode("myVersionedNode", "nt:unstructured"); node.addMixin("mix:versionable"); session.save(); ``` [^4] #### 2. 创建初始版本 一旦节点成为可版本化的,就可以创建其第一个版本: ```java // 获取 VersionManager 实例 VersionManager versionManager = session.getWorkspace().getVersionManager(); // 对指定路径下的节点执行 checkin 操作以保存当前状态作为一个新的版本 versionManager.checkpoint("/path/to/myVersionedNode"); // 或者先 lock, 然后 checkout 和 checkin 来手动管理版本生命周期 versionManager.checkout("/path/to/myVersionedNode"); // 修改内容... versionManager.checkin("/path/to/myVersionedNode"); ``` #### 3. 浏览历史记录 通过访问特定节点的历史记录可以查看所有的变更情况: ```java Node myNode = ...; // 获得目标节点实例 VersionHistory history = ((DocumentNodeState)myNode).getBaseVersion().getParent(); for (VersionIterator it=history.getAllVersions();it.hasNext();) { Version v = it.nextVersion(); System.out.println(v.getName() + ": " + v.getCreated()); } ``` #### 4. 还原至旧版 当需要回滚到之前的某次提交时,可以选择恢复整个工作区的状态或是仅还原单个文件夹/文档的内容: ```java String pathToRestore="/some/path"; String targetVersionLabel="v0_9"; versionManager.restoreByLabel(pathToRestore,targetVersionLabel,false); // false 表示不覆盖现有同名子树;true则会强制替换掉已存在的相同位置的数据。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值