Author: rich
Date: Thu Feb 17 00:16:50 2005
New Revision: 154138
URL: http://svn.apache.org/viewcvs?view=rev&rev=154138
Log:
Got rid of the majority of calls to getAttribute/setAttribute on the request,
and replaced them with calls to methods on a request wrapper created early in
the request process. Aside from the swell hard-type getters/setters, this
should boost performance, which is hurt by all the hashmap lookups. It will
take some testing under load to verify this.
DRT/BVT: netui (WinXP)
BB: self (linux)
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
(with props)
Removed:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/RequestValues.java
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObjectException.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/BackingClassMethodBinding.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultForwardRedirectHandler.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
incubator/beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedRequest.java
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/Controller.jpf
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
Thu Feb 17 00:16:50 2005
@@ -571,6 +571,12 @@
protected void process( HttpServletRequest request, HttpServletResponse
response )
throws IOException, ServletException
{
+ //
+ // First wrap the request with an object that contains request-scoped
values that our runtime uses. This
+ // is faster than sticking everything into attributes on the request
(then basically reading from a HashMap).
+ //
+ request = InternalUtils.wrapPageFlowRequest( request );
+
ServletContext servletContext = getServletContext();
String modulePath = PageFlowUtils.getModulePathForRelativeURI(
InternalUtils.getDecodedServletPath( request ) );
ModuleConfig registeredApp;
@@ -591,21 +597,8 @@
//
RequestUtils.selectModule( modulePath, request, servletContext );
ModuleConfig appConfig = getModuleConfig( request );
- assert appConfig == registeredApp;
- // TODO: after the above assert has existed for a while, remove
the appConfig variable entirely.
- // And take out the following null check. our getModuleConfig
(which calls ensureModuleConfig)
- // will put the right module into the ServletContext.
-
- //
- // Even if we've got a registered module, it may not be active
with Struts in the ServletContext.
- // This happens when there's a parse error in the module config.
- //
- if ( appConfig != null )
- {
- RequestProcessor requestProcessor = getRequestProcessor(
appConfig );
- requestProcessor.init( this, appConfig );
- requestProcessor.process( request, response );
- }
+ RequestProcessor requestProcessor = getRequestProcessor( appConfig
);
+ requestProcessor.process( request, response );
}
else
{
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowActionServlet.java
Thu Feb 17 00:16:50 2005
@@ -18,7 +18,7 @@
package org.apache.beehive.netui.pageflow;
import org.apache.beehive.netui.pageflow.internal.InternalConstants;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
+import org.apache.beehive.netui.pageflow.internal.PageFlowRequestWrapper;
import org.apache.beehive.netui.pageflow.handler.Handlers;
import org.apache.beehive.netui.pageflow.handler.FlowControllerHandlerContext;
import org.apache.beehive.netui.pageflow.handler.ForwardRedirectHandler;
@@ -182,7 +182,7 @@
StringBuilder sfActionURI = new StringBuilder( ga.getModulePath()
);
sfActionURI.append( '/' );
sfActionURI.append( ServletUtils.getBaseName( uri ) );
- RequestValues.setOriginalServletPath( request, uri );
+ PageFlowRequestWrapper.get( request ).setOriginalServletPath( uri
);
ForwardRedirectHandler frh = _handlers.getForwardRedirectHandler();
FlowControllerHandlerContext context = new
FlowControllerHandlerContext( request, response, null );
frh.forward( context, sfActionURI.toString() );
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
Thu Feb 17 00:16:50 2005
@@ -40,7 +40,7 @@
import org.apache.beehive.netui.pageflow.internal.AdapterManager;
import org.apache.beehive.netui.pageflow.internal.CachedSharedFlowRefInfo;
import org.apache.beehive.netui.pageflow.internal.ViewRenderer;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
+import org.apache.beehive.netui.pageflow.internal.PageFlowRequestWrapper;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.pageflow.annotations.Jpf;
@@ -898,7 +898,7 @@
{
if ( _returnActionViewRenderer != null )
{
- RequestValues.setViewRenderer( request, _returnActionViewRenderer
);
+ PageFlowRequestWrapper.get( request ).setViewRenderer(
_returnActionViewRenderer );
}
PerRequestState prevState = setPerRequestState( new PerRequestState(
request, response, mapping ) );
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObjectException.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObjectException.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObjectException.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObjectException.java
Thu Feb 17 00:16:50 2005
@@ -19,10 +19,7 @@
import org.apache.beehive.netui.util.Bundle;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
@@ -46,9 +43,9 @@
init( object );
}
- protected PageFlowManagedObjectException( PageFlowManagedObject object,
Throwable cause )
+ protected PageFlowManagedObjectException( PageFlowManagedObject object,
Throwable rootCause )
{
- super( cause );
+ super( rootCause );
init( object );
}
@@ -106,7 +103,7 @@
throws IOException
{
InternalUtils.sendError( _messageKeyPrefix, getMessageArgs(), request,
response, null,
- RequestValues.avoidDirectResponseOutput(
request ) );
+ InternalUtils.avoidDirectResponseOutput(
request ) );
}
/**
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
Thu Feb 17 00:16:50 2005
@@ -32,8 +32,8 @@
import org.apache.beehive.netui.pageflow.internal.FlowControllerAction;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.internal.JavaControlUtils;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
import org.apache.beehive.netui.pageflow.internal.LegacySettings;
+import org.apache.beehive.netui.pageflow.internal.PageFlowRequestWrapper;
import org.apache.beehive.netui.pageflow.scoping.ScopedRequest;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.pageflow.interceptor.Interceptor;
@@ -116,10 +116,6 @@
private static final String SCHEME_SECURE = "https";
private static final String REDIRECT_REQUEST_ATTRS_PREFIX = ATTR_PREFIX +
"requestAttrs:";
private static final String REDIRECT_REQUEST_ATTRS_PARAM = "forceRedirect";
- private static final String FORWARDED_BY_BUTTON_OVERRIDE_ATTR =
ATTR_PREFIX + "buttonForward";
- private static final String PROCESS_POPULATE_ALREADY_CALLED_ATTR =
ATTR_PREFIX + "processPopulateCalled";
- private static final String MULTIPART_REQUEST_WRAPPER_ATTR = ATTR_PREFIX +
"multipartWrapper";
- private static final String PAGEFLOW_SCOPED_FORM_NAME_ATTR = ATTR_PREFIX +
"pageFlowScopedFormName";
private static final String FLOW_CONTROLLER_ACTION_CLASSNAME =
FlowControllerAction.class.getName();
private Map< String, Class > _formBeanClasses = new HashMap< String, Class
>();
@@ -140,7 +136,7 @@
if ( className != null && className.equals(
FLOW_CONTROLLER_ACTION_CLASSNAME ) )
{
- FlowController fc = RequestValues.getCurrentFlowController(
request );
+ FlowController fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
assert fc != null : "no FlowController for request " +
request.getRequestURI();
assert fc.getClass().getName().equals(
actionMapping.getParameter() )
: "current page flow type " + fc.getClass().getName() + "
does not match type specified in "
@@ -223,7 +219,7 @@
{
if ( formMember != null )
{
- FlowController fc =
RequestValues.getCurrentFlowController( request );
+ FlowController fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
Field field = fc.getClass().getDeclaredField( formMember );
field.setAccessible( true );
return field;
@@ -253,7 +249,7 @@
// constructed, and shouldn't be instantiated anew or populated from
request
// parameters.
//
- ActionForm previousForm = RequestValues.getForwardedForm( request,
false );
+ ActionForm previousForm = InternalUtils.getForwardedFormBean( request,
false );
if ( previousForm != null )
{
@@ -265,7 +261,7 @@
{
try
{
- FlowController fc =
RequestValues.getCurrentFlowController( request );
+ FlowController fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
assert fc != null : "no FlowController in request " +
request.getRequestURI();
formMemberField.set( fc, InternalUtils.unwrapFormBean(
previousForm ) );
}
@@ -287,11 +283,11 @@
// First see if the previous action put a pageflow-scoped form in the
request. If so, remove it;
// we don't want a normal request-scoped action to use this
pageflow-scoped form.
//
- String pageFlowScopedFormName = ( String ) request.getAttribute(
PAGEFLOW_SCOPED_FORM_NAME_ATTR );
+ String pageFlowScopedFormName = PageFlowRequestWrapper.get( request
).getPageFlowScopedFormName();
if ( pageFlowScopedFormName != null )
{
request.removeAttribute( pageFlowScopedFormName );
- request.removeAttribute( PAGEFLOW_SCOPED_FORM_NAME_ATTR );
+ PageFlowRequestWrapper.get( request ).setPageFlowScopedFormName(
null );
}
//
@@ -301,7 +297,7 @@
{
try
{
- FlowController fc = RequestValues.getCurrentFlowController(
request );
+ FlowController fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
ActionForm form = InternalUtils.wrapFormBean(
formMemberField.get( fc ) );
if ( form == null ) // the pageflow hasn't filled the value yet
@@ -317,9 +313,9 @@
// want this form used by another action unless that action
uses the pageflow-scoped
// form.
//
- request.setAttribute( mapping.getAttribute(), form );
- request.setAttribute( PAGEFLOW_SCOPED_FORM_NAME_ATTR,
mapping.getAttribute() );
-
+ String formAttrName = mapping.getAttribute();
+ request.setAttribute( formAttrName, form );
+ PageFlowRequestWrapper.get( request
).setPageFlowScopedFormName( formAttrName );
return form;
}
catch ( IllegalAccessException e )
@@ -344,7 +340,7 @@
//
// If a previous action forwarded us a form, use that -- don't
populate it from request parameters.
//
- ActionForm previousForm = RequestValues.getForwardedForm( request,
true );
+ ActionForm previousForm = InternalUtils.getForwardedFormBean( request,
true );
if ( previousForm != null )
{
@@ -368,12 +364,9 @@
request.setAttribute( Globals.MULTIPART_KEY,
mapping.getMultipartClass() );
}
- boolean alreadyCalledInRequest = request.getAttribute(
PROCESS_POPULATE_ALREADY_CALLED_ATTR ) != null;
-
- if ( ! alreadyCalledInRequest )
- {
- request.setAttribute( PROCESS_POPULATE_ALREADY_CALLED_ATTR,
Boolean.TRUE );
- }
+ PageFlowRequestWrapper requestWrapper = PageFlowRequestWrapper.get(
request );
+ boolean alreadyCalledInRequest =
requestWrapper.isProcessPopulateAlreadyCalled();
+ if ( ! alreadyCalledInRequest )
requestWrapper.setProcessPopulateAlreadyCalled( true );
//
// If this is a forwarded request and the form-bean is null, don't
call to ProcessPopulate.
@@ -404,9 +397,10 @@
//
// TODO: performance?
//
- if ( request.getAttribute( FORWARDED_BY_BUTTON_OVERRIDE_ATTR ) == null
)
+ PageFlowRequestWrapper wrapper = PageFlowRequestWrapper.get( request );
+ if ( ! wrapper.isForwardedByButton() )
{
- request.setAttribute( FORWARDED_BY_BUTTON_OVERRIDE_ATTR,
Boolean.TRUE );
+ wrapper.setForwardedByButton( true );
//
// First, since we need access to request parameters here, process
a multipart request
@@ -444,6 +438,12 @@
private void processInternal( HttpServletRequest request,
HttpServletResponse response )
throws IOException, ServletException
{
+ //
+ // First wrap the request with an object that contains request-scoped
values that our runtime uses. This
+ // is faster than sticking everything into attributes on the request
(then basically reading from a HashMap).
+ //
+ request = InternalUtils.wrapPageFlowRequest( request );
+
String uri = InternalUtils.getDecodedServletPath( request );
ServletContext servletContext = getServletContext();
@@ -451,7 +451,7 @@
// Allow weblogic to do a security check on forwarded requests, if
that feature is enabled.
//
if ( LegacySettings.get( servletContext ).shouldDoSecureForwards()
- && RequestValues.isForwardedRequest( request ) )
+ && PageFlowRequestWrapper.get( request ).isForwardedRequest() )
{
//
// In some situations (namely, in scoped requests under portal),
the initial weblogic
@@ -552,11 +552,11 @@
if ( flowControllerClassName != null )
{
currentFlowController = getFlowController( requestContext,
flowControllerClassName );
- RequestValues.setCurrentFlowController( request,
currentFlowController );
+ PageFlowRequestWrapper.get( request
).setCurrentFlowController( currentFlowController );
}
else
{
- RequestValues.removeCurrentFlowController( request );
+ PageFlowRequestWrapper.get( request
).setCurrentFlowController( null );
}
}
catch ( ClassNotFoundException e )
@@ -867,24 +867,19 @@
*/
protected HttpServletRequest processMultipart( HttpServletRequest request )
{
- if ( ! "POST".equalsIgnoreCase( request.getMethod() ) )
- {
- return request;
- }
+ if ( ! "POST".equalsIgnoreCase( request.getMethod() ) ) return request;
String contentType = request.getContentType();
if ( contentType != null && contentType.startsWith(
"multipart/form-data" ) )
{
+ PageFlowRequestWrapper pageFlowRequestWrapper =
PageFlowRequestWrapper.get( request );
+
//
// We may have already gotten a multipart wrapper during
process(). If so, use that.
//
- MultipartRequestWrapper cachedWrapper =
- ( MultipartRequestWrapper ) request.getAttribute(
MULTIPART_REQUEST_WRAPPER_ATTR );
+ MultipartRequestWrapper cachedWrapper =
pageFlowRequestWrapper.getMultipartRequestWrapper();
- if ( cachedWrapper != null && cachedWrapper.getRequest() ==
request )
- {
- return cachedWrapper;
- }
+ if ( cachedWrapper != null && cachedWrapper.getRequest() ==
request ) return cachedWrapper;
try
{
@@ -901,7 +896,7 @@
}
MultipartRequestWrapper ret = new
RehydratedMultipartRequestWrapper( request );
- request.setAttribute( MULTIPART_REQUEST_WRAPPER_ATTR, ret );
+ pageFlowRequestWrapper.setMultipartRequestWrapper( ret );
return ret;
}
else
@@ -1020,7 +1015,7 @@
{
if ( ! TokenProcessor.getInstance().isTokenValid( request, true ) )
{
- FlowController currentFC =
RequestValues.getCurrentFlowController( request );
+ FlowController currentFC = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
String actionName = InternalUtils.getActionName( mapping );
DoubleSubmitException ex = new DoubleSubmitException(
actionName, currentFC );
@@ -1170,8 +1165,8 @@
public ActionMapping processMapping( HttpServletRequest request,
HttpServletResponse response, String path )
throws IOException
{
- FlowController fc = RequestValues.getCurrentFlowController( request );
- Object forwardedForm = InternalUtils.unwrapFormBean(
RequestValues.getForwardedForm( request, false ) );
+ FlowController fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
+ Object forwardedForm = InternalUtils.unwrapFormBean(
InternalUtils.getForwardedFormBean( request, false ) );
//
// First, see if this is a request for a shared flow action. The
shared flow's name (as declared by the
@@ -1267,10 +1262,10 @@
}
//
- // RequestValues.getOriginalServletPath returns the request URI we had
before trying to forward to an action
+ // PageFlowRequestWrapper.get( request ).getOriginalServletPath
returns the request URI we had before trying to forward to an action
// in a shared flow.
//
- String errorServletPath = RequestValues.getOriginalServletPath(
request );
+ String errorServletPath = PageFlowRequestWrapper.get( request
).getOriginalServletPath();
if ( errorServletPath == null
&& InternalUtils.getModuleConfig( GLOBALAPP_MODULE_CONTEXT_PATH,
getServletContext() ) != null )
@@ -1284,7 +1279,7 @@
// We haven't tried the deprecated Global.app fallback yet. Try
it now.
//
errorServletPath = InternalUtils.getDecodedServletPath( request );
- RequestValues.setOriginalServletPath( request, errorServletPath );
+ PageFlowRequestWrapper.get( request ).setOriginalServletPath(
errorServletPath );
String globalAppURI = GLOBALAPP_MODULE_CONTEXT_PATH + path +
ACTION_EXTENSION;
try
{
@@ -1332,7 +1327,7 @@
// Save the original request URI, so if the action fails
on the shared flow, too, then we can
// give an error message that includes *this* URI, not the
shared flow URI.
//
- RequestValues.setOriginalServletPath( request,
InternalUtils.getDecodedServletPath( request ) );
+ PageFlowRequestWrapper.get( request
).setOriginalServletPath( InternalUtils.getDecodedServletPath( request ) );
//
// Construct a URI that is [shared flow module path] +
[base action path] + [action-extension (.do)]
@@ -1377,7 +1372,7 @@
// message.
//
FlowController fc = PageFlowUtils.getCurrentPageFlow( request );
- if ( fc == null ) fc = RequestValues.getCurrentFlowController( request
);
+ if ( fc == null ) fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
try
{
@@ -1420,7 +1415,7 @@
}
// Check the current user against the list of required roles
- FlowController fc = RequestValues.getCurrentFlowController( request );
+ FlowController fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
FlowControllerHandlerContext context = new
FlowControllerHandlerContext( request, response, fc );
for ( int i = 0; i < roles.length; i++ )
@@ -1447,7 +1442,7 @@
//
LoginHandler loginHandler = _handlers.getLoginHandler();
String actionName = InternalUtils.getActionName( mapping );
- FlowController currentFC = RequestValues.getCurrentFlowController(
request );
+ FlowController currentFC = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
PageFlowException ex;
if ( loginHandler.getUserPrincipal( context ) == null )
@@ -1497,7 +1492,7 @@
{
ServletContext servletContext = getServletContext();
ForwardRedirectHandler fwdRedirectHandler =
_handlers.getForwardRedirectHandler();
- FlowController fc = RequestValues.getCurrentFlowController( request );
+ FlowController fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
FlowControllerHandlerContext context = new
FlowControllerHandlerContext( request, response, fc );
//
@@ -1679,7 +1674,7 @@
return;
}
- FlowController fc = RequestValues.getCurrentFlowController( request );
+ FlowController fc = PageFlowRequestWrapper.get( request
).getCurrentFlowController();
FlowControllerHandlerContext context = new
FlowControllerHandlerContext( request, response, fc );
if ( _legacySettings.shouldDoSecureForwards() )
@@ -1919,7 +1914,7 @@
//
// Run any before-action interceptors.
//
- if ( interceptors != null && !
RequestValues.isReturningFromActionIntercept( request ) )
+ if ( interceptors != null && ! PageFlowRequestWrapper.get( request
).isReturningFromActionIntercept() )
{
Interceptors.doPreIntercept( context, interceptors );
@@ -1939,7 +1934,7 @@
}
else
{
- RequestValues.setReturningFromActionIntercept( request, false
);
+ PageFlowRequestWrapper.get( request
).setReturningFromActionIntercept( false );
}
//
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
Thu Feb 17 00:16:50 2005
@@ -25,9 +25,9 @@
import org.apache.beehive.netui.pageflow.config.PageFlowActionFormBean;
import org.apache.beehive.netui.pageflow.internal.ActionResultImpl;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
import org.apache.beehive.netui.pageflow.internal.InternalConstants;
import org.apache.beehive.netui.pageflow.internal.AdapterManager;
+import org.apache.beehive.netui.pageflow.internal.PageFlowRequestWrapper;
import org.apache.beehive.netui.pageflow.scoping.ScopedRequest;
import org.apache.beehive.netui.pageflow.scoping.ScopedResponse;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
@@ -50,6 +50,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpServletRequestWrapper;
import java.io.PrintStream;
import java.net.URISyntaxException;
import java.util.Collections;
@@ -362,7 +363,7 @@
//
if ( mapping != null ) setOutputForms( mapping, fwd.getOutputForms(),
request, overwrite );
- RequestValues.setForwardedFormBean( request, fwd.getFirstOutputForm(
request ) );
+ InternalUtils.setForwardedFormBean( request, fwd.getFirstOutputForm(
request ) );
}
/**
@@ -386,7 +387,7 @@
setOutputForms( mapping, fwd.getOutputForms(), request );
}
- RequestValues.setForwardedFormBean( request, fwd.getFirstOutputForm(
request ) );
+ InternalUtils.setForwardedFormBean( request, fwd.getFirstOutputForm(
request ) );
}
/**
@@ -885,14 +886,15 @@
ScopedResponse scopedResponse = ScopedServletUtils.unwrapResponse(
response );
assert scopedRequest != null : request.getClass().getName();
assert scopedResponse != null : response.getClass().getName();
+ assert request instanceof HttpServletRequest :
request.getClass().getName();
if ( scopedRequest == null )
{
- throw new IllegalStateException( "request must be of type " +
ScopedRequest.class.getName() );
+ throw new IllegalArgumentException( "request must be of type " +
ScopedRequest.class.getName() );
}
if ( scopedResponse == null )
{
- throw new IllegalStateException( "response must be of type " +
ScopedResponse.class.getName() );
+ throw new IllegalArgumentException( "response must be of type " +
ScopedResponse.class.getName() );
}
ActionServlet as = InternalUtils.getActionServlet( context );
@@ -918,13 +920,13 @@
// In case the request was already forwarded once, clear out the
recorded forwarded-URI. This
// will allow us to tell whether processing the request actually
forwarded somewhere.
//
- assert request instanceof ScopedRequestImpl :
request.getClass().getName();
- ( ( ScopedRequestImpl ) request ).setForwardedURI( null );
+ scopedRequest.setForwardedURI( null );
//
- // Now process the request.
+ // Now process the request. We create a PageFlowRequestWrapper for
pageflow-specific request-scoped info.
//
- as.doGet( scopedRequest, scopedResponse ); // this just calls
process() -- same as doPost()
+ PageFlowRequestWrapper wrappedRequest =
InternalUtils.wrapPageFlowRequest( ( HttpServletRequest ) request );
+ as.doGet( wrappedRequest, scopedResponse ); // this just calls
process() -- same as doPost()
String returnURI;
@@ -944,7 +946,7 @@
if ( FileUtils.uriEndsWith( returnURI,
autoResolveExtensions[i] ) )
{
scopedRequest.doForward();
- return strutsLookup( context, scopedRequest,
scopedResponse, null, autoResolveExtensions );
+ return strutsLookup( context, wrappedRequest,
scopedResponse, null, autoResolveExtensions );
}
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/BackingClassMethodBinding.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/BackingClassMethodBinding.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/BackingClassMethodBinding.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/BackingClassMethodBinding.java
Thu Feb 17 00:16:50 2005
@@ -18,7 +18,6 @@
package org.apache.beehive.netui.pageflow.faces.internal;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
import org.apache.beehive.netui.pageflow.annotations.Jpf;
import javax.faces.el.MethodBinding;
@@ -108,7 +107,7 @@
Field field =
backingClass.getDeclaredField( formBeanMember );
field.setAccessible( true );
Object value = field.get( backingBean
);
- RequestValues.setForwardedFormBean(
httpRequest, InternalUtils.wrapFormBean( value ) );
+ InternalUtils.setForwardedFormBean(
httpRequest, InternalUtils.wrapFormBean( value ) );
}
catch ( NoSuchFieldException e )
{
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java
Thu Feb 17 00:16:50 2005
@@ -17,7 +17,6 @@
*/
package org.apache.beehive.netui.pageflow.faces.internal;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.struts.action.ActionForm;
@@ -26,7 +25,6 @@
import javax.faces.event.AbortProcessingException;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
-import javax.faces.component.UIComponent;
import javax.servlet.ServletRequest;
public class PageFlowActionListener
@@ -53,7 +51,7 @@
if ( request instanceof ServletRequest )
{
ActionForm wrappedFormBean = InternalUtils.wrapFormBean(
beanInstance );
- RequestValues.setForwardedFormBean( ( ServletRequest )
request, wrappedFormBean );
+ InternalUtils.setForwardedFormBean( ( ServletRequest )
request, wrappedFormBean );
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java
Thu Feb 17 00:16:50 2005
@@ -20,8 +20,7 @@
import org.apache.beehive.netui.pageflow.PageFlowUtils;
import org.apache.beehive.netui.pageflow.PageFlowController;
import org.apache.beehive.netui.pageflow.PreviousPageInfo;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
-import org.apache.beehive.netui.util.ServletUtils;
+import org.apache.beehive.netui.pageflow.internal.PageFlowRequestWrapper;
import org.apache.beehive.netui.util.FileUtils;
import javax.faces.application.ViewHandler;
@@ -69,7 +68,7 @@
if ( request instanceof HttpServletRequest )
{
httpRequest = ( HttpServletRequest ) request;
- PreviousPageInfo prevPageInfo = RequestValues.getPreviousPageInfo(
httpRequest, true );
+ PreviousPageInfo prevPageInfo = PageFlowRequestWrapper.get(
httpRequest ).getPreviousPageInfo( true );
if ( prevPageInfo != null )
{
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultActionForwardHandler.java
Thu Feb 17 00:16:50 2005
@@ -29,7 +29,6 @@
import org.apache.beehive.netui.pageflow.*;
import org.apache.beehive.netui.pageflow.handler.FlowControllerHandlerContext;
import org.apache.beehive.netui.pageflow.handler.ActionForwardHandler;
-import org.apache.beehive.netui.pageflow.handler.Handlers;
import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.script.common.ImplicitObjectUtil;
@@ -214,7 +213,7 @@
assert context.getResponse() instanceof HttpServletResponse : "don't
support ServletResponse currently.";
HttpServletRequest request = ( HttpServletRequest )
context.getRequest();
HttpServletResponse response = ( HttpServletResponse )
context.getResponse();
- ViewRenderer vr = RequestValues.getViewRenderer( request );
+ ViewRenderer vr = PageFlowRequestWrapper.get( request
).getViewRenderer();
if ( vr != null )
{
@@ -352,7 +351,7 @@
}
}
- RequestValues.setPreviousPageInfo( request, prevPageInfo );
+ PageFlowRequestWrapper.get( request ).setPreviousPageInfo(
prevPageInfo );
return retFwd;
}
@@ -516,7 +515,7 @@
ActionForm retForm = pageFlowFwd.getFirstOutputForm( request );
if ( retForm != null )
{
- RequestValues.setForwardedFormBean( request, retForm );
+ InternalUtils.setForwardedFormBean( request, retForm );
ImplicitObjectUtil.loadOutputFormBean( request,
InternalUtils.unwrapFormBean( retForm ) );
}
@@ -542,7 +541,7 @@
HttpServletRequest request = ( HttpServletRequest )
context.getRequest();
HttpServletResponse response = ( HttpServletResponse )
context.getResponse();
- RequestValues.setReturningFromActionIntercept( request, true );
+ PageFlowRequestWrapper.get( request ).setReturningFromActionIntercept(
true );
try
{
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultForwardRedirectHandler.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultForwardRedirectHandler.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultForwardRedirectHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultForwardRedirectHandler.java
Thu Feb 17 00:16:50 2005
@@ -66,7 +66,7 @@
context.getResponse().getClass().getName() + " does not
implement HttpServletResponse";
HttpServletRequest request = ( HttpServletRequest )
context.getRequest();
HttpServletResponse response = ( HttpServletResponse )
context.getResponse();
- int requestCount = RequestValues.getForwardedRequestCount( request );
+ int requestCount = PageFlowRequestWrapper.get( request
).getForwardedRequestCount();
//
// See if we've exceeded the maximum number of forwards.
@@ -97,12 +97,7 @@
//
// We're OK -- do the forward.
//
- RequestValues.setForwardedRequestCount( request, requestCount + 1 );
-
-
- //
- // The following is a replacement for RequestDispatcher.doForward().
- //
+ PageFlowRequestWrapper.get( request ).setForwardedRequestCount(
requestCount + 1 );
// Unwrap the multipart request, if there is one.
if ( request instanceof MultipartRequestWrapper )
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
Thu Feb 17 00:16:50 2005
@@ -42,6 +42,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpServletRequestWrapper;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.HashMap;
@@ -66,6 +67,8 @@
private static final String BINDING_UPDATE_ERRORS_ATTR = ATTR_PREFIX +
"bindingUpdateErrors";
private static final String SHARED_FLOW_CLASSNAME_ATTR = ATTR_PREFIX +
"sharedFlowClass";
private static final String SERVLET_CONTEXT_ATTR = ATTR_PREFIX +
"servletContext";
+ private static final String AVOID_DIRECT_RESPONSE_OUTPUT_ATTR =
ATTR_PREFIX + "_avoidDirectResponseOutput";
+ private static final String FORWARDED_FORMBEAN_ATTR = ATTR_PREFIX +
"forwardedForm";
/**
@@ -88,7 +91,7 @@
throws IOException
{
boolean prodMode = AdapterManager.getServletContainerAdapter(
servletContext ).isInProductionMode();
- boolean avoidDirectResponseOutput =
RequestValues.avoidDirectResponseOutput( request );
+ boolean avoidDirectResponseOutput = avoidDirectResponseOutput( request
);
if ( prodMode && ! avoidDirectResponseOutput && response instanceof
HttpServletResponse )
{
@@ -115,7 +118,7 @@
{
// TODO: the following null check will be unnecessary once the
deprecated
// FlowController.sendError(String, HttpServletResponse) is removed.
- boolean avoidDirectResponseOutput = request != null ?
RequestValues.avoidDirectResponseOutput( request ) : false;
+ boolean avoidDirectResponseOutput = request != null ?
avoidDirectResponseOutput( request ) : false;
sendError( messageKey, messageArgs, request, response, cause,
avoidDirectResponseOutput );
}
@@ -946,5 +949,77 @@
//
ModuleConfig config = ( ModuleConfig ) request.getAttribute(
Globals.MODULE_KEY );
return config != null ? config.getPrefix() :
PageFlowUtils.getModulePath( request );
+ }
+
+ /**
+ * Set the forwarded form. This overrides the auto-generated form created
by processActionForm
+ * and populated by processPopulate (in PageFlowRequestProcessor).
+ */
+ public static void setForwardedFormBean( ServletRequest request,
ActionForm form )
+ {
+ if ( form == null )
+ {
+ request.removeAttribute( FORWARDED_FORMBEAN_ATTR );
+ }
+ else
+ {
+ request.setAttribute( FORWARDED_FORMBEAN_ATTR, form );
+ }
+ }
+
+ public static ActionForm getForwardedFormBean( ServletRequest request,
boolean removeFromRequest )
+ {
+ ActionForm form = ( ActionForm ) request.getAttribute(
FORWARDED_FORMBEAN_ATTR );
+ if ( removeFromRequest ) request.removeAttribute(
FORWARDED_FORMBEAN_ATTR );
+ return form;
+ }
+
+ /**
+ * Tell whether a special request attribute was set, indicating that we
should avoid writing to the response (or
+ * setting response error codes).
+ */
+ public static boolean avoidDirectResponseOutput( ServletRequest request )
+ {
+ Boolean avoid = ( Boolean ) request.getAttribute(
AVOID_DIRECT_RESPONSE_OUTPUT_ATTR );
+ return avoid != null && avoid;
+ }
+
+ /**
+ * Set a special request attribute to indicate that we should avoid
writing to the response (or
+ * setting response error codes).
+ */
+ public static void setAvoidDirectResponseOutput( ServletRequest request )
+ {
+ request.setAttribute( AVOID_DIRECT_RESPONSE_OUTPUT_ATTR, Boolean.TRUE
);
+ }
+
+ public static PageFlowRequestWrapper wrapPageFlowRequest(
HttpServletRequest request )
+ {
+ PageFlowRequestWrapper retVal;
+ if ( request instanceof PageFlowRequestWrapper )
+ {
+ retVal = ( PageFlowRequestWrapper ) request;
+ }
+ else
+ {
+ retVal = new PageFlowRequestWrapper( request );
+ }
+
+ //
+ // If there's *any* PageFlowRequestWrapper up the chain of wrapped
requests, we must copy values from that.
+ //
+ ServletRequest j = retVal.getRequest();
+ while ( j instanceof HttpServletRequestWrapper )
+ {
+ if ( j instanceof PageFlowRequestWrapper )
+ {
+ retVal.initFrom( ( PageFlowRequestWrapper ) j );
+ break;
+ }
+
+ j = ( ( HttpServletRequestWrapper ) j ).getRequest();
+ }
+
+ return retVal;
}
}
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java?view=auto&rev=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
(added)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
Thu Feb 17 00:16:50 2005
@@ -0,0 +1,174 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.pageflow.internal;
+
+import org.apache.beehive.netui.pageflow.FlowController;
+import org.apache.beehive.netui.pageflow.PreviousPageInfo;
+import org.apache.struts.upload.MultipartRequestWrapper;
+
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.ServletRequest;
+
+public final class PageFlowRequestWrapper
+ extends HttpServletRequestWrapper
+{
+ private static final class State
+ {
+ public Integer forwardedRequestCount;
+ public String originalServletPath;
+ public FlowController currentFlowController;
+ public ViewRenderer viewRenderer;
+ public PreviousPageInfo previousPageInfo;
+ public boolean returningFromActionIntercept = false;
+ public String pageFlowScopedFormName;
+ public boolean processPopulateAlreadyCalled = false;
+ public boolean forwardedByButton = false;
+ public MultipartRequestWrapper multipartRequestWrapper;
+ }
+
+ private State _state = new State();
+
+ public static PageFlowRequestWrapper get( ServletRequest servletRequest )
+ {
+ assert servletRequest instanceof PageFlowRequestWrapper :
servletRequest.getClass().getName();
+ return ( PageFlowRequestWrapper ) servletRequest;
+ }
+
+ public void initFrom( PageFlowRequestWrapper wrapper )
+ {
+ _state = wrapper._state;
+ }
+
+ public PageFlowRequestWrapper( HttpServletRequest delegate )
+ {
+ super( delegate );
+ }
+
+ public boolean isForwardedRequest()
+ {
+ return _state.forwardedRequestCount != null;
+ }
+
+ public int getForwardedRequestCount()
+ {
+ return _state.forwardedRequestCount != null ?
_state.forwardedRequestCount : 0;
+ }
+
+ public void setForwardedRequestCount( int count )
+ {
+ _state.forwardedRequestCount = count;
+ }
+
+ public String getOriginalServletPath()
+ {
+ return _state.originalServletPath;
+ }
+
+ public void setOriginalServletPath( String originalServletPath )
+ {
+ _state.originalServletPath = originalServletPath;
+ }
+
+ public FlowController getCurrentFlowController()
+ {
+ return _state.currentFlowController;
+ }
+
+ public void setCurrentFlowController( FlowController currentFlowController
)
+ {
+ _state.currentFlowController = currentFlowController;
+ }
+
+ public ViewRenderer getViewRenderer()
+ {
+ return _state.viewRenderer;
+ }
+
+ public void setViewRenderer( ViewRenderer viewRenderer )
+ {
+ _state.viewRenderer = viewRenderer;
+ }
+
+ public PreviousPageInfo getPreviousPageInfo( boolean remove )
+ {
+ PreviousPageInfo retVal = _state.previousPageInfo;
+ if ( remove ) _state.previousPageInfo = null;
+ return retVal;
+ }
+
+ public void setPreviousPageInfo( PreviousPageInfo previousPageInfo )
+ {
+ _state.previousPageInfo = previousPageInfo;
+ }
+
+ public boolean isReturningFromActionIntercept()
+ {
+ return _state.returningFromActionIntercept;
+ }
+
+ public void setReturningFromActionIntercept( boolean
returningFromActionIntercept )
+ {
+ _state.returningFromActionIntercept = returningFromActionIntercept;
+ }
+
+ public HttpServletRequest getRequest()
+ {
+ return ( HttpServletRequest ) super.getRequest();
+ }
+
+ public String getPageFlowScopedFormName()
+ {
+ return _state.pageFlowScopedFormName;
+ }
+
+ public void setPageFlowScopedFormName( String pageFlowScopedFormName )
+ {
+ _state.pageFlowScopedFormName = pageFlowScopedFormName;
+ }
+
+ public boolean isProcessPopulateAlreadyCalled()
+ {
+ return _state.processPopulateAlreadyCalled;
+ }
+
+ public void setProcessPopulateAlreadyCalled( boolean
processPopulateAlreadyCalled )
+ {
+ _state.processPopulateAlreadyCalled = processPopulateAlreadyCalled;
+ }
+
+ public boolean isForwardedByButton()
+ {
+ return _state.forwardedByButton;
+ }
+
+ public void setForwardedByButton( boolean forwardedByButton )
+ {
+ _state.forwardedByButton = forwardedByButton;
+ }
+
+ public MultipartRequestWrapper getMultipartRequestWrapper()
+ {
+ return _state.multipartRequestWrapper;
+ }
+
+ public void setMultipartRequestWrapper( MultipartRequestWrapper
multipartRequestWrapper )
+ {
+ _state.multipartRequestWrapper = multipartRequestWrapper;
+ }
+}
Propchange:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
incubator/beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedRequest.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedRequest.java?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedRequest.java
(original)
+++
incubator/beehive/trunk/netui/src/scoping/org/apache/beehive/netui/pageflow/scoping/ScopedRequest.java
Thu Feb 17 00:16:50 2005
@@ -90,4 +90,9 @@
* @exclude
*/
public Map filterParameterMap( Map parameterMap );
+
+ /**
+ * Simply stores the URI that was being forwarded to.
+ */
+ public void setForwardedURI( String uri );
}
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/Controller.jpf
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/Controller.jpf?view=diff&r1=154137&r2=154138
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/Controller.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/Controller.jpf
Thu Feb 17 00:16:50 2005
@@ -4,7 +4,6 @@
import org.apache.beehive.netui.pageflow.Forward;
import org.apache.beehive.netui.pageflow.PageFlowController;
import org.apache.beehive.netui.pageflow.internal.ViewRenderer;
-import org.apache.beehive.netui.pageflow.internal.RequestValues;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.annotations.Jpf;