Как установить произвольный номер версии для загружаемого контента? - PullRequest
0 голосов
/ 19 февраля 2019

Я разрабатываю загрузчик контента, представляющий Surf WebScript .Возможно, было бы правильнее сказать «обновление», потому что контент уже существует в репозитории, но может не иметь аспект cm:versionable.Мне нужно обновить этот контент и установить правильный номер версии (например, произвольный).

Я заметил, что первая загрузка всегда получает номер 1.0.

Например, предположим, чтоМодель содержимого не имеет аспекта cm:versionable.Я могу добавить его таким образом и указать номер нужной мне версии (1.1):

if(!nodeService.hasAspect(nodeRef, QNAME_ASPECT_VERSIONABLE)) {
    Map<String, String> map = new HashMap<String, String>() {
        {
            put(QNAME_VERSION_LABEL, INITIAL_UPLOADED_VERSION); // 1.1
            put(QNAME_AUTO_VERSION, false);
        }
    };
    nodeService.addAspect(nodeRef, QNAME_ASPECT_VERSIONABLE, map);
    // SKIPPED

Константы, которые я использовал:

final String NS_ALF_CONTENT_MODEL  = "http://www.alfresco.org/model/content/1.0";
final String ASPECT_CM_VERSIONABLE = "versionable";
final String PROP_VERSION_LABEL    = "versionLabel";
final String PROP_AUTO_VERSION     = "autoVersion";
final String INITIAL_UPLOADED_VERSION = "1.1";

final QName QNAME_ASPECT_VERSIONABLE = QName.createQName(NS_ALF_CONTENT_MODEL, ASPECT_CM_VERSIONABLE);
final QName QNAME_VERSION_LABEL = QName.createQName(NS_ALF_CONTENT_MODEL, PROP_VERSION_LABEL);  
final QName QNAME_AUTO_VERSION = QName.createQName(NS_ALF_CONTENT_MODEL, PROP_AUTO_VERSION);

Когда я отлаживаю это решение,Я вижу, что получаю нужную мне версию.

Однако, когда я смотрю на свойства узла в браузере узлов, я вижу, что cm:versionLabel == 1.0.

enter image description here

Все последующие загрузки получают правильные номера в соответствии с логикой, которую я использую.

Почему версия для первогозагрузка всегда имеет номер 1.0, и как я могу изменить это поведение? ..

уровень транзакции в моем случае: <transaction>required</transaction>

Я был бы очень признателен заинформация.

Спасибо всем.

1 Ответ

0 голосов
/ 19 февраля 2019

Да, Совет Патрика работает ( Совет Слотропа , который я не проверял).Я только что настроил initialVersion = false.

Map<String, String> map = new HashMap<String, String>() {
    {
        put(QNAME_VERSION_LABEL, INITIAL_UPLOADED_VERSION); // 1.1
        put(QNAME_AUTO_VERSION, false);
        put(QNAME_INITIAL_VERSION, false);
    }
};

nodeService.addAspect(nodeRef, QNAME_ASPECT_CM_VERSIONABLE, map);

Теперь все в порядке.

enter image description here

Благодарю @Gagravarr за помощь.

...