[
https://issues.apache.org/jira/browse/JCR-2714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jukka Zitting updated JCR-2714:
-------------------------------
Attachment: JCR-2714-2.patch
The attached patch (JCR-2714-2.patch) is a somewhat modified version of
Michael's solution. I figured that it's not really necessary to involve the
SessionState in this (even though I originally pointed Michael in that
direction), as we can use normal synchronization to ensure that the effect of
relaxed checks only affect a single thread. This patch encapsulates this
functionality inside ItemValidator and avoids the public enabledChecks access
methods.
> Selective disabling of checks in ItemValidator
> ----------------------------------------------
>
> Key: JCR-2714
> URL: https://issues.apache.org/jira/browse/JCR-2714
> Project: Jackrabbit Content Repository
> Issue Type: Improvement
> Components: jackrabbit-core
> Affects Versions: 2.2.0
> Reporter: Michael Dürig
> Assignee: Michael Dürig
> Attachments: JCR-2714-2.patch, JCR-2714.patch
>
>
> I would like to be able to selectively disable checks in ItemValidator in the
> scope of an operation performed through methods of the SessionState class.
> Doing so would provide simple means for internally modifying (for example)
> protected items. Currently such modifications must be done 'manually' on the
> item state level. This approach is very error prone and not very DRY.
> With my upcoming patch in place, setting a protected property would look like
> this:
> final Node parent = ...
> final Value value = ...
> SessionState sessionState = sessionContext.getSessionState();
> Property property = sessionState.performUnchecked(new
> SessionOperation<Property>() {
> public Property perform(SessionContext context) throws
> RepositoryException {
> return parent.setProperty("foo", value);
> }
> }, ItemValidator.CHECK_CONSTRAINTS);
> That is, users need to have access to the session context in order to disable
> checks which makes this only usable from inside Jackrabbit.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.