cziegeler 02/02/13 00:23:40
Modified: . changes.xml todo.xml
src/java/org/apache/cocoon/components/source
SitemapSource.java SourceHandlerImpl.java
src/java/org/apache/cocoon/environment/wrapper
EnvironmentWrapper.java RequestWrapper.java
Log:
Added cocoon:raw subprotocol
Revision Changes Path
1.105 +7 -1 xml-cocoon2/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/changes.xml,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -r1.104 -r1.105
--- changes.xml 9 Feb 2002 15:43:30 -0000 1.104
+++ changes.xml 13 Feb 2002 08:23:40 -0000 1.105
@@ -4,7 +4,7 @@
<!--
History of Cocoon changes
- $Id: changes.xml,v 1.104 2002/02/09 15:43:30 vgritsenko Exp $
+ $Id: changes.xml,v 1.105 2002/02/13 08:23:40 cziegeler Exp $
-->
<changes title="History of Changes">
@@ -31,6 +31,12 @@
</devs>
<release version="@version@" date="@date@">
+ <action dev="CZ" type="update">
+ Added subprotocol "raw" to the cocoon: protocol. When the subprotocol is
+ appended, the request parameters of the original request are not
+ forwarded to the internal pipelines. Suggested by
+ Michael Hartle [[EMAIL PROTECTED]].
+ </action>
<action dev="VG" type="add">
Added Pizza Java compiler as another alternative to Sun javac and Jikes.
</action>
1.24 +2 -8 xml-cocoon2/todo.xml
Index: todo.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/todo.xml,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- todo.xml 4 Feb 2002 02:37:16 -0000 1.23
+++ todo.xml 13 Feb 2002 08:23:40 -0000 1.24
@@ -4,11 +4,11 @@
<!--
History of Cocoon changes
- $Id: todo.xml,v 1.23 2002/02/04 02:37:16 vgritsenko Exp $
+ $Id: todo.xml,v 1.24 2002/02/13 08:23:40 cziegeler Exp $
-->
-<todo title="Things To Do for Apache Cocoon 2">
+<todo title="Things To Do">
<devs>
<!-- in strict alphabetical order -->
@@ -62,12 +62,6 @@
</actions>
<actions priority="medium">
- <action context="code">
- Add a possibility to control wether the parameters of a request should be
- passed to internal pipelines or not. Suggestions from
- Michael Hartle [[EMAIL PROTECTED]] is cocoon:raw:/URI.
- </action>
-
<action context="code">
Make all the examples which are currently commented out work again.
</action>
1.8 +8 -2
xml-cocoon2/src/java/org/apache/cocoon/components/source/SitemapSource.java
Index: SitemapSource.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/SitemapSource.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SitemapSource.java 11 Feb 2002 12:15:11 -0000 1.7
+++ SitemapSource.java 13 Feb 2002 08:23:40 -0000 1.8
@@ -93,7 +93,7 @@
* Description of a source which is defined by a pipeline.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Id: SitemapSource.java,v 1.7 2002/02/11 12:15:11 cziegeler Exp $
+ * @version CVS $Id: SitemapSource.java,v 1.8 2002/02/13 08:23:40 cziegeler Exp $
*/
public final class SitemapSource
@@ -148,11 +148,17 @@
this.manager = manager;
this.setLogger(logger);
+ boolean rawMode = false;
// remove the protocol
int protocolEnd = uri.indexOf(':');
if (protocolEnd != -1) {
uri = uri.substring(protocolEnd + 1);
+ // check for subprotocol
+ if (uri.startsWith("raw:")) {
+ uri = uri.substring(4);
+ rawMode = true;
+ }
}
// does the uri point to this sitemap or to the root sitemap?
@@ -190,7 +196,7 @@
"cocoon://" + requestURI :
"cocoon://" + requestURI + "?" + queryString;
- this.environment = new EnvironmentWrapper(env, requestURI, queryString,
logger);
+ this.environment = new EnvironmentWrapper(env, requestURI, queryString,
logger, rawMode);
this.uri = uri;
this.refresh();
}
1.5 +7 -7
xml-cocoon2/src/java/org/apache/cocoon/components/source/SourceHandlerImpl.java
Index: SourceHandlerImpl.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/SourceHandlerImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SourceHandlerImpl.java 4 Feb 2002 09:40:16 -0000 1.4
+++ SourceHandlerImpl.java 13 Feb 2002 08:23:40 -0000 1.5
@@ -83,7 +83,7 @@
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version $Id: SourceHandlerImpl.java,v 1.4 2002/02/04 09:40:16 cziegeler Exp $
+ * @version $Id: SourceHandlerImpl.java,v 1.5 2002/02/13 08:23:40 cziegeler Exp $
*/
public final class SourceHandlerImpl
extends AbstractLoggable
@@ -158,7 +158,7 @@
public void dispose() {
this.manager.release(this.urlFactory);
- Iterator iter = this.sourceFactories.values().iterator();
+ final Iterator iter = this.sourceFactories.values().iterator();
SourceFactory current;
while (iter.hasNext()) {
current = (SourceFactory) iter.next();
@@ -172,10 +172,10 @@
*/
public Source getSource(Environment environment, String location)
throws ProcessingException, MalformedURLException, IOException {
- int protocolEnd = location.indexOf(':');
+ final int protocolEnd = location.indexOf(':');
if (protocolEnd != -1) {
- String protocol = location.substring(0, protocolEnd);
- SourceFactory sourceFactory =
(SourceFactory)this.sourceFactories.get(protocol);
+ final String protocol = location.substring(0, protocolEnd);
+ final SourceFactory sourceFactory =
(SourceFactory)this.sourceFactories.get(protocol);
if (sourceFactory != null) {
return sourceFactory.getSource(environment, location);
}
@@ -190,8 +190,8 @@
*/
public Source getSource(Environment environment, URL base, String location)
throws ProcessingException, MalformedURLException, IOException {
- String protocol = base.getProtocol();
- SourceFactory sourceFactory =
(SourceFactory)this.sourceFactories.get(protocol);
+ final String protocol = base.getProtocol();
+ final SourceFactory sourceFactory =
(SourceFactory)this.sourceFactories.get(protocol);
if (sourceFactory != null) {
return sourceFactory.getSource(environment, base, location);
}
1.8 +18 -2
xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
Index: EnvironmentWrapper.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- EnvironmentWrapper.java 11 Feb 2002 13:29:23 -0000 1.7
+++ EnvironmentWrapper.java 13 Feb 2002 08:23:40 -0000 1.8
@@ -77,7 +77,7 @@
* contains a <code>RequestWrapper</code> object.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version $Id: EnvironmentWrapper.java,v 1.7 2002/02/11 13:29:23 cziegeler Exp $
+ * @version $Id: EnvironmentWrapper.java,v 1.8 2002/02/13 08:23:40 cziegeler Exp $
*/
public final class EnvironmentWrapper
extends AbstractEnvironment
@@ -116,6 +116,19 @@
String queryString,
Logger logger)
throws MalformedURLException {
+ this(env, requestURI, queryString, logger, false);
+ }
+
+ /**
+ * Constructs an EnvironmentWrapper object from a Request
+ * and Response objects
+ */
+ public EnvironmentWrapper(Environment env,
+ String requestURI,
+ String queryString,
+ Logger logger,
+ boolean rawMode)
+ throws MalformedURLException {
super(env.getURI(), env.getView(), env.getRootContext(), env.getAction());
this.setLogger(logger);
this.environment = env;
@@ -134,7 +147,10 @@
this.objectModel.put(key, oldObjectModel.get(key));
}
this.request = new
RequestWrapper(ObjectModelHelper.getRequest(oldObjectModel),
- requestURI, queryString, this);
+ requestURI,
+ queryString,
+ this,
+ rawMode);
this.objectModel.put(ObjectModelHelper.REQUEST_OBJECT, this.request);
this.objectModel.put("Internal-Request", "true");
1.5 +44 -21
xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/RequestWrapper.java
Index: RequestWrapper.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/wrapper/RequestWrapper.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- RequestWrapper.java 4 Feb 2002 09:45:07 -0000 1.4
+++ RequestWrapper.java 13 Feb 2002 08:23:40 -0000 1.5
@@ -70,7 +70,7 @@
* are different.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version $Id: RequestWrapper.java,v 1.4 2002/02/04 09:45:07 cziegeler Exp $
+ * @version $Id: RequestWrapper.java,v 1.5 2002/02/13 08:23:40 cziegeler Exp $
*/
public final class RequestWrapper implements Request {
@@ -86,6 +86,9 @@
/** The environment */
private Environment environment;
+ /** raw mode? **/
+ private boolean rawMode;
+
/**
* Constructor
*/
@@ -93,11 +96,23 @@
String requestURI,
String queryString,
Environment env) {
+ this(request, requestURI, queryString, env, false);
+ }
+
+ /**
+ * Constructor
+ */
+ public RequestWrapper(Request request,
+ String requestURI,
+ String queryString,
+ Environment env,
+ boolean rawMode) {
this.environment = env;
this.req = request;
this.queryString = queryString;
this.parameters = new RequestParameters(queryString);
- if (this.req.getQueryString() != null) {
+ this.rawMode = rawMode;
+ if (this.req.getQueryString() != null && this.rawMode == false) {
if (this.queryString == null)
this.queryString = this.req.getQueryString();
else
@@ -131,24 +146,28 @@
public String getParameter(String name) {
String value = this.parameters.getParameter(name);
- if (value == null)
+ if (value == null && this.rawMode == false)
return this.req.getParameter(name);
else
return value;
}
public Enumeration getParameterNames() {
- // put all parameter names into a set
- Set parameterNames = new HashSet();
- Enumeration names = this.parameters.getParameterNames();
- while (names.hasMoreElements()) {
- parameterNames.add(names.nextElement());
+ if ( this.rawMode == false ) {
+ // put all parameter names into a set
+ Set parameterNames = new HashSet();
+ Enumeration names = this.parameters.getParameterNames();
+ while (names.hasMoreElements()) {
+ parameterNames.add(names.nextElement());
+ }
+ names = this.req.getParameterNames();
+ while (names.hasMoreElements()) {
+ parameterNames.add(names.nextElement());
+ }
+ return new EnumerationFromIterator(parameterNames.iterator());
+ } else {
+ return this.parameters.getParameterNames();
}
- names = this.req.getParameterNames();
- while (names.hasMoreElements()) {
- parameterNames.add(names.nextElement());
- }
- return new EnumerationFromIterator(parameterNames.iterator());
}
final class EnumerationFromIterator implements Enumeration {
@@ -164,14 +183,18 @@
}
public String[] getParameterValues(String name) {
- String[] values = this.parameters.getParameterValues(name);
- String[] inherited = this.req.getParameterValues(name);
- if (inherited == null) return values;
- if (values == null) return inherited;
- String[] allValues = new String[values.length + inherited.length];
- System.arraycopy(values, 0, allValues, 0, values.length);
- System.arraycopy(inherited, 0, allValues, values.length, inherited.length);
- return allValues;
+ if ( this.rawMode == false) {
+ String[] values = this.parameters.getParameterValues(name);
+ String[] inherited = this.req.getParameterValues(name);
+ if (inherited == null) return values;
+ if (values == null) return inherited;
+ String[] allValues = new String[values.length + inherited.length];
+ System.arraycopy(values, 0, allValues, 0, values.length);
+ System.arraycopy(inherited, 0, allValues, values.length,
inherited.length);
+ return allValues;
+ } else {
+ return this.parameters.getParameterValues(name);
+ }
}
public String getProtocol() {
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]