[ 
https://issues.apache.org/jira/browse/JCR-388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513525
 ] 

angela commented on JCR-388:
----------------------------

so... had a look at the changes and i found the following things. i already 
started modifying the patch a bit, so there is no need for a new one. just for 
the record:

- DeltaVResourceImpl: compliance class should from my point of view also 
mention the Label feature
- VersionableResourceImpl: the supported method set lists MERGE, UPDATE 
although the implementation is
  missing
- VersionableResourceImpl: the DAV:predecessor-set property is missing 
- if upon retrieving version-history and version the returned resource does not 
implement the proper interface
  i would rather throw than returning null.
- DavResourceFactoryImpl: since the simple server should work on top of any JCR 
repository i added a check
  if versioning is supported by the repository and act accordingly.

all new resources extending from DavResourceImpl:
- the DavResourceImpl checks if the properties have been initialized before. 
this check is missing.

Since the time jeremi originally copied code from the jcr-server the simple 
server has been modified (see JCR-416): no exporting custom properties is 
delegated to the PropertyHandler. However, from my point of view
it doesn't make sense to additionally export all the specific properties 
defined by nt:version and nt:versionhistory
and mix:versionable. most of them are already covered by predefined DAV 
properties. Therefore:

- VersionHandler should implements its own exportProperties method.
- perhaps it makes sense to define a VersionHistoryHandler. otherwise they 
would be exported/imported by
  the DefaultHandler which probably doesn't make to much sense.
- the DefaultHandler should skip the version specific properties.

in addition:
- the VersionHandler assumes that the nt:frozenNode contains a jcr:content 
node. That might be the case
  if nt:file nodes are put under version control. But since there might be 
other versionable nodes in the repository
  the handler should at least check if the jcr:content node exists.

so far my changes. i would like to test them (and maybe find others), then 
provide another patch, so you can 
also verify that the changes still fit your needs before they get commited.

one thing i didn't have time to look at (maybe rob or ed?):
the DavResourceImpl uses the configuration to determine which items should be 
filtered out and should
not appear in the webdav-view to the repository. by default the 'jcr' prefix is 
filtered. i wondered whether this could cause inconsistencies with the planned 
changes.

finally, there is yet another thing that has not been taken into consideration 
by none of the patches so
far (and for which i don't have a quick solution at hand):

RFC 3253 defines a separate behaviour for version-controlled collections. 
However the current approach 
does not take into account whether a resource represents a collection or not. 
As soon as the corresponding
repository node is of type mix:versionable the resource is exposed to be 
versionable as well. If we want
to make the simple server to be compliant to RFC 3253 this should be addressed. 

i wouldn't mind if this would be done in a second step, but we should take a 
look at it.

regards
angela

> add support for RFC 3253 to the simple server
> ---------------------------------------------
>
>                 Key: JCR-388
>                 URL: https://issues.apache.org/jira/browse/JCR-388
>             Project: Jackrabbit
>          Issue Type: New Feature
>          Components: webdav
>    Affects Versions: 0.9
>            Reporter: jeremi Joslin
>            Assignee: angela
>            Priority: Minor
>         Attachments: patch_16JUL07.txt, patch_16JUL07.zip, patch_rfc3253.zip, 
> Review.txt, rfc.zip
>
>
> http://www.ietf.org/rfc/rfc3253.txt

-- 
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