[ 
https://issues.apache.org/jira/browse/JCR-2233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12736602#action_12736602
 ] 

Alexander Klimetschek commented on JCR-2233:
--------------------------------------------

> regarding a)
> no, the jcr:created was defined protected before and should stay this way.

Ok, but it was only defined protected for nt:file and nt:version. I am only 
talking about the mix:created mixin and only nt:file inherits from it (nt:file 
-> nt:hierarchyNode -> mix:created). Couldn't we make mix:created non-protected 
and override the jcr:created property definition in nt:file to be protected to 
ensure backwards compatibility? Looks ugly, but enhances compatibility and 
consistency (if we do c below).

> session or workspace imports already respect this and (re)set the values 
> correctly. 

According to JCR-2195 protected properties are currently skipped completely. 
And I was also thinking of custom "imports" that use the normal Node/Property 
write methods.

> regarding c) 
> as a simple implementation, i suggest to update the jcr:lastModified(By) 
> properties if a significant
> modification is performed on the node (but not it's sub tree) and the 
> property was not modified transiently.

Subtree modification handling would be cool, but it would require a traversal 
up to the root node on each node/property add/remove/modify to find parents 
with a mix:lastModified mixin. This wouldn't be difficult, but could slow down 
things (!?).

> it is to define what is considered as a significant modification. 
> most probably: 
>- add/remove child node (includes move/copy underneath) 
>- add/remove/update properties

ack

> - add/remove mixins, change primary type 

not sure... it's a change of the "schema", not the content

> most probably not: 
>- versioning operations 
>- locking operations 
>- move (the node itself) 
>- copy (the node itself) 

ack

> JSR-283: mix:created/mix:lastModified - auto-set but allow modification for 
> imports
> -----------------------------------------------------------------------------------
>
>                 Key: JCR-2233
>                 URL: https://issues.apache.org/jira/browse/JCR-2233
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core, JCR 2.0
>            Reporter: Alexander Klimetschek
>            Priority: Minor
>             Fix For: 2.0.0
>
>
> Following the discussion in JCR-2116, I propose it would be a good idea to 
> have jcr:created, jcr:createdBy (from mix:created) and jcr:lastModified, 
> jcr:lastModifiedBy (mix:lastModified) not protected, but still automatically 
> set those properties in case they were not modified by the client.
> Three advantages:
> a) This allows for importing content with these properties, where eg. the 
> jcr:created should point to the original creation date of the content, not 
> when it was imported.
> b) Same for jcr:lastModified, which often must be set manually for ensuring 
> correct behaviour when doing synchronizations etc.
> c) In order to take advantage of the automatically-set behaviour mentioned in 
> the spec, it would be nice if the repository would set them in the case the 
> client is not writing those properties. This way you can ensure the 
> properties are correctly set when you cannot control all client-code 
> modifying the content (eg. webdav).
> Question: would this be in line with the spec? I would say, yes, since we say 
> we don't implement "protected", which is allowed, but add a hybrid approach 
> (which is not explicitly forbidden, IIUC).
> For the reference, here is the definition from the latest JSR-283 doc:
> [mix:lastModified] mixin 
>   - jcr:lastModified (DATE) autocreated protected? OPV? 
>   - jcr:lastModifiedBy (STRING) autocreated protected? OPV? 
> [mix:created] mixin 
>   - jcr:created (DATE) autocreated protected? OPV? 
>   - jcr:createdBy (STRING) autocreated protected? OPV? 
> And here is the current cnd definition in JR 2.0:
> http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/nodetype/builtin_nodetypes.cnd?view=co

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to