Author: rich
Date: Thu Oct 14 21:50:04 2004
New Revision: 54822
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/FacesBackingBean.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBeanFactory.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowConstants.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowContextListener.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/PageFlowManagedObject.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/PageFlowPageFilter.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/PageFlowStack.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/ServerAdapter.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/SharedFlowController.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/handler/ExceptionsHandler.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/handler/LoginHandler.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/InterceptorForward.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/ContextCache.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.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/DefaultLoginHandler.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultReloadableClassHandler.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultServerAdapter.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/JavaControlUtils.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/DefaultURLRewriter.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/TemplateHelper.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/BindingUpdateErrors.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Exceptions.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
Log:
Changed the scope of the ServerAdapter. It used to be statically initialized;
now it lives in the ServletContext. Moved getServerAdapter() from
InternalUtils to ContextCache. Now, any call to retrieve the ServerAdapter
requires the ServletContext; tricky in some situations, but the only non-kludgy
alternative.
DRT/BVT: netui (WinXP)
BB: self (linux)
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/AutoRegisterActionServlet.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
Thu Oct 14 21:50:04 2004
@@ -610,8 +610,8 @@
//
// If we're not in production mode, send a diagnostic on the
response; otherwise, simply send a 404.
//
- InternalUtils.sendDevTimeError( "PageFlow_NoModuleConf",
request, response, null,
-
HttpServletResponse.SC_NOT_FOUND, uri, modulePath );
+ InternalUtils.sendDevTimeError( "PageFlow_NoModuleConf", null,
HttpServletResponse.SC_NOT_FOUND,
+ request, response,
servletContext, uri, modulePath );
}
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java
Thu Oct 14 21:50:04 2004
@@ -20,6 +20,7 @@
import org.apache.beehive.netui.pageflow.internal.InternalConstants;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.internal.CachedFacesBackingInfo;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.util.cache.ClassLevelCache;
@@ -39,7 +40,7 @@
private Map _pageInputs;
- void persistInSession( HttpServletRequest request, HttpServletResponse
response, ServletContext servletContext )
+ void persistInSession( HttpServletRequest request, HttpServletResponse
response )
{
HttpServletRequest unwrappedRequest = PageFlowUtils.unwrapMultipart(
request );
ScopedServletUtils.setScopedSessionAttr(
InternalConstants.FACES_BACKING_ATTR, this, unwrappedRequest );
@@ -56,7 +57,8 @@
HttpServletRequest unwrappedRequest = PageFlowUtils.unwrapMultipart(
request );
String attr =
ScopedServletUtils.getScopedSessionAttrName(
InternalConstants.FACES_BACKING_ATTR, unwrappedRequest );
- InternalUtils.getServerAdapter().ensureFailover( attr, this,
unwrappedRequest );
+ ServletContext servletContext = InternalUtils.getServletContext(
request );
+ ContextCache.get( servletContext ).getServerAdapter().ensureFailover(
attr, this, unwrappedRequest );
}
public String getDisplayName()
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBeanFactory.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBeanFactory.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBeanFactory.java
Thu Oct 14 21:50:04 2004
@@ -122,7 +122,7 @@
_log.error( "Error while creating backing bean instance of
" + backingClassName, e );
}
- bean.persistInSession( request, response, servletContext );
+ bean.persistInSession( request, response );
return bean;
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
Thu Oct 14 21:50:04 2004
@@ -218,7 +218,7 @@
protected void sendError( String errText, HttpServletRequest request,
HttpServletResponse response )
throws IOException
{
- InternalUtils.sendError( "PageFlow_Custom_Error", request, response,
null, getDisplayName(), errText );
+ InternalUtils.sendError( "PageFlow_Custom_Error", null, request,
response, getDisplayName(), errText );
}
/**
@@ -247,9 +247,8 @@
// First, put the exception into the request (or other applicable
context).
Throwable unwrapped = eh.unwrapException( ex );
- eh.exposeException( unwrapped, request, response, mapping );
- return eh.handleException( unwrapped, mapping, actionName, form,
request, response,
- getServletContext(), this );
+ eh.exposeException( unwrapped, mapping, request, response,
getServletContext() );
+ return eh.handleException( unwrapped, mapping, actionName, form,
this, request, response, getServletContext() );
}
finally
{
@@ -1414,7 +1413,7 @@
catch ( Throwable e )
{
ExceptionsHandler eh = ContextCache.get( getServletContext()
).getExceptionsHandler();
- eh.sendUnhandledExceptionError( eh.unwrapException( e ), request,
response );
+ eh.sendUnhandledExceptionError( eh.unwrapException( e ), request,
response, getServletContext() );
}
finally
{
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
Thu Oct 14 21:50:04 2004
@@ -288,7 +288,7 @@
if ( lastIndexOfJpfClass != -1 )
{
retVal = pfStack.popUntil( request,
lastIndexOfJpfClass );
- retVal.persistInSession( request, response,
servletContext );
+ retVal.persistInSession( request, response );
return retVal;
}
}
@@ -332,7 +332,7 @@
pfStack.push( current, request );
}
- retVal.persistInSession( request, response, servletContext );
+ retVal.persistInSession( request, response );
}
else
{
@@ -363,7 +363,7 @@
}
retVal = onStackAlready;
- retVal.persistInSession( request, response,
servletContext );
+ retVal.persistInSession( request, response );
}
else
{
@@ -373,7 +373,7 @@
// onDestroy() gets called before the new one's
onCreate().
//
retVal.reinitialize( request, response, servletContext
);
- retVal.persistInSession( request, response,
servletContext );
+ retVal.persistInSession( request, response );
retVal.create( request, response, servletContext );
}
}
@@ -385,7 +385,7 @@
// onCreate()).
//
if ( createdNew ) retVal.reinitialize( request, response,
servletContext );
- retVal.persistInSession( request, response, servletContext
);
+ retVal.persistInSession( request, response );
if ( createdNew ) retVal.create( request, response,
servletContext );
}
}
@@ -424,7 +424,7 @@
_log.debug( "Storing " + retVal + " in the session..." );
}
- retVal.persistInSession( request, response, servletContext );
+ retVal.persistInSession( request, response );
return retVal;
}
catch ( InstantiationException e )
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/Forward.java
Thu Oct 14 21:50:04 2004
@@ -23,6 +23,7 @@
import org.apache.struts.config.ModuleConfig;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.ServletContext;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
@@ -78,10 +79,11 @@
private boolean _isNestedReturn = false;
private boolean _init = false;
private transient ActionMapping _mapping = null; // will be
reinitialized as necessary by PreviousPageInfo
+ private transient FlowController _flowController = null; // will be
reinitialized as necessary by PreviousPageInfo
+ private transient ServletContext _servletContext = null; // will be
reinitialized as necessary by PreviousPageInfo
private String _mappingPath;
private StringBuffer _queryString;
private boolean _explicitPath = false;
- private transient FlowController _flowController = null; // will be
reinitialized as necessary by PreviousPageInfo
private String _returnFormType = null;
private boolean _userSetRedirect = false;
private Map _actionOutputs = null;
@@ -110,6 +112,7 @@
_queryString = init._queryString;
_explicitPath = init._explicitPath;
_flowController = init._flowController;
+ _servletContext = init._servletContext;
_returnFormType = init._returnFormType;
_userSetRedirect = init._userSetRedirect;
_actionOutputs = init._actionOutputs;
@@ -220,8 +223,9 @@
* Internal. Initialize from an existing Struts ActionForward.
* @exclude
*/
- protected Forward( ActionForward initFwd )
+ protected Forward( ActionForward initFwd, ServletContext servletContext )
{
+ _servletContext = servletContext;
setName( initFwd.getName() );
initFrom( initFwd );
}
@@ -303,7 +307,8 @@
_log.debug( "Creating form bean of type " +
_returnFormType );
}
- ReloadableClassHandler rch = ContextCache.get( request
).getReloadableClassHandler();
+ ServletContext servletContext =
InternalUtils.getServletContext( request );
+ ReloadableClassHandler rch = ContextCache.get(
servletContext ).getReloadableClassHandler();
Object formBean = rch.newInstance( _returnFormType,
request );
ActionForm wrappedFormBean = InternalUtils.wrapFormBean(
formBean );
addOutputForm( wrappedFormBean );
@@ -553,6 +558,8 @@
private void checkActionOutputs( PageFlowActionForward fc )
{
PageFlowActionForward.ActionOutput[] actionOutputs =
fc.getActionOutputs();
+ boolean isInProductionMode =
+ ContextCache.get( _servletContext
).getServerAdapter().isInProductionMode();
for ( int i = 0; i < actionOutputs.length; ++i )
{
@@ -569,7 +576,7 @@
// If we're *not* in production mode, do some (expensive) checks
to ensure that the types for the
// action outputs match their declared types.
//
- if ( ! InternalUtils.getServerAdapter().isInProductionMode() &&
_actionOutputs != null )
+ if ( ! isInProductionMode && _actionOutputs != null )
{
Object actualActionOutput = _actionOutputs.get(
actionOutput.getName() );
@@ -634,6 +641,7 @@
_mapping = mapping;
_mappingPath = mapping != null ? mapping.getPath() : null;
_flowController = flowController;
+ _servletContext = flowController.getServletContext();
}
/**
@@ -648,6 +656,7 @@
_mapping = mapping;
_mappingPath = mapping != null ? mapping.getPath() : null;
_flowController = flowController;
+ _servletContext = flowController.getServletContext();
}
/**
@@ -943,6 +952,7 @@
void reinitialize( FlowController fc )
{
_flowController = fc;
+ _servletContext = fc.getServletContext();
if ( _mapping == null && _mappingPath != null )
{
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/MultipartRequestUtils.java
Thu Oct 14 21:50:04 2004
@@ -113,7 +113,7 @@
}
else
{
- ServletContext servletContext =
InternalUtils.getServerAdapter().getServletContext(request);
+ ServletContext servletContext =
InternalUtils.getServletContext(request);
servlet = new
ActionServletWrapper(InternalUtils.getActionServlet(servletContext));
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowConstants.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowConstants.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowConstants.java
Thu Oct 14 21:50:04 2004
@@ -110,5 +110,4 @@
* page flow compiler.
*/
public static final String JPF_MODULE_CONFIG_GEN_DIR =
InternalConstants.WEBINF_DIR + "/.pageflow-struts-generated";
-
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowContextListener.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowContextListener.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowContextListener.java
Thu Oct 14 21:50:04 2004
@@ -66,11 +66,6 @@
{
servletContext.setAttribute( ALREADY_INIT_ATTR, Boolean.TRUE );
- //
- // Callback to the server adapter.
- //
- InternalUtils.getServerAdapter().initServletContext( servletContext );
-
try
{
InputStream configInput = servletContext.getResourceAsStream(
CONFIG_FILE );
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
==============================================================================
---
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 Oct 14 21:50:04 2004
@@ -36,6 +36,7 @@
import org.apache.beehive.netui.pageflow.internal.CachedPageFlowInfo;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.internal.InternalConstants;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import static org.apache.beehive.netui.pageflow.internal.InternalConstants.*;
@@ -165,7 +166,7 @@
return true;
}
- void persistInSession( HttpServletRequest request, HttpServletResponse
response, ServletContext servletContext )
+ void persistInSession( HttpServletRequest request, HttpServletResponse
response )
{
PageFlowController currentPageFlow = PageFlowUtils.getCurrentPageFlow(
request );
@@ -203,7 +204,7 @@
if ( request.getAttribute( DELETING_PAGEFLOW_ATTR ) != this &&
request.getSession( false ) != null )
{
HttpServletRequest unwrappedRequest =
PageFlowUtils.unwrapMultipart( request );
- ServerAdapter serverAdapter = InternalUtils.getServerAdapter();
+ ServerAdapter serverAdapter = ContextCache.get(
getServletContext() ).getServerAdapter();
//
// If this is a singleton page flow, there are two attributes to
deal with.
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObject.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObject.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObject.java
Thu Oct 14 21:50:04 2004
@@ -113,8 +113,7 @@
/**
* Stores this object in the user session, in the appropriate place.
*/
- abstract void persistInSession( HttpServletRequest request,
HttpServletResponse response,
- ServletContext servletContext );
+ abstract void persistInSession( HttpServletRequest request,
HttpServletResponse response );
/**
* Ensures that any changes to this object will be replicated in a cluster
(for failover),
@@ -138,7 +137,8 @@
if ( controlFields.isEmpty() ) return;
request = PageFlowUtils.unwrapMultipart( request );
- ControlBeanContext beanContext =
JavaControlUtils.getControlBeanContext( request, response, false );
+ ControlBeanContext beanContext =
+ JavaControlUtils.getControlBeanContext( request, response,
_servletContext, false );
assert beanContext != null : "ControlBeanContext was not initialized
by PageFlowRequestProcessor";
String classID = getClass().getName();
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowManagedObjectException.java
==============================================================================
---
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 Oct 14 21:50:04 2004
@@ -22,6 +22,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletContext;
import java.io.IOException;
import java.io.PrintWriter;
@@ -84,11 +85,12 @@
* @param request the current HttpServletRequest
* @param response the current HttpServletResponse
*/
- void sendError( HttpServletRequest request, HttpServletResponse response,
int productionTimeErrorCode )
+ void sendError( HttpServletRequest request, HttpServletResponse response,
ServletContext servletContext,
+ int productionTimeErrorCode )
throws IOException
{
- InternalUtils.sendDevTimeError( _messageKeyPrefix, getMessageArgs(),
request, response, null,
- productionTimeErrorCode );
+ InternalUtils.sendDevTimeError( _messageKeyPrefix, getMessageArgs(),
null, productionTimeErrorCode,
+ request, response, servletContext );
}
/**
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
Thu Oct 14 21:50:04 2004
@@ -43,6 +43,7 @@
import org.apache.beehive.netui.pageflow.internal.JavaControlUtils;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.internal.InternalConstants;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
/**
@@ -118,7 +119,8 @@
//
// Callback to the server adapter.
//
- InternalUtils.getServerAdapter().beginRequest( httpRequest,
httpResponse, _servletContext );
+ ServerAdapter serverAdapter = ContextCache.get( _servletContext
).getServerAdapter();
+ serverAdapter.beginRequest( httpRequest, httpResponse );
//
// Initialize the ControlBeanContext in the session.
@@ -161,12 +163,12 @@
//
// Clean up the ControlBeanContext in the session.
//
- JavaControlUtils.uninitializeControlContext( httpRequest,
httpResponse );
+ JavaControlUtils.uninitializeControlContext( httpRequest,
httpResponse, _servletContext );
//
// Callback to the server adapter.
//
- InternalUtils.getServerAdapter().endRequest( httpRequest,
httpResponse, _servletContext );
+ serverAdapter.endRequest( httpRequest, httpResponse );
}
}
else
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
==============================================================================
---
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 Oct 14 21:50:04 2004
@@ -467,6 +467,7 @@
{
String uri = PageFlowUtils.getRelativeURI( request,
InternalUtils.decodeURI( request ), null );
ServletContext servletContext = getServletContext();
+ ServerAdapter serverAdapter = ContextCache.get( servletContext
).getServerAdapter();
//
// Allow weblogic to do a security check on forwarded requests, if
that feature is enabled.
@@ -478,7 +479,7 @@
// security check may not have been done for the request URI. In
this case, a redirect
// to https may happen during checkSecurity().
//
- if ( InternalUtils.getServerAdapter().checkSecurity( uri, request,
response, servletContext ) )
+ if ( serverAdapter.checkSecurity( uri, request, response ) )
{
if ( _log.isDebugEnabled() )
{
@@ -592,8 +593,9 @@
_log.error( msg.toString() );
}
- InternalUtils.sendDevTimeError( "PageFlow_NoModuleConf",
request, response, null,
-
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, uri, modulePath );
+ InternalUtils.sendDevTimeError( "PageFlow_NoModuleConf", null,
+
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, request, response,
+ servletContext, uri,
modulePath );
return;
}
@@ -623,9 +625,9 @@
_log.error( msg.toString() );
}
- InternalUtils.sendDevTimeError( "PageFlow_WrongPath",
request, response, null,
-
HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- requestedType,
desiredType);
+ InternalUtils.sendDevTimeError( "PageFlow_WrongPath", null,
+
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, request, response,
+ servletContext,
requestedType, desiredType);
return;
}
@@ -682,12 +684,13 @@
// First reinitialize the reloadable class handler. This will bounce
a classloader if necessary.
//
ServletContext servletContext = getServletContext();
- ContextCache.get( servletContext ).getReloadableClassHandler().reinit(
request );
+ ContextCache contextCache = ContextCache.get( servletContext );
+ contextCache.getReloadableClassHandler().reinit( request );
//
// Callback to the server adapter.
//
- InternalUtils.getServerAdapter().beginRequest( request, response,
servletContext );
+ contextCache.getServerAdapter().beginRequest( request, response );
//
// Initialize the ControlBeanContext in the session.
@@ -703,12 +706,12 @@
//
// Clean up the ControlBeanContext in the session.
//
- JavaControlUtils.uninitializeControlContext( request, response );
+ JavaControlUtils.uninitializeControlContext( request, response,
getServletContext() );
//
// Callback to the server adapter.
//
- InternalUtils.getServerAdapter().endRequest( request, response,
servletContext );
+ contextCache.getServerAdapter().endRequest( request, response );
}
if ( _log.isTraceEnabled() )
@@ -1171,7 +1174,7 @@
assert mapping != null;
ActionForm form = InternalUtils.getFormBean( mapping, request
);
PageFlowController curJpf =
InternalUtils.ensureCurrentPageFlow( request, response );
- Forward pfFwd = new Forward( ( ActionForward ) fwd );
+ Forward pfFwd = new Forward( ( ActionForward ) fwd,
servletContext );
fwd = ForwardHandler.processForward( pfFwd, mapping, request,
response, form, servletContext, curJpf );
}
@@ -1290,8 +1293,9 @@
{
boolean securityRedirected = false;
ServletContext servletContext = getServletContext();
+ ContextCache contextCache = ContextCache.get( servletContext );
- if ( ContextCache.get( servletContext ).shouldDoSecureForwards() )
+ if ( contextCache.shouldDoSecureForwards() )
{
Boolean needSecure = PageFlowUtils.isSecureResource( uri,
servletContext, request );
@@ -1304,7 +1308,7 @@
if ( needSecure.equals( Boolean.FALSE ) )
{
changeScheme( uri, SCHEME_UNSECURE,
-
InternalUtils.getServerAdapter().getListenPort(request),
+
contextCache.getServerAdapter().getListenPort(request),
request, response );
securityRedirected = true;
}
@@ -1314,7 +1318,7 @@
if ( needSecure.equals( Boolean.TRUE ) )
{
changeScheme( uri, SCHEME_SECURE,
-
InternalUtils.getServerAdapter().getSecureListenPort(request),
+
contextCache.getServerAdapter().getSecureListenPort(request),
request, response );
securityRedirected = true;
}
@@ -1329,7 +1333,7 @@
if ( ! securityRedirected )
{
- ForwardRedirectHandler fwdRedirectHandler = ContextCache.get(
servletContext ).getForwardRedirectHandler();
+ ForwardRedirectHandler fwdRedirectHandler =
contextCache.getForwardRedirectHandler();
fwdRedirectHandler.forward( uri, request, response );
}
}
@@ -1341,7 +1345,7 @@
protected void processNoCache( HttpServletRequest request,
HttpServletResponse response )
{
if ( moduleConfig.getControllerConfig().getNocache()
- || ! InternalUtils.getServerAdapter().isInProductionMode() )
+ || ! ContextCache.get( getServletContext()
).getServerAdapter().isInProductionMode() )
{
//
// The call to PageFlowJspFilter.preventCache() will cause caching
to be prevented
@@ -1408,7 +1412,7 @@
ActionInterceptorChain.getAfterActionChain( actionName,
request, servletContext );
if ( interceptorChain != null )
{
- InterceptorForward originalForward = ret != null ? new
InterceptorForward( ret ) : null;
+ InterceptorForward originalForward = ret != null ? new
InterceptorForward( ret, servletContext ) : null;
InterceptorForward interceptorForward =
interceptorChain.doIntercept( request, response,
originalForward, pfc, actionName );
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowStack.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowStack.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowStack.java
Thu Oct 14 21:50:04 2004
@@ -24,10 +24,12 @@
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.internal.InternalConstants;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.ServletContext;
import java.util.Stack;
import java.io.Serializable;
@@ -201,11 +203,11 @@
return -1;
}
- void ensureFailover( HttpServletRequest request )
+ void ensureFailover( HttpServletRequest request, ServletContext
servletContext )
{
String name =
ScopedServletUtils.getScopedSessionAttrName( JPF_STACK_ATTR,
PageFlowUtils.unwrapMultipart( request ) );
- InternalUtils.getServerAdapter().ensureFailover( name, this, request );
+ ContextCache.get( servletContext ).getServerAdapter().ensureFailover(
name, this, request );
}
void save( HttpServletRequest request )
@@ -229,7 +231,9 @@
ActionInterceptor interceptor =
ActionInterceptorChain.getActiveInterceptor( request );
InterceptorForward interceptedForward =
ActionInterceptorChain.getInterceptedForward( request, true );
_stack.push( new PushedPageFlow( pageFlow, interceptor,
interceptedForward ) );
- ensureFailover( request ); // to ensure that this attribute is
replicated for session failover
+
+ // To ensure that this attribute is replicated for session failover...
+ ensureFailover( request, pageFlow.getServletContext() );
}
/**
@@ -241,11 +245,12 @@
public PushedPageFlow pop( HttpServletRequest request )
{
PushedPageFlow ppf = ( PushedPageFlow ) _stack.pop();
- ppf.getPageFlow().setIsOnNestingStack( false );
+ PageFlowController pfc = ppf.getPageFlow();
+ pfc.setIsOnNestingStack( false );
if ( request != null ) // may be null if we're called from
valueUnbound()
{
- ensureFailover( request ); // to ensure that this attribute is
replicated for session failover
+ ensureFailover( request, pfc.getServletContext() ); // to
ensure that this attribute is replicated for session failover
}
return ppf;
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
==============================================================================
---
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 Oct 14 21:50:04 2004
@@ -21,6 +21,7 @@
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.ContextCache;
import org.apache.beehive.netui.pageflow.scoping.ScopedRequest;
import org.apache.beehive.netui.pageflow.scoping.ScopedResponse;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
@@ -668,7 +669,7 @@
*/
public static Boolean isSecureResource( String uri, ServletContext
servletContext, HttpServletRequest request )
{
- return InternalUtils.getServerAdapter().isSecureResource( uri,
request, servletContext );
+ return ContextCache.get( servletContext
).getServerAdapter().isSecureResource( uri, request );
}
/**
@@ -1080,14 +1081,5 @@
public static void setCurrentActionResolver( ActionResolver resolver,
HttpServletRequest request )
{
InternalUtils.setCurrentActionResolver( resolver, request );
- }
-
- /**
- * @deprecated This is an internal utility. [EMAIL PROTECTED]
InternalUtils#getServerAdapter} can be used, but it is
- * not guaranteed to be supported in the future.
- */
- public static final ServerAdapter getServerAdapter()
- {
- return InternalUtils.getServerAdapter();
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ServerAdapter.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ServerAdapter.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ServerAdapter.java
Thu Oct 14 21:50:04 2004
@@ -56,14 +56,13 @@
* </pre>
*
* @param uri a webapp-relative URI for a resource.
- * @param servletContext the ServletContext
* @param request the current HttpServletRequest.
* @return <code>Boolean.TRUE</code> if a transport-guarantee of
<code>CONFIDENTIAL</code> or
* <code>INTEGRAL</code> is associated with the given resource;
<code>Boolean.FALSE</code>
* a transport-guarantee of <code>NONE</code> is associated with
the given resource; or
* <code>null</code> if there is no transport-guarantee associated
with the given resource.
*/
- public Boolean isSecureResource( String uri, HttpServletRequest request,
ServletContext servletContext );
+ public Boolean isSecureResource( String uri, HttpServletRequest request );
/**
* Cause the server to do a security check for the given URI. If
required, it does a redirect to
@@ -74,16 +73,8 @@
* @param response the current HttpServletResponse.
* @return <code>true</code> if a redirect occurred.
*/
- boolean checkSecurity( String uri, HttpServletRequest request,
HttpServletResponse response,
- ServletContext servletContext );
-
- /**
- * Get the ServletContext, based on the given request.
- *
- * @param request the current HttpServletRequest.
- * @return the ServletContext associated with the request.
- */
- public ServletContext getServletContext( HttpServletRequest request );
+ boolean checkSecurity( String uri, HttpServletRequest request,
HttpServletResponse response );
+
/**
* Get the port on which the server is listening for unsecure connections.
@@ -156,18 +147,16 @@
*
* @param request the current HttpServletRequest.
* @param response the current HttpServletResponse.
- * @param servletContext the current ServletContext.
*/
- public void beginRequest( HttpServletRequest request, HttpServletResponse
response, ServletContext servletContext );
+ public void beginRequest( HttpServletRequest request, HttpServletResponse
response );
/**
* Called at the end of each processed request.
*
* @param request the current HttpServletRequest.
* @param response the current HttpServletResponse.
- * @param servletContext the current ServletContext.
*/
- public void endRequest( HttpServletRequest request, HttpServletResponse
response, ServletContext servletContext );
+ public void endRequest( HttpServletRequest request, HttpServletResponse
response );
/**
* Get a context object to support Java Controls.
@@ -180,10 +169,9 @@
/**
* Get the build directory (or directories) where reloadable classes
reside.
*
- * @param servletContext the current ServletContext.
* @return an array of URLs to indicate where reloadable classes reside,
or <code>null</code> if there are no
* appropriate directories.
* @see org.apache.beehive.netui.pageflow.handler.ReloadableClassHandler
*/
- public File[] getReloadableClassDirs( ServletContext servletContext );
+ public File[] getReloadableClassDirs();
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/SharedFlowController.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/SharedFlowController.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/SharedFlowController.java
Thu Oct 14 21:50:04 2004
@@ -27,6 +27,7 @@
import javax.servlet.ServletContext;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import static org.apache.beehive.netui.pageflow.internal.InternalConstants.*;
@@ -56,8 +57,7 @@
return _modulePath;
}
- void persistInSession( HttpServletRequest request, HttpServletResponse
response,
- ServletContext servletContext )
+ void persistInSession( HttpServletRequest request, HttpServletResponse
response )
{
request.getSession().setAttribute( SHARED_FLOW_ATTR_PREFIX +
getClass().getName(), this );
}
@@ -71,7 +71,8 @@
*/
public void ensureFailover( HttpServletRequest request )
{
- InternalUtils.getServerAdapter().ensureFailover(
SHARED_FLOW_ATTR_PREFIX + getClass().getName(), this, request );
+ ServerAdapter serverAdapter = ContextCache.get( getServletContext()
).getServerAdapter();
+ serverAdapter.ensureFailover( SHARED_FLOW_ATTR_PREFIX +
getClass().getName(), this, request );
}
/**
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/handler/ExceptionsHandler.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/handler/ExceptionsHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/handler/ExceptionsHandler.java
Thu Oct 14 21:50:04 2004
@@ -35,14 +35,15 @@
extends Handler
{
ActionForward handleException( Throwable ex, ActionMapping actionMapping,
String actionName,
- ActionForm form, HttpServletRequest
request, HttpServletResponse response,
- ServletContext servletContext,
FlowController flowController )
+ ActionForm form, FlowController
flowController, HttpServletRequest request,
+ HttpServletResponse response,
ServletContext servletContext )
throws Exception;
Throwable unwrapException( Throwable ex );
- void exposeException( Throwable ex, HttpServletRequest request,
HttpServletResponse response,
- ActionMapping actionMapping );
+ void exposeException( Throwable ex, ActionMapping actionMapping,
HttpServletRequest request,
+ HttpServletResponse response, ServletContext
servletContext );
- void sendUnhandledExceptionError( Throwable ex, HttpServletRequest
request, HttpServletResponse response );
+ void sendUnhandledExceptionError( Throwable ex, HttpServletRequest
request, HttpServletResponse response,
+ ServletContext servletContext );
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/handler/LoginHandler.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/handler/LoginHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/handler/LoginHandler.java
Thu Oct 14 21:50:04 2004
@@ -48,6 +48,7 @@
* @param request the current HttpServletRequest.
*/
public void logout( boolean invalidateSessions, HttpServletRequest
request, HttpServletResponse response );
+
/**
* Tell whether the current user is in a given role.
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/InterceptorForward.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/InterceptorForward.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/InterceptorForward.java
Thu Oct 14 21:50:04 2004
@@ -20,6 +20,7 @@
import org.apache.beehive.netui.pageflow.Forward;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.ServletContext;
import java.net.URI;
import org.apache.struts.action.ActionForward;
@@ -39,9 +40,9 @@
* Internal. Initialize from an existing Struts ActionForward
* @exclude
*/
- public InterceptorForward( ActionForward originalForward )
+ public InterceptorForward( ActionForward originalForward, ServletContext
servletContext )
{
- super( originalForward );
+ super( originalForward, servletContext );
}
InterceptorForward( HttpServletRequest request )
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/ContextCache.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/ContextCache.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/ContextCache.java
Thu Oct 14 21:50:04 2004
@@ -24,6 +24,7 @@
import org.apache.beehive.netui.pageflow.PageFlowActionServlet;
import org.apache.beehive.netui.pageflow.PageFlowContextListener;
import org.apache.beehive.netui.pageflow.PageFlowConstants;
+import org.apache.beehive.netui.pageflow.ServerAdapter;
import org.apache.beehive.netui.pageflow.handler.LoginHandler;
import org.apache.beehive.netui.pageflow.handler.ForwardRedirectHandler;
import org.apache.beehive.netui.pageflow.handler.ReloadableClassHandler;
@@ -31,10 +32,7 @@
import org.apache.beehive.netui.pageflow.handler.ExceptionsHandler;
import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
-import java.util.List;
-import java.util.ArrayList;
public class ContextCache implements Serializable, PageFlowConstants
@@ -46,6 +44,10 @@
private static final String DEFAULT_FWD_REDIRECT_HANDLER_CLASS =
DefaultForwardRedirectHandler.class.getName();
private static final String DEFAULT_RELOADABLE_CLASS_HANDLER_CLASS =
DefaultReloadableClassHandler.class.getName();
private static final String DEFAULT_EXCEPTIONS_HANDLER_CLASS =
DefaultExceptionsHandler.class.getName();
+ private static final String CATALINA_HOME_PROP = "catalina.home";
+ private static final String SERVER_ADAPTER_PROP = "pageflow.serveradapter";
+ private static final String WL_SERVER_ADAPTER_CLASS =
"com.bea.wlw.netui.pageflow.internal.WebLogicServerAdapter";
+ private static final String TOMCAT_SERVER_ADAPTER_CLASS =
"org.apache.beehive.netui.tomcat.TomcatServerAdapter";
private boolean _secureForwards = false;
private int _forwardOverflowCount = DEFAULT_FORWARD_OVERFLOW_COUNT;
@@ -55,7 +57,7 @@
private LoginHandler _loginHandler = null;
private ReloadableClassHandler _reloadableClassHandler = null;
private ExceptionsHandler _exceptionsHandler = null;
- private transient ServletContext _servletContext;
+ private ServerAdapter _serverAdapter = null;
public ForwardRedirectHandler getForwardRedirectHandler()
@@ -78,11 +80,6 @@
return _exceptionsHandler;
}
- public static ContextCache get( HttpServletRequest request )
- {
- return get( InternalUtils.getServerAdapter().getServletContext(
request ) );
- }
-
public static ContextCache get( ServletContext servletContext )
{
ContextCache cache = ( ContextCache ) servletContext.getAttribute(
CACHE_ATTR );
@@ -109,7 +106,6 @@
private void reinit( ServletContext servletContext )
{
- _servletContext = servletContext;
_exceptionsHandler.reinit( servletContext );
_forwardRedirectHandler.reinit( servletContext );
_loginHandler.reinit( servletContext );
@@ -125,7 +121,9 @@
private ContextCache( ServletContext servletContext )
{
- _servletContext = servletContext;
+ _serverAdapter = createServerAdapter();
+ _serverAdapter.initServletContext( servletContext ); // callback
+
String doSecureForwards = servletContext.getInitParameter(
SECURE_FORWARDS_PARAM );
_secureForwards = ( Boolean.TRUE.toString().equals( doSecureForwards )
);
@@ -257,5 +255,62 @@
}
return defaultVal;
+ }
+
+ private static ServerAdapter createServerAdapter()
+ {
+ String serverAdapterClassName = System.getProperty(
SERVER_ADAPTER_PROP );
+ boolean userSpecifiedServerAdapter = serverAdapterClassName != null;
+
+ if ( serverAdapterClassName == null )
+ {
+ if ( System.getProperty( CATALINA_HOME_PROP ) != null )
+ {
+ serverAdapterClassName = TOMCAT_SERVER_ADAPTER_CLASS;
+ }
+ else
+ {
+ serverAdapterClassName = WL_SERVER_ADAPTER_CLASS;
+ }
+
+ }
+
+ try
+ {
+ Class serverAdapterClass = Class.forName( serverAdapterClassName );
+ ServerAdapter serverAdapter = ( ServerAdapter )
serverAdapterClass.newInstance();
+
+ if ( _log.isInfoEnabled() )
+ {
+ _log.info( "Created server adapter of type " +
serverAdapterClass );
+ }
+
+ return serverAdapter;
+ }
+ catch ( ClassNotFoundException e )
+ {
+ if ( userSpecifiedServerAdapter && _log.isErrorEnabled() )
+ {
+ _log.error( "Could not find ServerAdapter class " +
serverAdapterClassName
+ + "; using " +
DefaultServerAdapter.class.getName() + "." );
+ }
+
+ return new DefaultServerAdapter();
+ }
+ catch ( Exception e )
+ {
+ if ( _log.isErrorEnabled() )
+ {
+ _log.error( "Error instantiating ServerAdapter " +
serverAdapterClassName
+ + "; using " +
DefaultServerAdapter.class.getName() + ".", e );
+ }
+
+ return new DefaultServerAdapter();
+ }
+ }
+
+ public ServerAdapter getServerAdapter()
+ {
+ return _serverAdapter;
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java
Thu Oct 14 21:50:04 2004
@@ -58,8 +58,8 @@
public ActionForward handleException( Throwable ex, ActionMapping
actionMapping, String actionName,
- ActionForm form, HttpServletRequest
request, HttpServletResponse response,
- ServletContext servletContext,
FlowController flowController )
+ ActionForm form, FlowController
flowController , HttpServletRequest request,
+ HttpServletResponse response,
ServletContext servletContext)
throws Exception
{
if ( _log.isInfoEnabled() )
@@ -133,7 +133,7 @@
_log.error( msg.append( " unhandled by the current page flow (and
any shared flow)" ).toString(), ex );
}
- sendUnhandledExceptionError( ex, request, response );
+ sendUnhandledExceptionError( ex, request, response, servletContext );
return null;
}
@@ -157,8 +157,8 @@
return ex;
}
- public void exposeException( Throwable ex, HttpServletRequest request,
HttpServletResponse response,
- ActionMapping actionMapping )
+ public void exposeException( Throwable ex, ActionMapping actionMapping,
HttpServletRequest request,
+ HttpServletResponse response, ServletContext
servletContext )
{
//
// Put the exception in a place where Struts/NetUI tags will find it.
@@ -289,8 +289,8 @@
err = Bundle.getString( "PageFlow_MissingExceptionHandler",
methodName );
}
- InternalUtils.sendError( "PageFlow_Custom_Error", request,
response, null, flowController.getDisplayName(),
- err );
+ InternalUtils.sendError( "PageFlow_Custom_Error", null, request,
response, servletContext,
+ flowController.getDisplayName(), err );
return null;
}
}
@@ -324,7 +324,8 @@
}
}
- public void sendUnhandledExceptionError( Throwable ex, HttpServletRequest
request, HttpServletResponse response )
+ public void sendUnhandledExceptionError( Throwable ex, HttpServletRequest
request, HttpServletResponse response,
+ ServletContext servletContext )
{
_log.error( "Unhandled Page Flow Exception", ex );
@@ -347,9 +348,9 @@
String msg = ex.getMessage();
if ( msg == null ) msg = " ";
- InternalUtils.sendDevTimeError( "PageFlow_UnhandledException",
request, response, ex,
-
HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- ex.getClass().getName(), msg,
sw.toString() );
+ InternalUtils.sendDevTimeError( "PageFlow_UnhandledException",
ex,
+
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, request, response,
+ servletContext,
ex.getClass().getName(), msg, sw.toString() );
}
}
catch ( IOException ioEx )
Modified:
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/DefaultForwardRedirectHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultForwardRedirectHandler.java
Thu Oct 14 21:50:04 2004
@@ -59,8 +59,9 @@
int forwardOverflowCount = contextCache.getForwardOverflowCount();
if ( requestCount > forwardOverflowCount )
{
- InternalUtils.sendDevTimeError( "PageFlow_Forward_Overflow",
request, response, null,
-
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, forwardOverflowCount, uri );
+ InternalUtils.sendDevTimeError( "PageFlow_Forward_Overflow", null,
+
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, request, response,
+ getServletContext(),
forwardOverflowCount, uri );
return;
}
@@ -72,9 +73,9 @@
int nestingOverflowCount = contextCache.getNestingOverflowCount();
if ( pfStack != null && pfStack.size() > nestingOverflowCount )
{
- InternalUtils.sendDevTimeError( "PageFlow_Nesting_Overflow",
request, response, null,
-
HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- pfStack.size(),
nestingOverflowCount );
+ InternalUtils.sendDevTimeError( "PageFlow_Nesting_Overflow", null,
+
HttpServletResponse.SC_INTERNAL_SERVER_ERROR, request, response,
+ getServletContext(),
pfStack.size(), nestingOverflowCount );
return;
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultLoginHandler.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultLoginHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultLoginHandler.java
Thu Oct 14 21:50:04 2004
@@ -41,12 +41,12 @@
public void login( String username, String password, HttpServletRequest
request, HttpServletResponse response )
throws LoginException
{
- InternalUtils.getServerAdapter().login( username, password, request,
response );
+ ContextCache.get( getServletContext() ).getServerAdapter().login(
username, password, request, response );
}
public void logout( boolean invalidateSessions, HttpServletRequest
request, HttpServletResponse response )
{
- InternalUtils.getServerAdapter().logout( invalidateSessions, request,
response );
+ ContextCache.get( getServletContext() ).getServerAdapter().logout(
invalidateSessions, request, response );
}
public boolean isUserInRole( String roleName, HttpServletRequest request )
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultReloadableClassHandler.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultReloadableClassHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultReloadableClassHandler.java
Thu Oct 14 21:50:04 2004
@@ -18,6 +18,7 @@
package org.apache.beehive.netui.pageflow.internal;
import org.apache.beehive.netui.pageflow.AutoRegisterActionServlet;
+import org.apache.beehive.netui.pageflow.ServerAdapter;
import org.apache.beehive.netui.pageflow.handler.ReloadableClassHandler;
import org.apache.beehive.netui.util.classloader.BouncyClassLoader;
import org.apache.beehive.netui.util.cache.ClassLevelCache;
@@ -52,9 +53,10 @@
if ( false )
{
ClassLoader contextClassLoader =
Thread.currentThread().getContextClassLoader();
- File[] classDirs =
InternalUtils.getServerAdapter().getReloadableClassDirs( servletContext );
+ ServerAdapter serverAdapter = ContextCache.get( servletContext
).getServerAdapter();
+ File[] classDirs = serverAdapter.getReloadableClassDirs();
- if ( classDirs != null && !
InternalUtils.getServerAdapter().isInProductionMode() )
+ if ( classDirs != null && ! serverAdapter.isInProductionMode() )
{
_pageFlowClassLoader = new BouncyClassLoader( classDirs,
contextClassLoader );
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultServerAdapter.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultServerAdapter.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultServerAdapter.java
Thu Oct 14 21:50:04 2004
@@ -25,7 +25,6 @@
import javax.security.auth.login.LoginException;
import org.apache.beehive.controls.api.context.ControlBeanContext;
-import org.apache.beehive.controls.runtime.servlet.ServletBeanContext;
import java.io.File;
@@ -34,8 +33,14 @@
{
private static boolean _productionMode = true;
+ private ServletContext _servletContext = null;
+
static
{
+ //
+ // This is our definition of "production mode": when asserts are
disabled.
+ //
+
try
{
assert false;
@@ -51,18 +56,13 @@
return _productionMode;
}
- public ServletContext getServletContext( HttpServletRequest request )
- {
- return request.getSession( true ).getServletContext();
- }
-
- public Boolean isSecureResource( String uri, HttpServletRequest request,
ServletContext servletContext )
+ public Boolean isSecureResource( String uri, HttpServletRequest request )
{
return null;
}
- public boolean checkSecurity( String uri, HttpServletRequest request,
HttpServletResponse response,
- ServletContext servletContext )
+ public boolean checkSecurity( String uri, HttpServletRequest request,
HttpServletResponse response )
+
{
return false;
}
@@ -98,13 +98,14 @@
public void initServletContext( ServletContext servletContext )
{
+ _servletContext = servletContext;
}
- public void beginRequest( HttpServletRequest request, HttpServletResponse
response, ServletContext servletContext )
+ public void beginRequest( HttpServletRequest request, HttpServletResponse
response )
{
}
- public void endRequest( HttpServletRequest request, HttpServletResponse
response, ServletContext servletContext )
+ public void endRequest( HttpServletRequest request, HttpServletResponse
response )
{
}
@@ -113,9 +114,14 @@
return new PageFlowBeanContext();
}
- public File[] getReloadableClassDirs( ServletContext servletContext )
+ public File[] getReloadableClassDirs()
{
- String path = servletContext.getRealPath( "/WEB-INF/classes" );
+ String path = _servletContext.getRealPath( "/WEB-INF/classes" );
return path != null ? new File[]{ new File( path ) } : null;
+ }
+
+ protected ServletContext getServletContext()
+ {
+ return _servletContext;
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
==============================================================================
---
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 Oct 14 21:50:04 2004
@@ -69,32 +69,30 @@
private static final String ACTIONOUTPUT_MAP_ATTR = ATTR_PREFIX +
"actionOutputs";
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 CATALINA_HOME_PROP = "catalina.home";
- private static final String SERVER_ADAPTER_PROP = "pageflow.serveradapter";
- private static final String WL_SERVER_ADAPTER_CLASS =
"com.bea.wlw.netui.pageflow.internal.WebLogicServerAdapter";
- private static final String TOMCAT_SERVER_ADAPTER_CLASS =
"org.apache.beehive.netui.tomcat.TomcatServerAdapter";
-
- private static final ServerAdapter SERVER_ADAPTER = createServerAdapter();
/**
* If not in production mode, write an error to the response; otherwise,
set a response error code.
*/
- public static void sendDevTimeError( String messageKey, HttpServletRequest
request, HttpServletResponse response,
- Throwable cause, int
productionTimeErrorCode, Object ... messageArgs )
+ public static void sendDevTimeError( String messageKey, Throwable cause,
int productionTimeErrorCode,
+ HttpServletRequest request,
HttpServletResponse response,
+ ServletContext servletContext, Object
... messageArgs )
throws IOException
{
- sendDevTimeError( messageKey, messageArgs, request, response, cause,
productionTimeErrorCode );
+ sendDevTimeError( messageKey, messageArgs, cause,
productionTimeErrorCode, request, response, servletContext );
}
/**
* If not in production mode, write an error to the response; otherwise,
set a response error code.
*/
- public static void sendDevTimeError( String messageKey, Object[]
messageArgs, HttpServletRequest request,
- HttpServletResponse response,
Throwable cause, int productionTimeErrorCode )
+ public static void sendDevTimeError( String messageKey, Object[]
messageArgs, Throwable cause,
+ int productionTimeErrorCode,
HttpServletRequest request,
+ HttpServletResponse response,
ServletContext servletContext )
throws IOException
{
- if ( SERVER_ADAPTER.isInProductionMode() && !
RequestValues.avoidDirectResponseOutput( request ) )
+ boolean prodMode = ContextCache.get( servletContext
).getServerAdapter().isInProductionMode();
+
+ if ( prodMode && ! RequestValues.avoidDirectResponseOutput( request ) )
{
if ( _log.isErrorEnabled() )
{
@@ -112,8 +110,8 @@
/**
* Write an error to the response.
*/
- public static void sendError( String messageKey, HttpServletRequest
request, HttpServletResponse response,
- Throwable cause, Object ... messageArgs )
+ public static void sendError( String messageKey, Throwable cause,
HttpServletRequest request,
+ HttpServletResponse response, Object ...
messageArgs )
throws IOException
{
sendError( messageKey, messageArgs, request, response, cause );
@@ -242,7 +240,7 @@
//
// This method is provided for
org.apache.beehive.netui.script.xscript.context.PageFlowContextResolver.
//
- ServletContext servletContext = SERVER_ADAPTER.getServletContext(
request );
+ ServletContext servletContext = getServletContext( request );
if ( servletContext == null && _log.isWarnEnabled() )
{
@@ -311,7 +309,7 @@
public static void warnAboutClassLoaders( Object object,
HttpServletRequest request )
{
- warnAboutClassLoaders( object, SERVER_ADAPTER.getServletContext(
request ) );
+ warnAboutClassLoaders( object, getServletContext( request ) );
}
public static void warnAboutClassLoaders( Object object, ServletContext
servletContext )
@@ -559,11 +557,6 @@
return null;
}
- public static final ServerAdapter getServerAdapter()
- {
- return SERVER_ADAPTER;
- }
-
/**
* Get the current ActionServlet.
*
@@ -751,7 +744,7 @@
*/
public static SharedFlowController ensureSharedFlow( HttpServletRequest
request, HttpServletResponse response )
{
- return ensureSharedFlow( request, response,
SERVER_ADAPTER.getServletContext( request ) );
+ return ensureSharedFlow( request, response, getServletContext( request
) );
}
/**
@@ -819,58 +812,6 @@
}
}
- private static ServerAdapter createServerAdapter()
- {
- String serverAdapterClassName = System.getProperty(
SERVER_ADAPTER_PROP );
- boolean userSpecifiedServerAdapter = serverAdapterClassName != null;
-
- if ( serverAdapterClassName == null )
- {
- if ( System.getProperty( CATALINA_HOME_PROP ) != null )
- {
- serverAdapterClassName = TOMCAT_SERVER_ADAPTER_CLASS;
- }
- else
- {
- serverAdapterClassName = WL_SERVER_ADAPTER_CLASS;
- }
-
- }
-
- try
- {
- Class serverAdapterClass = Class.forName( serverAdapterClassName );
- ServerAdapter serverAdapter = ( ServerAdapter )
serverAdapterClass.newInstance();
-
- if ( _log.isInfoEnabled() )
- {
- _log.info( "Created server adapter of type " +
serverAdapterClass );
- }
-
- return serverAdapter;
- }
- catch ( ClassNotFoundException e )
- {
- if ( userSpecifiedServerAdapter && _log.isErrorEnabled() )
- {
- _log.error( "Could not find ServerAdapter class " +
serverAdapterClassName
- + "; using " +
DefaultServerAdapter.class.getName() + "." );
- }
-
- return new DefaultServerAdapter();
- }
- catch ( Exception e )
- {
- if ( _log.isErrorEnabled() )
- {
- _log.error( "Error instantiating ServerAdapter " +
serverAdapterClassName
- + "; using " +
DefaultServerAdapter.class.getName() + ".", e );
- }
-
- return new DefaultServerAdapter();
- }
- }
-
public static String getSharedFlowClassName( HttpServletRequest request,
ServletContext servletContext )
{
return getSharedFlowClassNameForURI( InternalUtils.decodeURI( request
), request, servletContext );
@@ -1002,5 +943,11 @@
{
PageflowConfig pfConfig = ConfigUtil.getConfig().getPageflowConfig();
return pfConfig != null ? pfConfig.getMultipartHandler() : null;
+ }
+
+ public static ServletContext getServletContext( HttpServletRequest request
)
+ {
+ assert request.getSession( false ) != null : "getServletContext()
called before session created";
+ return request.getSession( true ).getServletContext();
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/JavaControlUtils.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/JavaControlUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/JavaControlUtils.java
Thu Oct 14 21:50:04 2004
@@ -62,7 +62,7 @@
public static void initializeControlContext( HttpServletRequest request,
HttpServletResponse response,
ServletContext servletContext
)
{
- ControlBeanContext beanContext = getControlBeanContext( request,
response, true );
+ ControlBeanContext beanContext = getControlBeanContext( request,
response, servletContext, true );
//
// Start a new execution context
@@ -73,10 +73,11 @@
}
}
- public static void uninitializeControlContext( HttpServletRequest request,
HttpServletResponse response )
+ public static void uninitializeControlContext( HttpServletRequest request,
HttpServletResponse response,
+ ServletContext
servletContext )
{
- ControlBeanContext beanContext = getControlBeanContext( request,
response, false );
+ ControlBeanContext beanContext = getControlBeanContext( request,
response, servletContext, false );
if ( beanContext instanceof ServletBeanContext )
{
@@ -102,7 +103,7 @@
}
public static ControlBeanContext getControlBeanContext( HttpServletRequest
request, HttpServletResponse response,
- boolean
createIfMissing )
+ ServletContext
servletContext, boolean createIfMissing )
{
//
// Retrieve the control bean context from the request, and if it's not
there, from the session.
@@ -129,7 +130,8 @@
//
if ( createIfMissing )
{
- beanContext =
InternalUtils.getServerAdapter().createControlBeanContext( request, response );
+ beanContext =
+ ContextCache.get( servletContext
).getServerAdapter().createControlBeanContext( request, response );
request.getSession().setAttribute( CONTROL_CONTEXT_CLASSNAME,
beanContext );
request.setAttribute( CONTROL_CONTEXT_CLASSNAME, beanContext );
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/DefaultURLRewriter.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/DefaultURLRewriter.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/DefaultURLRewriter.java
Thu Oct 14 21:50:04 2004
@@ -19,7 +19,9 @@
//internal imports
import org.apache.beehive.netui.pageflow.PageFlowUtils;
+import org.apache.beehive.netui.pageflow.ServerAdapter;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.util.FileUtils;
@@ -54,16 +56,18 @@
}
else
{
+ ServerAdapter serverAdapter =
ContextCache.get(servletContext).getServerAdapter();
+
//Need to do default secure/unsecure rewriting
if ((type.equals(URLRewriter.ACTION_SECURE) ||
(type.equals(URLRewriter.RESOURCE_SECURE))))
{
if (!request.isSecure())
- url = internalRewriteUrl(url, "https",
InternalUtils.getServerAdapter().getSecureListenPort((HttpServletRequest)
request), request.getServerName());
+ url = internalRewriteUrl(url, "https",
serverAdapter.getSecureListenPort((HttpServletRequest) request),
request.getServerName());
}
else
{
if (request.isSecure())
- url = internalRewriteUrl(url, "http",
InternalUtils.getServerAdapter().getListenPort((HttpServletRequest) request),
request.getServerName());
+ url = internalRewriteUrl(url, "http",
serverAdapter.getListenPort((HttpServletRequest) request),
request.getServerName());
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/TemplateHelper.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/TemplateHelper.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/TemplateHelper.java
Thu Oct 14 21:50:04 2004
@@ -24,8 +24,9 @@
import java.net.URI;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletContext;
-import org.apache.beehive.netui.pageflow.PageFlowUtils;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
/**
@@ -563,7 +564,8 @@
}
else {
// Append the webapp name
- String webAppName =
InternalUtils.getServerAdapter().getFullContextPath(httpRequest);
+ ServletContext servletContext =
InternalUtils.getServletContext(httpRequest);
+ String webAppName =
ContextCache.get(servletContext).getServerAdapter().getFullContextPath(httpRequest);
buf = appendEnsureSeparator(buf, webAppName);
// Append the servlet name (mapping)
@@ -651,7 +653,8 @@
}
else {
// Append the webapp name
- String webAppName =
InternalUtils.getServerAdapter().getFullContextPath(httpRequest);
+ ServletContext servletContext =
InternalUtils.getServletContext(httpRequest);
+ String webAppName =
ContextCache.get(servletContext).getServerAdapter().getFullContextPath(httpRequest);
buf.append(webAppName);
// Append the servlet name (mapping)
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/BindingUpdateErrors.java
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/BindingUpdateErrors.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/BindingUpdateErrors.java
Thu Oct 14 21:50:04 2004
@@ -20,6 +20,7 @@
import org.apache.beehive.netui.pageflow.ServerAdapter;
import org.apache.beehive.netui.pageflow.internal.BindingUpdateError;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.util.Bundle;
@@ -114,8 +115,8 @@
return;
}
- ServerAdapter sa = InternalUtils.getServerAdapter();
PageContext pageContext = getPageContext();
+ ServerAdapter sa =
ContextCache.get(pageContext.getServletContext()).getServerAdapter();
ServletRequest request = pageContext.getRequest();
assert(sa != null);
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Exceptions.java
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Exceptions.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Exceptions.java
Thu Oct 14 21:50:04 2004
@@ -18,6 +18,7 @@
package org.apache.beehive.netui.tags.html;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.util.HtmlExceptionFormatter;
import org.apache.struts.Globals;
@@ -127,7 +128,7 @@
}
if (!_showStackTrace && _showDevModeStackTrace) {
- boolean devMode =
!InternalUtils.getServerAdapter().isInProductionMode();
+ boolean devMode =
!ContextCache.get(pageContext.getServletContext()).getServerAdapter().isInProductionMode();
if (devMode)
_showStackTrace = true;
}
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
Thu Oct 14 21:50:04 2004
@@ -41,6 +41,7 @@
import org.apache.struts.config.ModuleConfig;
import org.apache.struts.taglib.html.Constants;
import org.apache.struts.util.RequestUtils;
+import org.apache.struts.util.TokenProcessor;
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
@@ -791,7 +792,7 @@
writeHiddenParam(Constants.TOKEN_KEY, token, results, request);
}
}
-
+
// add a hidden value for each parameter
if (_params != null) {
Iterator paramKeys = _params.keySet().iterator();
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
Thu Oct 14 21:50:04 2004
@@ -18,6 +18,7 @@
package org.apache.beehive.netui.tags.tree;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.ContextCache;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.pageflow.util.PageflowTagUtils;
import org.apache.beehive.netui.script.ExpressionUpdateException;
@@ -33,6 +34,7 @@
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
+import javax.servlet.ServletContext;
import java.io.IOException;
import java.net.URLEncoder;
@@ -729,7 +731,8 @@
// In devMode we will verify the structure of the tree. This will not
run in
// production mode.
- boolean devMode =
!InternalUtils.getServerAdapter().isInProductionMode();
+ ServletContext servletContext =
InternalUtils.getServletContext(request);
+ boolean devMode =
!ContextCache.get(servletContext).getServerAdapter().isInProductionMode();
if (devMode) {
boolean error = false;
StringBuilder errorText = new StringBuilder();