cziegeler 02/01/10 07:27:37 Modified: src/java/org/apache/cocoon/components/hsqldb ServerImpl.java src/java/org/apache/cocoon/components/jsp JSPEngineImpl.java JSPEngineImplNamedDispatcherInclude.java JSPEngineImplWLS.java Log: Cleaning up lifecycle interfaces and using Parameterizable instead of Configurable Revision Changes Path 1.2 +16 -13 xml-cocoon2/src/java/org/apache/cocoon/components/hsqldb/ServerImpl.java Index: ServerImpl.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/hsqldb/ServerImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ServerImpl.java 3 Jan 2002 12:31:09 -0000 1.1 +++ ServerImpl.java 10 Jan 2002 15:27:37 -0000 1.2 @@ -8,14 +8,12 @@ package org.apache.cocoon.components.hsqldb; import org.apache.avalon.framework.activity.Startable; -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.context.Context; import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.context.Contextualizable; import org.apache.avalon.framework.logger.AbstractLoggable; import org.apache.avalon.framework.parameters.Parameters; +import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.thread.ThreadSafe; import org.apache.cocoon.Constants; @@ -28,11 +26,15 @@ * * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> */ -public class ServerImpl extends AbstractLoggable implements Server, Configurable, - Contextualizable, - ThreadSafe, - Runnable, - Startable { +public class ServerImpl +extends AbstractLoggable +implements Server, + Parameterizable, + Contextualizable, + ThreadSafe, + Runnable, + Startable { + /** Arguments for running the server */ private String arguments[] = new String[8]; @@ -48,17 +50,18 @@ * <LI>trace = print JDBC trace messages</LI> * </UL> */ - public void configure(Configuration conf) throws ConfigurationException { - this.getLogger().debug("Configure ServerImpl"); - - Parameters params = Parameters.fromConfiguration(conf); - + public void parameterize(Parameters params) { arguments[0] = "-port"; arguments[1] = params.getParameter("port","9002"); arguments[2] = "-silent"; arguments[3] = params.getParameter("silent","true"); arguments[4] = "-trace"; arguments[5] = params.getParameter("trace","false"); + if ( this.getLogger().isDebugEnabled() == true ) { + this.getLogger().debug("Configure ServerImpl with port: " + arguments[1] + +", silent: " + arguments[3] + +", trace: " +arguments[5]); + } } /** Contextualize this class */ 1.2 +4 -39 xml-cocoon2/src/java/org/apache/cocoon/components/jsp/JSPEngineImpl.java Index: JSPEngineImpl.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/jsp/JSPEngineImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- JSPEngineImpl.java 3 Jan 2002 12:31:09 -0000 1.1 +++ JSPEngineImpl.java 10 Jan 2002 15:27:37 -0000 1.2 @@ -7,17 +7,8 @@ *****************************************************************************/ package org.apache.cocoon.components.jsp; -import org.apache.avalon.framework.activity.Disposable; -import org.apache.avalon.framework.component.ComponentException; -import org.apache.avalon.framework.component.ComponentManager; -import org.apache.avalon.framework.component.Composable; -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.context.Context; -import org.apache.avalon.framework.context.ContextException; -import org.apache.avalon.framework.context.Contextualizable; import org.apache.avalon.framework.logger.AbstractLoggable; +import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.thread.ThreadSafe; @@ -41,10 +32,10 @@ * functionality - overrides the output method and returns the byte(s). * * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:09 $ + * @version CVS $Revision: 1.2 $ $Date: 2002/01/10 15:27:37 $ */ public class JSPEngineImpl extends AbstractLoggable - implements JSPEngine, Contextualizable, Composable, Configurable, ThreadSafe, Disposable { + implements JSPEngine, Parameterizable, ThreadSafe { /** The Servlet Include Path */ public static final String INC_SERVLET_PATH = "javax.servlet.include.servlet_path"; @@ -55,35 +46,16 @@ /** Servlet Class Name */ public String jspServletClass = DEFAULT_SERVLET_CLASS; - /** The component manager */ - protected ComponentManager manager = null; - - /** Contextualize this class */ - public void contextualize(Context context) throws ContextException { - } - /** * Set the sitemap-provided configuration. * @param conf The configuration information * @exception ConfigurationException */ - public void configure(Configuration conf) throws ConfigurationException { - Parameters params = Parameters.fromConfiguration(conf); + public void parameterize(Parameters params) { this.jspServletClass = params.getParameter("servlet-class", DEFAULT_SERVLET_CLASS); } /** - * Set the global component manager. This metod also sets the - * <code>ComponentSelector</code> used as language factory for both markup and programming languages. - * @param manager The global component manager - */ - public void compose(ComponentManager manager) throws ComponentException { - if ((this.manager == null) && (manager != null)) { - this.manager = manager; - } - } - - /** * execute the JSP and return the output * * @param context The Servlet Context @@ -114,13 +86,6 @@ return bytes; } - - /** - * dispose - */ - public void dispose() { - - } /** * Stub implementation of Servlet Config 1.2 +15 -52 xml-cocoon2/src/java/org/apache/cocoon/components/jsp/JSPEngineImplNamedDispatcherInclude.java Index: JSPEngineImplNamedDispatcherInclude.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/jsp/JSPEngineImplNamedDispatcherInclude.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- JSPEngineImplNamedDispatcherInclude.java 3 Jan 2002 12:31:09 -0000 1.1 +++ JSPEngineImplNamedDispatcherInclude.java 10 Jan 2002 15:27:37 -0000 1.2 @@ -7,20 +7,10 @@ *****************************************************************************/ package org.apache.cocoon.components.jsp; -import org.apache.avalon.framework.activity.Disposable; -import org.apache.avalon.framework.component.ComponentException; -import org.apache.avalon.framework.component.ComponentManager; -import org.apache.avalon.framework.component.Composable; -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.context.Context; -import org.apache.avalon.framework.context.ContextException; -import org.apache.avalon.framework.context.Contextualizable; import org.apache.avalon.framework.logger.AbstractLoggable; +import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.thread.ThreadSafe; -import org.apache.cocoon.components.parser.Parser; import org.xml.sax.SAXException; import javax.servlet.*; @@ -35,21 +25,21 @@ /** * Allows JSP to be used as a generator. Builds upon the JSP servlet - * functionality - overrides the output method and returns the byte(s). + * functionality - overrides the output method and returns the byte(s). * This implementation includes via ServletContext.getNamedDispatcher() the * jsp-response. This a generic implementation. * * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> * @author <a href="mailto:[EMAIL PROTECTED]">Bernhard Huber</a> - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:09 $ + * @version CVS $Revision: 1.2 $ $Date: 2002/01/10 15:27:37 $ */ -public class JSPEngineImplNamedDispatcherInclude extends AbstractLoggable - implements JSPEngine, Contextualizable, Composable, Configurable, ThreadSafe, Disposable { +public class JSPEngineImplNamedDispatcherInclude extends AbstractLoggable + implements JSPEngine, Parameterizable, ThreadSafe { /** The Servlet Include Path */ public static final String INC_SERVLET_PATH = "javax.servlet.include.servlet_path"; - /** config-parameter name for specifying the jsp servlet-name. + /** config-parameter name for specifying the jsp servlet-name. ie. servlet-name */ public static final String CONFIG_SERVLET_NAME = "servlet-name"; @@ -61,53 +51,33 @@ */ String servletName = DEFAULT_SERVLET_NAME; - /** The component manager */ - protected ComponentManager manager = null; - - /** Contextualize this class */ - public void contextualize(Context context) throws ContextException { - } - /** - * Set the sitemap-provided configuration. + * Set the sitemap-provided configuration. * @param conf The configuration information - * @exception ConfigurationException + * @exception ConfigurationException */ - public void configure(Configuration conf) throws ConfigurationException { - Parameters params = Parameters.fromConfiguration(conf); + public void parameterize(Parameters params) { this.servletName = params.getParameter(CONFIG_SERVLET_NAME, DEFAULT_SERVLET_NAME); } /** - * Set the global component manager. This metod also sets the - * <code>ComponentSelector</code> used as language factory for both markup and programming languages. - * @param manager The global component manager - */ - public void compose(ComponentManager manager) throws ComponentException { - if ((this.manager == null) && (manager != null)) { - this.manager = manager; - } - } - - /** * execute the JSP and return the output * * @param context The Servlet Context - * @exception IOException - * @exception ServletException - * @exception SAXException - * @exception Exception + * @exception IOException + * @exception ServletException + * @exception SAXException + * @exception Exception */ - public byte[] executeJSP(String url, HttpServletRequest httpRequest, HttpServletResponse httpResponse, ServletContext context) + public byte[] executeJSP(String url, HttpServletRequest httpRequest, HttpServletResponse httpResponse, ServletContext context) throws IOException, ServletException, SAXException, Exception { - Parser parser = null; byte[] bytes = null; MyServletRequest request = new MyServletRequest(httpRequest, url); MyServletResponse response = new MyServletResponse(httpResponse); - // start JSPServlet. + // start JSPServlet. javax.servlet.RequestDispatcher rd = context.getNamedDispatcher( servletName ); if (rd != null) { rd.include( request, response ); @@ -121,13 +91,6 @@ } - /** - * dispose - */ - public void dispose() { - - } - /** * Stub implementation of HttpServletRequest */ 1.2 +33 -70 xml-cocoon2/src/java/org/apache/cocoon/components/jsp/JSPEngineImplWLS.java Index: JSPEngineImplWLS.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/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 3 Jan 2002 12:31:09 -0000 1.1 +++ JSPEngineImplWLS.java 10 Jan 2002 15:27:37 -0000 1.2 @@ -7,20 +7,10 @@ *****************************************************************************/ package org.apache.cocoon.components.jsp; -import org.apache.avalon.framework.activity.Disposable; -import org.apache.avalon.framework.component.ComponentException; -import org.apache.avalon.framework.component.ComponentManager; -import org.apache.avalon.framework.component.Composable; -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.context.Context; -import org.apache.avalon.framework.context.ContextException; -import org.apache.avalon.framework.context.Contextualizable; import org.apache.avalon.framework.logger.AbstractLoggable; import org.apache.avalon.framework.parameters.Parameters; +import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.thread.ThreadSafe; -import org.apache.cocoon.components.parser.Parser; import org.xml.sax.SAXException; import javax.servlet.ServletContext; @@ -37,19 +27,19 @@ * functionality - overrides the output method and returns the byte(s). * This implementation includes via ServletContext.getNamedDispatcher() the * jsp-response. This a WLS-specific implementation. - * This code contain WLS 5.1 specific classes, and uses WLS internal classes. + * This code contain WLS 5.1 specific classes, and uses WLS internal classes. * * @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a> * @author <a href="mailto:[EMAIL PROTECTED]">Bernhard Huber</a> - * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:09 $ + * @version CVS $Revision: 1.2 $ $Date: 2002/01/10 15:27:37 $ */ -public class JSPEngineImplWLS extends AbstractLoggable - implements JSPEngine, Contextualizable, Composable, Configurable, ThreadSafe, Disposable { +public class JSPEngineImplWLS extends AbstractLoggable + implements JSPEngine, Parameterizable, ThreadSafe { /** The Servlet Include Path */ public static final String INC_SERVLET_PATH = "javax.servlet.include.servlet_path"; - /** config-parameter name for specifying the jsp servlet-name. + /** config-parameter name for specifying the jsp servlet-name. ie. servlet-name */ public static final String CONFIG_SERVLET_NAME = "servlet-name"; @@ -61,47 +51,27 @@ */ String servletName = DEFAULT_SERVLET_NAME; - /** The component manager */ - protected ComponentManager manager = null; - - /** Contextualize this class */ - public void contextualize(Context context) throws ContextException { - } - /** - * Set the sitemap-provided configuration. + * Set the sitemap-provided configuration. * @param conf The configuration information - * @exception ConfigurationException + * @exception ConfigurationException */ - public void configure(Configuration conf) throws ConfigurationException { - Parameters params = Parameters.fromConfiguration(conf); + public void parameterize(Parameters params) { this.servletName = params.getParameter( CONFIG_SERVLET_NAME, DEFAULT_SERVLET_NAME); } /** - * Set the global component manager. This metod also sets the - * <code>ComponentSelector</code> used as language factory for both markup and programming languages. - * @param manager The global component manager - */ - public void compose(ComponentManager manager) throws ComponentException { - if ((this.manager == null) && (manager != null)) { - this.manager = manager; - } - } - - /** * execute the JSP and return the output * * @param context The Servlet Context - * @exception IOException - * @exception ServletException - * @exception SAXException - * @exception Exception + * @exception IOException + * @exception ServletException + * @exception SAXException + * @exception Exception */ - public byte[] executeJSP(String url, HttpServletRequest httpRequest, HttpServletResponse httpResponse, ServletContext context) + public byte[] executeJSP(String url, HttpServletRequest httpRequest, HttpServletResponse httpResponse, ServletContext context) throws IOException, ServletException, SAXException, Exception { - Parser parser = null; byte[] bytes = null; HttpServletRequest request = httpRequest; @@ -110,12 +80,12 @@ MyWLSResponse response = new MyWLSResponse( httpResponse, (weblogic.servlet.internal.ServletContextImpl)context ); - // start JSPServlet. + // start JSPServlet. javax.servlet.RequestDispatcher rd = context.getNamedDispatcher( servletName ); if (rd != null) { rd.include( request, response ); response.flushBuffer(); - + getLogger().debug( "JSP response: " + response.getResponseContentAsString() ); bytes = response.getResponseContentAsByteArray(); @@ -129,22 +99,15 @@ return bytes; } - /** - * dispose - */ - public void dispose() { - - } - - /** WLS jsp servlet hack. + /** WLS jsp servlet hack. <p> - Here WLS specific classes are used. + Here WLS specific classes are used. </p> <p> - The weblogic.servlet.JSPServlet, and + The weblogic.servlet.JSPServlet, and weblogic.servlet.internal.RequesDispatcherImpl expects objects weblogic.servlet.internal.ServletOutputStreamImpl, - and weblogic.servlet.internal.ServletResponseImpl. + and weblogic.servlet.internal.ServletResponseImpl. Thus we have to use <i>exactly</i> these classes! </p> */ @@ -153,31 +116,31 @@ , cookies, etc generated inside the jsp-response */ HttpServletResponse response; - + ByteArrayOutputStream baos; weblogic.servlet.internal.ServletOutputStreamImpl wlsOutputStream; - + public MyWLSResponse( HttpServletResponse response, weblogic.servlet.internal.ServletContextImpl servlet_context ) { - + super( servlet_context ); this.response = response; - + baos = new ByteArrayOutputStream(); - wlsOutputStream = + wlsOutputStream = new weblogic.servlet.internal.ServletOutputStreamImpl( baos ); this.setOutputStream( wlsOutputStream ); wlsOutputStream.setImpl( this ); } - + /** flush response content. */ public void flushBuffer() throws IOException { super.flushBuffer(); baos.flush(); } - + /** return response as byte array. <p>Note: http-headers are skipped. More exactly all chars until first '<?xml', or '\r\n\r\n< sequence. This may be a bit heuristic. @@ -188,12 +151,12 @@ */ public byte[] getResponseContentAsByteArray() { byte[] baos_arr = baos.toByteArray(); - + int baos_arr_length = baos_arr.length; int i = 0; boolean matched = false; final int I_MAX = 8192; // check only header - + final byte MATCH_0d = (byte)'\r'; final byte MATCH_0a = (byte)'\n'; @@ -202,9 +165,9 @@ final byte MATCH_THIRD = (byte)'x'; final byte MATCH_FOURTH = (byte)'m'; final byte MATCH_FIFTH = (byte)'l'; - + final int MATCH_COUNT = 5; - + while (i + MATCH_COUNT < baos_arr_length && i < I_MAX && !matched) { matched = (baos_arr[i] == MATCH_FIRST && baos_arr[i+1] == MATCH_SECOND && @@ -223,14 +186,14 @@ } if (matched && i > 0) { int baos_arr_new_length = baos_arr_length - i; - + byte []new_baos_arr = new byte[baos_arr_new_length]; System.arraycopy( baos_arr, i, new_baos_arr, 0, baos_arr_new_length ); baos_arr = new_baos_arr; } return baos_arr; } - + public String getResponseContentAsString() { String s = new String( getResponseContentAsByteArray() ); return s;
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]