lis*_*sak 3 workspace jackrabbit jcr modeshape
可以请任何人解释有关JCR工作空间的JCR 2.0规范吗?
我知道会话总是绑定到一个持久工作空间,尽管单个持久工作空间可能绑定到多个会话.
这可能与版本控制和交易有关,但我不知道为什么.
一些观察:
工作区似乎是关于表示相同内容(相同UUID)的节点,在:
并且不应该用于ACL.
同样在JackRabbit中,每个工作区都有其持久性管理器.而ModeShape有一个源连接器 - 独立于工作空间.
David的模型(http://wiki.apache.org/jackrabbit/DavidsModel)规则#3建议仅在需要clone(),merge()或update()时使用工作空间.对于绝大多数JCR应用程序,这意味着不使用工作空间.将事物放在不同的路径上,在它们上设置特定的属性值或mixin节点类型并使用JCR的版本控制涵盖了您提到的版本控制和工作流用例.
例如,要管理打印作业,您只需在名为"new","in-progress","rejected"和"done"的JCR文件夹之间移动它们.这是在一些unix版本中使用文件系统文件夹完成的.JCR允许您执行相同操作,同时受益于其"类固醇文件系统"功能,从而使事情变得非常简单,透明和高效.
另请注意David的规则#5:引用是有害的 - 我们(Apache Sling和Day/Adobe CQ/CRX开发人员)倾向于仅使用路径,作为更宽松和更灵活的引用.
当你提到查询时:我们也只使用很少的查询 - 如果你的内容模型的路径结构对最常见的用例有意义,那么在JCR树中导航会更有效.
| 归档时间: |
|
| 查看次数: |
3214 次 |
| 最近记录: |