[ 
http://issues.apache.org/jira/browse/JCR-184?page=comments#action_12322984 ] 

Brian Moseley commented on JCR-184:
-----------------------------------

hm. i just looked at doing this myself, and it wasn't as straightforward as i 
originally envisioned, since in a lot of places the resource locator is used to 
fetch items directly from the repository session.

let me step back from the earlier proposal and just say this: i need to be able 
to create a webdav collection that contains the "'" character in its name. i'm 
not sure of the best way to go about this, other than that it seems reasonable 
to url-escape characters that are illegal in jcr names. it's a moderate 
priority feature for me, so it would be great if somebody could comment on the 
issue.

thanks!


> rework resource name and display name handling in jcr-server
> ------------------------------------------------------------
>
>          Key: JCR-184
>          URL: http://issues.apache.org/jira/browse/JCR-184
>      Project: Jackrabbit
>         Type: Improvement
>     Reporter: Brian Moseley
>     Assignee: angela
>     Priority: Minor

>
> jcr-server is a bit problematic in the way it treats the display name of a 
> webdav resource. specifically it forces the display name to be the same as 
> the name of the resource itself, rather than an arbitrary textual description 
> of the resource. this is an acceptable default value for a resource's display 
> name, but a webdav client should be able to change the display name at any 
> point after creation of the resource.
> rfc 2518 says:
> 13.2 displayname Property
>    Name:       displayname
>    Namespace:  DAV:
>    Purpose:    Provides a name for the resource that is suitable for
>    presentation to a user.
>    Description: The displayname property should be defined on all DAV
>    compliant resources.  If present, the property contains a description
>    of the resource that is suitable for presentation to a user.
>    <!ELEMENT displayname (#PCDATA) >
> i realize that the goal of the simple webdav server is to support 
> nt:collection and nt:file, which don't allow extra properties. that's fine; i 
> have defined my own dav:collection and dav:resource node types on which i can 
> add a dav:displayname property. i can then override 
> DavResourceImpl.getDisplayName() to return the value of that property.
> the problem is that DavResourceImpl.getDisplayName() as already implemented 
> has a couple of other purposes - calculating the resource name for a node 
> that is about to be created and returning the resource name from an existing 
> node.
> furthermore, both resource and display names could potentially contain 
> characters that are illegal in jcr names. we've talked in the past about 
> encoding these strings in order to use them as jcr names. this encoding would 
> be necessary for the resource name (which is used as the node's name) but not 
> for the display name (which would be persisted as a property value).
> i propose the following DavResourceImpl methods:
>   getResourceName() - returns the (unencoded) name of the resource, which is 
> either the name of the resource's node (if the resource exists) or the final 
> segment of the resource's uri path
>   getDisplayName() - returns the value of the resource's DAV:displayname 
> property (if both the resource and property exist) or the string returned 
> from getResourceName
> DavResourceImpl could simply always `return getResourceName()' as its 
> implementation of getDisplayName(). subclasses would be free to override it 
> to retrieve the display name from a jcr property.
> DavResourceImpl would also take care of encoding the resource name before 
> creating the new node and decoding the resource name before returning it from 
> getResourceName().
> thoughts?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to