Объяснение и примеры использования рабочей области JCR для людей - PullRequest
3 голосов
/ 23 июня 2011

Может ли кто-нибудь истолковать спецификацию JCR 2.0 в отношении рабочих пространств JCR?

Я понимаю, что сеанс всегда связан только с одним постоянным рабочим пространством, хотя одно постоянное рабочее пространство может быть связано с несколькими сеансами.

Что, вероятно, относится к управлению версиями и транзакциям, хотя я не знаю почему.

Некоторые наблюдения:

  • ссылки возможны только между узлами одного рабочего пространства
  • выполнение запроса всегда будет направлено на одно рабочее пространство

Рабочие пространства, по-видимому, связаны с узлами, представляющими один и тот же контент (тот же UUID), в:

  • разные версии "чего-то", проект может быть?
  • другая фаза рабочего процесса

И не должен использоваться для ACL.

Также в JackRabbit в каждом рабочем пространстве есть свой менеджер сохраняемости. Принимая во внимание, что ModeShape имеет разъем для источника - независимо от рабочей области.

1 Ответ

6 голосов
/ 23 июня 2011

Модель Дэвида (http://wiki.apache.org/jackrabbit/DavidsModel) Правило № 3 рекомендует использовать рабочие пространства, только если вам нужны clone (), merge () или update ().Для подавляющего большинства приложений JCR это означает отсутствие использования рабочих пространств.Помещение вещей по разным путям, установка для них определенных значений свойств или типов узлов смешивания и использование версий JCR включает в себя упомянутые вами случаи использования версий и рабочих процессов.

Например, для управления заданиями на печать вы можете просто переместить их между папками JCR с именами «новая», «в процессе», «отклонено» и «выполнено».Вот как это делается в некоторых версиях Unix, используя папки файловой системы.JCR позволяет вам делать то же самое, в то же время извлекая выгоду из его функций «файловая система на стероидах», чтобы сделать вещи простыми, прозрачными и эффективными.

Обратите внимание также на правило Дэвида № 5: ссылки вредны - мы (Разработчики Apache Sling и Day / Adobe CQ / CRX, как правило, вместо этого используют просто пути, как более свободные и более гибкие ссылки.

И, как вы упомянули запросы: мы также используем очень мало таких - навигация в дереве JCRгораздо эффективнее, если структура пути вашей модели содержимого имеет смысл для наиболее распространенных случаев использования.

...