You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by di...@apache.org on 2001/07/16 15:23:35 UTC
cvs commit: xml-cocoon2/webapp cocoon.xconf sitemap.xmap
dims 01/07/16 06:23:35
Modified: src/org/apache/cocoon Tag: cocoon_20_branch cocoon.roles
src/org/apache/cocoon/components/language/generator Tag:
cocoon_20_branch ProgramGeneratorImpl.java
src/org/apache/cocoon/generation Tag: cocoon_20_branch
JspGenerator.java
webapp Tag: cocoon_20_branch cocoon.xconf sitemap.xmap
Added: src/org/apache/cocoon/components/jsp Tag: cocoon_20_branch
JSPEngine.java JSPEngineImpl.java
Log:
Componentize the JSP Engine.
Revision Changes Path
No revision
No revision
1.6.2.11 +5 -1 xml-cocoon2/src/org/apache/cocoon/cocoon.roles
Index: cocoon.roles
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/cocoon.roles,v
retrieving revision 1.6.2.10
retrieving revision 1.6.2.11
diff -u -r1.6.2.10 -r1.6.2.11
--- cocoon.roles 2001/07/07 19:07:37 1.6.2.10
+++ cocoon.roles 2001/07/16 13:23:34 1.6.2.11
@@ -16,7 +16,7 @@
shorthand="store"
default-class="org.apache.cocoon.components.store.MemoryStore"/>
- <role name="org.apache.cocoon.components.store.Store/Filesystem"
+ <role name="org.apache.cocoon.components.store.Store.Filesystem"
shorthand="repository"
default-class="org.apache.cocoon.components.store.FilesystemStore"/>
@@ -40,6 +40,10 @@
<role name="org.apache.cocoon.components.language.generator.ProgramGenerator"
shorthand="program-generator"
default-class="org.apache.cocoon.components.language.generator.ProgramGeneratorImpl"/>
+
+ <role name="org.apache.cocoon.components.jsp.JSPEngine"
+ shorthand="jsp-engine"
+ default-class="org.apache.cocoon.components.jsp.JSPEngineImpl"/>
<role name="org.apache.cocoon.components.classloader.ClassLoaderManager"
shorthand="classloader"
No revision
No revision
1.1.2.1 +42 -0 xml-cocoon2/src/org/apache/cocoon/components/jsp/Attic/JSPEngine.java
1.1.2.1 +308 -0 xml-cocoon2/src/org/apache/cocoon/components/jsp/Attic/JSPEngineImpl.java
No revision
No revision
1.5.2.7 +2 -2 xml-cocoon2/src/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java
Index: ProgramGeneratorImpl.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java,v
retrieving revision 1.5.2.6
retrieving revision 1.5.2.7
diff -u -r1.5.2.6 -r1.5.2.7
--- ProgramGeneratorImpl.java 2001/07/13 19:00:25 1.5.2.6
+++ ProgramGeneratorImpl.java 2001/07/16 13:23:35 1.5.2.7
@@ -48,7 +48,7 @@
/**
* The default implementation of <code>ProgramGenerator</code>
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Revision: 1.5.2.6 $ $Date: 2001/07/13 19:00:25 $
+ * @version CVS $Revision: 1.5.2.7 $ $Date: 2001/07/16 13:23:35 $
*/
public class ProgramGeneratorImpl extends AbstractLoggable
implements ProgramGenerator, Contextualizable, Composable, Configurable, ThreadSafe, Disposable {
@@ -118,7 +118,7 @@
public void configure(Configuration conf) throws ConfigurationException {
Parameters params = Parameters.fromConfiguration(conf);
this.autoReload = params.getParameterAsBoolean("auto-reload", autoReload);
- this.rootPackage = params.getParameter("root-package", "org.apache.cocoon");
+ this.rootPackage = params.getParameter("root-package", "org.apache.cocoon.www");
this.preload = params.getParameterAsBoolean("preload", preload);
}
No revision
No revision
1.6.2.6 +16 -218 xml-cocoon2/src/org/apache/cocoon/generation/JspGenerator.java
Index: JspGenerator.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/JspGenerator.java,v
retrieving revision 1.6.2.5
retrieving revision 1.6.2.6
diff -u -r1.6.2.5 -r1.6.2.6
--- JspGenerator.java 2001/07/16 11:44:30 1.6.2.5
+++ JspGenerator.java 2001/07/16 13:23:35 1.6.2.6
@@ -7,107 +7,71 @@
*****************************************************************************/
package org.apache.cocoon.generation;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.OutputStream;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
-import java.security.Principal;
-import java.util.Enumeration;
-import java.util.Locale;
+import java.io.IOException;
import java.util.Map;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpSession;
-import javax.servlet.Servlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.excalibur.pool.Recyclable;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.components.jsp.JSPEngine;
import org.apache.cocoon.components.parser.Parser;
import org.apache.cocoon.environment.http.HttpEnvironment;
import org.apache.cocoon.xml.AbstractXMLProducer;
import org.apache.cocoon.xml.XMLProducer;
-import org.apache.avalon.excalibur.pool.Recyclable;
import org.apache.log.Logger;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
* Allows JSP to be used as a generator. Builds upon the JSP servlet
- * functionallity - overrides the output method in order to pipe the
+ * functionality - overrides the output method in order to pipe the
* results into SAX events.
*
* @author <a href="mailto:dims@yahoo.com">Davanum Srinivas</a>
- * @version CVS $Revision: 1.6.2.5 $ $Date: 2001/07/16 11:44:30 $
+ * @version CVS $Revision: 1.6.2.6 $ $Date: 2001/07/16 13:23:35 $
*/
public class JspGenerator extends ServletGenerator implements Recyclable, Configurable {
- /** The Servlet Include Path */
- public static final String INC_SERVLET_PATH = "javax.servlet.include.servlet_path";
-
- /** The Default Servlet Class Name for Tomcat 3.X and 4.X*/
- public static final String DEFAULT_SERVLET_CLASS = "org.apache.jasper.servlet.JspServlet";
-
- /** Servlet Class Name */
- public String jspServletClass = DEFAULT_SERVLET_CLASS;
-
public void configure(Configuration conf) throws ConfigurationException
{
- if (conf != null)
- {
- Configuration child = conf.getChild("jsp-servlet-class");
- this.jspServletClass = child.getValue(DEFAULT_SERVLET_CLASS);
- getLogger().debug("JspServlet class is " + this.jspServletClass);
- }
}
/**
* Generate XML data from JSP.
*/
- public void generate() throws IOException, SAXException, ProcessingException {
+ public void generate() throws ProcessingException {
// ensure that we are running in a servlet environment
HttpServletResponse httpResponse =
(HttpServletResponse)this.objectModel.get(HttpEnvironment.HTTP_RESPONSE_OBJECT);
HttpServletRequest httpRequest =
(HttpServletRequest)this.objectModel.get(HttpEnvironment.HTTP_REQUEST_OBJECT);
- if (httpResponse == null || httpRequest == null) {
- throw new ProcessingException("HttpServletRequest or HttpServletResponse object not available");
+ ServletContext httpContext =
+ (ServletContext)this.objectModel.get(HttpEnvironment.HTTP_SERVLET_CONTEXT);
+
+ if (httpResponse == null || httpRequest == null || httpContext == null) {
+ throw new ProcessingException("HttpServletRequest or HttpServletResponse or ServletContext object not available");
}
+ JSPEngine engine = null;
Parser parser = null;
try {
- MyServletRequest request = new MyServletRequest(httpRequest, this.source);
- MyServletResponse response = new MyServletResponse(httpResponse);
-
- // start JSPServlet.
- Class clazz = Thread.currentThread().getContextClassLoader().loadClass(this.jspServletClass);
- Servlet jsp = (Servlet) clazz.newInstance();
- jsp.init(new config((ServletContext)this.objectModel.get(HttpEnvironment.HTTP_SERVLET_CONTEXT)));
- jsp.service(request, response);
-
- byte[] bytes = response.toByteArray();
+ engine = (JSPEngine)this.manager.lookup(JSPEngine.ROLE);
+ byte[] bytes = engine.executeJSP(this.source, httpRequest, httpResponse, httpContext);
ByteArrayInputStream input = new ByteArrayInputStream(bytes);
// pipe the results into the parser
parser = (Parser)this.manager.lookup(Parser.ROLE);
parser.setConsumer(this.xmlConsumer);
parser.parse(new InputSource(input));
-
- // clean up
- jsp.destroy();
} catch (ServletException e) {
getLogger().debug("ServletException in JspGenerator.generate()", e);
getLogger().debug("Embedded ServletException JspGenerator.generate()", e.getRootCause());
@@ -118,178 +82,12 @@
throw new ProcessingException("SAXException JspGenerator.generate()",e.getException());
} catch (IOException e) {
getLogger().debug("IOException in JspGenerator.generate()", e);
- throw e;
+ throw new ProcessingException("IOException JspGenerator.generate()",e);
} catch (Exception e) {
getLogger().debug("Exception in JspGenerator.generate()", e);
- throw new SAXException(e);
+ throw new ProcessingException("Exception JspGenerator.generate()",e);
} finally {
if (parser != null) this.manager.release(parser);
}
}
-
- /**
- * Stub implementation of Servlet Config
- */
- class config implements ServletConfig {
- ServletContext c;
- public config(ServletContext c) {this.c = c; }
-
- public String getServletName() { return "JspGenerator"; }
- public Enumeration getInitParameterNames()
- { return c.getInitParameterNames(); }
- public ServletContext getServletContext() { return c; }
- public String getInitParameter(String name) { return null; }
- }
-
- /**
- * Stub implementation of HttpServletRequest
- */
- class MyServletRequest implements HttpServletRequest {
- HttpServletRequest request;
- String jspFile;
-
- public MyServletRequest(HttpServletRequest request, String jspFile) {
- this.request = request;
- this.jspFile = jspFile;
- }
- public String getAuthType(){ return request.getAuthType(); }
- public Cookie[] getCookies(){ return request.getCookies(); }
- public long getDateHeader(String s){ return request.getDateHeader(s); }
- public String getHeader(String s){ return request.getHeader(s); }
- public Enumeration getHeaders(String s){ return request.getHeaders(s); }
- public Enumeration getHeaderNames(){ return request.getHeaderNames(); }
- public int getIntHeader(String s){ return request.getIntHeader(s); }
- public String getMethod(){ return request.getMethod(); }
- public String getPathInfo(){ return request.getPathInfo(); }
- public String getPathTranslated(){ return request.getPathTranslated(); }
- public String getContextPath(){ return request.getContextPath(); }
- public String getQueryString(){ return request.getQueryString(); }
- public String getRemoteUser(){ return request.getRemoteUser(); }
- public boolean isUserInRole(String s){ return request.isUserInRole(s); }
- public Principal getUserPrincipal(){ return request.getUserPrincipal(); }
- public String getRequestedSessionId(){ return request.getRequestedSessionId(); }
- public String getRequestURI(){ return request.getRequestURI(); }
- public String getServletPath(){ return request.getServletPath(); }
- public HttpSession getSession(boolean flag){ return request.getSession(flag); }
- public HttpSession getSession(){ return request.getSession(); }
- public boolean isRequestedSessionIdValid(){ return request.isRequestedSessionIdValid(); }
- public boolean isRequestedSessionIdFromCookie(){ return request.isRequestedSessionIdFromCookie(); }
- public boolean isRequestedSessionIdFromURL(){ return request.isRequestedSessionIdFromURL(); }
- public boolean isRequestedSessionIdFromUrl(){ return request.isRequestedSessionIdFromUrl(); }
- public Object getAttribute(String s){
- if(s != null && s.equals(INC_SERVLET_PATH))
- return jspFile;
- return request.getAttribute(s);
- }
- public Enumeration getAttributeNames(){ return request.getAttributeNames(); }
- public String getCharacterEncoding(){ return request.getCharacterEncoding(); }
- public int getContentLength(){ return request.getContentLength(); }
- public String getContentType(){ return request.getContentType(); }
- public ServletInputStream getInputStream() throws IOException{ return request.getInputStream(); }
- public String getParameter(String s){ return request.getParameter(s); }
- public Enumeration getParameterNames(){ return request.getParameterNames(); }
- public String[] getParameterValues(String s){ return request.getParameterValues(s); }
- public String getProtocol(){ return request.getProtocol(); }
- public String getScheme(){ return request.getScheme(); }
- public String getServerName(){ return request.getServerName(); }
- public int getServerPort(){ return request.getServerPort(); }
- public BufferedReader getReader()
- throws IOException{ return request.getReader(); }
- public String getRemoteAddr(){ return request.getRemoteAddr(); }
- public String getRemoteHost(){ return request.getRemoteHost(); }
- public void setAttribute(String s, Object obj){ request.setAttribute(s,obj); }
- public void removeAttribute(String s){ request.removeAttribute(s); }
- public Locale getLocale(){ return request.getLocale(); }
- public Enumeration getLocales(){ return request.getLocales(); }
- public boolean isSecure(){ return request.isSecure(); }
- public RequestDispatcher getRequestDispatcher(String s){ return request.getRequestDispatcher(s); }
- public String getRealPath(String s){ return request.getRealPath(s); }
- public java.lang.StringBuffer getRequestURL() { return null; }
- public java.util.Map getParameterMap() { return null; }
- public void setCharacterEncoding(java.lang.String $1) { }
- }
-
- /**
- * Stub implementation of HttpServletResponse
- */
- class MyServletResponse implements HttpServletResponse {
- HttpServletResponse response;
- MyServletOutputStream output;
-
- 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() {
- 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) {}
- public void setLocale(java.util.Locale loc) {}
- public ServletOutputStream getOutputStream() {
- 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); }
- public String encodeRedirectURL(String s){ return response.encodeRedirectURL(s); }
- public String encodeUrl(String s){ return response.encodeUrl(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)
- throws IOException{response.sendError(i); }
- public void sendRedirect(String s)
- throws IOException{response.sendRedirect(s); }
- public void setDateHeader(String s, long l){response.setDateHeader(s, l); }
- public void addDateHeader(String s, long l){response.addDateHeader(s, l); }
- public void setHeader(String s, String s1){response.setHeader(s, s1); }
- public void addHeader(String s, String s1){response.addHeader(s, s1); }
- 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); }
- public void setStatus(int i, String s){response.setStatus(i, s); }
- public void resetBuffer(){}
-
- public byte[] toByteArray() {
- return output.toByteArray();
- }
- }
-
- /**
- * Stub implementation of ServletOutputStream
- */
- class MyServletOutputStream extends ServletOutputStream {
- ByteArrayOutputStream output;
- PrintWriter writer;
-
- public MyServletOutputStream() {
- this.output = new ByteArrayOutputStream();
- this.writer = new PrintWriter(output, true);
- }
- public PrintWriter getWriter() {
- return this.writer;
- }
- public void write(byte[] b) throws java.io.IOException {
- output.write(b);
- }
- public void write(byte[] b, int off, int len) throws java.io.IOException {
- output.write(b,off,len);
- }
- public void write(int b) throws java.io.IOException {
- output.write(b);
- }
- public byte[] toByteArray() {
- this.writer.flush();
- byte[] bytes = output.toByteArray();
- return bytes;
- }
- }
}
No revision
No revision
1.7.2.12 +4 -0 xml-cocoon2/webapp/cocoon.xconf
Index: cocoon.xconf
===================================================================
RCS file: /home/cvs/xml-cocoon2/webapp/cocoon.xconf,v
retrieving revision 1.7.2.11
retrieving revision 1.7.2.12
diff -u -r1.7.2.11 -r1.7.2.12
--- cocoon.xconf 2001/07/13 20:49:11 1.7.2.11
+++ cocoon.xconf 2001/07/16 13:23:35 1.7.2.12
@@ -66,6 +66,10 @@
<parameter name="preload" value="true"/>
</program-generator>
+ <jsp-engine>
+ <parameter name="servlet-class" value="org.apache.jasper.servlet.JspServlet"/>
+ </jsp-engine>
+
<programming-languages>
<java-language name="java">
<!-- compiler parameter specifies which class to use to compile Java.
1.11.2.20 +1 -3 xml-cocoon2/webapp/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/xml-cocoon2/webapp/sitemap.xmap,v
retrieving revision 1.11.2.19
retrieving revision 1.11.2.20
diff -u -r1.11.2.19 -r1.11.2.20
--- sitemap.xmap 2001/07/16 13:14:27 1.11.2.19
+++ sitemap.xmap 2001/07/16 13:23:35 1.11.2.20
@@ -16,9 +16,7 @@
<map:generator name="script" src="org.apache.cocoon.generation.ScriptGenerator"/>
<map:generator name="velocity" src="org.apache.cocoon.generation.VelocityGenerator"/>
<map:generator name="html" src="org.apache.cocoon.generation.HTMLGenerator" label="content"/>
- <map:generator name="jsp" src="org.apache.cocoon.generation.JspGenerator">
- <jsp-servlet-class>org.apache.jasper.servlet.JspServlet</jsp-servlet-class>
- </map:generator>
+ <map:generator name="jsp" src="org.apache.cocoon.generation.JspGenerator"/>
<map:generator name="stream" src="org.apache.cocoon.generation.StreamGenerator"/>
</map:generators>
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org