Я пробовал versiong и восстановление дерева, как видно на прилагаемой картинке, у меня следующая иерархия узлов.
Шаг 1)
Корневой узел
|
Пользовательский дочерний узел типа nt: папка, микс: версия
|
Дочерний узел типа NT: папка
|
Custome Childe Node nt: тип файла, смесь: версия
Я могу выполнить версию g узла следующим образом
Шаг 2:
Я оформляю заказ на дочернем узле,
получить узел типа nt: папка
получить узел пользовательского узла типа nt: тип файла, установить новое содержимое типа файла.
вышеуказанная операция прошла успешно, я могу видеть и получать новый контент из версионного файла,
Теперь на шаге 3 я хочу выполнить восстановление до версии 1.0, а всю иерархию установить на 1.0.
ниже приведен код для этого,
final VersionManager versionManager = session.getWorkspace().getVersionManager();
final Node node = session.getRootNode().getNode(Custom Child node of Type nt:folder); //Get the custom folder node
final VersionHistory verHis = versionManager.getVersionHistory(node.getPath());
final VersionIterator verItr = verHis.getAllVersions();
while (verItr.hasNext()) {
final Version version = verItr.nextVersion();
if(versionLabel.equals(version.getName())){
log.info("Restoring Version : "+versionLabel);
log.info(version.getFrozenNode().getPath());
versionManager.restore(version, true);
return;
}
}
При восстановлении происходит сбой со следующим исключением для узла пользовательских файлов в листьях:
javax.jcr.nodetype.ConstraintViolationException: No matching node definition found for Custome File Name.go.xml
at org.apache.jackrabbit.oak.plugins.nodetype.EffectiveNodeTypeImpl.getNodeDefinition(EffectiveNodeTypeImpl.java:454)
at org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager.getDefinition(ReadOnlyNodeTypeManager.java:396)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.getOPV(VersionableState.java:569)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreChildren(VersionableState.java:396)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreFrozen(VersionableState.java:319)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreState(VersionableState.java:261)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreChildren(VersionableState.java:402)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restoreFrozen(VersionableState.java:319)
at org.apache.jackrabbit.oak.plugins.version.VersionableState.restore(VersionableState.java:229)
... 73 common frames omitted
Спасибо