You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by jm...@apache.org on 2001/12/04 06:00:39 UTC
cvs commit: jakarta-turbine-3/src/java/org/apache/turbine RunData.java Turbine.java TurbineConstants.java
jmcnally 01/12/03 21:00:39
Modified: src/java/org/apache/turbine RunData.java Turbine.java
TurbineConstants.java
Log:
added some code to allow the use of a RunData object for multiple invocations of
Turbine within a single request. the scenario involves a separate app calling
Turbine multiple times. It is important that to the callee app the process
appears as a normal request. One problem that needed to be solved was
Turbine's assumption that the request and response objects will not change.
Turbine can be called multiple times within one request cycle, but the actual
objects might change (using wrappers).
Revision Changes Path
1.5 +3 -1 jakarta-turbine-3/src/java/org/apache/turbine/RunData.java
Index: RunData.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/RunData.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- RunData.java 2001/10/14 01:03:16 1.4
+++ RunData.java 2001/12/04 05:00:39 1.5
@@ -79,7 +79,7 @@
* @author <a href="mailto:jon@clearink.com">Jon S. Stevens</a>
* @author <a href="mailto:bhoeneis@ee.ethz.ch">Bernie Hoeneisen</a>
* @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
- * @version $Id: RunData.java,v 1.4 2001/10/14 01:03:16 jon Exp $
+ * @version $Id: RunData.java,v 1.5 2001/12/04 05:00:39 jmcnally Exp $
*/
public interface RunData
{
@@ -459,4 +459,6 @@
public void setServerPort(int serverPort);
public void setScriptName(String scriptName);
public void setContextPath(String contextPath);
+ public void setRequest(HttpServletRequest req);
+ public void setResponse(HttpServletResponse res);
}
1.13 +20 -4 jakarta-turbine-3/src/java/org/apache/turbine/Turbine.java
Index: Turbine.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/Turbine.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Turbine.java 2001/11/13 19:45:08 1.12
+++ Turbine.java 2001/12/04 05:00:39 1.13
@@ -111,7 +111,7 @@
* @author <a href="mailto:krzewski@e-point.pl">Rafal Krzewski</a>
* @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
* @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
- * @version $Id: Turbine.java,v 1.12 2001/11/13 19:45:08 mikeh Exp $
+ * @version $Id: Turbine.java,v 1.13 2001/12/04 05:00:39 jmcnally Exp $
*/
public class Turbine
extends HttpServlet
@@ -246,7 +246,20 @@
// Get general RunData here...
// Perform turbine specific initialization below.
- data = runDataService.getRunData(req, res, getServletConfig());
+ // look for a RunData in the request, in the event this servlet
+ // was called from another servlet that already started
+ // processing the request
+ data = (RunData)req.getAttribute(RUNDATA_REQUEST_KEY);
+ if ( data == null )
+ {
+ data = runDataService.getRunData(req, res, getServletConfig());
+ }
+ else
+ {
+ data.setRequest(req);
+ data.setResponse(res);
+ }
+
// If this is the first invocation, perform some
// initialization. Certain services need RunData to initialize
@@ -323,8 +336,11 @@
{
}
- // Return the used RunData to the factory for recycling.
- runDataService.putRunData(data);
+ if ( req.getAttribute(RUNDATA_REQUEST_KEY) == null )
+ {
+ // Return the used RunData to the factory for recycling.
+ runDataService.putRunData(data);
+ }
}
}
1.9 +4 -0 jakarta-turbine-3/src/java/org/apache/turbine/TurbineConstants.java
Index: TurbineConstants.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/TurbineConstants.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TurbineConstants.java 2001/11/15 16:10:28 1.8
+++ TurbineConstants.java 2001/12/04 05:00:39 1.9
@@ -331,4 +331,8 @@
* configuration subset
*/
public static final String SYSTEM = "system";
+
+
+ public static final String RUNDATA_REQUEST_KEY =
+ "org.apache.turbine.RunData.request.key";
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>