You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2005/08/15 18:53:47 UTC

svn commit: r232835 - in /beehive/trunk/netui: src/core/org/apache/beehive/netui/core/urltemplates/ src/pageflow/org/apache/beehive/netui/pageflow/ src/scoping/ src/scoping/org/apache/beehive/netui/pageflow/scoping/ test/src/junitTests/org/apache/beehi...

Author: rich
Date: Mon Aug 15 09:53:28 2005
New Revision: 232835

URL: http://svn.apache.org/viewcvs?rev=232835&view=rev
Log:
Two contributions from Carlin Rogers to address:
    - http://issues.apache.org/jira/browse/BEEHIVE-880 : Remove trailing '?' from URLTemplate.format(true)
    - http://issues.apache.org/jira/browse/BEEHIVE-882 : ScopedServletUtils.getOuterRequest() does not handle an instance of MultipartRequestWrapper

Thanks Carlin!

tests: bvt in netui (WinXP)
BB: self (linux)


Modified:
    beehive/trunk/netui/src/core/org/apache/beehive/netui/core/urltemplates/URLTemplate.java
    beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java
    beehive/trunk/netui/src/scoping/build.xml
    beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedServletUtils.java
    beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/core/urltemplates/URLTemplateTest.java

Modified: beehive/trunk/netui/src/core/org/apache/beehive/netui/core/urltemplates/URLTemplate.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/core/org/apache/beehive/netui/core/urltemplates/URLTemplate.java?rev=232835&r1=232834&r2=232835&view=diff
==============================================================================
--- beehive/trunk/netui/src/core/org/apache/beehive/netui/core/urltemplates/URLTemplate.java (original)
+++ beehive/trunk/netui/src/core/org/apache/beehive/netui/core/urltemplates/URLTemplate.java Mon Aug 15 09:53:28 2005
@@ -292,6 +292,11 @@
             }
         }
 
+        if ( result.length() > 0 && result.charAt( result.length() - 1 ) == '?' )
+        {
+            result.deleteCharAt( result.length() - 1 );
+        }
+
         return result.toString();
     }
 

Modified: beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java?rev=232835&r1=232834&r2=232835&view=diff
==============================================================================
--- beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java (original)
+++ beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java Mon Aug 15 09:53:28 2005
@@ -178,7 +178,7 @@
         }
         else
         {
-            ScopedRequest scopedRequest = ScopedServletUtils.unwrapRequest( PageFlowUtils.unwrapMultipart( request ) );
+            ScopedRequest scopedRequest = ScopedServletUtils.unwrapRequest( request );
             
             if ( scopedRequest != null )
             {
@@ -200,15 +200,14 @@
         {
             multipartHandler = getMultipartHandler(request);
             
-            if(multipartHandler != null)
+            if (multipartHandler != null)
             {
                 //
                 // Run the request through the handler, and cache the handler in the outer request.
                 //
                 multipartHandler.handleRequest(request);
-                HttpServletRequest outerRequest =
-                    ScopedServletUtils.getOuterRequest(PageFlowUtils.unwrapMultipart(request));
-                outerRequest.setAttribute(PREHANDLED_MULTIPART_REQUEST_ATTR, multipartHandler );
+                HttpServletRequest outerRequest = ScopedServletUtils.getOuterRequest(request);
+                outerRequest.setAttribute(PREHANDLED_MULTIPART_REQUEST_ATTR, multipartHandler);
             }
         }
     }
@@ -340,7 +339,7 @@
     
     static MultipartRequestHandler getCachedMultipartHandler( HttpServletRequest request )
     {
-        HttpServletRequest req = ScopedServletUtils.getOuterRequest( PageFlowUtils.unwrapMultipart( request ) );
+        HttpServletRequest req = ScopedServletUtils.getOuterRequest( request );
         return ( MultipartRequestHandler ) req.getAttribute( MultipartRequestUtils.PREHANDLED_MULTIPART_REQUEST_ATTR );    
     }
 }

Modified: beehive/trunk/netui/src/scoping/build.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/scoping/build.xml?rev=232835&r1=232834&r2=232835&view=diff
==============================================================================
--- beehive/trunk/netui/src/scoping/build.xml (original)
+++ beehive/trunk/netui/src/scoping/build.xml Mon Aug 15 09:53:28 2005
@@ -9,6 +9,7 @@
 
     <path id="module.classpath">
         <path refid="servlet.dependency.path"/>
+        <path refid="${struts.dependency.path.ref}"/>
         <path refid="commons-codec.dependency.path"/>
         <pathelement path="${classes.dir}/util"/>
     </path>

Modified: beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedServletUtils.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedServletUtils.java?rev=232835&r1=232834&r2=232835&view=diff
==============================================================================
--- beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedServletUtils.java (original)
+++ beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedServletUtils.java Mon Aug 15 09:53:28 2005
@@ -20,6 +20,7 @@
 import org.apache.beehive.netui.pageflow.scoping.internal.ScopedRequestImpl;
 import org.apache.beehive.netui.pageflow.scoping.internal.ScopedResponseImpl;
 import org.apache.beehive.netui.util.logging.Logger;
+import org.apache.struts.upload.MultipartRequestWrapper;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -235,6 +236,12 @@
      */ 
     public static ScopedRequest unwrapRequest( ServletRequest request )
     {
+        // Unwrap the multipart request, if there is one.
+        if ( request instanceof MultipartRequestWrapper )
+        {
+            request = ( ( MultipartRequestWrapper ) request ).getRequest();
+        }
+
         while ( request instanceof ServletRequestWrapper )
         {
             if ( request instanceof ScopedRequest )

Modified: beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/core/urltemplates/URLTemplateTest.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/core/urltemplates/URLTemplateTest.java?rev=232835&r1=232834&r2=232835&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/core/urltemplates/URLTemplateTest.java (original)
+++ beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/core/urltemplates/URLTemplateTest.java Mon Aug 15 09:53:28 2005
@@ -160,4 +160,19 @@
         urlTemplate.substitute( tokensAndValues );
         assertEquals( result, urlTemplate.format() );
     }
+
+    public void testEmptyQuery()
+    {
+        String temp = "http://{url:domain}:80/{url:path}?{url:queryString}";
+        String result = "http://myhost.com:80/my/path";
+        URLTemplate urlTemplate = new URLTemplate( temp );
+        urlTemplate.verify( KNOWN_TEMPLATE_TOKENS, REQUIRED_TEMPLATE_TOKENS );
+        urlTemplate.substitute( "{url:domain}", "myhost.com" );
+        urlTemplate.substitute( "{url:path}", "/my/path" );
+        assertEquals( result, urlTemplate.format() );
+        assertEquals( result, urlTemplate.format(true) );
+        urlTemplate.substitute( "{url:queryString}", "" );
+        assertEquals( result, urlTemplate.format() );
+        assertEquals( result, urlTemplate.format(true) );
+    }
 }