You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by "Jukka Zitting (JIRA)" <ji...@apache.org> on 2012/07/05 14:29:34 UTC
[jira] [Created] (OAK-168) Basic JCR VersionManager support
Jukka Zitting created OAK-168:
---------------------------------
Summary: Basic JCR VersionManager support
Key: OAK-168
URL: https://issues.apache.org/jira/browse/OAK-168
Project: Jackrabbit Oak
Issue Type: Bug
Components: jcr
Reporter: Jukka Zitting
Versioning is a highly useful feature for many applications, so we definitely should support that in Oak.
We could start by adding a basic JCR VersionManager implementation that simply implements checkin operations by copying content from a node to the respective version history under {{/jcr:system/jcr:versionStorage}}.
The next step would then be figuring out whether we want to expose such an operation directly in the Oak API, or if a separate versioning plugin and an associated validator for changes in the {{/jcr:system/jcr:versionStorage}} subtree works better.
Based on that we can then proceed to implement more of the JCR versioning features.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-168) Basic JCR VersionManager support
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13407045#comment-13407045 ]
Jukka Zitting commented on OAK-168:
-----------------------------------
Note that a versioning implementation should also take the somewhat unique access control implications of versioning into account. For example, is access to a version history controlled separately, or does it follow the access controls of the latest checked out version? What about a version history with no checked out version?
> Basic JCR VersionManager support
> --------------------------------
>
> Key: OAK-168
> URL: https://issues.apache.org/jira/browse/OAK-168
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: jcr
> Reporter: Jukka Zitting
>
> Versioning is a highly useful feature for many applications, so we definitely should support that in Oak.
> We could start by adding a basic JCR VersionManager implementation that simply implements checkin operations by copying content from a node to the respective version history under {{/jcr:system/jcr:versionStorage}}.
> The next step would then be figuring out whether we want to expose such an operation directly in the Oak API, or if a separate versioning plugin and an associated validator for changes in the {{/jcr:system/jcr:versionStorage}} subtree works better.
> Based on that we can then proceed to implement more of the JCR versioning features.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-168) Basic JCR VersionManager support
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13427425#comment-13427425 ]
Jukka Zitting commented on OAK-168:
-----------------------------------
In revision 1368588 I added a dummy {{VersionManager}} implementation that for now just throws exceptions unless instructed otherwise with {{-Dtodo=log}} or {{-Dtodo=none}}.
> Basic JCR VersionManager support
> --------------------------------
>
> Key: OAK-168
> URL: https://issues.apache.org/jira/browse/OAK-168
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: jcr
> Reporter: Jukka Zitting
>
> Versioning is a highly useful feature for many applications, so we definitely should support that in Oak.
> We could start by adding a basic JCR VersionManager implementation that simply implements checkin operations by copying content from a node to the respective version history under {{/jcr:system/jcr:versionStorage}}.
> The next step would then be figuring out whether we want to expose such an operation directly in the Oak API, or if a separate versioning plugin and an associated validator for changes in the {{/jcr:system/jcr:versionStorage}} subtree works better.
> Based on that we can then proceed to implement more of the JCR versioning features.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (OAK-168) Basic JCR VersionManager support
Posted by "Julian Sedding (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OAK-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13407121#comment-13407121 ]
Julian Sedding commented on OAK-168:
------------------------------------
An alternative approach to implement versioning could be to "tag" a revision in the MicroKernel (like a Git tag). A tagged revision may not be garbage collected.
In order to expose the {{/jcr:system/jcr:versionStorage}} only the tag, and information about which node is being versioned, need to be persisted. Based on this information, it should then be possible to construct a suitable {{/jcr:system/jcr:versionStorage}} view in oak-jcr.
Having support for tagging in oak/mk, i.e. providing the possibility for taking snapshots of the entire content tree at a relatively low cost, opens up a range of possibilities. E.g. viewing the entire content tree as it was on 5th July 2012, but also e.g. hot-backups, which could discard any information that was written after s tagged state, and thus guarantee consistency.
In my ideal world, a versioning mechanism that versions the entire repository, would even find its way into the JCR spec.
> Basic JCR VersionManager support
> --------------------------------
>
> Key: OAK-168
> URL: https://issues.apache.org/jira/browse/OAK-168
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: jcr
> Reporter: Jukka Zitting
>
> Versioning is a highly useful feature for many applications, so we definitely should support that in Oak.
> We could start by adding a basic JCR VersionManager implementation that simply implements checkin operations by copying content from a node to the respective version history under {{/jcr:system/jcr:versionStorage}}.
> The next step would then be figuring out whether we want to expose such an operation directly in the Oak API, or if a separate versioning plugin and an associated validator for changes in the {{/jcr:system/jcr:versionStorage}} subtree works better.
> Based on that we can then proceed to implement more of the JCR versioning features.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira