You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by Apache Wiki <wi...@apache.org> on 2005/12/20 01:13:36 UTC

[Beehive Wiki] Update of "Design/NetUIRequestProcess" by RichFeit

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Beehive Wiki" for change notification.

The following page has been changed by RichFeit:
http://wiki.apache.org/beehive/Design/NetUIRequestProcess

The comment on the change is:
Start of a NetUI Request Process design doc.

New page:
= NetUI Request Process =
== Introduction ==


{{{PageFlowActionServlet.process()}}}/{{{AutoRegisterActionServlet.process()}}}:
 * Reinitialize reloadable class handler (bouncing a classloader if necessary).  ''This is for a "reloadable page flows without redeploy" feature that isn't fully implemented/supported currently.''
 * Look up the appropriate Struts module based on the request module path (e.g., "/foo/bar" for "/foo/bar/someaction.do") and ''register the Struts module if it isn't already registered''.  Automatic module registration is where we look for the appropriate file under /_pageflow in the webapp classloader.

{{{PageFlowRequestProcessor.process()}}}:
 * Run request interceptors (see [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptorContext.html RequestInterceptorContext]).
 * Call back to the event reporter in the Servlet container adapter (see [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/ServletContainerAdapter.html ServletContainerAdapter]).
 * Initialize the Controls context.
 * Register the default URL rewriter

{{{PageFlowRequestProcessor.processInternal()}}}:
 * Create a request wrapper that contains request-scoped values that our runtime uses.  This is faster than sticking everything into attributes on the request.  From this point on, all request-scoped flags/values are accessed through this.  See [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/internal/PageFlowRequestWrapper.html PageFlowRequestWrapper].
 * If this is a forwarded request, and if the "secure forwards" setting is enabled in beehive-netui-config.xml, allow the [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/ServletContainerAdapter.html ServletContainerAdapter] to do a security redirect to switch to https, if necessary.
 * If the action was overridden by a request parameter (this is the mechanism for specifying the {{{action}}} on {{{<netui:button>}}}, forward to the appropriate action URI.
 * If the request is for a page flow URI (.jpf), forward to the page flow's begin action.
 * Get the Flow``Controller for this request (page flow or shared flow), and cache it in the request.
 * Look up or create any shared flows that are needed for the current request (based on the current page flow and any global shared flows defined in beehive-netui-config.xml.  {{{ImplicitObjectUtil.loadSharedFlow}}} puts a Map of shared flows (name -> instance) into the request at the right spot.
 * Remove any current Java``Server Faces backing bean.  We're in action processing now, and the user is no longer interacting with a JSF page.
 * Set up all the implicit objects for databinding ({{{pageFlow}}}, etc.), through {{{ImplicitObjectUtil.loadImplicitObjects}}}.

Struts {{{RequestProcessor.process()}}}:
 * TODO


 
Back in {{{PageFlowRequestProcessor.process()}}}:
 * If this is the end of a series of forwarded requests, apply changes in the [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/handler/StorageHandler.html StorageHandler].  See [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/internal/DeferredSessionStorageHandler.html DeferredSessionStorageHandler] for more info.
 * Uninitialize the Controls context.
 * Call back to the event reporter in the Servlet container adapter (see [http://beehive.apache.org/docs/nightly/apidocs/classref_netui/org/apache/beehive/netui/pageflow/ServletContainerAdapter.html ServletContainerAdapter]).
 * Execute any post-intercept code in registered request interceptors.