版本控制和版本控制管理在 Oak 中是如何工作的?
Posted
技术标签:
【中文标题】版本控制和版本控制管理在 Oak 中是如何工作的?【英文标题】:How does versioning and version control management work in Oak? 【发布时间】:2016-12-13 23:45:34 【问题描述】:我们可以说 OAK 1.4 提供了开箱即用的版本控制和版本控制管理功能吗?如果是这样,如何?这是否也意味着 AEM 作者可以使用相同的功能,即暴露于顶层?
【问题讨论】:
【参考方案1】:Jackrabbit 的核心始终是提供版本管理。在 OAK 实现中,它封装在 org.apache.jackrabbit.oak.jcr.version 下。
关于 JackRabbit 版本控制的功能方面的详细信息(OAK 也适用)可以在 Wiki here
中找到核心概念围绕着 mixin 类型 mix:versionable
,在 OAK 中,任何具有混合类型 mix:versionable
的节点都可以进行版本控制以维护更改历史记录。实现的关键方面是 VersionManager
类,它为版本关系操作提供 API。
在 AEM 中,JCR 版本控制的核心概念得到了扩展,并以更受限制的方式提供。 AEM 允许对 Pages only 进行版本控制,这受限于在包 com.day.cq.wcm.core.impl.VersionManagerImpl 中提供自己的 VersionManager 实现,请参阅文档here
默认情况下,在 AEM 中,页面版本是在页面激活时创建的。 AEM 在经典 UI 中提供 GUI 界面以在页面上显式创建版本,并且有一个 OOTB 流程步骤可用于在自定义工作流实现中按原样使用版本控制。
【讨论】:
以上是关于版本控制和版本控制管理在 Oak 中是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章