You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2001/12/13 17:56:53 UTC
cvs commit: xml-cocoon2/src/org/apache/cocoon/generation RequestGenerator.java
vgritsenko 01/12/13 08:56:53
Modified: src/org/apache/cocoon/generation Tag: cocoon_20_branch
RequestGenerator.java
Log:
Applied patch from MIYABE Tatsuhiko [miyabe@jzf.co.jp]
Added configuration-time parameters
Updated code to not use deprecated methods
Revision Changes Path
No revision
No revision
1.3.2.5 +58 -12 xml-cocoon2/src/org/apache/cocoon/generation/RequestGenerator.java
Index: RequestGenerator.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/generation/RequestGenerator.java,v
retrieving revision 1.3.2.4
retrieving revision 1.3.2.5
diff -u -r1.3.2.4 -r1.3.2.5
--- RequestGenerator.java 2001/10/11 08:56:12 1.3.2.4
+++ RequestGenerator.java 2001/12/13 16:56:53 1.3.2.5
@@ -8,45 +8,82 @@
package org.apache.cocoon.generation;
import org.apache.avalon.excalibur.pool.Recyclable;
+import org.apache.avalon.framework.parameters.Parameterizable;
+import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.cocoon.Constants;
+import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.environment.Request;
+import org.apache.cocoon.environment.SourceResolver;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
+import java.io.IOException;
import java.util.Enumeration;
import java.util.Iterator;
+import java.util.Map;
/**
+ * Generates an XML representation of the incoming request.
+ * <p>
+ * <b>Configuration options:</b>
+ * <dl>
+ * <dt> <i>container-encoding</i> (optional)
+ * <dd> The encoding used by container. Default value is ISO-8859-1.
+ * <dt> <i>form-encoding</i> (optional)
+ * <dd> The supposed encoding of the request parameter. Default is null.
+ * </dl>
+ * These configuration options supported in both declaration and use time.
*
* @author <a href="mailto:fumagalli@exoffice.com">Pierpaolo Fumagalli</a>
* (Apache Software Foundation, Exoffice Technologies)
* @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
- * @version CVS $Revision: 1.3.2.4 $ $Date: 2001/10/11 08:56:12 $
+ * @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
+ * @version CVS $Revision: 1.3.2.5 $ $Date: 2001/12/13 16:56:53 $
*/
-public class RequestGenerator extends ServletGenerator implements Recyclable {
+public class RequestGenerator extends ServletGenerator implements Parameterizable, Recyclable {
/** The URI of the namespace of this generator. */
private String URI="http://xml.apache.org/cocoon/requestgenerator/2.0";
+ private String global_container_encoding;
+ private String global_form_encoding;
+ private String container_encoding;
+ private String form_encoding;
+
+ public void parameterize(Parameters parameters)
+ throws ParameterException {
+ // super.parameterize(parameters);
+
+ global_container_encoding = parameters.getParameter("container-encoding", "ISO-8859-1");
+ global_form_encoding = parameters.getParameter("form-encoding", null);
+ }
+
+ public void setup(SourceResolver resolver, Map objectModel, String src, Parameters par)
+ throws ProcessingException, SAXException, IOException {
+ super.setup(resolver, objectModel, src, par);
+
+ container_encoding = par.getParameter("container-encoding", global_container_encoding);
+ form_encoding = par.getParameter("form-encoding", global_form_encoding);
+ }
/**
* Generate XML data.
*/
public void generate()
throws SAXException {
-
Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT);
this.contentHandler.startDocument();
this.contentHandler.startPrefixMapping("",URI);
AttributesImpl attr=new AttributesImpl();
- this.attribute(attr,"target",request.getRequestURI());
+ this.attribute(attr,"target", request.getRequestURI());
this.attribute(attr,"source", (this.source != null ? this.source : ""));
- this.start("request",attr);
+ this.start("request", attr);
this.data("\n");
this.data("\n");
this.data(" ");
- this.start("requestHeaders",attr);
+ this.start("requestHeaders", attr);
this.data("\n");
Enumeration headers=request.getHeaderNames();
while (headers.hasMoreElements()) {
@@ -77,7 +114,17 @@
if (values!=null) for (int x=0; x<values.length; x++) {
this.data(" ");
this.start("value",attr);
- this.data(values[x]);
+ if (form_encoding != null) {
+ try {
+ this.data(new String(values[x].getBytes(container_encoding),
+ form_encoding));
+ } catch(java.io.UnsupportedEncodingException uee) {
+ throw new RuntimeException("Unsupported Encoding Exception: " +
+ uee.getMessage());
+ }
+ } else {
+ this.data(values[x]);
+ }
this.end("value");
this.data("\n");
}
@@ -93,13 +140,12 @@
this.data(" ");
this.start("configurationParameters",attr);
this.data("\n");
- Iterator confparams=super.parameters.getParameterNames();
- while (confparams.hasNext()) {
- String parameter=(String)confparams.next();
- this.attribute(attr,"name",parameter);
+ String[] confparams=super.parameters.getNames();
+ for (int i=0; i<confparams.length; i++) {
+ this.attribute(attr, "name", confparams[i]);
this.data(" ");
this.start("parameter",attr);
- this.data(super.parameters.getParameter(parameter,""));
+ this.data(super.parameters.getParameter(confparams[i], ""));
this.end("parameter");
this.data("\n");
}
----------------------------------------------------------------------
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