Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/ActionInterceptorContext.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/ActionInterceptorContext.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/ActionInterceptorContext.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/ActionInterceptorContext.java Sun Feb 20 22:28:07 2005 @@ -18,12 +18,11 @@ package org.apache.beehive.netui.pageflow.interceptor.action; import org.apache.beehive.netui.pageflow.PageFlowController; -import org.apache.beehive.netui.pageflow.interceptor.InterceptorContext; import org.apache.beehive.netui.pageflow.interceptor.Interceptor; -import org.apache.beehive.netui.pageflow.interceptor.Interceptors; +import org.apache.beehive.netui.pageflow.interceptor.request.RequestInterceptorContext; import org.apache.beehive.netui.util.logging.Logger; -import org.apache.beehive.netui.util.config.bean.*; import org.apache.beehive.netui.util.config.ConfigUtil; +import org.apache.beehive.netui.util.config.bean.PageflowActionInterceptors; import org.apache.struts.action.ActionForward; import javax.servlet.http.HttpServletRequest; @@ -43,16 +42,13 @@ public class ActionInterceptorContext - extends InterceptorContext + extends RequestInterceptorContext { private static final String ACTIVE_INTERCEPTOR_CONTEXT_ATTR = ATTR_PREFIX + "interceptorContext"; private static final String CACHE_ATTR = ATTR_PREFIX + "actionInterceptorConfig"; private static final Logger _log = Logger.getInstance( ActionInterceptorContext.class ); - private transient ServletContext _servletContext; - private transient HttpServletRequest _request; - private transient HttpServletResponse _response; private PageFlowController _pageFlow; private InterceptorForward _originalForward; private String _actionName; @@ -62,22 +58,10 @@ ServletContext servletContext, PageFlowController controller, InterceptorForward originalForward, String actionName ) { - _request = request; - _response = response; + super( request, response, servletContext ); _pageFlow = controller; _originalForward = originalForward; _actionName = actionName; - _servletContext = servletContext; - } - - public HttpServletRequest getRequest() - { - return _request; - } - - public HttpServletResponse getResponse() - { - return _response; } /** @@ -106,11 +90,6 @@ return _actionName; } - public ServletContext getServletContext() - { - return _servletContext; - } - /** * * Set an [EMAIL PROTECTED] InterceptorForward} that changes the destination URI of the intercepted action. If the @@ -125,12 +104,12 @@ // If there was no original forward (i.e., this is happening before the action was invoked), create a // pseudo-forward out of the original request. // - if ( _originalForward == null ) _originalForward = new OriginalForward( _request ); + if ( _originalForward == null ) _originalForward = new OriginalForward( getRequest() ); // // Store this context in the request. // - _request.setAttribute( ACTIVE_INTERCEPTOR_CONTEXT_ATTR, this ); + getRequest().setAttribute( ACTIVE_INTERCEPTOR_CONTEXT_ATTR, this ); } public InterceptorForward getResultOverride() @@ -261,7 +240,7 @@ if ( globalInterceptors != null ) { - addInterceptors( globalInterceptors.getActionInterceptorArray(), interceptorsList ); + addInterceptors( globalInterceptors.getActionInterceptorArray(), interceptorsList, ActionInterceptor.class ); addSimpleInterceptors( globalInterceptors.getSimpleActionInterceptorArray(), interceptorsList ); } @@ -282,7 +261,8 @@ // // This is a matching page flow -- add per-pageflow interceptors. // - addInterceptors( perPageFlowInterceptorsConfig[i].getActionInterceptorArray(), interceptorsList ); + addInterceptors( perPageFlowInterceptorsConfig[i].getActionInterceptorArray(), interceptorsList, + ActionInterceptor.class ); addSimpleInterceptors( perPageFlowInterceptorsConfig[i].getSimpleActionInterceptorArray(), interceptorsList ); @@ -300,7 +280,8 @@ // // This is a matching action -- add per-action interceptors. // - addInterceptors( perActionConfig.getActionInterceptorArray(), interceptorsList ); + addInterceptors( perActionConfig.getActionInterceptorArray(), interceptorsList, + ActionInterceptor.class ); addSimpleInterceptors( perActionConfig.getSimpleActionInterceptorArray(), interceptorsList ); } @@ -315,32 +296,6 @@ return interceptorsList; } - private static void addInterceptors( org.apache.beehive.netui.util.config.bean.ActionInterceptor[] configBeans, - List< Interceptor > interceptorsList ) - { - if ( configBeans != null ) - { - for ( int i = 0; i < configBeans.length; i++ ) - { - org.apache.beehive.netui.util.config.bean.ActionInterceptor configBean = configBeans[i]; - String className = configBean.getInterceptorClass(); - ActionInterceptorConfig config = new ActionInterceptorConfig( className ); - CustomProperty[] customProps = configBean.getCustomPropertyArray(); - - if ( customProps != null ) - { - for ( int j = 0; j < customProps.length; j++ ) - { - CustomProperty customProp = customProps[j]; - config.addCustomProperty( customProp.getName(), customProp.getValue() ); - } - } - - Interceptors.addInterceptor( config, ActionInterceptor.class, interceptorsList ); - } - } - } - private static void addSimpleInterceptors( org.apache.beehive.netui.util.config.bean.SimpleActionInterceptor[] configBeans, List< Interceptor > interceptorsList ) { @@ -356,6 +311,11 @@ public void setOriginalForward( ActionForward origFwd ) { - _originalForward = origFwd != null ? new InterceptorForward( origFwd, _servletContext, _pageFlow ) : null; + _originalForward = origFwd != null ? new InterceptorForward( origFwd, getServletContext(), _pageFlow ) : null; + } + + public static void init( ServletContext servletContext ) + { + // TODO: move some of the lazy-load logic in getActionInterceptors into here. } }
Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/SimpleActionInterceptorConfig.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/SimpleActionInterceptorConfig.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/SimpleActionInterceptorConfig.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/SimpleActionInterceptorConfig.java Sun Feb 20 22:28:07 2005 @@ -17,8 +17,10 @@ */ package org.apache.beehive.netui.pageflow.interceptor.action; +import org.apache.beehive.netui.pageflow.interceptor.InterceptorConfig; + class SimpleActionInterceptorConfig - extends ActionInterceptorConfig + extends InterceptorConfig { private String _path; private boolean _afterAction; Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptor.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptor.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptor.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptor.java Sun Feb 20 22:28:07 2005 @@ -22,30 +22,14 @@ import org.apache.beehive.netui.pageflow.interceptor.InterceptorException; import org.apache.beehive.netui.pageflow.interceptor.InterceptorContext; import org.apache.beehive.netui.pageflow.interceptor.InterceptorConfig; +import org.apache.beehive.netui.pageflow.interceptor.AbstractInterceptor; import java.io.Serializable; public abstract class RequestInterceptor - implements Interceptor, Serializable + extends AbstractInterceptor { - private RequestInterceptorConfig _config; - - /** - * Called when this interceptor is being initialized. - * - * @param config the configuration object associated with this interceptor. - */ - public void init( RequestInterceptorConfig config ) - { - _config = config; - } - - public void init( InterceptorConfig config ) - { - init( ( RequestInterceptorConfig ) config ); - } - public abstract void preRequest( RequestInterceptorContext context, InterceptorChain chain ) throws InterceptorException; @@ -62,11 +46,6 @@ postRequest( ( RequestInterceptorContext ) context, chain ); } - public RequestInterceptorConfig getConfig() - { - return _config; - } - protected void cancelRequest( RequestInterceptorContext context ) { context.cancelRequest( this ); Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptorContext.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptorContext.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptorContext.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/RequestInterceptorContext.java Sun Feb 20 22:28:07 2005 @@ -19,13 +19,88 @@ import org.apache.beehive.netui.pageflow.interceptor.InterceptorContext; import org.apache.beehive.netui.pageflow.interceptor.Interceptor; -import org.apache.beehive.netui.pageflow.interceptor.Interceptors; +import org.apache.beehive.netui.pageflow.internal.InternalConstants; +import org.apache.beehive.netui.util.config.ConfigUtil; +import org.apache.beehive.netui.util.config.bean.RequestInterceptors; + +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.ServletContext; +import java.util.ArrayList; +import java.util.List; public class RequestInterceptorContext extends InterceptorContext { + private static final String INTERCEPTORS_LIST_ATTR = InternalConstants.ATTR_PREFIX + "requestInterceptors"; + + private transient ServletContext _servletContext; + private transient HttpServletRequest _request; + private transient HttpServletResponse _response; + + public RequestInterceptorContext( HttpServletRequest request, HttpServletResponse response, + ServletContext servletContext ) + { + _request = request; + _response = response; + _servletContext = servletContext; + } + public void cancelRequest( RequestInterceptor interceptor ) { setResultOverride( null, interceptor ); + } + + public boolean requestWasCancelled() + { + return hasResultOverride() && getResultOverride() == null; + } + + public HttpServletRequest getRequest() + { + return _request; + } + + public HttpServletResponse getResponse() + { + return _response; + } + + public ServletContext getServletContext() + { + return _servletContext; + } + + public static void init( ServletContext servletContext ) + { + RequestInterceptors requestInterceptors = ConfigUtil.getConfig().getRequestInterceptors(); + + if ( requestInterceptors != null ) + { + RequestInterceptors.Global globalRequestInterceptors = requestInterceptors.getGlobal(); + + if ( globalRequestInterceptors != null ) + { + org.apache.beehive.netui.util.config.bean.Interceptor[] interceptors = + globalRequestInterceptors.getRequestInterceptorArray(); + ArrayList< Interceptor > interceptorsList = new ArrayList< Interceptor >(); + addInterceptors( interceptors, interceptorsList, RequestInterceptor.class ); + servletContext.setAttribute( INTERCEPTORS_LIST_ATTR, interceptorsList ); + } + } + } + + public List< Interceptor > getRequestInterceptors() + { + return ( List< Interceptor > ) getServletContext().getAttribute( INTERCEPTORS_LIST_ATTR ); + } + + public static void addInterceptor( ServletContext servletContext, RequestInterceptor interceptor ) + { + List< Interceptor > interceptorsList = + ( List< Interceptor > ) servletContext.getAttribute( INTERCEPTORS_LIST_ATTR ); + if ( interceptorsList == null ) interceptorsList = new ArrayList< Interceptor >(); + interceptorsList.add( interceptor ); + servletContext.setAttribute( INTERCEPTORS_LIST_ATTR, interceptorsList ); } } Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalConstants.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalConstants.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalConstants.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalConstants.java Sun Feb 20 22:28:07 2005 @@ -59,4 +59,12 @@ public static final String NETUI_CONFIG_PATH = "/WEB-INF/netui-config.xml"; public static final String RETURN_ACTION_VIEW_RENDERER_PARAM = ATTR_PREFIX + "returnActionViewRenderer"; + + /** + * The prefix for a button or imageButton that has an action. + */ + public static final String ACTION_OVERRIDE_PREFIX = "actionOverride:"; + + public static final String FACES_BACKING_EXTENSION = ".jsfb"; + public static final String SHARED_FLOW_EXTENSION = ".jpfs"; } Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java Sun Feb 20 22:28:07 2005 @@ -17,55 +17,32 @@ */ package org.apache.beehive.netui.pageflow.xmlhttprequest; -import org.apache.beehive.netui.pageflow.requeststate.ServletInterceptorContext; -import org.apache.beehive.netui.pageflow.requeststate.IRequestInterceptor; -import org.apache.beehive.netui.pageflow.requeststate.InterceptorContext; -import org.apache.beehive.netui.util.config.ConfigUtil; -import org.apache.beehive.netui.util.config.bean.NetuiConfigDocument; -import org.apache.beehive.netui.util.config.bean.RequestInterceptors; import org.apache.beehive.netui.util.logging.Logger; +import org.apache.beehive.netui.pageflow.interceptor.request.RequestInterceptorContext; +import org.apache.beehive.netui.pageflow.interceptor.request.RequestInterceptor; +import org.apache.beehive.netui.pageflow.interceptor.Interceptor; +import org.apache.beehive.netui.pageflow.interceptor.Interceptors; +import org.apache.beehive.netui.pageflow.interceptor.InterceptorException; +import org.apache.beehive.netui.pageflow.interceptor.InterceptorChain; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.ServletException; +import javax.servlet.ServletContext; import java.io.IOException; -import java.util.ArrayList; +import java.util.List; public class XmlHttpRequestServlet extends HttpServlet { private static final Logger logger = Logger.getInstance(XmlHttpRequestServlet.class); - private ArrayList<IRequestInterceptor> _interceptors; - public void init() + public void init() throws ServletException { - NetuiConfigDocument.NetuiConfig config = ConfigUtil.getConfig(); - RequestInterceptors interceptors = config.getRequestInterceptors(); - if (interceptors == null) - return; - - String[] inter = interceptors.getInterceptorClassArray(); - if (inter == null || inter.length == 0) - return; - - _interceptors = new ArrayList<IRequestInterceptor>(inter.length); - _interceptors.add(new ErrorCRI()); - for (String i : inter) { - try { - Class cls = Class.forName(i); - IRequestInterceptor interceptor = (IRequestInterceptor) cls.newInstance(); - _interceptors.add(interceptor); - } - catch (ClassNotFoundException error) { - logger.error("Interceptor class not found:" + i,error); - } - catch (InstantiationException error) { - logger.error("Unable to create intercptor class:" + i,error); - } - catch (IllegalAccessException error) { - logger.error("Illegal access of intercptor class:" + i,error); - } - } + ServletContext ctxt = getServletContext(); + RequestInterceptorContext.init(ctxt); + // TODO: does ErrorCRT really need to be an interceptor? + RequestInterceptorContext.addInterceptor(ctxt, new ErrorCRI()); } public void doGet(HttpServletRequest request, @@ -78,12 +55,22 @@ response.setContentType("text/xml"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); - if (_interceptors == null || _interceptors.size() == 0) - return; - - ServletInterceptorContext ctxt = new ServletInterceptorContext(request,response,getServletContext()); - for (IRequestInterceptor i : _interceptors) - i.interceptRequest(ctxt); + + ServletContext ctxt = getServletContext(); + RequestInterceptorContext context = new RequestInterceptorContext(request, response, ctxt); + List< Interceptor > interceptors = context.getRequestInterceptors(); + + try + { + Interceptors.doPreIntercept(context, interceptors); + } + catch (InterceptorException e) + { + throw new ServletException(e); + } + + // Note that we're not worrying about post-intercept or whether any of the pre-interceptors cancelled the + // request, since there's no further processing in the request. } public void doPost(HttpServletRequest request, @@ -93,12 +80,12 @@ doGet(request, response); } - class ErrorCRI implements IRequestInterceptor + class ErrorCRI extends RequestInterceptor { - public void interceptRequest(InterceptorContext ctxt) + public void preRequest(RequestInterceptorContext ctxt, InterceptorChain chain) throws InterceptorException { // Create the command by striping off the context path and the extension - HttpServletRequest request = (HttpServletRequest) ((ServletInterceptorContext) ctxt).getRequest(); + HttpServletRequest request = ctxt.getRequest(); String cmd = request.getRequestURI(); String ctxtPath = request.getContextPath(); @@ -120,7 +107,12 @@ logger.error("Runtime Error creating XmlRequestServlet Command:" + e.getClass().getName(),e); } + chain.continueChain(); + } + public void postRequest(RequestInterceptorContext context, InterceptorChain chain) throws InterceptorException + { + chain.continueChain(); } } } Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/AbstractClientRequestInterceptor.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/AbstractClientRequestInterceptor.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/AbstractClientRequestInterceptor.java (original) +++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/AbstractClientRequestInterceptor.java Sun Feb 20 22:28:07 2005 @@ -17,9 +17,9 @@ */ package org.apache.beehive.netui.tags; -import org.apache.beehive.netui.pageflow.requeststate.IRequestInterceptor; +import org.apache.beehive.netui.pageflow.interceptor.request.RequestInterceptor; -abstract public class AbstractClientRequestInterceptor implements IRequestInterceptor +abstract public class AbstractClientRequestInterceptor extends RequestInterceptor { protected String getCommand(String cmd, String ctxtPath) { Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/divpanel/DivPanelCRI.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/divpanel/DivPanelCRI.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/divpanel/DivPanelCRI.java (original) +++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/divpanel/DivPanelCRI.java Sun Feb 20 22:28:07 2005 @@ -18,9 +18,10 @@ package org.apache.beehive.netui.tags.divpanel; import org.apache.beehive.netui.pageflow.requeststate.INameable; -import org.apache.beehive.netui.pageflow.requeststate.InterceptorContext; import org.apache.beehive.netui.pageflow.requeststate.NameService; -import org.apache.beehive.netui.pageflow.requeststate.ServletInterceptorContext; +import org.apache.beehive.netui.pageflow.interceptor.request.RequestInterceptorContext; +import org.apache.beehive.netui.pageflow.interceptor.InterceptorChain; +import org.apache.beehive.netui.pageflow.interceptor.InterceptorException; import org.apache.beehive.netui.tags.AbstractClientRequestInterceptor; import javax.servlet.http.HttpServletRequest; @@ -29,12 +30,9 @@ { private static final String SWITCH_PAGE = "switchPage"; - public void interceptRequest(InterceptorContext ctxt) + public void preRequest(RequestInterceptorContext ctxt, InterceptorChain chain) { - if (!(ctxt instanceof ServletInterceptorContext)) - return; - - HttpServletRequest request = (HttpServletRequest) ((ServletInterceptorContext) ctxt).getRequest(); + HttpServletRequest request = ctxt.getRequest(); // Create the command by striping off the context path and the extension String uri = request.getRequestURI(); @@ -45,12 +43,12 @@ // check to see if we handle this command if (SWITCH_PAGE.equals(cmd)) { - handlePageSwitch(ctxt, request); + handlePageSwitch(request); } } - private void handlePageSwitch(InterceptorContext ctxt, HttpServletRequest req) + private void handlePageSwitch(HttpServletRequest req) { String dp = req.getParameter("divPanel"); String fp = req.getParameter("firstPage"); @@ -72,5 +70,10 @@ DivPanelState state = (DivPanelState) n; state.setFirstPage(fp); + } + + public void postRequest( RequestInterceptorContext context, InterceptorChain chain ) throws InterceptorException + { + chain.continueChain(); } } Modified: incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java (original) +++ incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java Sun Feb 20 22:28:07 2005 @@ -17,7 +17,12 @@ */ package org.apache.beehive.netui.tags.tree; -import org.apache.beehive.netui.pageflow.requeststate.*; +import org.apache.beehive.netui.pageflow.interceptor.request.RequestInterceptor; +import org.apache.beehive.netui.pageflow.interceptor.request.RequestInterceptorContext; +import org.apache.beehive.netui.pageflow.interceptor.InterceptorChain; +import org.apache.beehive.netui.pageflow.interceptor.InterceptorException; +import org.apache.beehive.netui.pageflow.requeststate.NameService; +import org.apache.beehive.netui.pageflow.requeststate.INameable; import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender; import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender; import org.apache.beehive.netui.util.logging.Logger; @@ -30,7 +35,7 @@ import java.io.IOException; import java.io.Writer; -public class TreeCRI implements IRequestInterceptor +public class TreeCRI extends RequestInterceptor { private static final String TREE_COLLAPSE = "treeCollapse"; private static final String TREE_EXPAND = "treeExpand"; @@ -40,14 +45,9 @@ // The elements we will create in the document private static final String TREE_EXPAND_ELEM = "treeExpand"; - public void interceptRequest(InterceptorContext ctxt) + public void preRequest(RequestInterceptorContext ctxt, InterceptorChain chain) throws InterceptorException { - if (!(ctxt instanceof ServletInterceptorContext)) - return; - - HttpServletRequest request = (HttpServletRequest) ((ServletInterceptorContext) ctxt).getRequest(); - ServletResponse response = ((ServletInterceptorContext) ctxt).getResponse(); - ServletContext servletContext = ((ServletInterceptorContext) ctxt).getServletContext(); + HttpServletRequest request = ctxt.getRequest(); // Create the command by striping off the context path and the extension String cmd = request.getRequestURI(); @@ -66,12 +66,18 @@ // check to see if we handle this command if (TREE_COLLAPSE.equals(cmd)) { - handleExpandCollapse(false, request, response, servletContext); + handleExpandCollapse(false, request, ctxt.getResponse(), ctxt.getServletContext()); } else if (TREE_EXPAND.equals(cmd)) { - handleExpandCollapse(true, request, response, servletContext); + handleExpandCollapse(true, request, ctxt.getResponse(), ctxt.getServletContext()); } - return; + + chain.continueChain(); + } + + public void postRequest( RequestInterceptorContext context, InterceptorChain chain ) throws InterceptorException + { + chain.continueChain(); } private void handleExpandCollapse(boolean expand, HttpServletRequest req, ServletResponse response, Modified: incubator/beehive/trunk/netui/src/util/netui-config-default.xml URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/netui-config-default.xml?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/util/netui-config-default.xml (original) +++ incubator/beehive/trunk/netui/src/util/netui-config-default.xml Sun Feb 20 22:28:07 2005 @@ -13,8 +13,14 @@ </expression-languages> <request-interceptors> - <interceptor-class>org.apache.beehive.netui.tags.tree.TreeCRI</interceptor-class> - <interceptor-class>org.apache.beehive.netui.tags.divpanel.DivPanelCRI</interceptor-class> + <global> + <request-interceptor> + <interceptor-class>org.apache.beehive.netui.tags.tree.TreeCRI</interceptor-class> + </request-interceptor> + <request-interceptor> + <interceptor-class>org.apache.beehive.netui.tags.divpanel.DivPanelCRI</interceptor-class> + </request-interceptor> + </global> </request-interceptors> </netui-config> Modified: incubator/beehive/trunk/netui/src/util/schema/netui-config/netui-config.xsd URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/schema/netui-config/netui-config.xsd?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/util/schema/netui-config/netui-config.xsd (original) +++ incubator/beehive/trunk/netui/src/util/schema/netui-config/netui-config.xsd Sun Feb 20 22:28:07 2005 @@ -29,7 +29,7 @@ </xsd:sequence> </xsd:complexType> - <xsd:complexType name="action-interceptor"> + <xsd:complexType name="interceptor"> <xsd:sequence> <xsd:element name="interceptor-class" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="custom-property" type="netui:custom-property" minOccurs="0" maxOccurs="unbounded"/> @@ -43,13 +43,25 @@ </xsd:sequence> </xsd:complexType> + <xsd:complexType name="request-interceptors"> + <xsd:sequence> + <xsd:element name="global" minOccurs="0" maxOccurs="1"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="request-interceptor" type="netui:interceptor" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="pageflow-action-interceptors"> <xsd:sequence> <xsd:element name="global" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="simple-action-interceptor" type="netui:simple-action-interceptor" minOccurs="0" maxOccurs="unbounded"/> - <xsd:element name="action-interceptor" type="netui:action-interceptor" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="action-interceptor" type="netui:interceptor" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> @@ -58,13 +70,13 @@ <xsd:sequence> <xsd:element name="pageflow-uri" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="simple-action-interceptor" type="netui:simple-action-interceptor" minOccurs="0" maxOccurs="unbounded"/> - <xsd:element name="action-interceptor" type="netui:action-interceptor" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="action-interceptor" type="netui:interceptor" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="per-action" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="action-name" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="simple-action-interceptor" type="netui:simple-action-interceptor" minOccurs="0" maxOccurs="unbounded"/> - <xsd:element name="action-interceptor" type="netui:action-interceptor" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="action-interceptor" type="netui:interceptor" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> @@ -195,12 +207,6 @@ </xsd:sequence> </xsd:complexType> </xsd:element> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="request-interceptors"> - <xsd:sequence> - <xsd:element name="interceptor-class" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:schema> Modified: incubator/beehive/trunk/netui/src/webapp-template/default/WEB-INF/netui-config.xml URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/webapp-template/default/WEB-INF/netui-config.xml?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/webapp-template/default/WEB-INF/netui-config.xml (original) +++ incubator/beehive/trunk/netui/src/webapp-template/default/WEB-INF/netui-config.xml Sun Feb 20 22:28:07 2005 @@ -13,8 +13,14 @@ </expression-languages> <request-interceptors> - <interceptor-class>org.apache.beehive.netui.tags.tree.TreeCRI</interceptor-class> - <interceptor-class>org.apache.beehive.netui.tags.divpanel.DivPanelCRI</interceptor-class> + <global> + <request-interceptor> + <interceptor-class>org.apache.beehive.netui.tags.tree.TreeCRI</interceptor-class> + </request-interceptor> + <request-interceptor> + <interceptor-class>org.apache.beehive.netui.tags.divpanel.DivPanelCRI</interceptor-class> + </request-interceptor> + </global> </request-interceptors> </netui-config> Modified: incubator/beehive/trunk/netui/src/webapp-template/default/WEB-INF/web.xml URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/webapp-template/default/WEB-INF/web.xml?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/src/webapp-template/default/WEB-INF/web.xml (original) +++ incubator/beehive/trunk/netui/src/webapp-template/default/WEB-INF/web.xml Sun Feb 20 22:28:07 2005 @@ -76,10 +76,20 @@ <!-- Struts Action Servlet Mappings --> <!-- Note that because Struts takes the *last* mapping here as the extension to add to - actions posted from forms, we must have *.do come after *.jpf. --> + actions posted from forms, we must have *.do come after *.jpf (etc.). --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.jpf</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>action</servlet-name> + <url-pattern>*.jpfs</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>action</servlet-name> + <url-pattern>*.jsfb</url-pattern> </servlet-mapping> <servlet-mapping> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/local-netui-config.xml Sun Feb 20 22:28:07 2005 @@ -150,8 +150,14 @@ </iterator-factories> <request-interceptors> - <interceptor-class>org.apache.beehive.netui.tags.tree.TreeCRI</interceptor-class> - <interceptor-class>org.apache.beehive.netui.tags.divpanel.DivPanelCRI</interceptor-class> + <global> + <request-interceptor> + <interceptor-class>org.apache.beehive.netui.tags.tree.TreeCRI</interceptor-class> + </request-interceptor> + <request-interceptor> + <interceptor-class>org.apache.beehive.netui.tags.divpanel.DivPanelCRI</interceptor-class> + </request-interceptor> + </global> </request-interceptors> </netui-config> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/global/Global.app URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/global/Global.app?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/global/Global.app (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/global/Global.app Sun Feb 20 22:28:07 2005 @@ -13,10 +13,6 @@ import pageFlowCore.returnToTest.returnToTestController.InputForm; @Jpf.Controller( - catches={ - @Jpf.Catch(type=NoPreviousPageException.class, path="/timeout/error.jsp"), - @Jpf.Catch(type=SessionExpiredException.class, path="/timeout/error.jsp") - }, strutsMerge="/WEB-INF/src/global/merge-jpf-struts-config.xml" ) public class Global extends GlobalApp Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/actionInterceptors/GlobalInterceptor.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/actionInterceptors/GlobalInterceptor.java?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/actionInterceptors/GlobalInterceptor.java (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/actionInterceptors/GlobalInterceptor.java Sun Feb 20 22:28:07 2005 @@ -10,7 +10,7 @@ private String _prop1; private String _prop2; - public void init( ActionInterceptorConfig config ) + public void init( InterceptorConfig config ) { _prop1 = config.getCustomProperty( "prop1" ); _prop2 = config.getCustomProperty( "prop2" ); Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j159/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j159/index.jsp?view=auto&rev=154639 ============================================================================== (empty) Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j159/index.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j189/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j189/index.jsp?view=auto&rev=154639 ============================================================================== (empty) Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/bugs/j189/index.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/actionInterceptors/someFlow/error.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/actionInterceptors/someFlow/error.jsp?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/actionInterceptors/someFlow/error.jsp (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/actionInterceptors/someFlow/error.jsp Sun Feb 20 22:28:07 2005 @@ -0,0 +1,19 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%> +<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%> +<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%> + + +<netui:html> + <head> + <netui:base/> + </head> + <netui:body> + <h3>${pageFlow.URI}</h3> + + <span style="color:red">We should never get to this page! The interceptor reroutes...</span> + </netui:body> +</netui:html> + + + Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/actionInterceptors/someFlow/error.jsp ------------------------------------------------------------------------------ svn:eol-style = native 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=154638&r2=154639 ============================================================================== --- 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 Sun Feb 20 22:28:07 2005 @@ -21,7 +21,7 @@ ) public class Controller extends PageFlowController { - @Jpf.Action() + @Jpf.Action(doValidation=false) protected Forward zipSuccess( GetZip.ZipForm zip ) { return new Forward( "_auto" ); Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/getZip/GetZip.jpf URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/getZip/GetZip.jpf?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/getZip/GetZip.jpf (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/getZip/GetZip.jpf Sun Feb 20 22:28:07 2005 @@ -66,7 +66,8 @@ @Jpf.Action( forwards={ @Jpf.Forward(name="done", returnAction="zipCancel") - } + }, + doValidation=false ) protected Forward cancel( ZipForm form ) { Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp Sun Feb 20 22:28:07 2005 @@ -14,6 +14,7 @@ <netui:anchor href="MockPortal.jsp">basic MockPortal test</netui:anchor><br> <netui:anchor href="listenTo/ListenToPortal.jsp">tests "listenTo" and exception-handling</netui:anchor><br> +<netui:anchor href="scoping/ScopingController.jpf">tests "jpfScopeID" parameter in portlets</netui:anchor><br> </body> </html> Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopedPortal.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopedPortal.jsp?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopedPortal.jsp (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopedPortal.jsp Sun Feb 20 22:28:07 2005 @@ -0,0 +1,18 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="mockportal.tld" prefix="mp" %> + +<html> +<head> +<title>Scoped Portal (/mockportal/scoping)</title> +</head> + +<h3>Scoped Portal (/mockportal/scoping)</h3> +<body> + + <mp:mockPortal> + <mp:mockPortlet portletID="portletA" pageFlowURI="/mockportal/scoping/ScopingtController.jpf" verbose="false" /> + <mp:mockPortlet portletID="portletB" pageFlowURI="/mockportal/scoping/ScopingController.jpf" verbose="false" /> + </mp:mockPortal> + +</body> +</html> Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopedPortal.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopingController.jpf URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopingController.jpf?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopingController.jpf (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopingController.jpf Sun Feb 20 22:28:07 2005 @@ -0,0 +1,44 @@ +/* + * 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 mockportal.scoping; +import org.apache.beehive.netui.pageflow.Forward; +import org.apache.beehive.netui.pageflow.PageFlowController; +import org.apache.beehive.netui.pageflow.annotations.Jpf; + [EMAIL PROTECTED]( + simpleActions={ + @Jpf.SimpleAction(name="begin", path="index.jsp"), + @Jpf.SimpleAction(name="submit", path="results.jsp"), + @Jpf.SimpleAction(name="launchPopUp", path="window1.jsp"), + @Jpf.SimpleAction(name="showResults", path="window1Results.jsp") + } +) +public class ScopingController extends PageFlowController +{ + private String _data; + + public String getData() + { + return _data; + } + + public void setData( String data ) + { + _data = data; + } +} Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/ScopingController.jpf ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/index.jsp?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/index.jsp (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/index.jsp Sun Feb 20 22:28:07 2005 @@ -0,0 +1,19 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %> + +<netui:html> + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + <h3>Portal Scoping Test</h3> + + <netui:form action="submit" targetScope="a"> + data: <netui:textBox tagId="tb" dataSource="pageFlow.data"/> + <netui:button value="submit"/> + </netui:form> + <p> + </body> +</netui:html> Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/index.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/results.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/results.jsp?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/results.jsp (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/results.jsp Sun Feb 20 22:28:07 2005 @@ -0,0 +1,24 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %> + +<netui:html> + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + <h3>Portal Scoping Test</h3> + + data: <b><netui:span value="${pageFlow.data}"/></b> + <br/> + <a href="window1.jsp?jpfScopeID=a" target="_a">launch pop-up window</a> + <br/> + <netui:anchor action="submit"> + <netui:parameter name="jpfScopeID" value="a"/> + refresh results + </netui:anchor> + <br/> + <netui:anchor action="begin">go back</netui:anchor> + </body> +</netui:html> Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/results.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1.jsp?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1.jsp (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1.jsp Sun Feb 20 22:28:07 2005 @@ -0,0 +1,18 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %> + +<netui:html> + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + data: <b><netui:span value="${pageFlow.data}"/></b> + <p> + <netui:form action="showResults" targetScope="a"> + new data: <netui:textBox tagId="tb" dataSource="pageFlow.data"/> + <netui:button value="submit"/> + </netui:form> + </body> +</netui:html> \ No newline at end of file Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1Results.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1Results.jsp?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1Results.jsp (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1Results.jsp Sun Feb 20 22:28:07 2005 @@ -0,0 +1,15 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %> + +<netui:html> + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + data: <b><netui:span value="${pageFlow.data}"/></b> + <p> + <a href="javascript:window.close();">close window</a> + </body> +</netui:html> \ No newline at end of file Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping/window1Results.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/inheritance/super0/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/inheritance/super0/index.jsp?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/inheritance/super0/index.jsp (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/inheritance/super0/index.jsp Sun Feb 20 22:28:07 2005 @@ -0,0 +1,17 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%> +<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%> +<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%> + + +<netui:html> + <head> + <netui:base/> + </head> + <netui:body> + We should never hit this page, since we never hit pageFlowCore.inheritance.super0.Controller directly. + </netui:body> +</netui:html> + + + Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/inheritance/super0/index.jsp ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/returnTo/test30/Jpf1.jpf URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/returnTo/test30/Jpf1.jpf?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/returnTo/test30/Jpf1.jpf (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/returnTo/test30/Jpf1.jpf Sun Feb 20 22:28:07 2005 @@ -79,7 +79,7 @@ forwards = { @Jpf.Forward( name = "goBack", - navigateTo = Jpf.NavigateTo.page) + navigateTo = Jpf.NavigateTo.previousPage) }) protected Forward action2() { Modified: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?view=diff&r1=154638&r2=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Sun Feb 20 22:28:07 2005 @@ -4335,6 +4335,19 @@ <feature>Scoping</feature> </features> </test> + <test> + <name>MockPortalScopingTest</name> + <description>Tests 'jpfScopeID' parameter under our simulated portal. This parameter causes the targeted page flow to live in a given session 'scope', which is the same scope used by portlets.</description> + <webapp>coreWeb</webapp> + <categories> + <category>bvt</category> + <category>bvt.struts11</category> + <category>mockPortal</category> + </categories> + <features> + <feature>Scoping</feature> + </features> + </test> <test> <name>ModuleConfigLocator</name> <description>Test DynamicSubappActionServlet.ModuleConfigLocators, which allow the user to specify alternate locations for auto-registered Struts config files.</description> Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest.xml URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest.xml?view=auto&rev=154639 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest.xml (added) +++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest.xml Sun Feb 20 22:28:07 2005 @@ -0,0 +1,808 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session"> + <ses:sessionName>MockPortalScopingTest</ses:sessionName> + <ses:tester>njantz</ses:tester> + <ses:startDate>09 Feb 2005, 11:02:05.838 AM MST</ses:startDate> + <ses:description>This tests the jpfScopingID parameter in context of a portlet and pop-windows.</ses:description> + <ses:tests> + <ses:test> + <ses:testNumber>1</ses:testNumber> + <ses:request> + <ses:protocol>HTTP</ses:protocol> + <ses:protocolVersion>1.1</ses:protocolVersion> + <ses:host>localhost</ses:host> + <ses:port>8080</ses:port> + <ses:uri>/coreWeb/mockportal/scoping/ScopingController.jpf</ses:uri> + <ses:method>GET</ses:method> + <ses:parameters/> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>63D44CE81A488A934653048C75F4D0CB</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:cookie> + </ses:cookies> + <ses:headers> + <ses:header> + <ses:name>accept</ses:name> + <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-charset</ses:name> + <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-encoding</ses:name> + <ses:value>gzip,deflate</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-language</ses:name> + <ses:value>en-us,en;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>connection</ses:name> + <ses:value>keep-alive</ses:value> + </ses:header> + <ses:header> + <ses:name>cookie</ses:name> + <ses:value>JSESSIONID=63D44CE81A488A934653048C75F4D0CB; JSESSIONID=CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:header> + <ses:header> + <ses:name>host</ses:name> + <ses:value>localhost:8080</ses:value> + </ses:header> + <ses:header> + <ses:name>keep-alive</ses:name> + <ses:value>300</ses:value> + </ses:header> + <ses:header> + <ses:name>user-agent</ses:name> + <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> + + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + <h3>Portal Scoping Test</h3> + + <form action="/coreWeb/mockportal/scoping/submit.do" method="post"> +<input type="hidden" name="jpfScopeID" value="a"> + data: <input type="text" name="{pageFlow.data}" id="tb"> + <input type="submit" value="submit"> + </form> + <p> + </body> +<script language="JavaScript" type="text/JavaScript"> +<!-- + +// **** Start the NetUI Framework Generated JavaScript **** + +// Build the netui_names table to map the tagId attributes +// to the real id written into the HTML +if (netui_names == null) + var netui_names = new Object(); +netui_names.tb="{pageFlow.data}" + + +// Build the netui_names table to map the tagId attributes +// to the real id written into the HTML +if (netui_tagIdNameMap == null) + var netui_tagIdNameMap = new Object(); +netui_tagIdNameMap.tb="{pageFlow.data}" + + +// method which will return a real id for a tagId, +// the tag parameter will be used to find the idScope for +// containers that may scope their ids +function getNetuiTagName(id, tag) +{ + var idScope = getScopeId(tag); + if (idScope == "") + return netui_names[id]; + else + return netui_names[idScope + "__" + id]; +} + +// This method will walk the hierarchy from the pass element looking for a idScope. +// The first idScope found will be returned or the empty string if a idScope is not found. +function getScopeId(tag) +{ + if (tag == null || tag.getAttribute == null) + return ""; + var attrVal = tag.getAttribute("netui:idScope"); + if (attrVal != null) + return attrVal; + return getScopeId(tag.parentNode); +} + +// lookup by tagId to "real id" +function lookupIdByTagId(id, tag) +{ + var idScope = lookupIdScope(tag,"."); + return (idScope == "") ? id : idScope + id; +} + +// lookup by tagId to "real name" +function lookupNameByTagId(id, tag) +{ + var idScope = lookupIdScope(tag,"_"); + if (idScope == "") + return netui_tagIdNameMap[id]; + else + return netui_tagIdNameMap[idScope + "__" + id]; +} + +//Non-Legacy lookup method creating a fully qualified scope id +function lookupIdScope(tag,sep) +{ + var val = ""; + if (sep == null) sep = ""; + while (tag != null && tag.getAttribute != null) { + var attrVal = tag.getAttribute("netui:idScope"); + if (attrVal != null) + val = attrVal + sep + val; + tag = tag.parentNode; + } + return val; +} +--> +</script> +</html></ses:responseBody> + </ses:response> + </ses:test> + <ses:test> + <ses:testNumber>2</ses:testNumber> + <ses:request> + <ses:protocol>HTTP</ses:protocol> + <ses:protocolVersion>1.1</ses:protocolVersion> + <ses:host>localhost</ses:host> + <ses:port>8080</ses:port> + <ses:uri>/coreWeb/mockportal/scoping/submit.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>jpfScopeID</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{pageFlow.data}</ses:name> + <ses:value>test data 1</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>63D44CE81A488A934653048C75F4D0CB</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:cookie> + </ses:cookies> + <ses:headers> + <ses:header> + <ses:name>accept</ses:name> + <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-charset</ses:name> + <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-encoding</ses:name> + <ses:value>gzip,deflate</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-language</ses:name> + <ses:value>en-us,en;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>connection</ses:name> + <ses:value>keep-alive</ses:value> + </ses:header> + <ses:header> + <ses:name>content-length</ses:name> + <ses:value>44</ses:value> + </ses:header> + <ses:header> + <ses:name>content-type</ses:name> + <ses:value>application/x-www-form-urlencoded</ses:value> + </ses:header> + <ses:header> + <ses:name>cookie</ses:name> + <ses:value>JSESSIONID=63D44CE81A488A934653048C75F4D0CB; JSESSIONID=CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:header> + <ses:header> + <ses:name>host</ses:name> + <ses:value>localhost:8080</ses:value> + </ses:header> + <ses:header> + <ses:name>keep-alive</ses:name> + <ses:value>300</ses:value> + </ses:header> + <ses:header> + <ses:name>referer</ses:name> + <ses:value>http://localhost:8080/coreWeb/mockportal/scoping/ScopingController.jpf</ses:value> + </ses:header> + <ses:header> + <ses:name>user-agent</ses:name> + <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> + + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + <h3>Portal Scoping Test</h3> + + data: <b><span>test data 1</span></b> + <br/> + <a href="window1.jsp?jpfScopeID=a" target="_a">launch pop-up window</a> + <br/> + <a href="/coreWeb/mockportal/scoping/submit.do?jpfScopeID=a">refresh results</a> + <br/> + <a href="/coreWeb/mockportal/scoping/begin.do?jpfScopeID=a">go back</a> + </body> + +</html>]]></ses:responseBody> + </ses:response> + </ses:test> + <ses:test> + <ses:testNumber>3</ses:testNumber> + <ses:request> + <ses:protocol>HTTP</ses:protocol> + <ses:protocolVersion>1.1</ses:protocolVersion> + <ses:host>localhost</ses:host> + <ses:port>8080</ses:port> + <ses:uri>/coreWeb/mockportal/scoping/window1.jsp</ses:uri> + <ses:method>GET</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>jpfScopeID</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>63D44CE81A488A934653048C75F4D0CB</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:cookie> + </ses:cookies> + <ses:headers> + <ses:header> + <ses:name>accept</ses:name> + <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-charset</ses:name> + <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-encoding</ses:name> + <ses:value>gzip,deflate</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-language</ses:name> + <ses:value>en-us,en;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>connection</ses:name> + <ses:value>keep-alive</ses:value> + </ses:header> + <ses:header> + <ses:name>cookie</ses:name> + <ses:value>JSESSIONID=63D44CE81A488A934653048C75F4D0CB; JSESSIONID=CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:header> + <ses:header> + <ses:name>host</ses:name> + <ses:value>localhost:8080</ses:value> + </ses:header> + <ses:header> + <ses:name>keep-alive</ses:name> + <ses:value>300</ses:value> + </ses:header> + <ses:header> + <ses:name>referer</ses:name> + <ses:value>http://localhost:8080/coreWeb/mockportal/scoping/submit.do</ses:value> + </ses:header> + <ses:header> + <ses:name>user-agent</ses:name> + <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> + + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + data: <b><span>test data 1</span></b> + <p> + <form action="/coreWeb/mockportal/scoping/showResults.do" method="post"> +<input type="hidden" name="jpfScopeID" value="a"> + new data: <input type="text" name="{pageFlow.data}" id="tb" value="test data 1"> + <input type="submit" value="submit"> + </form> + </body> +<script language="JavaScript" type="text/JavaScript"> +<!-- + +// **** Start the NetUI Framework Generated JavaScript **** + +// Build the netui_names table to map the tagId attributes +// to the real id written into the HTML +if (netui_names == null) + var netui_names = new Object(); +netui_names.tb="{pageFlow.data}" + + +// Build the netui_names table to map the tagId attributes +// to the real id written into the HTML +if (netui_tagIdNameMap == null) + var netui_tagIdNameMap = new Object(); +netui_tagIdNameMap.tb="{pageFlow.data}" + + +// method which will return a real id for a tagId, +// the tag parameter will be used to find the idScope for +// containers that may scope their ids +function getNetuiTagName(id, tag) +{ + var idScope = getScopeId(tag); + if (idScope == "") + return netui_names[id]; + else + return netui_names[idScope + "__" + id]; +} + +// This method will walk the hierarchy from the pass element looking for a idScope. +// The first idScope found will be returned or the empty string if a idScope is not found. +function getScopeId(tag) +{ + if (tag == null || tag.getAttribute == null) + return ""; + var attrVal = tag.getAttribute("netui:idScope"); + if (attrVal != null) + return attrVal; + return getScopeId(tag.parentNode); +} + +// lookup by tagId to "real id" +function lookupIdByTagId(id, tag) +{ + var idScope = lookupIdScope(tag,"."); + return (idScope == "") ? id : idScope + id; +} + +// lookup by tagId to "real name" +function lookupNameByTagId(id, tag) +{ + var idScope = lookupIdScope(tag,"_"); + if (idScope == "") + return netui_tagIdNameMap[id]; + else + return netui_tagIdNameMap[idScope + "__" + id]; +} + +//Non-Legacy lookup method creating a fully qualified scope id +function lookupIdScope(tag,sep) +{ + var val = ""; + if (sep == null) sep = ""; + while (tag != null && tag.getAttribute != null) { + var attrVal = tag.getAttribute("netui:idScope"); + if (attrVal != null) + val = attrVal + sep + val; + tag = tag.parentNode; + } + return val; +} +--> +</script> +</html></ses:responseBody> + </ses:response> + </ses:test> + <ses:test> + <ses:testNumber>4</ses:testNumber> + <ses:request> + <ses:protocol>HTTP</ses:protocol> + <ses:protocolVersion>1.1</ses:protocolVersion> + <ses:host>localhost</ses:host> + <ses:port>8080</ses:port> + <ses:uri>/coreWeb/mockportal/scoping/showResults.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>jpfScopeID</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{pageFlow.data}</ses:name> + <ses:value>test data 2</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>63D44CE81A488A934653048C75F4D0CB</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:cookie> + </ses:cookies> + <ses:headers> + <ses:header> + <ses:name>accept</ses:name> + <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-charset</ses:name> + <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-encoding</ses:name> + <ses:value>gzip,deflate</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-language</ses:name> + <ses:value>en-us,en;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>connection</ses:name> + <ses:value>keep-alive</ses:value> + </ses:header> + <ses:header> + <ses:name>content-length</ses:name> + <ses:value>44</ses:value> + </ses:header> + <ses:header> + <ses:name>content-type</ses:name> + <ses:value>application/x-www-form-urlencoded</ses:value> + </ses:header> + <ses:header> + <ses:name>cookie</ses:name> + <ses:value>JSESSIONID=63D44CE81A488A934653048C75F4D0CB; JSESSIONID=CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:header> + <ses:header> + <ses:name>host</ses:name> + <ses:value>localhost:8080</ses:value> + </ses:header> + <ses:header> + <ses:name>keep-alive</ses:name> + <ses:value>300</ses:value> + </ses:header> + <ses:header> + <ses:name>referer</ses:name> + <ses:value>http://localhost:8080/coreWeb/mockportal/scoping/window1.jsp?jpfScopeID=a</ses:value> + </ses:header> + <ses:header> + <ses:name>user-agent</ses:name> + <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> + + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + data: <b><span>test data 2</span></b> + <p> + <a href="javascript:window.close();">close window</a> + </body> + +</html>]]></ses:responseBody> + </ses:response> + </ses:test> + <ses:test> + <ses:testNumber>5</ses:testNumber> + <ses:request> + <ses:protocol>HTTP</ses:protocol> + <ses:protocolVersion>1.1</ses:protocolVersion> + <ses:host>localhost</ses:host> + <ses:port>8080</ses:port> + <ses:uri>/coreWeb/mockportal/scoping/submit.do</ses:uri> + <ses:method>GET</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>jpfScopeID</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>63D44CE81A488A934653048C75F4D0CB</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:cookie> + </ses:cookies> + <ses:headers> + <ses:header> + <ses:name>accept</ses:name> + <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-charset</ses:name> + <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-encoding</ses:name> + <ses:value>gzip,deflate</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-language</ses:name> + <ses:value>en-us,en;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>connection</ses:name> + <ses:value>keep-alive</ses:value> + </ses:header> + <ses:header> + <ses:name>cookie</ses:name> + <ses:value>JSESSIONID=63D44CE81A488A934653048C75F4D0CB; JSESSIONID=CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:header> + <ses:header> + <ses:name>host</ses:name> + <ses:value>localhost:8080</ses:value> + </ses:header> + <ses:header> + <ses:name>keep-alive</ses:name> + <ses:value>300</ses:value> + </ses:header> + <ses:header> + <ses:name>referer</ses:name> + <ses:value>http://localhost:8080/coreWeb/mockportal/scoping/submit.do</ses:value> + </ses:header> + <ses:header> + <ses:name>user-agent</ses:name> + <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> + + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + <h3>Portal Scoping Test</h3> + + data: <b><span>test data 2</span></b> + <br/> + <a href="window1.jsp?jpfScopeID=a" target="_a">launch pop-up window</a> + <br/> + <a href="/coreWeb/mockportal/scoping/submit.do?jpfScopeID=a">refresh results</a> + <br/> + <a href="/coreWeb/mockportal/scoping/begin.do?jpfScopeID=a">go back</a> + </body> + +</html>]]></ses:responseBody> + </ses:response> + </ses:test> + <ses:test> + <ses:testNumber>6</ses:testNumber> + <ses:request> + <ses:protocol>HTTP</ses:protocol> + <ses:protocolVersion>1.1</ses:protocolVersion> + <ses:host>localhost</ses:host> + <ses:port>8080</ses:port> + <ses:uri>/coreWeb/mockportal/scoping/begin.do</ses:uri> + <ses:method>GET</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>jpfScopeID</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>63D44CE81A488A934653048C75F4D0CB</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:cookie> + </ses:cookies> + <ses:headers> + <ses:header> + <ses:name>accept</ses:name> + <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-charset</ses:name> + <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-encoding</ses:name> + <ses:value>gzip,deflate</ses:value> + </ses:header> + <ses:header> + <ses:name>accept-language</ses:name> + <ses:value>en-us,en;q=0.5</ses:value> + </ses:header> + <ses:header> + <ses:name>connection</ses:name> + <ses:value>keep-alive</ses:value> + </ses:header> + <ses:header> + <ses:name>cookie</ses:name> + <ses:value>JSESSIONID=63D44CE81A488A934653048C75F4D0CB; JSESSIONID=CK4Bv3RwtdQ2k9Nx7pqdK6KKujYUxiYJAW4QazBoeQMedHG3Cm7X!-1960226302</ses:value> + </ses:header> + <ses:header> + <ses:name>host</ses:name> + <ses:value>localhost:8080</ses:value> + </ses:header> + <ses:header> + <ses:name>keep-alive</ses:name> + <ses:value>300</ses:value> + </ses:header> + <ses:header> + <ses:name>referer</ses:name> + <ses:value>http://localhost:8080/coreWeb/mockportal/scoping/submit.do?jpfScopeID=a</ses:value> + </ses:header> + <ses:header> + <ses:name>user-agent</ses:name> + <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> + + <head> + <title> + Portal Scoping Test + </title> + </head> + <body> + <h3>Portal Scoping Test</h3> + + <form action="/coreWeb/mockportal/scoping/submit.do" method="post"> +<input type="hidden" name="jpfScopeID" value="a"> + data: <input type="text" name="{pageFlow.data}" id="tb" value="test data 2"> + <input type="submit" value="submit"> + </form> + <p> + </body> +<script language="JavaScript" type="text/JavaScript"> +<!-- + +// **** Start the NetUI Framework Generated JavaScript **** + +// Build the netui_names table to map the tagId attributes +// to the real id written into the HTML +if (netui_names == null) + var netui_names = new Object(); +netui_names.tb="{pageFlow.data}" + + +// Build the netui_names table to map the tagId attributes +// to the real id written into the HTML +if (netui_tagIdNameMap == null) + var netui_tagIdNameMap = new Object(); +netui_tagIdNameMap.tb="{pageFlow.data}" + + +// method which will return a real id for a tagId, +// the tag parameter will be used to find the idScope for +// containers that may scope their ids +function getNetuiTagName(id, tag) +{ + var idScope = getScopeId(tag); + if (idScope == "") + return netui_names[id]; + else + return netui_names[idScope + "__" + id]; +} + +// This method will walk the hierarchy from the pass element looking for a idScope. +// The first idScope found will be returned or the empty string if a idScope is not found. +function getScopeId(tag) +{ + if (tag == null || tag.getAttribute == null) + return ""; + var attrVal = tag.getAttribute("netui:idScope"); + if (attrVal != null) + return attrVal; + return getScopeId(tag.parentNode); +} + +// lookup by tagId to "real id" +function lookupIdByTagId(id, tag) +{ + var idScope = lookupIdScope(tag,"."); + return (idScope == "") ? id : idScope + id; +} + +// lookup by tagId to "real name" +function lookupNameByTagId(id, tag) +{ + var idScope = lookupIdScope(tag,"_"); + if (idScope == "") + return netui_tagIdNameMap[id]; + else + return netui_tagIdNameMap[idScope + "__" + id]; +} + +//Non-Legacy lookup method creating a fully qualified scope id +function lookupIdScope(tag,sep) +{ + var val = ""; + if (sep == null) sep = ""; + while (tag != null && tag.getAttribute != null) { + var attrVal = tag.getAttribute("netui:idScope"); + if (attrVal != null) + val = attrVal + sep + val; + tag = tag.parentNode; + } + return val; +} +--> +</script> +</html></ses:responseBody> + </ses:response> + </ses:test> + </ses:tests> + <ses:endDate>09 Feb 2005, 11:02:51.554 AM MST</ses:endDate> + <ses:testCount>6</ses:testCount> +</ses:recorderSession> Propchange: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest.xml ------------------------------------------------------------------------------ svn:eol-style = native
