jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From resc...@apache.org
Subject svn commit: r702428 - in /jackrabbit/trunk/jackrabbit-webdav/src: main/java/org/apache/jackrabbit/webdav/ main/java/org/apache/jackrabbit/webdav/client/methods/ test/java/org/apache/jackrabbit/webdav/server/
Date Tue, 07 Oct 2008 10:31:22 GMT
Author: reschke
Date: Tue Oct  7 03:31:18 2008
New Revision: 702428

URL: http://svn.apache.org/viewvc?rev=702428&view=rev
Log:
JCR-1769: add support for PROPFIND type allprop/include (see RFC4918), includes updates to
client method impl and test case

Added:
    jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java
  (with props)
Modified:
    jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavConstants.java
    jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavServletRequest.java
    jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/MultiStatusResponse.java
    jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java
    jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/PropFindMethod.java
    jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/WebdavServerTests.java

Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavConstants.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavConstants.java?rev=702428&r1=702427&r2=702428&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavConstants.java
(original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavConstants.java
Tue Oct  7 03:31:18 2008
@@ -71,6 +71,7 @@
     public static final String XML_COLLECTION = "collection";
     public static final String XML_DST = "dst";
     public static final String XML_HREF = "href";
+    public static final String XML_INCLUDE = "include";
     public static final String XML_KEEPALIVE = "keepalive";
     public static final String XML_LINK = "link";
     public static final String XML_MULTISTATUS = "multistatus";
@@ -126,6 +127,7 @@
     public static final int PROPFIND_BY_PROPERTY = 0;
     public static final int PROPFIND_ALL_PROP = 1;
     public static final int PROPFIND_PROPERTY_NAMES = 2;
+    public static final int PROPFIND_ALL_PROP_INCLUDE = 3; // RFC 4918, Section 9.1
 
     //----------------------------------------------< Date Format Constants >---
     /**

Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavServletRequest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavServletRequest.java?rev=702428&r1=702427&r2=702428&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavServletRequest.java
(original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/DavServletRequest.java
Tue Oct  7 03:31:18 2008
@@ -136,6 +136,7 @@
      * @see DavConstants#PROPFIND_ALL_PROP
      * @see DavConstants#PROPFIND_BY_PROPERTY
      * @see DavConstants#PROPFIND_PROPERTY_NAMES
+     * @see DavConstants#PROPFIND_ALL_PROP_INCLUDE
      * @throws DavException If the propfind type could not be determined due to
      * an invalid request body.
      */

Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/MultiStatusResponse.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/MultiStatusResponse.java?rev=702428&r1=702427&r2=702428&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/MultiStatusResponse.java
(original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/MultiStatusResponse.java
Tue Oct  7 03:31:18 2008
@@ -158,7 +158,7 @@
      * body.
      * @param propFindType any of the following values: {@link
      * #PROPFIND_ALL_PROP}, {@link #PROPFIND_BY_PROPERTY}, {@link
-     * #PROPFIND_PROPERTY_NAMES}
+     * #PROPFIND_PROPERTY_NAMES}, {@link #PROPFIND_ALL_PROP_INCLUDE}
      */
     public MultiStatusResponse(DavResource resource, DavPropertyNameSet propNameSet,
                                int propFindType) {
@@ -176,11 +176,16 @@
             PropContainer status200 = getPropContainer(DavServletResponse.SC_OK, false);
             // clone set of property, since several resources could use this again
             propNameSet = new DavPropertyNameSet(propNameSet);
-            // Add requested properties or all non-protected properties
+            // Add requested properties or all non-protected properties, or 
+            // non-protected properties plus requested properties (allprop/include) 
             DavPropertyIterator iter = resource.getProperties().iterator();
             while (iter.hasNext()) {
                 DavProperty property = iter.nextProperty();
-                if ((propFindType == PROPFIND_ALL_PROP && !property.isProtected())
|| propNameSet.remove(property.getName())) {
+                boolean allDeadPlusRfc4918LiveProperties =
+                    propFindType == PROPFIND_ALL_PROP || propFindType == PROPFIND_ALL_PROP_INCLUDE;
+                boolean wasRequested = propNameSet.remove(property.getName());
+                
+                if ((allDeadPlusRfc4918LiveProperties && !property.isProtected())
|| wasRequested) {
                     status200.addContent(property);
                 }
             }

Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java?rev=702428&r1=702427&r2=702428&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java
(original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavRequestImpl.java
Tue Oct  7 03:31:18 2008
@@ -16,13 +16,39 @@
  */
 package org.apache.jackrabbit.webdav;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.jackrabbit.webdav.bind.BindInfo;
+import org.apache.jackrabbit.webdav.bind.RebindInfo;
+import org.apache.jackrabbit.webdav.bind.UnbindInfo;
 import org.apache.jackrabbit.webdav.header.CodedUrlHeader;
 import org.apache.jackrabbit.webdav.header.DepthHeader;
 import org.apache.jackrabbit.webdav.header.IfHeader;
 import org.apache.jackrabbit.webdav.header.LabelHeader;
 import org.apache.jackrabbit.webdav.header.OverwriteHeader;
-import org.apache.jackrabbit.webdav.header.TimeoutHeader;
 import org.apache.jackrabbit.webdav.header.PollTimeoutHeader;
+import org.apache.jackrabbit.webdav.header.TimeoutHeader;
 import org.apache.jackrabbit.webdav.lock.LockInfo;
 import org.apache.jackrabbit.webdav.lock.Scope;
 import org.apache.jackrabbit.webdav.lock.Type;
@@ -45,37 +71,12 @@
 import org.apache.jackrabbit.webdav.version.report.ReportInfo;
 import org.apache.jackrabbit.webdav.xml.DomUtil;
 import org.apache.jackrabbit.webdav.xml.ElementIterator;
-import org.apache.jackrabbit.webdav.bind.RebindInfo;
-import org.apache.jackrabbit.webdav.bind.UnbindInfo;
-import org.apache.jackrabbit.webdav.bind.BindInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.xml.sax.SAXException;
 
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.security.Principal;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * <code>WebdavRequestImpl</code>...
  */
@@ -367,26 +368,58 @@
         // propfind httpRequest with invalid body
         Element root = requestDocument.getDocumentElement();
         if (!XML_PROPFIND.equals(root.getLocalName())) {
-            log.info("PropFind-Request has no <profind> tag.");
-            throw new DavException(DavServletResponse.SC_BAD_REQUEST, "PropFind-Request has
no <profind> tag.");
+            log.info("PropFind-Request has no <propfind> tag.");
+            throw new DavException(DavServletResponse.SC_BAD_REQUEST, "PropFind-Request has
no <propfind> tag.");
         }
+        
+        DavPropertyNameSet include = null;
 
         ElementIterator it = DomUtil.getChildren(root);
+        int propfindTypeFound = 0;
+        
         while (it.hasNext()) {
             Element child = it.nextElement();
             String nodeName = child.getLocalName();
-            if (XML_PROP.equals(nodeName)) {
-                propfindType = PROPFIND_BY_PROPERTY;
-                propfindProps = new DavPropertyNameSet(child);
-                break;
-            } else if (XML_PROPNAME.equals(nodeName)) {
-                propfindType = PROPFIND_PROPERTY_NAMES;
-                break;
-            } else if (XML_ALLPROP.equals(nodeName)) {
-                propfindType = PROPFIND_ALL_PROP;
-                break;
+            if (NAMESPACE.getURI().equals(child.getNamespaceURI())) {
+                if (XML_PROP.equals(nodeName)) {
+                    propfindType = PROPFIND_BY_PROPERTY;
+                    propfindProps = new DavPropertyNameSet(child);
+                    propfindTypeFound += 1;
+                }
+                else if (XML_PROPNAME.equals(nodeName)) {
+                    propfindType = PROPFIND_PROPERTY_NAMES;
+                    propfindTypeFound += 1;
+                }
+                else if (XML_ALLPROP.equals(nodeName)) {
+                    propfindType = PROPFIND_ALL_PROP;
+                    propfindTypeFound += 1;
+                }
+                else if (XML_INCLUDE.equals(nodeName)) {
+                    include = new DavPropertyNameSet();
+                    ElementIterator pit = DomUtil.getChildren(child);
+                    while (pit.hasNext()) {
+                        include.add(DavPropertyName.createFromXml(pit.nextElement()));
+                    }
+                }
             }
         }
+        
+        if (propfindTypeFound > 1) {
+            log.info("Multiple top-level propfind instructions");
+            throw new DavException(DavServletResponse.SC_BAD_REQUEST, "Multiple top-level
propfind instructions");
+        }
+        
+        if (include != null) {
+            if (propfindType == PROPFIND_ALL_PROP) {
+                // special case: allprop with include extension
+                propfindType = PROPFIND_ALL_PROP_INCLUDE;
+                propfindProps = include;
+            }
+            else {
+                throw new DavException(DavServletResponse.SC_BAD_REQUEST, "<include>
goes only with <allprop>");
+                
+            }
+        }   
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/PropFindMethod.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/PropFindMethod.java?rev=702428&r1=702427&r2=702428&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/PropFindMethod.java
(original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/PropFindMethod.java
Tue Oct  7 03:31:18 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.webdav.client.methods;
 
+import org.apache.jackrabbit.webdav.DavConstants;
 import org.apache.jackrabbit.webdav.DavMethods;
 import org.apache.jackrabbit.webdav.DavServletResponse;
 import org.apache.jackrabbit.webdav.header.DepthHeader;
@@ -25,12 +26,30 @@
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 
 import javax.xml.parsers.ParserConfigurationException;
 import java.io.IOException;
 
 /**
- * <code>PropFindMethod</code>...
+ * <code>PropFindMethod</code>, as specified in
+ * <a href="http://www.webdav.org/specs/rfc4918.html#rfc.section.9.1">RFC 4918, Section
9.1</a>
+ * <p>
+ * Supported types:
+ * <ul>
+ *   <li>{@link DavConstants#PROPFIND_ALL_PROP}: all custom properties, 
+ *   plus the live properties defined in RFC2518/RFC4918
+ *   <li>{@link DavConstants#PROPFIND_ALL_PROP_INCLUDE}: same as 
+ *   {@link DavConstants#PROPFIND_ALL_PROP} plus the properties specified
+ *   in <code>propNameSet</code>
+ *   <li>{@link DavConstants#PROPFIND_BY_PROPERTY}: just the properties
+ *   specified in <code>propNameSet</code>
+ *   <li>{@link DavConstants#PROPFIND_PROPERTY_NAMES}: just the property names
+ * </ul>
+ * <p>
+ * Note: only WebDAV level 3 servers support {@link DavConstants#PROPFIND_ALL_PROP_INCLUDE},
+ * older servers will ignore the extension and act as if {@link DavConstants#PROPFIND_ALL_PROP}
+ * was used.
  */
 public class PropFindMethod extends DavMethodBase {
 
@@ -50,7 +69,7 @@
         this(uri, propfindType, new DavPropertyNameSet(), depth);
     }
 
-    private PropFindMethod(String uri, int propfindType, DavPropertyNameSet propNameSet,
+    public PropFindMethod(String uri, int propfindType, DavPropertyNameSet propNameSet,
                            int depth) throws IOException {
         super(uri);
 
@@ -69,16 +88,38 @@
                 case PROPFIND_ALL_PROP:
                     propfind.appendChild(DomUtil.createElement(document, XML_ALLPROP, NAMESPACE));
                     break;
+                    
                 case PROPFIND_PROPERTY_NAMES:
                     propfind.appendChild(DomUtil.createElement(document, XML_PROPNAME, NAMESPACE));
                     break;
-                default:
+                    
+                case PROPFIND_BY_PROPERTY:
                     if (propNameSet == null) {
-                        propfind.appendChild(DomUtil.createElement(document, XML_PROP, NAMESPACE));
+                        // name set missing, ask for a property that is known to exist
+                        Element prop = DomUtil.createElement(document, XML_PROP, NAMESPACE);
+                        Element resourcetype = DomUtil.createElement(document, PROPERTY_RESOURCETYPE,
NAMESPACE);
+                        prop.appendChild(resourcetype);
+                        propfind.appendChild(prop);
                     } else {
                         propfind.appendChild(propNameSet.toXml(document));
                     }
                     break;
+                    
+                case PROPFIND_ALL_PROP_INCLUDE:
+                    propfind.appendChild(DomUtil.createElement(document, XML_ALLPROP, NAMESPACE));
+                    if (propNameSet != null && ! propNameSet.isEmpty()) {
+                        Element include = DomUtil.createElement(document, XML_INCLUDE, NAMESPACE);
+                        Element prop = propNameSet.toXml(document);
+                        for (Node c = prop.getFirstChild(); c != null; c = c.getNextSibling())
{
+                            // copy over the children of <prop> to <include>
element
+                            include.appendChild(c.cloneNode(true));
+                        }
+                        propfind.appendChild(include);
+                    }
+                    break;
+                  
+               default:
+                   throw new IllegalArgumentException("unknown propfind type");
             }
 
             // set the request body
@@ -105,4 +146,4 @@
     protected boolean isSuccess(int statusCode) {
         return statusCode == DavServletResponse.SC_MULTI_STATUS;
     }
-}
\ No newline at end of file
+}

Added: jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java?rev=702428&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java
(added)
+++ jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java
Tue Oct  7 03:31:18 2008
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.webdav.server;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.UsernamePasswordCredentials;
+import org.apache.commons.httpclient.auth.AuthScope;
+import org.apache.commons.httpclient.methods.PutMethod;
+import org.apache.commons.httpclient.methods.StringRequestEntity;
+import org.apache.jackrabbit.webdav.DavConstants;
+import org.apache.jackrabbit.webdav.DavException;
+import org.apache.jackrabbit.webdav.MultiStatus;
+import org.apache.jackrabbit.webdav.MultiStatusResponse;
+import org.apache.jackrabbit.webdav.bind.BindConstants;
+import org.apache.jackrabbit.webdav.client.methods.DeleteMethod;
+import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
+import org.apache.jackrabbit.webdav.property.DavProperty;
+import org.apache.jackrabbit.webdav.property.DavPropertyName;
+import org.apache.jackrabbit.webdav.property.DavPropertyNameSet;
+import org.apache.jackrabbit.webdav.property.DavPropertySet;
+import org.apache.jackrabbit.webdav.version.DeltaVConstants;
+import org.w3c.dom.Element;
+
+import junit.framework.TestCase;
+
+/**
+ * Test cases for RFC 4918 PROPFIND functionality
+ * (see <a href="http://www.webdav.org/specs/rfc4918.html#rfc.section.9.1">RFC 4918,
Section 9.1</a>
+ * <p>
+ * Required system properties:
+ * <ul>
+ *   <li>webdav.test.url</li>
+ *   <li>webdav.test.username</li>
+ *   <li>webdav.test.password</li>
+ * </ul>
+ */
+
+public class RFC4918PropfindTest extends TestCase {
+
+    private String root;
+    private URI uri;
+    private String username, password;
+    private HttpClient client;
+    
+    protected void setUp() throws Exception {
+        this.uri = URI.create(System.getProperty("webdav.test.url"));
+        this.root = this.uri.toASCIIString();
+        if (!this.root.endsWith("/")) {
+            this.root += "/";
+        }
+        this.username = System.getProperty(("webdav.test.username"), "");
+        this.password = System.getProperty(("webdav.test.password"), "");
+        this.client = new HttpClient();
+        this.client.getState().setCredentials(
+                new AuthScope(this.uri.getHost(), this.uri.getPort()),
+                new UsernamePasswordCredentials(this.username, this.password));
+        super.setUp();
+    }
+  
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+    
+    public void testPropfindInclude() throws HttpException, IOException, DavException, URISyntaxException
{
+  
+        String testuri = this.root + "iftest";
+    
+        int status;
+        try {
+            PutMethod put = new PutMethod(testuri);
+            put.setRequestEntity(new StringRequestEntity("1"));
+            status = this.client.executeMethod(put);
+            assertEquals("status: " + status, 201, status);
+            
+            DavPropertyNameSet names = new DavPropertyNameSet();
+            names.add(DeltaVConstants.COMMENT);
+            PropFindMethod propfind = new PropFindMethod(testuri, DavConstants.PROPFIND_ALL_PROP_INCLUDE,
names, 0);
+            status = client.executeMethod(propfind);
+            assertEquals(207, status);
+
+            MultiStatus multistatus = propfind.getResponseBodyAsMultiStatus();
+            MultiStatusResponse[] responses = multistatus.getResponses();
+            assertEquals(1, responses.length);
+
+            MultiStatusResponse response = responses[0];
+            DavPropertySet found = response.getProperties(200);
+            DavPropertySet notfound = response.getProperties(404);
+            
+            assertTrue(found.contains(DeltaVConstants.COMMENT) || notfound.contains(DeltaVConstants.COMMENT));
+        }
+        finally {
+            DeleteMethod delete = new DeleteMethod(testuri);
+            status = this.client.executeMethod(delete);
+            assertTrue("status: " + status, status == 200 || status == 204 || status == 404);
+        }
+    }
+
+}

Propchange: jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/RFC4918PropfindTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/WebdavServerTests.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/WebdavServerTests.java?rev=702428&r1=702427&r2=702428&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/WebdavServerTests.java
(original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/test/java/org/apache/jackrabbit/webdav/server/WebdavServerTests.java
Tue Oct  7 03:31:18 2008
@@ -28,7 +28,8 @@
         suite.addTestSuite(BindTest.class);
         suite.addTestSuite(RFC4918DestinationHeaderTest.class);
         suite.addTestSuite(RFC4918IfHeaderTest.class);
+        suite.addTestSuite(RFC4918PropfindTest.class);
 
         return suite;
     }
-}
\ No newline at end of file
+}



Mime
View raw message