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