svn commit: r154639 [2/2] - in incubator/beehive/trunk/netui: src/compiler/org/apache/beehive/netui/compiler/ src/compiler/org/apache/beehive/netui/compiler/genmodel/ src/compiler/org/apache/beehive/netui/compiler/grammar/ src/pageflow/org/apache/beehive/netui/pageflow/ src/pageflow/org/apache/beehive/netui/pageflow/interceptor/ src/pageflow/org/apache/beehive/netui/pageflow/interceptor/action/ src/pageflow/org/apache/beehive/netui/pageflow/interceptor/request/ src/pageflow/org/apache/beehive/netui/pageflow/internal/ src/pageflow/org/apache/beehive/netui/pageflow/requeststate/ src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/ src/tags-html/org/apache/beehive/netui/tags/ src/tags-html/org/apache/beehive/netui/tags/divpanel/ src/tags-html/org/apache/beehive/netui/tags/tree/ src/util/ src/util/schema/netui-config/ src/webapp-template/default/WEB-INF/ test/webapps/drt/coreWeb/WEB-INF/ test/webapps/drt/coreWeb/WEB-INF/src/global/ test/webapps/drt/coreWeb/WEB-INF/src/miniTests/actionInterceptors/ test/webapps/drt/coreWeb/bugs/j159/ test/webapps/drt/coreWeb/bugs/j189/ test/webapps/drt/coreWeb/miniTests/actionInterceptors/someFlow/ test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/ test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/getZip/ test/webapps/drt/coreWeb/mockportal/ test/webapps/drt/coreWeb/mockportal/scoping/ test/webapps/drt/coreWeb/pageFlowCore/inheritance/super0/ test/webapps/drt/coreWeb/returnTo/test30/ test/webapps/drt/testRecorder/config/ test/webapps/drt/testRecorder/tests/

21 Feb 2005 06:28:27 -0000

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>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd";>
+&lt;html lang="en">
+
+    &lt;head>
+        &lt;title>
+            Portal Scoping Test
+        &lt;/title>
+    &lt;/head>
+    &lt;body>
+        &lt;h3>Portal Scoping Test&lt;/h3>
+        
+        &lt;form action="/coreWeb/mockportal/scoping/submit.do" method="post">
+&lt;input type="hidden" name="jpfScopeID" value="a">
+            data: &lt;input type="text" name="{pageFlow.data}" id="tb">
+            &lt;input type="submit" value="submit">
+        &lt;/form>
+        &lt;p>
+    &lt;/body>
+&lt;script language="JavaScript" type="text/JavaScript">
+&lt;!--
+
+// **** 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 &amp;&amp; tag.getAttribute != null) {
+      var attrVal = tag.getAttribute("netui:idScope");
+      if (attrVal != null)
+         val = attrVal + sep + val;
+      tag = tag.parentNode;
+   }
+   return val;
+}
+-->
+&lt;/script>
+&lt;/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>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd";>
+&lt;html lang="en">
+
+    &lt;head>
+        &lt;title>
+            Portal Scoping Test
+        &lt;/title>
+    &lt;/head>
+    &lt;body>
+        data: &lt;b>&lt;span>test data 1&lt;/span>&lt;/b>
+        &lt;p>
+        &lt;form action="/coreWeb/mockportal/scoping/showResults.do" 
method="post">
+&lt;input type="hidden" name="jpfScopeID" value="a">
+           new data: &lt;input type="text" name="{pageFlow.data}" id="tb" 
value="test data 1">
+           &lt;input type="submit" value="submit">
+        &lt;/form>
+    &lt;/body>
+&lt;script language="JavaScript" type="text/JavaScript">
+&lt;!--
+
+// **** 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 &amp;&amp; tag.getAttribute != null) {
+      var attrVal = tag.getAttribute("netui:idScope");
+      if (attrVal != null)
+         val = attrVal + sep + val;
+      tag = tag.parentNode;
+   }
+   return val;
+}
+-->
+&lt;/script>
+&lt;/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>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd";>
+&lt;html lang="en">
+
+    &lt;head>
+        &lt;title>
+            Portal Scoping Test
+        &lt;/title>
+    &lt;/head>
+    &lt;body>
+        &lt;h3>Portal Scoping Test&lt;/h3>
+        
+        &lt;form action="/coreWeb/mockportal/scoping/submit.do" method="post">
+&lt;input type="hidden" name="jpfScopeID" value="a">
+            data: &lt;input type="text" name="{pageFlow.data}" id="tb" 
value="test data 2">
+            &lt;input type="submit" value="submit">
+        &lt;/form>
+        &lt;p>
+    &lt;/body>
+&lt;script language="JavaScript" type="text/JavaScript">
+&lt;!--
+
+// **** 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 &amp;&amp; tag.getAttribute != null) {
+      var attrVal = tag.getAttribute("netui:idScope");
+      if (attrVal != null)
+         val = attrVal + sep + val;
+      tag = tag.parentNode;
+   }
+   return val;
+}
+-->
+&lt;/script>
+&lt;/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


Reply via email to