Пользовательский узел Дуба Кролика Кролика с пользовательскими атрибутами - PullRequest
0 голосов
/ 10 января 2019

Вопрос касается управления версиями узла,

Шаг 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
}
}

Заранее спасибо

...