joerg 2003/07/10 16:38:04
Modified: src/blocks/jsp/java/org/apache/cocoon/reading JSPReader.java
src/blocks/jsp/java/org/apache/cocoon/generation
JspGenerator.java
. status.xml
src/blocks/jsp/java/org/apache/cocoon/components/jsp
JSPEngineImplNamedDispatcherInclude.java
JSPEngineImplWLS.java JSPEngineImpl.java
Log:
reverted the changes on the default encoding (bugfix 14327), JSPReader
already has a TODO for re-encoding
changed JSPReader from deprecated ComposerReader to ServiceableReader
fixed some deprecation messages on the wrong methods
Revision Changes Path
1.3 +4 -4
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/reading/JSPReader.java
Index: JSPReader.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/reading/JSPReader.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JSPReader.java 7 Jun 2003 23:01:48 -0000 1.2
+++ JSPReader.java 10 Jul 2003 23:38:04 -0000 1.3
@@ -69,7 +69,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Konstantin Piroumian</a>
* @version CVS $Id$
*/
-public class JSPReader extends ComposerReader {
+public class JSPReader extends ServiceableReader {
/**
* Generates the output from JSP page.
@@ -93,7 +93,7 @@
JSPEngine engine = null;
try {
- // FIXME (KP): Should we exclude not supported protocols, say
'context'?
+ // TODO (KP): Should we exclude not supported protocols, say
'context'?
String url = this.source;
// absolute path is processed as is
@@ -112,7 +112,7 @@
}
byte[] bytes = engine.executeJSP(url, httpRequest, httpResponse,
httpContext);
- // FIXME (KP): Make buffer size configurable
+ // TODO (KP): Make buffer size configurable
byte[] buffer = new byte[8192];
int length = -1;
1.3 +2 -2
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/generation/JspGenerator.java
Index: JspGenerator.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/generation/JspGenerator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JspGenerator.java 7 Jun 2003 23:01:48 -0000 1.2
+++ JspGenerator.java 10 Jul 2003 23:38:04 -0000 1.3
@@ -102,7 +102,7 @@
JSPEngine engine = null;
SAXParser parser = null;
try {
- // FIXME (KP): Should we exclude not supported protocols, say
'context'?
+ // TODO (KP): Should we exclude not supported protocols, say
'context'?
String url = this.source;
// absolute path is processed as is
if (!url.startsWith("/")) {
1.84 +5 -1 cocoon-2.1/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/status.xml,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- status.xml 10 Jul 2003 22:17:43 -0000 1.83
+++ status.xml 10 Jul 2003 23:38:04 -0000 1.84
@@ -184,6 +184,10 @@
<changes>
<release version="@version@" date="@date@">
+ <action dev="JH" type="fix" fixes-bug="14327">
+ Reverted the encoding changes in the JSP engine. The fix should be done
in
+ the JSPReader, that already contains a TODO.
+ </action>
<action dev="RP" type="fix">
Web3: The stylesheets in the examples use Xalan as transformer and work
correctly now
as XSLTC has problems with the 'rfc' namespace.
1.3 +8 -3
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImplNamedDispatcherInclude.java
Index: JSPEngineImplNamedDispatcherInclude.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImplNamedDispatcherInclude.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JSPEngineImplNamedDispatcherInclude.java 24 Mar 2003 14:33:56 -0000
1.2
+++ JSPEngineImplNamedDispatcherInclude.java 10 Jul 2003 23:38:04 -0000
1.3
@@ -167,6 +167,7 @@
public boolean isRequestedSessionIdValid(){ return
request.isRequestedSessionIdValid(); }
public boolean isRequestedSessionIdFromCookie(){ return
request.isRequestedSessionIdFromCookie(); }
public boolean isRequestedSessionIdFromURL(){ return
request.isRequestedSessionIdFromURL(); }
+ /** @deprecated use isRequestedSessionIdFromURL instead. */
public boolean isRequestedSessionIdFromUrl(){ return
request.isRequestedSessionIdFromUrl(); }
public Object getAttribute(String s){
if(s != null && s.equals(INC_SERVLET_PATH))
@@ -195,6 +196,7 @@
public Enumeration getLocales(){ return request.getLocales(); }
public boolean isSecure(){ return request.isSecure(); }
public RequestDispatcher getRequestDispatcher(String s){ return
request.getRequestDispatcher(s); }
+ /** @deprecated use ServletContext.getRealPath(java.lang.String)
instead. */
public String getRealPath(String s){ return request.getRealPath(s); }
public java.lang.StringBuffer getRequestURL() { return null; }
public java.util.Map getParameterMap() { return null; }
@@ -230,10 +232,12 @@
}
public void addCookie(Cookie cookie){ response.addCookie(cookie); }
public boolean containsHeader(String s){ return
response.containsHeader(s); }
- public String encodeURL(String s){ return response.encodeURL(s); }
- public String encodeRedirectURL(String s){ return
response.encodeRedirectURL(s); }
+ /** @deprecated use encodeURL(String url) instead. */
public String encodeUrl(String s){ return response.encodeUrl(s); }
+ public String encodeURL(String s){ return response.encodeURL(s); }
+ /** @deprecated use encodeRedirectURL(String url) instead. */
public String encodeRedirectUrl(String s){ return
response.encodeRedirectUrl(s); }
+ public String encodeRedirectURL(String s){ return
response.encodeRedirectURL(s); }
public void sendError(int i, String s)
throws IOException{response.sendError(i,s); }
public void sendError(int i)
@@ -247,6 +251,7 @@
public void setIntHeader(String s, int i){response.setIntHeader(s,
i); }
public void addIntHeader(String s, int i){response.addIntHeader(s,
i); }
public void setStatus(int i){response.setStatus(i); }
+ /** @deprecated use sendError(int, String) instead */
public void setStatus(int i, String s){response.setStatus(i, s); }
public void resetBuffer(){}
1.2 +6 -3
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImplWLS.java
Index: JSPEngineImplWLS.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImplWLS.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JSPEngineImplWLS.java 9 Mar 2003 00:04:13 -0000 1.1
+++ JSPEngineImplWLS.java 10 Jul 2003 23:38:04 -0000 1.2
@@ -248,10 +248,12 @@
public Locale getLocale(){ return this.response.getLocale();}
public void addCookie(Cookie cookie){ response.addCookie(cookie); }
public boolean containsHeader(String s){ return
response.containsHeader(s); }
- public String encodeURL(String s){ return response.encodeURL(s); }
- public String encodeRedirectURL(String s){ return
response.encodeRedirectURL(s); }
+ /** @deprecated use encodeURL(String url) instead. */
public String encodeUrl(String s){ return response.encodeUrl(s); }
+ public String encodeURL(String s){ return response.encodeURL(s); }
+ /** @deprecated use encodeRedirectURL(String url) instead. */
public String encodeRedirectUrl(String s){ return
response.encodeRedirectUrl(s); }
+ public String encodeRedirectURL(String s){ return
response.encodeRedirectURL(s); }
public void sendError(int i, String s)
throws IOException{response.sendError(i,s); }
public void sendError(int i)
@@ -265,6 +267,7 @@
public void setIntHeader(String s, int i){response.setIntHeader(s, i);
}
public void addIntHeader(String s, int i){response.addIntHeader(s, i);
}
public void setStatus(int i){response.setStatus(i); }
+ /** @deprecated use sendError(int, String) instead */
public void setStatus(int i, String s){response.setStatus(i, s); }
}
}
1.6 +18 -46
cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImpl.java
Index: JSPEngineImpl.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/jsp/java/org/apache/cocoon/components/jsp/JSPEngineImpl.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- JSPEngineImpl.java 7 Jun 2003 23:01:48 -0000 1.5
+++ JSPEngineImpl.java 10 Jul 2003 23:38:04 -0000 1.6
@@ -69,14 +69,12 @@
import java.security.Principal;
import java.util.Enumeration;
import java.util.Locale;
-import java.util.StringTokenizer;
/**
* Allows JSP to be used as a generator. Builds upon the JSP servlet
* functionality - overrides the output method and returns the byte(s).
*
* @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
- * @author <a href="mailto:[EMAIL PROTECTED]">MIYABE Tatsuhiko</a>
* @version CVS $Id$
*/
public class JSPEngineImpl extends AbstractLogEnabled
@@ -134,7 +132,7 @@
* Stub implementation of Servlet Config
*/
class config implements ServletConfig {
- ServletContext c;
+ ServletContext c = null;
public config(ServletContext c) {this.c = c; }
public String getServletName() { return "JSPEngineImpl"; }
@@ -148,8 +146,8 @@
* Stub implementation of HttpServletRequest
*/
class MyServletRequest implements HttpServletRequest {
- HttpServletRequest request;
- String jspFile;
+ HttpServletRequest request = null;
+ String jspFile = null;
public MyServletRequest(HttpServletRequest request, String jspFile) {
this.request = request;
@@ -218,60 +216,37 @@
* Stub implementation of HttpServletResponse
*/
class MyServletResponse implements HttpServletResponse {
- HttpServletResponse response;
+ HttpServletResponse response = null;
MyServletOutputStream output = null;
- String encoding = "iso-8859-1";
public MyServletResponse(HttpServletResponse response){
this.response = response;
+ this.output = new MyServletOutputStream();
}
public void flushBuffer() throws IOException { }
public int getBufferSize() { return 1024; }
public String getCharacterEncoding() { return
this.response.getCharacterEncoding();}
public Locale getLocale(){ return this.response.getLocale();}
public PrintWriter getWriter() {
- if (this.output == null) {
- this.output = new MyServletOutputStream(this.encoding);
- }
return this.output.getWriter();
}
public boolean isCommitted() { return false; }
public void reset() {}
public void setBufferSize(int size) {}
public void setContentLength(int len) {}
- public void setContentType(java.lang.String type) {
- StringTokenizer st = new StringTokenizer(type, ";,");
- st.nextToken();
- while (st.hasMoreTokens()) {
- String param = st.nextToken();
- int equal = param.indexOf("=");
- if (equal != -1) {
- String name = param.substring(0, equal);
- if (name.trim().equalsIgnoreCase("charset")) {
- this.encoding = param.substring(equal + 1).trim();
- break;
- }
- continue;
- }
- break;
- }
- }
+ public void setContentType(java.lang.String type) {}
public void setLocale(java.util.Locale loc) {}
public ServletOutputStream getOutputStream() {
- if (this.output == null) {
- // FIXME: Won't it break JSPEngine contract? See
JSPEngine.executeJSP
- this.output = new MyServletOutputStream(this.encoding);
- }
return this.output;
}
public void addCookie(Cookie cookie){ response.addCookie(cookie); }
public boolean containsHeader(String s){ return
response.containsHeader(s); }
- public String encodeURL(String s){ return response.encodeURL(s); }
- /** @deprecated use encodeRedirectURL(String url) instead. */
- public String encodeRedirectURL(String s){ return
response.encodeRedirectURL(s); }
/** @deprecated use encodeURL(String url) instead. */
public String encodeUrl(String s){ return response.encodeUrl(s); }
+ public String encodeURL(String s){ return response.encodeURL(s); }
+ /** @deprecated use encodeRedirectURL(String url) instead. */
public String encodeRedirectUrl(String s){ return
response.encodeRedirectUrl(s); }
+ public String encodeRedirectURL(String s){ return
response.encodeRedirectURL(s); }
public void sendError(int i, String s)
throws IOException{response.sendError(i,s); }
public void sendError(int i)
@@ -290,12 +265,7 @@
public void resetBuffer(){}
public byte[] toByteArray() {
- if (this.output != null) {
- return output.toByteArray();
- }
- else {
- return new byte[0];
- }
+ return output.toByteArray();
}
}
@@ -303,15 +273,17 @@
* Stub implementation of ServletOutputStream
*/
class MyServletOutputStream extends ServletOutputStream {
- ByteArrayOutputStream output;
- PrintWriter writer;
+ ByteArrayOutputStream output = null;
+ PrintWriter writer = null;
- public MyServletOutputStream(String encoding) {
+ public MyServletOutputStream() {
this.output = new ByteArrayOutputStream();
try {
- this.writer = new PrintWriter(new OutputStreamWriter(output,
encoding));
+ this.writer = new PrintWriter(new OutputStreamWriter(output,
"UTF-8"));
} catch (UnsupportedEncodingException e) {
- getLogger().error("Unsupported encoding: " + encoding + ",
using platform default instead.");
+ getLogger().error("Your JVM seems not to support UTF-8,"
+ + " using platform default instead."
+ + " This can cause problems as you can
imagine.");
this.writer = new PrintWriter(new
OutputStreamWriter(output));
}
}