You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2004/09/15 08:06:46 UTC

svn commit: rev 46085 - in incubator/beehive/trunk/netui/test/webapps/drt/coreWeb: WEB-INF/src/mockportal mockportal mockportal/listenTo/listenToA mockportal/listenTo/listenToB mockportal/smokeTest mockportal/smokeTest/nested pageFlowCore/pfPageInput

Author: rich
Date: Tue Sep 14 23:06:45 2004
New Revision: 46085

Added:
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/SmokeTestController.jpf   (contents, props changed)
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/aController.jpf   (contents, props changed)
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/index.jsp   (contents, props changed)
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/nested/
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/nested/NestedController.jpf   (contents, props changed)
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/nested/index.jsp   (contents, props changed)
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/results.jsp   (contents, props changed)
Modified:
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/MockPortal.jsp
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/listenTo/listenToA/aController.jpf
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/listenTo/listenToB/bController.jpf
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfPageInput/PageInputController.jpf
Log:
Fixup of the MockPortal/MockPortalListenTo DRT/BVT.  Still can't enable them because PageFlowJspFilter isn't getting run on INCLUDE -- need to investigate.

DRT: netui (linux)
BB: self (WinXP)



Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java	(original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java	Tue Sep 14 23:06:45 2004
@@ -68,8 +68,9 @@
             // Override the request/response (etc.) with scoped versions.  Keep track of these scoped
             // objects -- together they constitute the scoped environment for the portlet.
             //
+            String requestURI = currentURL != null ? outerRequest.getContextPath() + currentURL : null;
             ScopedRequest scopedRequest = 
-                    ScopedServletUtils.getScopedRequest( outerRequest, currentURL, outerServletContext, _portletID );
+                    ScopedServletUtils.getScopedRequest( outerRequest, requestURI, outerServletContext, _portletID );
             ScopedResponse scopedResponse =
                     ScopedServletUtils.getScopedResponse( outerResponse, scopedRequest );
             
@@ -88,7 +89,8 @@
             {
                 if ( _pageFlowURI != null )
                 {
-                    actionResolver = FlowControllerFactory.getPageFlowForURI( scopedRequest, scopedResponse, _pageFlowURI, pageContext.getServletContext() );
+                    scopedRequest.setRequestURI( outerRequest.getContextPath() + _pageFlowURI );
+                    actionResolver = FlowControllerFactory.getPageFlowForRequest( scopedRequest, scopedResponse, pageContext.getServletContext() );
                 }
                 else
                 {

Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/MockPortal.jsp
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/MockPortal.jsp	(original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/MockPortal.jsp	Tue Sep 14 23:06:45 2004
@@ -10,8 +10,8 @@
 <body>
 
     <mp:mockPortal>
-        <mp:mockPortlet portletID="returnTo1" pageFlowURI="/pageFlowCore/returnToTest/returnToTestController.jpf" verbose="false" />
-        <mp:mockPortlet portletID="returnTo2" pageFlowURI="/pageFlowCore/returnToTest/returnToTestController.jpf" verbose="false" />
+        <mp:mockPortlet portletID="smokeTestA" pageFlowURI="/mockportal/smokeTest/SmokeTestController.jpf" verbose="false" />
+        <mp:mockPortlet portletID="smokeTestB" pageFlowURI="/mockportal/smokeTest/SmokeTestController.jpf" verbose="false" />
     </mp:mockPortal>
 
 </body>

Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp	(original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp	Tue Sep 14 23:06:45 2004
@@ -1,4 +1,7 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="beehive-netui-tags-databinding.tld" prefix="netui-data"%>
+<%@ taglib uri="beehive-netui-tags-html.tld" prefix="netui"%>
+<%@ taglib uri="beehive-netui-tags-template.tld" prefix="netui-template"%>
 <%@ taglib uri="mockportal.tld" prefix="mp" %>
 
 <html>

Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/listenTo/listenToA/aController.jpf
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/listenTo/listenToA/aController.jpf	(original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/listenTo/listenToA/aController.jpf	Tue Sep 14 23:06:45 2004
@@ -15,139 +15,15 @@
  *
  * $Header:$
  */
-// ------------------------------------------------------------------------------
-//  Generated by WebLogic Workshop
-// 
-//  Created on: Fri Aug 22 08:57:00 GMT-07:00 2003
-//  By: rfeit
-// -----------------------------------------------------------------------------
 package mockportal.listenTo.listenToA;
+
 import org.apache.beehive.netui.pageflow.Forward;
 import org.apache.beehive.netui.pageflow.PageFlowController;
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 
-/**
- * @jpf:controller
- * @jpf:view-properties view-properties::
- * <!-- This data is auto-generated. Hand-editing this section is not recommended. -->
- * <view-properties>
- * <pageflow-object id="pageflow:/a/aController.jpf"/>
- * <pageflow-object id="action:begin.do">
- *   <property value="80" name="x"/>
- *   <property value="100" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:index.jsp">
- *   <property value="240" name="x"/>
- *   <property value="100" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:path#success#index.jsp#@action:begin.do@">
- *   <property value="116,160,160,204" name="elbowsX"/>
- *   <property value="92,92,92,92" name="elbowsY"/>
- *   <property value="East_1" name="fromPort"/>
- *   <property value="West_1" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:bothHave.do">
- *   <property value="240" name="x"/>
- *   <property value="240" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:path#success#index.jsp#@action:bothHave.do@">
- *   <property value="240,240,240,240" name="elbowsX"/>
- *   <property value="196,170,170,144" name="elbowsY"/>
- *   <property value="North_1" name="fromPort"/>
- *   <property value="South_1" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:onlyA.do">
- *   <property value="400" name="x"/>
- *   <property value="240" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:path#success#index.jsp#@action:onlyA.do@">
- *   <property value="400,400,338,276" name="elbowsX"/>
- *   <property value="196,92,92,92" name="elbowsY"/>
- *   <property value="North_1" name="fromPort"/>
- *   <property value="East_1" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:bothHave.do@">
- *   <property value="229,229,229,229" name="elbowsX"/>
- *   <property value="144,170,170,196" name="elbowsY"/>
- *   <property value="South_0" name="fromPort"/>
- *   <property value="North_0" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:onlyA.do@">
- *   <property value="276,320,320,364" name="elbowsX"/>
- *   <property value="103,103,232,232" name="elbowsY"/>
- *   <property value="East_2" name="fromPort"/>
- *   <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * </view-properties>
- * ::
- */
-@Jpf.Controller(
-    )
-@Jpf.ViewProperties(
-    value = {
-        "<!-- This data is auto-generated. Hand-editing this section is not recommended. -->",
-        "<view-properties>",
-        "<pageflow-object id='pageflow:/a/aController.jpf'/>",
-        "<pageflow-object id='action:begin.do'>",
-        "  <property value='80' name='x'/>",
-        "  <property value='100' name='y'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='page:index.jsp'>",
-        "  <property value='240' name='x'/>",
-        "  <property value='100' name='y'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='forward:path#success#index.jsp#@action:begin.do@'>",
-        "  <property value='116,160,160,204' name='elbowsX'/>",
-        "  <property value='92,92,92,92' name='elbowsY'/>",
-        "  <property value='East_1' name='fromPort'/>",
-        "  <property value='West_1' name='toPort'/>",
-        "  <property value='success' name='label'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='action:bothHave.do'>",
-        "  <property value='240' name='x'/>",
-        "  <property value='240' name='y'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='forward:path#success#index.jsp#@action:bothHave.do@'>",
-        "  <property value='240,240,240,240' name='elbowsX'/>",
-        "  <property value='196,170,170,144' name='elbowsY'/>",
-        "  <property value='North_1' name='fromPort'/>",
-        "  <property value='South_1' name='toPort'/>",
-        "  <property value='success' name='label'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='action:onlyA.do'>",
-        "  <property value='400' name='x'/>",
-        "  <property value='240' name='y'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='forward:path#success#index.jsp#@action:onlyA.do@'>",
-        "  <property value='400,400,338,276' name='elbowsX'/>",
-        "  <property value='196,92,92,92' name='elbowsY'/>",
-        "  <property value='North_1' name='fromPort'/>",
-        "  <property value='East_1' name='toPort'/>",
-        "  <property value='success' name='label'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='action-call:@page:index.jsp@#@action:bothHave.do@'>",
-        "  <property value='229,229,229,229' name='elbowsX'/>",
-        "  <property value='144,170,170,196' name='elbowsY'/>",
-        "  <property value='South_0' name='fromPort'/>",
-        "  <property value='North_0' name='toPort'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='action-call:@page:index.jsp@#@action:onlyA.do@'>",
-        "  <property value='276,320,320,364' name='elbowsX'/>",
-        "  <property value='103,103,232,232' name='elbowsY'/>",
-        "  <property value='East_2' name='fromPort'/>",
-        "  <property value='West_1' name='toPort'/>",
-        "</pageflow-object>",
-        "</view-properties>"
-    })
+@Jpf.Controller
 public class aController extends PageFlowController
 {
-    /**
-     * @jpf:action
-     * @jpf:forward name="success" path="index.jsp"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(
@@ -159,10 +35,6 @@
         return new Forward( "success" );
     }
 
-    /**
-     * @jpf:action
-     * @jpf:forward name="success" path="index.jsp"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(
@@ -174,10 +46,6 @@
         return new Forward("success");
     }
 
-    /**
-     * @jpf:action
-     * @jpf:forward name="success" path="index.jsp"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(

Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/listenTo/listenToB/bController.jpf
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/listenTo/listenToB/bController.jpf	(original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/listenTo/listenToB/bController.jpf	Tue Sep 14 23:06:45 2004
@@ -15,121 +15,22 @@
  *
  * $Header:$
  */
-// ------------------------------------------------------------------------------
-//  Generated by WebLogic Workshop
-// 
-//  Created on: Fri Aug 22 08:57:15 GMT-07:00 2003
-//  By: rfeit
-// -----------------------------------------------------------------------------
 package mockportal.listenTo.listenToB;
+
 import org.apache.beehive.netui.pageflow.ActionNotFoundException;
 import org.apache.beehive.netui.pageflow.FormData;
 import org.apache.beehive.netui.pageflow.Forward;
 import org.apache.beehive.netui.pageflow.PageFlowController;
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 
-/**
- * @jpf:controller
- * @jpf:catch type="ActionNotFoundException" method="doNothing"
- * 
- * @jpf:view-properties view-properties::
- * <!-- This data is auto-generated. Hand-editing this section is not recommended. -->
- * <view-properties>
- * <pageflow-object id="pageflow:/b/bController.jpf"/>
- * <pageflow-object id="action:begin.do">
- *   <property value="80" name="x"/>
- *   <property value="100" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:bothHave.do">
- *   <property value="240" name="x"/>
- *   <property value="220" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:handled.jsp@#@action:begin.do@">
- *   <property value="80,80,80,80" name="elbowsX"/>
- *   <property value="176,160,160,144" name="elbowsY"/>
- *   <property value="North_1" name="fromPort"/>
- *   <property value="South_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="page:handled.jsp">
- *   <property value="80" name="x"/>
- *   <property value="220" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:index.jsp">
- *   <property value="240" name="x"/>
- *   <property value="100" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:path#success#index.jsp#@action:begin.do@">
- *   <property value="116,160,160,204" name="elbowsX"/>
- *   <property value="92,92,92,92" name="elbowsY"/>
- *   <property value="East_1" name="fromPort"/>
- *   <property value="West_1" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="forward:path#success#handled.jsp#@action:bothHave.do@">
- *   <property value="204,160,160,116" name="elbowsX"/>
- *   <property value="212,212,212,212" name="elbowsY"/>
- *   <property value="West_1" name="fromPort"/>
- *   <property value="East_1" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * </view-properties>
- * ::
- */
 @Jpf.Controller(
     catches = {
         @Jpf.Catch(
             type = ActionNotFoundException.class,
             method = "doNothing") 
     })
-@Jpf.ViewProperties(
-    value = {
-        "<!-- This data is auto-generated. Hand-editing this section is not recommended. -->",
-        "<view-properties>",
-        "<pageflow-object id='pageflow:/b/bController.jpf'/>",
-        "<pageflow-object id='action:begin.do'>",
-        "  <property value='80' name='x'/>",
-        "  <property value='100' name='y'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='action:bothHave.do'>",
-        "  <property value='240' name='x'/>",
-        "  <property value='220' name='y'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='action-call:@page:handled.jsp@#@action:begin.do@'>",
-        "  <property value='80,80,80,80' name='elbowsX'/>",
-        "  <property value='176,160,160,144' name='elbowsY'/>",
-        "  <property value='North_1' name='fromPort'/>",
-        "  <property value='South_1' name='toPort'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='page:handled.jsp'>",
-        "  <property value='80' name='x'/>",
-        "  <property value='220' name='y'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='page:index.jsp'>",
-        "  <property value='240' name='x'/>",
-        "  <property value='100' name='y'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='forward:path#success#index.jsp#@action:begin.do@'>",
-        "  <property value='116,160,160,204' name='elbowsX'/>",
-        "  <property value='92,92,92,92' name='elbowsY'/>",
-        "  <property value='East_1' name='fromPort'/>",
-        "  <property value='West_1' name='toPort'/>",
-        "  <property value='success' name='label'/>",
-        "</pageflow-object>",
-        "<pageflow-object id='forward:path#success#handled.jsp#@action:bothHave.do@'>",
-        "  <property value='204,160,160,116' name='elbowsX'/>",
-        "  <property value='212,212,212,212' name='elbowsY'/>",
-        "  <property value='West_1' name='fromPort'/>",
-        "  <property value='East_1' name='toPort'/>",
-        "  <property value='success' name='label'/>",
-        "</pageflow-object>",
-        "</view-properties>"
-    })
 public class bController extends PageFlowController
 {
-    /**
-     * @jpf:action
-     * @jpf:forward name="success" path="index.jsp"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(
@@ -141,10 +42,6 @@
         return new Forward( "success" );
     }
 
-    /**
-     * @jpf:action
-     * @jpf:forward name="success" path="handled.jsp"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(
@@ -156,10 +53,6 @@
         return new Forward("success");
     }
     
-    /**
-     * @jpf:exception-handler
-     * @jpf:forward name="current" return-to="currentPage"
-     */
     @Jpf.ExceptionHandler(
         forwards = {
             @Jpf.Forward(

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/SmokeTestController.jpf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/SmokeTestController.jpf	Tue Sep 14 23:06:45 2004
@@ -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.smokeTest;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.Controller(
+    simpleActions={
+        @Jpf.SimpleAction(name="begin", path="index.jsp"),
+        @Jpf.SimpleAction(name="submit", path="results.jsp"),
+        @Jpf.SimpleAction(name="goNested", path="nested/NestedController.jpf"),
+        @Jpf.SimpleAction(name="nestedDone", navigateTo=Jpf.NavigateTo.currentPage)
+    }
+)
+public class SmokeTestController extends PageFlowController
+{
+    private String _data;
+
+    public String getData()
+    {
+        return _data;
+    }
+
+    public void setData( String data )
+    {
+        _data = data;
+    }
+}

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/aController.jpf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/aController.jpf	Tue Sep 14 23:06:45 2004
@@ -0,0 +1,191 @@
+/*
+ * 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:$
+ */
+// ------------------------------------------------------------------------------
+//  Generated by WebLogic Workshop
+// 
+//  Created on: Fri Aug 22 08:57:00 GMT-07:00 2003
+//  By: rfeit
+// -----------------------------------------------------------------------------
+package mockportal.listenTo.listenToA;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+/**
+ * @jpf:controller
+ * @jpf:view-properties view-properties::
+ * <!-- This data is auto-generated. Hand-editing this section is not recommended. -->
+ * <view-properties>
+ * <pageflow-object id="pageflow:/a/aController.jpf"/>
+ * <pageflow-object id="action:begin.do">
+ *   <property value="80" name="x"/>
+ *   <property value="100" name="y"/>
+ * </pageflow-object>
+ * <pageflow-object id="page:index.jsp">
+ *   <property value="240" name="x"/>
+ *   <property value="100" name="y"/>
+ * </pageflow-object>
+ * <pageflow-object id="forward:path#success#index.jsp#@action:begin.do@">
+ *   <property value="116,160,160,204" name="elbowsX"/>
+ *   <property value="92,92,92,92" name="elbowsY"/>
+ *   <property value="East_1" name="fromPort"/>
+ *   <property value="West_1" name="toPort"/>
+ *   <property value="success" name="label"/>
+ * </pageflow-object>
+ * <pageflow-object id="action:bothHave.do">
+ *   <property value="240" name="x"/>
+ *   <property value="240" name="y"/>
+ * </pageflow-object>
+ * <pageflow-object id="forward:path#success#index.jsp#@action:bothHave.do@">
+ *   <property value="240,240,240,240" name="elbowsX"/>
+ *   <property value="196,170,170,144" name="elbowsY"/>
+ *   <property value="North_1" name="fromPort"/>
+ *   <property value="South_1" name="toPort"/>
+ *   <property value="success" name="label"/>
+ * </pageflow-object>
+ * <pageflow-object id="action:onlyA.do">
+ *   <property value="400" name="x"/>
+ *   <property value="240" name="y"/>
+ * </pageflow-object>
+ * <pageflow-object id="forward:path#success#index.jsp#@action:onlyA.do@">
+ *   <property value="400,400,338,276" name="elbowsX"/>
+ *   <property value="196,92,92,92" name="elbowsY"/>
+ *   <property value="North_1" name="fromPort"/>
+ *   <property value="East_1" name="toPort"/>
+ *   <property value="success" name="label"/>
+ * </pageflow-object>
+ * <pageflow-object id="action-call:@page:index.jsp@#@action:bothHave.do@">
+ *   <property value="229,229,229,229" name="elbowsX"/>
+ *   <property value="144,170,170,196" name="elbowsY"/>
+ *   <property value="South_0" name="fromPort"/>
+ *   <property value="North_0" name="toPort"/>
+ * </pageflow-object>
+ * <pageflow-object id="action-call:@page:index.jsp@#@action:onlyA.do@">
+ *   <property value="276,320,320,364" name="elbowsX"/>
+ *   <property value="103,103,232,232" name="elbowsY"/>
+ *   <property value="East_2" name="fromPort"/>
+ *   <property value="West_1" name="toPort"/>
+ * </pageflow-object>
+ * </view-properties>
+ * ::
+ */
+@Jpf.Controller(
+    )
+@Jpf.ViewProperties(
+    value = {
+        "<!-- This data is auto-generated. Hand-editing this section is not recommended. -->",
+        "<view-properties>",
+        "<pageflow-object id='pageflow:/a/aController.jpf'/>",
+        "<pageflow-object id='action:begin.do'>",
+        "  <property value='80' name='x'/>",
+        "  <property value='100' name='y'/>",
+        "</pageflow-object>",
+        "<pageflow-object id='page:index.jsp'>",
+        "  <property value='240' name='x'/>",
+        "  <property value='100' name='y'/>",
+        "</pageflow-object>",
+        "<pageflow-object id='forward:path#success#index.jsp#@action:begin.do@'>",
+        "  <property value='116,160,160,204' name='elbowsX'/>",
+        "  <property value='92,92,92,92' name='elbowsY'/>",
+        "  <property value='East_1' name='fromPort'/>",
+        "  <property value='West_1' name='toPort'/>",
+        "  <property value='success' name='label'/>",
+        "</pageflow-object>",
+        "<pageflow-object id='action:bothHave.do'>",
+        "  <property value='240' name='x'/>",
+        "  <property value='240' name='y'/>",
+        "</pageflow-object>",
+        "<pageflow-object id='forward:path#success#index.jsp#@action:bothHave.do@'>",
+        "  <property value='240,240,240,240' name='elbowsX'/>",
+        "  <property value='196,170,170,144' name='elbowsY'/>",
+        "  <property value='North_1' name='fromPort'/>",
+        "  <property value='South_1' name='toPort'/>",
+        "  <property value='success' name='label'/>",
+        "</pageflow-object>",
+        "<pageflow-object id='action:onlyA.do'>",
+        "  <property value='400' name='x'/>",
+        "  <property value='240' name='y'/>",
+        "</pageflow-object>",
+        "<pageflow-object id='forward:path#success#index.jsp#@action:onlyA.do@'>",
+        "  <property value='400,400,338,276' name='elbowsX'/>",
+        "  <property value='196,92,92,92' name='elbowsY'/>",
+        "  <property value='North_1' name='fromPort'/>",
+        "  <property value='East_1' name='toPort'/>",
+        "  <property value='success' name='label'/>",
+        "</pageflow-object>",
+        "<pageflow-object id='action-call:@page:index.jsp@#@action:bothHave.do@'>",
+        "  <property value='229,229,229,229' name='elbowsX'/>",
+        "  <property value='144,170,170,196' name='elbowsY'/>",
+        "  <property value='South_0' name='fromPort'/>",
+        "  <property value='North_0' name='toPort'/>",
+        "</pageflow-object>",
+        "<pageflow-object id='action-call:@page:index.jsp@#@action:onlyA.do@'>",
+        "  <property value='276,320,320,364' name='elbowsX'/>",
+        "  <property value='103,103,232,232' name='elbowsY'/>",
+        "  <property value='East_2' name='fromPort'/>",
+        "  <property value='West_1' name='toPort'/>",
+        "</pageflow-object>",
+        "</view-properties>"
+    })
+public class aController extends PageFlowController
+{
+    /**
+     * @jpf:action
+     * @jpf:forward name="success" path="index.jsp"
+     */
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp") 
+        })
+    protected Forward begin()
+    {
+        return new Forward( "success" );
+    }
+
+    /**
+     * @jpf:action
+     * @jpf:forward name="success" path="index.jsp"
+     */
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp") 
+        })
+    protected Forward bothHave()
+    {
+        return new Forward("success");
+    }
+
+    /**
+     * @jpf:action
+     * @jpf:forward name="success" path="index.jsp"
+     */
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp") 
+        })
+    protected Forward onlyA()
+    {
+        return new Forward("success");
+    }
+}

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/index.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/index.jsp	Tue Sep 14 23:06:45 2004
@@ -0,0 +1,21 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="beehive-netui-tags-databinding.tld" prefix="netui-data"%>
+<%@ taglib uri="beehive-netui-tags-html.tld" prefix="netui"%>
+<%@ taglib uri="beehive-netui-tags-template.tld" prefix="netui-template"%>
+<netui:html>
+    <head>
+        <title>
+            Mock Portal Smoke Test
+        </title>
+    </head>
+    <body>
+        <h3>Mock Portal Smoke Test</h3>
+        
+        <netui:form action="submit">
+            data: <netui:textBox dataSource="pageFlow.data"/>
+            <netui:button value="submit"/>
+        </netui:form>
+
+        <netui:anchor action="goNested">goNested</netui:anchor>
+    </body>
+</netui:html>

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/nested/NestedController.jpf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/nested/NestedController.jpf	Tue Sep 14 23:06:45 2004
@@ -0,0 +1,36 @@
+/*
+ * 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.smokeTest.nested;
+
+import javax.servlet.http.HttpSession;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+
+@Jpf.Controller(
+    nested=true,
+    simpleActions={
+        @Jpf.SimpleAction(name="begin", path="index.jsp"),
+        @Jpf.SimpleAction(name="done", returnAction="nestedDone")
+    }
+)
+public class NestedController extends PageFlowController
+{
+}
+

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/nested/index.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/nested/index.jsp	Tue Sep 14 23:06:45 2004
@@ -0,0 +1,20 @@
+<%@ 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>Nested</h3>
+        <netui:anchor action="done">done</netui:anchor>
+
+                
+    </netui:body>
+</netui:html>
+
+  
\ No newline at end of file

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/results.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/smokeTest/results.jsp	Tue Sep 14 23:06:45 2004
@@ -0,0 +1,20 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="beehive-netui-tags-databinding.tld" prefix="netui-data"%>
+<%@ taglib uri="beehive-netui-tags-html.tld" prefix="netui"%>
+<%@ taglib uri="beehive-netui-tags-template.tld" prefix="netui-template"%>
+<netui:html>
+<% org.apache.beehive.netui.pageflow.internal.InternalUtils.dumpRequest( request, null ); %>
+    <head>
+        <title>
+            Mock Portal Smoke Test
+        </title>
+    </head>
+    <body>
+        <h3>Mock Portal Smoke Test</h3>
+
+        data: <b><netui:span value="${pageFlow.data}"/></b>
+        <br/>
+        <br/>
+        <netui:anchor action="begin">go back</netui:anchor>
+    </body>
+</netui:html>

Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfPageInput/PageInputController.jpf
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfPageInput/PageInputController.jpf	(original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfPageInput/PageInputController.jpf	Tue Sep 14 23:06:45 2004
@@ -21,187 +21,6 @@
 import org.apache.beehive.netui.pageflow.Forward;
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 
-/**
- * @jpf:controller
- * @jpf:forward name="globalSuccessMissingNotNullable" page-inputs="missingNotNullable" return-to="currentPage"
- * @jpf:forward name="globalSuccessMismatched" page-inputs="mismatched" return-to="currentPage"
- * @jpf:forward name="globalSuccessGood" page-inputs="goodArray" return-to="currentPage"
- * @jpf:forward name="globalSuccessMissingButNullable" page-inputs="missingButNullable" return-to="currentPage"
- * @jpf:page-input name="missingNotNullable" type="String" is-nullable="false"
- * @jpf:page-input name="mismatched" type="String" is-nullable="false"
- * @jpf:page-input name="goodArray" type="String[]" is-nullable="false"
- * @jpf:page-input name="missingButNullable" type="String"
- *
- * @jpf:view-properties view-properties::
- * <!-- This data is auto-generated. Hand-editing this section is not recommended. -->
- * <view-properties>
- * <pageflow-object id="pageflow:/pageFlowCore/pageInput/PageInputController.jpf"/>
- * <pageflow-object id="action:begin.do">
- *   <property value="460" name="x"/>
- *   <property value="60" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:missingNotNullable1.do">
- *   <property value="100" name="x"/>
- *   <property value="300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:missingNotNullable2.do">
- *   <property value="380" name="x"/>
- *   <property value="300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:mismatched1.do">
- *   <property value="240" name="x"/>
- *   <property value="300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:mismatched2.do">
- *   <property value="540" name="x"/>
- *   <property value="300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:good1.do">
- *   <property value="680" name="x"/>
- *   <property value="300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:good2.do">
- *   <property value="820" name="x"/>
- *   <property value="300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:missingButNullable1.do">
- *   <property value="300" name="x"/>
- *   <property value="60" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:missingButNullable2.do">
- *   <property value="620" name="x"/>
- *   <property value="60" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:missingNotNullable1.do@">
- *   <property value="424,100,100,100" name="elbowsX"/>
- *   <property value="161,161,208,256" name="elbowsY"/>
- *   <property value="West_0" name="fromPort"/>
- *   <property value="North_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:missingNotNullable2.do@">
- *   <property value="424,380,380,380" name="elbowsX"/>
- *   <property value="183,183,219,256" name="elbowsY"/>
- *   <property value="West_2" name="fromPort"/>
- *   <property value="North_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:missingButNullable1.do@">
- *   <property value="449,449,300,300" name="elbowsX"/>
- *   <property value="136,120,120,104" name="elbowsY"/>
- *   <property value="North_0" name="fromPort"/>
- *   <property value="South_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:mismatched2.do@">
- *   <property value="496,540,540,540" name="elbowsX"/>
- *   <property value="183,183,219,256" name="elbowsY"/>
- *   <property value="East_2" name="fromPort"/>
- *   <property value="North_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:mismatched1.do@">
- *   <property value="424,240,240,240" name="elbowsX"/>
- *   <property value="172,172,214,256" name="elbowsY"/>
- *   <property value="West_1" name="fromPort"/>
- *   <property value="North_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:missingButNullable2.do@">
- *   <property value="471,471,620,620" name="elbowsX"/>
- *   <property value="136,120,120,104" name="elbowsY"/>
- *   <property value="North_2" name="fromPort"/>
- *   <property value="South_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:good1.do@">
- *   <property value="496,680,680,680" name="elbowsX"/>
- *   <property value="172,172,214,256" name="elbowsY"/>
- *   <property value="East_1" name="fromPort"/>
- *   <property value="North_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:index.jsp@#@action:good2.do@">
- *   <property value="496,820,820,820" name="elbowsX"/>
- *   <property value="161,161,208,256" name="elbowsY"/>
- *   <property value="East_0" name="fromPort"/>
- *   <property value="North_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="page:index.jsp">
- *   <property value="460" name="x"/>
- *   <property value="180" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:path#index#index.jsp#@action:begin.do@">
- *   <property value="460,460,460,460" name="elbowsX"/>
- *   <property value="104,120,120,136" name="elbowsY"/>
- *   <property value="South_1" name="fromPort"/>
- *   <property value="North_1" name="toPort"/>
- *   <property value="index" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="return-to:@forward:return-to#success#currentPage#@action:missingNotNullable1.do@@">
- *   <property value="100" name="x"/>
- *   <property value="420" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:return-to#success#currentPage#@action:missingNotNullable1.do@">
- *   <property value="100,100,89,89" name="elbowsX"/>
- *   <property value="344,360,360,376" name="elbowsY"/>
- *   <property value="South_1" name="fromPort"/>
- *   <property value="North_0" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="return-to:@forward:return-to#success#currentPage#@action:mismatched1.do@@">
- *   <property value="240" name="x"/>
- *   <property value="420" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:return-to#success#currentPage#@action:mismatched1.do@">
- *   <property value="229,229,240,240" name="elbowsX"/>
- *   <property value="344,360,360,376" name="elbowsY"/>
- *   <property value="South_0" name="fromPort"/>
- *   <property value="North_1" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="return-to:@forward:return-to#success#currentPage#@action:good1.do@@">
- *   <property value="680" name="x"/>
- *   <property value="420" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:return-to#success#currentPage#@action:good1.do@">
- *   <property value="680,680,669,669" name="elbowsX"/>
- *   <property value="344,360,360,376" name="elbowsY"/>
- *   <property value="South_1" name="fromPort"/>
- *   <property value="North_0" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="return-to:@forward:return-to#success#currentPage#@action:missingButNullable1.do@@">
- *   <property value="140" name="x"/>
- *   <property value="60" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:return-to#success#currentPage#@action:missingButNullable1.do@">
- *   <property value="264,220,220,176" name="elbowsX"/>
- *   <property value="52,52,52,52" name="elbowsY"/>
- *   <property value="West_1" name="fromPort"/>
- *   <property value="East_1" name="toPort"/>
- *   <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="return-to:@forward:return-to#globalSuccessMissingNotNullable#currentPage@">
- *   <property value="60" name="x"/>
- *   <property value="40" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:return-to#globalSuccessMissingNotNullable#currentPage"/>
- * <pageflow-object id="return-to:@forward:return-to#globalSuccessMismatched#currentPage@">
- *   <property value="85" name="x"/>
- *   <property value="65" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:return-to#globalSuccessMismatched#currentPage"/>
- * <pageflow-object id="return-to:@forward:return-to#globalSuccessGood#currentPage@">
- *   <property value="110" name="x"/>
- *   <property value="90" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:return-to#globalSuccessGood#currentPage"/>
- * <pageflow-object id="return-to:@forward:return-to#globalSuccessMissingButNullable#currentPage@">
- *   <property value="135" name="x"/>
- *   <property value="115" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:return-to#globalSuccessMissingButNullable#currentPage"/>
- * <pageflow-object id="action:lots.do">
- *   <property value="460" name="x"/>
- *   <property value="420" name="y"/>
- * </pageflow-object>
- * </view-properties>
- * ::
- */
 @Jpf.Controller(
     forwards = {
         @Jpf.Forward(
@@ -218,7 +37,7 @@
             navigateTo = Jpf.NavigateTo.currentPage),
         @Jpf.Forward(
             name = "globalSuccessMissingButNullable",
-            actionOutputs={@Jpf.ActionOutput(name="missingButNullable", type=String.class, nullable=true)},
+            actionOutputs={@Jpf.ActionOutput(name="missingButNullable", type=String.class, required=false)},
             navigateTo = Jpf.NavigateTo.currentPage) 
     })
 @Jpf.ViewProperties(
@@ -408,11 +227,6 @@
         return new Forward( "index" );
     }
 
-    /**
-     * @jpf:action
-     * @jpf:forward name="success" page-inputs="missingNotNullable" return-to="currentPage"
-     * @jpf:page-input name="missingNotNullable" type="String" is-nullable="false"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(
@@ -435,11 +249,6 @@
         return new Forward( "globalSuccessMissingNotNullable" );
     }
 
-   /**
-     * @jpf:action
-     * @jpf:forward name="success" page-inputs="mismatched" return-to="currentPage"
-     * @jpf:page-input name="mismatched" type="String" is-nullable="false"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(
@@ -462,11 +271,6 @@
         return new Forward( "globalSuccessMismatched", "mismatched", new String[]{ "hi" } );
     }
 
-    /**
-     * @jpf:action
-     * @jpf:forward name="success" page-inputs="goodString" return-to="currentPage"
-     * @jpf:page-input name="goodString" type="String" is-nullable="false"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(
@@ -498,7 +302,7 @@
         forwards = {
             @Jpf.Forward(
                 name = "success",
-                actionOutputs={@Jpf.ActionOutput(name="missingButNullable", type=String.class, nullable=true)},
+                actionOutputs={@Jpf.ActionOutput(name="missingButNullable", type=String.class, required=false)},
                 navigateTo = Jpf.NavigateTo.currentPage) 
         })
     protected Forward missingButNullable1()
@@ -517,13 +321,6 @@
     }
 
 
-    /**
-     * @jpf:action
-     * @jpf:forward name="success" path="lots.jsp" page-inputs="pi1,pi2,pi3"
-     * @jpf:page-input name="pi1" type="String" is-nullable="false"
-     * @jpf:page-input name="pi2" type="String[]" is-nullable="false"
-     * @jpf:page-input name="pi3" type="String[][]" is-nullable="false"
-     */
     @Jpf.Action(
         forwards = {
             @Jpf.Forward(