You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by ba...@apache.org on 2007/01/10 23:08:29 UTC

svn commit: r495005 - in /jakarta/taglibs/proper/standard/trunk: src/org/apache/taglibs/standard/tag/common/core/ test/org/apache/taglibs/standard/tag/ImportTagTest/ test/org/apache/taglibs/standard/tag/ImportTagTest/core/ test/web/org/apache/taglibs/s...

Author: bayard
Date: Wed Jan 10 14:08:28 2007
New Revision: 495005

URL: http://svn.apache.org/viewvc?view=rev&rev=495005
Log:
Applying Bjorn Townsend's unit test and the fix for #37466 - c:import doesn't work with HEAD requests. Many thanks to Bill Barker on tomcat-dev for providing the idea behind the fix. 

Added:
    jakarta/taglibs/proper/standard/trunk/test/org/apache/taglibs/standard/tag/ImportTagTest/
    jakarta/taglibs/proper/standard/trunk/test/org/apache/taglibs/standard/tag/ImportTagTest/core/
    jakarta/taglibs/proper/standard/trunk/test/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.java   (with props)
    jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/
    jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/
    jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.jsp   (with props)
    jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.xml   (with props)
Modified:
    jakarta/taglibs/proper/standard/trunk/src/org/apache/taglibs/standard/tag/common/core/ImportSupport.java

Modified: jakarta/taglibs/proper/standard/trunk/src/org/apache/taglibs/standard/tag/common/core/ImportSupport.java
URL: http://svn.apache.org/viewvc/jakarta/taglibs/proper/standard/trunk/src/org/apache/taglibs/standard/tag/common/core/ImportSupport.java?view=diff&rev=495005&r1=495004&r2=495005
==============================================================================
--- jakarta/taglibs/proper/standard/trunk/src/org/apache/taglibs/standard/tag/common/core/ImportSupport.java (original)
+++ jakarta/taglibs/proper/standard/trunk/src/org/apache/taglibs/standard/tag/common/core/ImportSupport.java Wed Jan 10 14:08:28 2007
@@ -36,6 +36,7 @@
 import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponseWrapper;
 import javax.servlet.jsp.JspException;
@@ -291,9 +292,13 @@
 		new ImportResponseWrapper(
 		    (HttpServletResponse) pageContext.getResponse());
 
+            ImportRequestWrapper wrappedRequest = 
+		new ImportRequestWrapper(
+		    (HttpServletRequest) pageContext.getRequest());
+
 	    // spec mandates specific error handling form include()
 	    try {
-	        rd.include(pageContext.getRequest(), irw);
+	        rd.include(wrappedRequest, irw);
 	    } catch (IOException ex) {
 		throw new JspException(ex);
 	    } catch (RuntimeException ex) {
@@ -312,6 +317,8 @@
 		    stripSession(targetUrl));
 	    }
 
+System.err.println("RETURN: " + irw.getString());
+
 	    // recover the response String from our wrapper
 	    return irw.getString();
 	}
@@ -368,6 +375,19 @@
                     Resources.getMessage("IMPORT_ABS_ERROR", target, ex), ex);
 	    }
 	}
+    }
+
+    /** Wraps requests to allow us to enforce the method to be GET */
+    private class ImportRequestWrapper extends HttpServletRequestWrapper {
+
+        public ImportRequestWrapper(HttpServletRequest request) {
+            super(request);
+        }
+        
+        public String getMethod() {
+            return "GET";
+        }
+
     }
 
     /** Wraps responses to allow us to retrieve results as Strings. */

Added: jakarta/taglibs/proper/standard/trunk/test/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.java
URL: http://svn.apache.org/viewvc/jakarta/taglibs/proper/standard/trunk/test/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.java?view=auto&rev=495005
==============================================================================
--- jakarta/taglibs/proper/standard/trunk/test/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.java (added)
+++ jakarta/taglibs/proper/standard/trunk/test/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.java Wed Jan 10 14:08:28 2007
@@ -0,0 +1,53 @@
+/*                                                                             
+ * Copyright 1999,2004 The Apache Software Foundation.                         
+ *                                                                             
+ * Licensed 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.taglibs.standard.tag.ImportTagTest.core;
+
+import java.net.*;
+import javax.servlet.jsp.*;
+import javax.servlet.http.*;
+import org.apache.cactus.*;
+import org.apache.taglibs.standard.testutil.TestUtil;
+
+public class Test37466 extends JspTestCase {
+
+    public Test37466(String name) {
+	super(name);
+    }
+
+    protected void setUp() throws Exception {
+	super.setUp();
+    }
+
+    protected void tearDown() throws Exception {
+	super.tearDown();
+    }
+
+    public void test37466() throws Exception {
+	String serverName = pageContext.getRequest().getServerName();
+	Integer serverPort = pageContext.getRequest().getServerPort();
+	String contextPath = ( (HttpServletRequest) pageContext.getRequest() ).getContextPath();
+	String jspPath = TestUtil.getTestJsp(this);
+	String testPath = "http://" + serverName + ":" + serverPort + contextPath + jspPath;;
+
+	URL url = new URL(testPath);
+	HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+	connection.setRequestMethod("HEAD");
+	
+	String responseCode = Integer.toString(connection.getResponseCode());
+	assertEquals(testPath + "The response code should be 200", "200", responseCode);
+    }
+}

Propchange: jakarta/taglibs/proper/standard/trunk/test/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.jsp
URL: http://svn.apache.org/viewvc/jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.jsp?view=auto&rev=495005
==============================================================================
--- jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.jsp (added)
+++ jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.jsp Wed Jan 10 14:08:28 2007
@@ -0,0 +1,23 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+
+<c:import url="/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.xml" varReader="xmlSource">
+<%
+	java.io.StringReader o = (java.io.StringReader)pageContext.getAttribute("xmlSource");
+	System.out.println("o: " + o);
+	char[] buf = new char[1];
+	while (o.read(buf) > 0)
+	{
+		System.out.print(buf);
+	}
+	System.out.println("");
+	System.out.println("------");
+	o.reset();
+%>
+	<x:parse xml="${xmlSource}" var="xmldoc" />
+</c:import>
+<%
+	System.out.println("XX parsed ok");
+%>
+
+worked: ${xmldoc}

Propchange: jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.xml
URL: http://svn.apache.org/viewvc/jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.xml?view=auto&rev=495005
==============================================================================
--- jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.xml (added)
+++ jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.xml Wed Jan 10 14:08:28 2007
@@ -0,0 +1,3 @@
+<foo>
+	data data data
+</foo>
\ No newline at end of file

Propchange: jakarta/taglibs/proper/standard/trunk/test/web/org/apache/taglibs/standard/tag/ImportTagTest/core/Test37466.xml
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-dev-help@jakarta.apache.org