Author: unico
Date: Mon Oct 18 10:24:18 2004
New Revision: 55023
Modified:
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
Log:
add a flag to the wrapper environment telling it whether to wrap the response
or not
because forwarding redirects from the treeprocessor must not be handled with a
wrapped response
Modified:
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
==============================================================================
---
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
(original)
+++
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
Mon Oct 18 10:24:18 2004
@@ -361,7 +361,7 @@
public ForwardEnvironmentWrapper(Environment env,
ComponentManager manager, String uri, Logger logger)
throws MalformedURLException {
- super(env, manager, uri, logger);
+ super(env, manager, uri, logger, false);
}
public void setStatus(int statusCode) {
Modified:
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
==============================================================================
---
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
(original)
+++
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
Mon Oct 18 10:24:18 2004
@@ -110,7 +110,7 @@
ComponentManager manager,
boolean rawMode)
throws MalformedURLException {
- this(env, requestURI, queryString, logger, null,
rawMode,env.getView());
+ this(env, requestURI, queryString, logger, null,
rawMode,env.getView(), true);
}
/**
@@ -125,17 +125,34 @@
boolean rawMode,
String view)
throws MalformedURLException {
- super(env.getURI(), view, env.getContext(), env.getAction());
- init(env, requestURI, queryString, logger, manager, rawMode, view);
+ this(env, requestURI, queryString, logger, manager, rawMode, view,
true);
}
- private void init(Environment env,
+ /**
+ * Constructs an EnvironmentWrapper object from a Request
+ * and Response objects
+ */
+ public EnvironmentWrapper(Environment env,
String requestURI,
String queryString,
Logger logger,
ComponentManager manager,
boolean rawMode,
- String view)
+ String view,
+ boolean wrapResponse)
+ throws MalformedURLException {
+ super(env.getURI(), view, env.getContext(), env.getAction());
+ init(env, requestURI, queryString, logger, manager, rawMode, view,
wrapResponse);
+ }
+
+ private void init(Environment env,
+ String requestURI,
+ String queryString,
+ Logger logger,
+ ComponentManager manager,
+ boolean rawMode,
+ String view,
+ boolean wrapResponse)
throws MalformedURLException {
// super(env.getURI(), view, env.getContext(), env.getAction());
this.rootContext = env.getRootContext();
@@ -164,13 +181,14 @@
queryString,
this,
rawMode);
- Response response = new
ResponseWrapper(ObjectModelHelper.getResponse(oldObjectModel));
this.objectModel.put(ObjectModelHelper.REQUEST_OBJECT, this.request);
- this.objectModel.put(ObjectModelHelper.RESPONSE_OBJECT, response);
-
+ if (wrapResponse) {
+ Response response = new
ResponseWrapper(ObjectModelHelper.getResponse(oldObjectModel));
+ this.objectModel.put(ObjectModelHelper.RESPONSE_OBJECT, response);
+ }
}
- public EnvironmentWrapper(Environment env, ComponentManager manager,
String uri, Logger logger) throws MalformedURLException {
+ public EnvironmentWrapper(Environment env, ComponentManager manager,
String uri, Logger logger, boolean wrapResponse) throws MalformedURLException
{
super(env.getURI(), env.getView(), env.getContext(), env.getAction());
// FIXME(SW): code stolen from SitemapSource. Factorize somewhere...
@@ -249,7 +267,7 @@
// this.protocol + "://" + requestURI :
// this.protocol + "://" + requestURI + "?" + queryString;
- this.init(env, requestURI, queryString, logger, manager, rawMode,
view);
+ this.init(env, requestURI, queryString, logger, manager, rawMode,
view, wrapResponse);
this.setURI(prefix, uri);
}