我们可以说OAK 1.4提供开箱即用的版本控制和版本控制管理功能吗?如果是这样,怎么样?这也意味着AEM作者可以使用相同的功能,即暴露在顶层?
答案 0 :(得分:4)
Jackrabbit始终以版本管理为核心。在OAK实施中,它打包在org.apache.jackrabbit.oak.jcr.version下。
有关JackRabbit Versioning功能方面的详细信息(也适用于OAK)可以在Wiki here中找到
核心概念围绕mixin类型mix:versionable
,在OAK中,任何具有混合类型mix:versionable
的节点都可以进行版本化以维护更改历史记录。实现的关键方面是VersionManager
类,它为版本关系操作提供API。
在AEM中,JCR版本控制的核心概念得到了扩展,并以更加有限的方式提供。 AEM允许仅限页面的版本控制,这受限于在com.day.cq.wcm.core.impl.VersionManagerImpl包中提供自己的VersionManager实现,请参阅文档here
默认情况下,在AEM中,页面的激活页面上会创建页面版本。 AEM在Classic UI中提供GUI界面以在页面上显式创建版本,并且有一个OOTB流程步骤可用于版本化,以便在自定义工作流实现中使用。