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]