Невозможно повторно зарегистрировать пользовательский NodeTypes, если он имеет какое-либо обязательное обновление (удаление) свойства nodetype в apache Jackrabbit 2.17.5

Начало: допустим, у меня есть несколько настраиваемых типов узлов, как показано ниже.

    <test = 'http://abcd.com/test'>
    <nt='http://www.jcp.org/jcr/nt/1.0'>
    <mix='http://www.jcp.org/jcr/mix/1.0'>

    [test:base] > nt:base
    - name (string) mandatory version
    - data (long) mandatory version
    - category (string) version multiple
    - version (string) version

    [test:file] > nt:file
    - filename (string) mandatory

    [test:template] > test:base
    + * (test:file) version

After that I changed the above custom properties as :

    <test = 'http://abcd.com/test'>
    <nt='http://www.jcp.org/jcr/nt/1.0'>
    <mix='http://www.jcp.org/jcr/mix/1.0'>

    [test:base] > nt:base
    - name (string) mandatory version
    - category (string) version multiple
    - version (string) version

    [test:file] > nt:file
    - filename (string) mandatory

    [test:template] > test:base
    + * (test:file) version

Здесь я удалил свойство «данные» и пытаюсь повторно зарегистрироваться, используя CndImporter.registerNodeTypes (...);

Теперь, когда я снова пытаюсь зарегистрировать типы узлов, я получаю сообщение об ошибке:

Caused by: javax.jcr.RepositoryException: The following node type change contains non-trivial changes.Up until now only trivial changes are supported. (see javadoc for org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefDiff):
org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefDiff[
    nodeTypeName = {http://abcd.com/test}base,
    mixinFlagDiff=NONE,
    supertypesDiff=NONE,
    propertyDifferences=[
        org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefDiff$PropDefDiff[itemName = {}version, type=TRIVIAL, operation=MODIFIED],
        org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefDiff$PropDefDiff[itemName = {}data, type=MAJOR, operation=REMOVED],
        org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefDiff$PropDefDiff[itemName = {}name, type=TRIVIAL, operation=MODIFIED],
        org.apache.jackrabbit.spi.commons.nodetype.NodeTypeDefDiff$PropDefDiff[itemName = {}category, type=TRIVIAL, operation=MODIFIED]
    ],
    childNodeDifferences=[
    ]
]

    at org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.checkForConflictingContent(NodeTypeRegistry.java:947)
    at org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.reregisterNodeType(NodeTypeRegistry.java:435)
    at org.apache.jackrabbit.core.nodetype.NodeTypeRegistry.reregisterNodeType(NodeTypeRegistry.java:384)
    at org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.registerNodeTypes(NodeTypeManagerImpl.java:596)
    at org.apache.jackrabbit.commons.cnd.CndImporter.registerNodeTypes(CndImporter.java:162)
    at org.apache.jackrabbit.commons.cnd.CndImporter.registerNodeTypes(CndImporter.java:110)
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
280
1

Ответы 1

Да, это задумано. Удаление определения свойства может привести к тому, что содержимое вашего репо станет недействительным.

Что может сработать, так это изменение определения свойства на необязательное.

Вы имеете в виду изменение обязательного поля "данные" на необязательное. А также мой вариант использования: я не хочу, чтобы это свойство относилось к моему типу узла.

developer 31.10.2018 14:06

Другие вопросы по теме