You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2010/02/23 18:31:04 UTC

svn commit: r915449 - in /jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav: jcr/AbstractResource.java jcr/DefaultItemCollection.java simple/DeltaVResourceImpl.java

Author: angela
Date: Tue Feb 23 17:31:04 2010
New Revision: 915449

URL: http://svn.apache.org/viewvc?rev=915449&view=rev
Log:
JCR-2510: AbstractResource: Use jcr:createdBy to expose DAV:creator-displayname

Modified:
    jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java
    jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java
    jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/DeltaVResourceImpl.java

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java?rev=915449&r1=915448&r2=915449&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java Tue Feb 23 17:31:04 2010
@@ -571,8 +571,9 @@
 
         // DeltaV properties
         properties.add(supportedReports);
-        // creator-displayname, comment: not value available from jcr
+        // DAV:creator-displayname default value : not available
         properties.add(new DefaultDavProperty<String>(DeltaVConstants.CREATOR_DISPLAYNAME, null, true));
+        // DAV:comment not value available from jcr
         properties.add(new DefaultDavProperty<String>(DeltaVConstants.COMMENT, null, true));
 
         // 'workspace' property as defined by RFC 3253

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java?rev=915449&r1=915448&r2=915449&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java Tue Feb 23 17:31:04 2010
@@ -61,6 +61,7 @@
 import org.apache.jackrabbit.webdav.DavResourceLocator;
 import org.apache.jackrabbit.webdav.DavServletResponse;
 import org.apache.jackrabbit.webdav.MultiStatusResponse;
+import org.apache.jackrabbit.webdav.version.DeltaVConstants;
 import org.apache.jackrabbit.webdav.util.HttpDateFormat;
 import org.apache.jackrabbit.webdav.io.InputContext;
 import org.apache.jackrabbit.webdav.io.OutputContext;
@@ -886,15 +887,20 @@
             // resource is serialized as system-view (xml)
             properties.add(new DefaultDavProperty<String>(DavPropertyName.GETCONTENTTYPE, "text/xml"));
             Node n = (Node)item;
-            // overwrite the default creation date if possible
+            // overwrite the default creation date and creator-displayname if possible
             try {
                 if (n.hasProperty(JcrConstants.JCR_CREATED)) {
                     long creationTime = n.getProperty(JcrConstants.JCR_CREATED).getValue().getLong();
                     properties.add(new DefaultDavProperty<String>(DavPropertyName.CREATIONDATE,
                         HttpDateFormat.creationDateFormat().format(new Date(creationTime))));
                 }
+                // DAV:creator-displayname -> use jcr:createBy if present.
+                if (n.hasProperty(Property.JCR_CREATED_BY)) {
+                    String createdBy = n.getProperty(Property.JCR_CREATED_BY).getString();
+                    properties.add(new DefaultDavProperty<String>(DeltaVConstants.CREATOR_DISPLAYNAME, createdBy, true));
+                }
             } catch (RepositoryException e) {
-                log.warn("Error while accessing jcr:created property");
+                log.warn("Error while accessing jcr:created or jcr:createdBy property");
             }
 
             // add node-specific resource properties

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/DeltaVResourceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/DeltaVResourceImpl.java?rev=915449&r1=915448&r2=915449&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/DeltaVResourceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/DeltaVResourceImpl.java Tue Feb 23 17:31:04 2010
@@ -21,6 +21,9 @@
 import javax.jcr.Item;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
+import javax.jcr.Property;
+import javax.jcr.PathNotFoundException;
+import javax.jcr.ValueFormatException;
 
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.webdav.DavCompliance;
@@ -34,6 +37,7 @@
 import org.apache.jackrabbit.webdav.property.DavProperty;
 import org.apache.jackrabbit.webdav.property.DavPropertyName;
 import org.apache.jackrabbit.webdav.property.HrefProperty;
+import org.apache.jackrabbit.webdav.property.DefaultDavProperty;
 import org.apache.jackrabbit.webdav.version.DeltaVConstants;
 import org.apache.jackrabbit.webdav.version.DeltaVResource;
 import org.apache.jackrabbit.webdav.version.OptionsInfo;
@@ -247,6 +251,17 @@
             super.initProperties();
             if (exists()) {
                 properties.add(supportedReports);
+
+                // DAV:creator-displayname -> use jcr:createBy if present.
+                Node n = getNode();
+                try {
+                    if (n.hasProperty(Property.JCR_CREATED_BY)) {
+                        String createdBy = n.getProperty(Property.JCR_CREATED_BY).getString();
+                        properties.add(new DefaultDavProperty<String>(DeltaVConstants.CREATOR_DISPLAYNAME, createdBy, true));
+                    }
+                } catch (RepositoryException e) {
+                    log.debug("Error while accessing jcr:createdBy property");
+                }
             }
         }
     }