Вопрос касается управления версиями узла,
Шаг 1) Если пользовательский узел типа mix: versionable и с пользовательскими свойствами добавляется как дочерний узел корневого узла. с помощью
Узел узел = rootNode.addNode (имя, тип);
node.addMixin ( "смесь: versionable");
setFolderNodeAttributes (cutomMetadataObj, узел, тип); апи.
Шаг 2) и если вторая версия создается и сохраняется на том же узле, но с другими атрибутами, например, для. ниже
final VersionManager versionManager=session.getWorkspace().getVersionManager();
Node node = RootNode.getNode(name);
versionManager.checkout(node.getPath());
setCustomNodeAttributes(newMetadataObj, node, type);
session.save();
versionManager.checkin(node.getPath());
Теперь объект истории версий дает мне две версии
1) jcr: rootVersion
2) Первая версия с именем 1.0
Эта версия 1.0 имеет обновленные пользовательские атрибуты, а корневая версия не имеет пользовательских атрибутов.
Поэтому для первого коммита или версии узла, созданной на шаге 1, пользовательские атрибуты теряются (в БД они присутствуют), но через API VersionManager я не могу прочитать атрибуты 0-го коммита.
Я использую следующий код для перебора версий
final VersionHistory versionHistory = versionManager.getVersionHistory(node.getPath());
final VersionIterator versionItrator = versionHistory.getAllVersions();
while(versionItrator.hasNext()){
final Version version = versionItrator.nextVersion();
final Node idNode = version.getFrozenNode();
if (idNode.hasProperty("<Custom Property>")){
// For JCR:rootVersion its not present and for version 1.0 it printing latest checkedin property
}
}
Заранее спасибо