jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig <mdue...@apache.org>
Subject Re: Different types of 'item modification' on oak-jcr (and oak-api)
Date Thu, 12 Apr 2012 14:03:51 GMT

On 12.4.12 13:13, Angela Schreiber wrote:
> well, i still don't see how/where you plan to implement
> the notion of transient modification.
> in other words to make it clear (in case it isn't):
> how do i change protected items in oak-jcr such that the items
> are marked modified and the session has pending transient changes?
> and such that i don't have to use the JCR API methods, which in
> this case from my understanding are 'invalid'?
> so, how do we make sure that
> Session#hasPendingChanges
> Item#isNew
> Item#isModified
> never return true in case the workspace operation fails on the oak
> api for constraint or access violation and on the other hand
> assert that all kind of transient modifications really trigger
> the flags to be set?
> i couldn't follow you here since those methods are not implemented.

That's because this is not read yet. There is no specific plan. We need 
to come up with a way to implement this. That's all.

> let's first define how to distinguish transient modifications.
> i think that is the special case here from a oak-api perspective.


>> I think the next steps should be:
>> 1. Validate my claim from above re. workspace operations
> what was your claim? can't follow you here.

That workspace ops can be implemented using my changes from rev. 
1325159. This is done by now. See OAK-63.

>> 2. Come up with a way to do "special modifications" following the
>> general direction sketched by NodeStateEditor et. all. This might
>> require adding higher level abstractions to the oak API and/or oak-jcr
>> and might also require changes/tweaks to the current state of affairs.
> well, your approach of having a separate editor for workspace
> operations already goes into the direction of separating
> different change-sets. that was one thing i was wondering about.

Currently I use one editor for the session which represents all 
transient changes done through JCR. For modifications which need to be 
dispatched immediately one can obtain a separate editor from the 
connection. Much like I do for Workspace.copy and Workspace.move.

> IMO we we can basically use the same behavior for registering a
> node type and an namespace or a privilege under /jcr:system/something...
> (the latter was actually what brought up my
> questions). oak-core was in any case in charge of validating the
> changes individually and detecting the distinction between
> a change to the node type registry or just a workspace. so,
> maybe we can use the same mechanism.

Yes I think that should work.

AFAICT the remaining questions are all about handling of "special items" 
taking into account modification state of items and session, visibility 
and editability of such items, dispatching (i.e. on session save or 
immediate) of such items, ...


> what do you think?
> angela
>> 3. In the process come up with better names.
>> Michael
>>> kind regards
>>> angela
>>>> Michael
>>>>> kind regards
>>>>> angela

View raw message