You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/03/28 10:45:16 UTC

svn commit: r642168 - in /incubator/sling/trunk/jcr/resource/src: main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java

Author: fmeschbe
Date: Fri Mar 28 02:45:14 2008
New Revision: 642168

URL: http://svn.apache.org/viewvc?rev=642168&view=rev
Log:
SLING-344 Always create a StarResource if the request path info
contains /*. or ends with /* regardless of the request method and
extend the unit tests to reflect this change

Modified:
    incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java
    incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java

Modified: incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java?rev=642168&r1=642167&r2=642168&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java (original)
+++ incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java Fri Mar 28 02:45:14 2008
@@ -47,7 +47,8 @@
     /** True if a StarResource should be used for the given request, if
      *  a real Resource was not found */
     public static boolean appliesTo(HttpServletRequest request) {
-        return "GET".equals(request.getMethod()) && request.getPathInfo().contains(PATH_PATTERN);
+        String path = request.getPathInfo();
+        return path.contains(PATH_PATTERN) || path.endsWith(PATH_CLEAN_SUFFIX);
     }
 
     /**

Modified: incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java?rev=642168&r1=642167&r2=642168&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java (original)
+++ incubator/sling/trunk/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java Fri Mar 28 02:45:14 2008
@@ -39,6 +39,7 @@
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.commons.testing.jcr.RepositoryTestBase;
 import org.apache.sling.jcr.resource.JcrResourceConstants;
+import org.apache.sling.jcr.resource.JcrResourceUtil;
 import org.apache.sling.jcr.resource.internal.helper.Mapping;
 import org.apache.sling.jcr.resource.internal.helper.starresource.StarResource;
 
@@ -167,22 +168,6 @@
         }
     }
     
-    public void testStarResource() throws Exception {
-        final String path = rootPath + "/" + System.currentTimeMillis() + "/*.html";
-        
-        {
-            final Resource res = resResolver.resolve(new ResourceResolverTestRequest(path, "GET"));
-            assertNotNull(res);
-            assertEquals(StarResource.class.getName(), res.getClass().getName());
-            assertEquals(StarResource.DEFAULT_RESOURCE_TYPE, res.getResourceType());
-        }
-        
-        {
-            final Resource res = resResolver.resolve(new ResourceResolverTestRequest(path, "POST"));
-            assertEquals(NonExistingResource.class.getName(), res.getClass().getName());
-        }
-    }
-
     public void testGetRemovesExtensionInResolution() throws Exception {
         final String path = rootPath + ".whatever";
         final Resource res = resResolver.resolve(new ResourceResolverTestRequest(
@@ -193,6 +178,38 @@
             res.getResourceType());
     }
 
+    public void testStarResourcePlain() throws Exception {
+        final String path = rootPath + "/" + System.currentTimeMillis() + "/*";
+        testStarResourceHelper(path, "GET");
+        testStarResourceHelper(path, "POST");
+        testStarResourceHelper(path, "PUT");
+        testStarResourceHelper(path, "DELETE");
+    }
+    
+    public void testStarResourceExtension() throws Exception {
+        final String path = rootPath + "/" + System.currentTimeMillis() + "/*.html";
+        testStarResourceHelper(path, "GET");
+        testStarResourceHelper(path, "POST");
+        testStarResourceHelper(path, "PUT");
+        testStarResourceHelper(path, "DELETE");
+    }
+    
+    public void testStarResourceSelectorExtension() throws Exception {
+        final String path = rootPath + "/" + System.currentTimeMillis() + "/*.print.a4.html";
+        testStarResourceHelper(path, "GET");
+        testStarResourceHelper(path, "POST");
+        testStarResourceHelper(path, "PUT");
+        testStarResourceHelper(path, "DELETE");
+    }
+
+    private void testStarResourceHelper(final String path, final String method) {
+        final Resource res = resResolver.resolve(new ResourceResolverTestRequest(path, method));
+        assertNotNull(res);
+        assertTrue(JcrResourceUtil.isStarResource(res));
+        assertEquals(StarResource.class.getName(), res.getClass().getName());
+        assertEquals(StarResource.DEFAULT_RESOURCE_TYPE, res.getResourceType());
+    }
+    
     private static class ResourceResolverTestRequest implements
             HttpServletRequest {