You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by cr...@apache.org on 2006/01/23 18:10:18 UTC

svn commit: r371598 [1/2] - in /beehive/trunk/netui: src/compiler-core/org/apache/beehive/netui/compiler/ src/compiler-core/org/apache/beehive/netui/compiler/genmodel/ src/compiler-core/org/apache/beehive/netui/compiler/grammar/ src/compiler-core/org/a...

Author: crogers
Date: Mon Jan 23 09:08:52 2006
New Revision: 371598

URL: http://svn.apache.org/viewcvs?rev=371598&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-1038 and http://issues.apache.org/jira/browse/BEEHIVE-1039

It appears that these regressions are related to an earlier revision, svn 351812, that introduced the DelegatingActionMapping support for inherited page flows.
See http://svn.apache.org/viewcvs?rev=351812&view=rev

This change fixes the readOnly, loginRequired, rolesAllowed properties support. The annotation attributes for these properties can be set on both the Controller and the action annotations. With inheritance, we need to see if they are overridden by the derived Controller annotation.

There was also a bug in our logic for adding a new action config to the action mappings of the generated struts module config. For the delegating action model, we were not accounting for the form bean of the delegate when disambiguating the action path for overloaded action methods. In addition, we were using a copy constructor of the ActionModel when we disambiguated the DelegatingActionModel and therefor losing some properties that we needed to write to the action config.

tests: full bvt in netui, including compiler tests (WinXP)


Added:
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingSimpleActionModel.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/Derived1a.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/done.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/Derived1b.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/done.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/Derived2a.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/done.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/Derived2b.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/done.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/Super1.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/form1Result.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/noFormResult.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/Super2.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form1Result.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form2Result.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/Derived1a.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1b/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1b/Derived1b.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1b/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived2a/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived2a/Derived2a.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived2a/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived2b/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived2b/Derived2b.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived2b/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/super1/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/super1/Super1.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/super1/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/super2/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/super2/Super2.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/super2/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/base/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/base/Base.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/base/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived1a/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived1a/Derived1a.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived1a/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived1b/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived1b/Derived1b.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived1b/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived2a/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived2a/Derived2a.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived2a/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived2b/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived2b/Derived2b.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/derived2b/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/super1/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/super1/Super1.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/super1/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/super2/
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/super2/Super2.java   (with props)
    beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/simpleActions/super2/index.jsp   (with props)
Modified:
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/MergedControllerAnnotation.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingActionModel.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenExceptionModel.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenSimpleActionModel.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WritableFieldType.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ActionModel.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/StrutsApp.java
    beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/DelegatingActionMapping.java
    beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected
    beehive/trunk/netui/test/src/compilerTests/testsuite/PF_InvalidAnnotations/expectedOutput/struts-config-PF_InvalidAnnotations.expected
    beehive/trunk/netui/test/src/compilerTests/testsuite/simpleInheritedBegin/expectedOutput/struts-config-simpleInheritedBegin-childFlow.expected
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/StrutsMergeTest4.xml
    beehive/trunk/netui/test/webapps/drt/web/strutsMerge/test4/Jsp2.jsp

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/MergedControllerAnnotation.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/MergedControllerAnnotation.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/MergedControllerAnnotation.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/MergedControllerAnnotation.java Mon Jan 23 09:08:52 2006
@@ -44,7 +44,7 @@
     private List _rolesAllowed;
     private List _customValidatorConfigs;
     private Boolean _loginRequired = null;
-    private boolean _readOnly = false;
+    private Boolean _readOnly = null;
     private boolean _inheritLocalPaths = false;
     private LinkedHashMap _forwards = new LinkedHashMap();
     private LinkedHashMap _sharedFlowRefs = new LinkedHashMap();
@@ -81,7 +81,7 @@
         if ( loginRequired != null ) _loginRequired = loginRequired;
         
         Boolean readOnly = CompilerUtils.getBoolean( controllerAnnotation, READONLY_ATTR, true );
-        if ( readOnly != null ) _readOnly = readOnly.booleanValue();
+        if ( readOnly != null ) _readOnly = readOnly;
         
         Boolean inheritLocalPaths = CompilerUtils.getBoolean( controllerAnnotation, INHERIT_LOCAL_PATHS_ATTR, true );
         if ( inheritLocalPaths != null ) _inheritLocalPaths = inheritLocalPaths.booleanValue();
@@ -180,7 +180,7 @@
         return _loginRequired;
     }
 
-    public boolean isReadOnly()
+    public Boolean isReadOnly()
     {
         return _readOnly;
     }

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingActionModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingActionModel.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingActionModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingActionModel.java Mon Jan 23 09:08:52 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright 2004 The Apache Software Foundation.
+ * Copyright 2005 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.
@@ -17,31 +17,76 @@
  */
 package org.apache.beehive.netui.compiler.genmodel;
 
-import org.apache.beehive.netui.compiler.model.ActionModel;
-import org.apache.beehive.netui.compiler.model.StrutsApp;
+import org.apache.beehive.netui.compiler.CompilerUtils;
 import org.apache.beehive.netui.compiler.model.XmlModelWriter;
+import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationInstance;
+import org.apache.beehive.netui.compiler.typesystem.declaration.ClassDeclaration;
+import org.apache.beehive.netui.compiler.typesystem.declaration.Declaration;
 import org.apache.beehive.netui.compiler.typesystem.declaration.TypeDeclaration;
-import org.apache.beehive.netui.compiler.typesystem.declaration.PackageDeclaration;
-import org.apache.beehive.netui.compiler.CompilerUtils;
 import org.w3c.dom.Element;
 
 /**
- * Generates to a Struts ActionMapping object that delegates to an ActionMapping in a different module.
+ * Generates to a Struts ActionMapping object that delegates to an ActionMapping
+ * in a different module. These are used for support of inheritance.
+ * 
+ * <p>Note that there are some Controller attributes that are for actions such as
+ * loginRequired and readOnly. This implementation extends GenActionModel and
+ * overrides init() so that local Controller properties can be included in the
+ * Struts module config we generate. Then the runtime can use these values to
+ * override the values of the delegate.</p>
+ * 
+ * <p>Also, for overloaded action methods, this class needs to know the name of
+ * any form bean used by the delegate so that the StrutsApp class can disambiguate
+ * the action path setting when it adds the action to the action mappings. Using
+ * the super class, GenActionModel, construtctor will set the form bean name. 
  */
-public class DelegatingActionModel extends ActionModel
+public class DelegatingActionModel extends GenActionModel
 {
-    private static final String ACTION_MAPPING_CLASSNAME = PAGEFLOW_PACKAGE + ".config.DelegatingActionMapping";
+    protected static final String ACTION_MAPPING_CLASSNAME = PAGEFLOW_PACKAGE + ".config.DelegatingActionMapping";
 
-    protected DelegatingActionModel(String actionName, TypeDeclaration containingType, GenStrutsApp parent) {
-        super(parent);
-        setActionName(actionName);
-        setClassName(ACTION_MAPPING_CLASSNAME);
-        setParameter(parent.getFlowControllerClass().getQualifiedName());
+    public DelegatingActionModel(Declaration sourceElement, TypeDeclaration containingType,
+                                 GenStrutsApp parent, ClassDeclaration jclass) {
+        super(sourceElement, parent, jclass);
         String modulePath = CompilerUtils.inferModulePathFromType(containingType);
         addSetProperty("delegateModulePath", modulePath);
 
         if (parent.getFlowControllerInfo().getMergedControllerAnnotation().isInheritLocalPaths()) {
             addSetProperty("inheritLocalPaths", "true");
+        }
+    }
+
+    protected void init(String actionName, AnnotationInstance annotation,
+                        GenStrutsApp parent, ClassDeclaration jclass) {
+        setActionName(actionName);
+        setClassName(ACTION_MAPPING_CLASSNAME);
+        setParameter(parent.getFlowControllerClass().getQualifiedName());
+
+        // loginRequired - Set this to override the delegating action property
+        // only if loginRequired is set on the Controller annotation.
+        AnnotationInstance controllerAnnotation = CompilerUtils.getAnnotation( jclass, CONTROLLER_TAG_NAME );
+        Boolean loginRequired = CompilerUtils.getBoolean( controllerAnnotation, LOGIN_REQUIRED_ATTR, true );
+        if (loginRequired != null) {
+            setLoginRequired(loginRequired);
+        }
+
+        // readOnly - Set this to override the delegating action property
+        // only if readOnly is set on the Controller annotation.
+        Boolean readOnly = CompilerUtils.getBoolean( controllerAnnotation, READONLY_ATTR, true );
+        if (readOnly != null) {
+            setReadonly(readOnly);
+        }
+
+        // rolesAllowed -- avoid setting this if loginRequired is explicitly false.
+        // If it's not set on this controller, check the action annotation, then the
+        // parent controller.
+        if (loginRequired == null) {
+            loginRequired = CompilerUtils.getBoolean( annotation, LOGIN_REQUIRED_ATTR, true );
+            if (loginRequired == null) {
+                loginRequired = parent.getFlowControllerInfo().getMergedControllerAnnotation().isLoginRequired();
+            }
+        }
+        if (loginRequired == null || loginRequired.booleanValue()) {
+            setRolesAllowed(annotation, jclass, parent);
         }
     }
 

Added: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingSimpleActionModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingSimpleActionModel.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingSimpleActionModel.java (added)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingSimpleActionModel.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2006 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 org.apache.beehive.netui.compiler.genmodel;
+
+import org.apache.beehive.netui.compiler.CompilerUtils;
+import org.apache.beehive.netui.compiler.model.XmlModelWriter;
+import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationInstance;
+import org.apache.beehive.netui.compiler.typesystem.declaration.ClassDeclaration;
+import org.apache.beehive.netui.compiler.typesystem.declaration.TypeDeclaration;
+import org.w3c.dom.Element;
+
+/**
+ * Generates to a Struts ActionMapping object that delegates to an ActionMapping
+ * in a different module. These are used for support of inheritance for simple
+ * actions.
+ * 
+ * <p>Note that there are some Controller attributes that are for actions such as
+ * loginRequired and readOnly. This implementation extends GenSimpleActionModel
+ * and overrides init() so that local Controller properties can be included in
+ * the Struts module config we generate. Then the runtime can use these values to
+ * override the values of the delegate.</p>
+ */
+public class DelegatingSimpleActionModel extends GenSimpleActionModel
+{
+    public DelegatingSimpleActionModel(AnnotationInstance annotation, TypeDeclaration containingType,
+                                       GenStrutsApp parent, ClassDeclaration jclass) {
+        super(annotation, parent, jclass);
+
+        String modulePath = CompilerUtils.inferModulePathFromType(containingType);
+        addSetProperty("delegateModulePath", modulePath);
+
+        if (parent.getFlowControllerInfo().getMergedControllerAnnotation().isInheritLocalPaths()) {
+            addSetProperty("inheritLocalPaths", "true");
+        }
+    }
+
+    protected void init(String actionName, AnnotationInstance annotation,
+                        GenStrutsApp parent, ClassDeclaration jclass) {
+        setActionName(actionName);
+        setClassName(DelegatingActionModel.ACTION_MAPPING_CLASSNAME);
+        setParameter(parent.getFlowControllerClass().getQualifiedName());
+
+        // loginRequired - Set this to override the delegating action property
+        // only if loginRequired is set on the Controller annotation.
+        AnnotationInstance controllerAnnotation = CompilerUtils.getAnnotation( jclass, CONTROLLER_TAG_NAME );
+        Boolean loginRequired = CompilerUtils.getBoolean( controllerAnnotation, LOGIN_REQUIRED_ATTR, true );
+        if (loginRequired != null) {
+            setLoginRequired(loginRequired);
+        }
+
+        // check for a form bean member in the delegate -- 
+        // the page-flow-scoped form referenced by the action (a member variable)
+        String formMember = CompilerUtils.getString(annotation, USE_FORM_BEAN_ATTR, true);
+        if (formMember == null) {
+            // can't modify member state; mark as read-only
+            setReadonly(Boolean.valueOf(true));
+        }
+
+        // rolesAllowed -- avoid setting this if loginRequired is explicitly false.
+        // If it's not set on this controller, check the action annotation, then the
+        // parent controller.
+        if (loginRequired == null) {
+            loginRequired = CompilerUtils.getBoolean( annotation, LOGIN_REQUIRED_ATTR, true );
+            if (loginRequired == null) {
+                loginRequired = parent.getFlowControllerInfo().getMergedControllerAnnotation().isLoginRequired();
+            }
+        }
+        if (loginRequired == null || loginRequired.booleanValue()) {
+            setRolesAllowed(annotation, jclass, parent);
+        }
+    }
+
+    protected void addSetProperty(XmlModelWriter xw, Element element, String propertyName, String propertyValue) {
+        setCustomProperty(xw, element, propertyName, propertyValue, DelegatingActionModel.ACTION_MAPPING_CLASSNAME);
+    }
+}

Propchange: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/DelegatingSimpleActionModel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java Mon Jan 23 09:08:52 2006
@@ -55,8 +55,8 @@
         super( parentApp );
         init( actionName, ann, parentApp, jclass );
     }
-    
-    private void init( String actionName, AnnotationInstance annotation, GenStrutsApp parentApp, ClassDeclaration jclass )
+
+    protected void init( String actionName, AnnotationInstance annotation, GenStrutsApp parentApp, ClassDeclaration jclass )
     {
         setActionName(actionName);
         
@@ -68,8 +68,8 @@
         {
             loginRequired = parentApp.getFlowControllerInfo().getMergedControllerAnnotation().isLoginRequired();
         }
-        if ( loginRequired != null ) setLoginRequired( loginRequired.booleanValue() );
-        
+        setLoginRequired( loginRequired );
+
         //
         // prevent-double-submit
         //
@@ -82,10 +82,10 @@
         Boolean readOnly = CompilerUtils.getBoolean( annotation, READONLY_ATTR, true );
         if ( readOnly == null )
         {
-            readOnly = Boolean.valueOf( parentApp.getFlowControllerInfo().getMergedControllerAnnotation().isReadOnly() );
+            readOnly = parentApp.getFlowControllerInfo().getMergedControllerAnnotation().isReadOnly();
         }
-        setReadonly( readOnly.booleanValue() );
-        
+        setReadonly( readOnly );
+
         //
         // rolesAllowed -- avoid setting this if loginRequired is explicitly false.
         //
@@ -132,8 +132,8 @@
         List catches = CompilerUtils.getAnnotationArray( annotation, CATCHES_ATTR, true );
         GenExceptionModel.addCatches( catches, this, jclass, parentApp, this );
     }
-    
-    private void setRolesAllowed( AnnotationInstance annotation, ClassDeclaration jclass, GenStrutsApp parentApp )
+
+    protected void setRolesAllowed( AnnotationInstance annotation, ClassDeclaration jclass, GenStrutsApp parentApp )
     {
         List rolesAllowed = CompilerUtils.getStringArray( annotation, ROLES_ALLOWED_ATTR, true );
         List classLevelRA = parentApp.getFlowControllerInfo().getMergedControllerAnnotation().getRolesAllowed();

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenExceptionModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenExceptionModel.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenExceptionModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenExceptionModel.java Mon Jan 23 09:08:52 2006
@@ -27,7 +27,6 @@
 import org.apache.beehive.netui.compiler.typesystem.declaration.ClassDeclaration;
 import org.apache.beehive.netui.compiler.typesystem.declaration.TypeDeclaration;
 
-import java.util.List;
 import java.util.Collection;
 import java.util.Iterator;
 
@@ -65,9 +64,9 @@
             Boolean readOnly = CompilerUtils.getBoolean( exHandlerAnnotation, READONLY_ATTR, true );
             if ( readOnly == null )
             {
-                readOnly = Boolean.valueOf( parentApp.getFlowControllerInfo().getMergedControllerAnnotation().isReadOnly() );
+                readOnly = parentApp.getFlowControllerInfo().getMergedControllerAnnotation().isReadOnly();
             }
-            setReadonly( readOnly.booleanValue() );
+            setReadonly( readOnly != null && readOnly.booleanValue() );
         }
         else
         {

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenSimpleActionModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenSimpleActionModel.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenSimpleActionModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenSimpleActionModel.java Mon Jan 23 09:08:52 2006
@@ -37,7 +37,12 @@
     public GenSimpleActionModel( AnnotationInstance annotation, GenStrutsApp parentApp, ClassDeclaration jclass )
     {
         super( CompilerUtils.getString( annotation, NAME_ATTR, true ), annotation, parentApp, jclass );
-        
+    }
+
+    protected void init( String actionName, AnnotationInstance annotation, GenStrutsApp parentApp, ClassDeclaration jclass )
+    {
+        super.init( actionName, annotation, parentApp, jclass );
+
         setSimpleAction( true );
         addForwards( annotation, parentApp, jclass );
         
@@ -50,7 +55,7 @@
         }
         else
         {
-            setReadonly( true );     // can't modify member state; mark as read-only
+            setReadonly( Boolean.valueOf( true ) );     // can't modify member state; mark as read-only
             
             TypeInstance formBeanType = CompilerUtils.getTypeInstance( annotation, USE_FORM_BEAN_TYPE_ATTR, true );
             

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java Mon Jan 23 09:08:52 2006
@@ -213,8 +213,7 @@
                 if (CompilerUtils.typesAreEqual(_jclass, containingType)) {
                     addActionMapping( new GenSimpleActionModel(ann, this, _jclass));
                 } else {
-                    String actionName = CompilerUtils.getString(ann, NAME_ATTR, true);
-                    addActionMapping(new DelegatingActionModel(actionName, containingType, this));
+                    addActionMapping(new DelegatingSimpleActionModel(ann, containingType, this, _jclass));
                 }
             }
         }
@@ -281,7 +280,7 @@
                 if (CompilerUtils.typesAreEqual(_jclass, declaringType)) {
                     addActionMapping(new GenActionModel(actionMethod, this, _jclass));
                 } else {
-                    addActionMapping(new DelegatingActionModel(actionMethod.getSimpleName(), declaringType, this));
+                    addActionMapping(new DelegatingActionModel(actionMethod, declaringType, this, _jclass));
                 }
             }
         }

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WritableFieldType.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WritableFieldType.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WritableFieldType.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WritableFieldType.java Mon Jan 23 09:08:52 2006
@@ -59,7 +59,7 @@
         if ( readonlyValue == null )
         {
             BaseFlowControllerGrammar fcGrammar = ( BaseFlowControllerGrammar ) getParentGrammar();
-            readonlyValue = Boolean.valueOf( fcGrammar.getFlowControllerInfo().getMergedControllerAnnotation().isReadOnly() ); 
+            readonlyValue = fcGrammar.getFlowControllerInfo().getMergedControllerAnnotation().isReadOnly(); 
         }
         
         if ( readonlyValue != null && readonlyValue.booleanValue() )

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ActionModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ActionModel.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ActionModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/ActionModel.java Mon Jan 23 09:08:52 2006
@@ -58,9 +58,9 @@
 
     // Non-struts attributes.
     private String _unqualifiedActionPath;
-    private boolean _loginRequired;
+    private Boolean _loginRequired;
     private boolean _isOverloaded;
-    private boolean _readonly;
+    private Boolean _readonly;
     private boolean _isSimpleAction = false;
     private boolean _preventDoubleSubmit = false;
     private String _formMember;     // pageflow-scoped form
@@ -92,6 +92,7 @@
         this._formBeanName = src._formBeanName;
         _exceptionCatches = ( ArrayList ) src._exceptionCatches.clone();
         _attribute = src._attribute;
+        setClassName( src.getClassName() );
         _forward = src._forward;
         _include = src._include;
         _input = src._input;
@@ -172,6 +173,11 @@
         if (propertyValue) addSetProperty( xw, element, propertyName, Boolean.toString( propertyValue ) );
     }
 
+    private void addSetProperty( XmlModelWriter xw, Element element, String propertyName, Boolean propertyValue )
+    {
+        if (propertyValue != null) addSetProperty( xw, element, propertyName, propertyValue.toString() );
+    }
+
     protected void addSetProperty( XmlModelWriter xw, Element element, String propertyName, String propertyValue )
     {
         setCustomProperty(xw, element, propertyName, propertyValue, PAGEFLOW_ACTION_MAPPING_CLASSNAME);
@@ -362,7 +368,16 @@
         _roles = roles;
     }
 
-    public void setLoginRequired( boolean loginRequired )
+    /**
+     * Set the value to use for the login required <set-property> of the <action>.
+     * If the value is null, then this <set-property> will not be included in the
+     * <action>.
+     * @param loginRequired if <code>true</code>, login is required for this action.
+     *                      If <code>false</code>, no login is required. Otherwise,
+     *                      a <set-property> will not be written, implying
+     *                      login is not required.
+     */
+    public void setLoginRequired( Boolean loginRequired )
     {
         _loginRequired = loginRequired;
     }
@@ -412,12 +427,21 @@
         _formClass = formClass;
     }
 
-    public boolean isReadonly()
+    public Boolean isReadonly()
     {
         return _readonly;
     }
 
-    public void setReadonly( boolean readonly )
+    /**
+     * Set the value to use for the read only <set-property> of the <action>.
+     * If the value is null, then this <set-property> will not be included in
+     * the <action>. If set to <code>true</code>, then by default the action
+     * "promises" that it will not modify member data.
+     * @param readonly if true, this action is read only .If false, it is not
+     *                 read only (the default). Otherwise, a <set-property>
+     *                 will not be written, implying it is not read only. 
+     */
+    public void setReadonly( Boolean readonly )
     {
         _readonly = readonly;
     }

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/StrutsApp.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/StrutsApp.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/StrutsApp.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/StrutsApp.java Mon Jan 23 09:08:52 2006
@@ -122,9 +122,10 @@
         if ( mapping.getFormBeanName() != null )
         {
             String qualifiedPath = getFormQualifiedActionPath( mapping );
-            ActionModel qualifiedMapping = new ActionModel( mapping, qualifiedPath );
-            qualifiedMapping.setUnqualifiedActionPath( mapping.getPath() );
-            _actionMappings.put( qualifiedPath, qualifiedMapping );
+            String path = mapping.getPath();
+            mapping.setPath( qualifiedPath );
+            mapping.setUnqualifiedActionPath( path );
+            _actionMappings.put( qualifiedPath, mapping );
         }
     }
     
@@ -149,13 +150,17 @@
                  || ( conflictingActionMapping.getFormBeanName() != null
                       && getBeanType( mapping ).compareTo( getBeanType( conflictingActionMapping ) ) < 0 ) )
             {
+                _actionMappings.remove( mappingPath );
                 _actionMappings.put( mappingPath, mapping );
                 defaultMappingForThisPath = mapping;
                 conflictingActionMapping.setOverloaded( false );
+                addDisambiguatedActionMapping( conflictingActionMapping );
+            }
+            else
+            {
+                addDisambiguatedActionMapping( mapping );
             }
             
-            addDisambiguatedActionMapping( mapping );
-            addDisambiguatedActionMapping( conflictingActionMapping );
             defaultMappingForThisPath.setOverloaded( true );
             defaultMappingForThisPath.setComment( DUPLICATE_ACTION_COMMENT.replaceAll( "\\{0\\}", mappingPath ) );  // @TODO I18N
         }

Modified: beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/DelegatingActionMapping.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/DelegatingActionMapping.java?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/DelegatingActionMapping.java (original)
+++ beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/DelegatingActionMapping.java Mon Jan 23 09:08:52 2006
@@ -36,6 +36,10 @@
     private String _delegateModulePath;
     private boolean _inheritLocalPaths;
 
+    // values from the module config to override the delegate properties.
+    private boolean _loginRequiredSet = false;
+    private boolean _readonlySet = false;
+
     /**
      * Set the path prefix for the module where the delegate ActionMapping lives.
      */
@@ -48,6 +52,15 @@
         ModuleConfig moduleConfig = InternalUtils.ensureModuleConfig(_delegateModulePath, servletContext);
         assert moduleConfig != null : "No ModuleConfig found for path " + _delegateModulePath;
         _delegate = (ActionMapping) moduleConfig.findActionConfig(getPath());
+
+        // It's possible that an overloaded action method in the derived class has the
+        // same unqualified action path, causing the path to be reset to a disambiguated
+        // path that includes the form bean class type. However, in the base class module
+        // config, the action path does not include the form bean class type. If the
+        // action path didn't match any in the delegate, try the unqualified path. 
+        if (_delegate == null) {
+            _delegate = (ActionMapping) moduleConfig.findActionConfig(super.getUnqualifiedActionPath());
+        }
         assert _delegate != null : "No ActionMapping with path " + getPath() + " in module " + _delegateModulePath;
     }
 
@@ -75,7 +88,46 @@
     public void setInheritLocalPaths(boolean inheritLocalPaths) {
         _inheritLocalPaths = inheritLocalPaths;
     }
-    
+
+    //
+    // Attributes that may have been set to override the delegate
+    //
+
+    public String getRoles() {
+        if (roles != null) {
+            return roles;
+        }
+        return _delegate.getRoles();
+    }
+
+    //
+    // Properties that may have been set to override the delegate
+    //
+
+    public boolean isLoginRequired() {
+        if (_loginRequiredSet) {
+            return super.isLoginRequired();
+        }
+        return _delegate instanceof PageFlowActionMapping && ((PageFlowActionMapping) _delegate).isLoginRequired();
+    }
+
+    public void setLoginRequired(boolean loginRequired) {
+        _loginRequiredSet = true;
+        super.setLoginRequired(loginRequired);
+    }
+
+    public boolean isReadonly() {
+        if (_readonlySet) {
+            return super.isReadonly();
+        }
+        return _delegate instanceof PageFlowActionMapping && ((PageFlowActionMapping) _delegate).isReadonly();
+    }
+
+    public void setReadonly(boolean readonly) {
+        _readonlySet = true;
+        super.setReadonly(readonly);
+    }
+
     //
     // Everything below this point is simple delegation.
     //
@@ -88,10 +140,6 @@
         return _delegate instanceof PageFlowActionMapping ? ((PageFlowActionMapping) _delegate).getUnqualifiedActionName() : null;
     }
 
-    public boolean isLoginRequired() {
-        return _delegate instanceof PageFlowActionMapping && ((PageFlowActionMapping) _delegate).isLoginRequired();
-    }
-
     public boolean isPreventDoubleSubmit() {
         return _delegate instanceof PageFlowActionMapping && ((PageFlowActionMapping) _delegate).isPreventDoubleSubmit();
     }
@@ -112,10 +160,6 @@
         return _delegate instanceof PageFlowActionMapping ? ((PageFlowActionMapping) _delegate).getFormClass() : null;
     }
 
-    public boolean isReadonly() {
-        return _delegate instanceof PageFlowActionMapping && ((PageFlowActionMapping) _delegate).isReadonly();
-    }
-
     public Map getConditionalForwardsMap() {
         return _delegate instanceof PageFlowActionMapping ? ((PageFlowActionMapping) _delegate).getConditionalForwardsMap() : null;
     }
@@ -170,10 +214,6 @@
 
     public String getPrefix() {
         return _delegate.getPrefix();
-    }
-
-    public String getRoles() {
-        return _delegate.getRoles();
     }
 
     public String[] getRoleNames() {

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected Mon Jan 23 09:08:52 2006
@@ -12,7 +12,8 @@
       <set-property property="readonly" value="true"/>
       <forward name="gotoPg1" path="/Pg1.jsp"/>
     </action>
-    <action parameter="PF_ActionReadOnly.Controller" path="/action2" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" parameter="PF_ActionReadOnly.Controller" path="/action2" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <set-property property="readonly" value="false"/>
       <forward name="gotoPg1" path="/Pg1.jsp"/>
     </action>
     <action parameter="PF_ActionReadOnly.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/PF_InvalidAnnotations/expectedOutput/struts-config-PF_InvalidAnnotations.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/PF_InvalidAnnotations/expectedOutput/struts-config-PF_InvalidAnnotations.expected?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/PF_InvalidAnnotations/expectedOutput/struts-config-PF_InvalidAnnotations.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/PF_InvalidAnnotations/expectedOutput/struts-config-PF_InvalidAnnotations.expected Mon Jan 23 09:08:52 2006
@@ -8,7 +8,8 @@
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action parameter="PF_InvalidAnnotations.Controller" path="/action1" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" parameter="PF_InvalidAnnotations.Controller" path="/action1" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <set-property property="readonly" value="false"/>
       <forward name="gotoPg1" path="/Pg1.jsp"/>
     </action>
     <action parameter="PF_InvalidAnnotations.Controller" path="/action2" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/simpleInheritedBegin/expectedOutput/struts-config-simpleInheritedBegin-childFlow.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/simpleInheritedBegin/expectedOutput/struts-config-simpleInheritedBegin-childFlow.expected?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/simpleInheritedBegin/expectedOutput/struts-config-simpleInheritedBegin-childFlow.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/simpleInheritedBegin/expectedOutput/struts-config-simpleInheritedBegin-childFlow.expected Mon Jan 23 09:08:52 2006
@@ -9,6 +9,7 @@
   </global-forwards>
   <action-mappings>
     <action className="org.apache.beehive.netui.pageflow.config.DelegatingActionMapping" parameter="simpleInheritedBegin.childFlow.ChildFlow" path="/begin" scope="request" validate="false">
+      <set-property property="readonly" value="true"/>
       <set-property property="delegateModulePath" value="/simpleInheritedBegin"/>
     </action>
   </action-mappings>

Modified: beehive/trunk/netui/test/webapps/drt/testRecorder/tests/StrutsMergeTest4.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/StrutsMergeTest4.xml?rev=371598&r1=371597&r2=371598&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/testRecorder/tests/StrutsMergeTest4.xml (original)
+++ beehive/trunk/netui/test/webapps/drt/testRecorder/tests/StrutsMergeTest4.xml Mon Jan 23 09:08:52 2006
@@ -246,7 +246,7 @@
         <hr width="95%"/>
         <br/>
         <center>
-            <form action="/coreWeb/strutsMerge/test4/jpfAction2_strutsMerge_test4_Form2.do" method="post">
+            <form action="/coreWeb/strutsMerge/test4/jpfAction2.do" method="post">
                 <table>
                     <tr>
                         <td>Field1</td>
@@ -256,7 +256,7 @@
                     </tr>
                 </table>
             </form>
-            <a href="/coreWeb/strutsMerge/test4/jpfAction2_strutsMerge_test4_Form2.do">continue</a>
+            <a href="/coreWeb/strutsMerge/test4/jpfAction2.do">continue</a>
         </center>
     </body>
 </html>]]></ses:responseBody>
@@ -272,7 +272,7 @@
             <ses:protocolVersion>1.1</ses:protocolVersion>
             <ses:host>localhost</ses:host>
             <ses:port>8080</ses:port>
-            <ses:uri>/coreWeb/strutsMerge/test4/jpfAction2_strutsMerge_test4_Form2.do</ses:uri>
+            <ses:uri>/coreWeb/strutsMerge/test4/jpfAction2.do</ses:uri>
             <ses:method>GET</ses:method>
             <ses:parameters/>
             <ses:cookies>
@@ -355,4 +355,4 @@
    <ses:testCount>4</ses:testCount>
    <ses:passedCount>2</ses:passedCount>
    <ses:failedCount>2</ses:failedCount>
-</ses:recorderSession>
\ No newline at end of file
+</ses:recorderSession>

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/Controller.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/Controller.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.overload;
+
+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")
+    })
+public class Controller extends PageFlowController
+{
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/Derived1a.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/Derived1a.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/Derived1a.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/Derived1a.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.overload.derived1a;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import pageFlowCore.inheritance.overload.super1.Super1;
+
+@Jpf.Controller(
+    inheritLocalPaths=true,
+    readOnly = false
+)
+public class Derived1a extends Super1
+{
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "derivedSuccess",
+                path = "done.jsp")
+        })
+    public Forward actionOne() {
+        return new Forward("derivedSuccess");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/Derived1a.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/done.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/done.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/done.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/done.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Derived1a Done</h3>
+    <b>Test successfully executed the action override.</b>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/done.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/index.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/index.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,16 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Derived1a</h3>
+    ${pageFlow.actionInfo}
+    <br/>
+    <netui:anchor action="actionOne">Action One</netui:anchor>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1a/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/Derived1b.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/Derived1b.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/Derived1b.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/Derived1b.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.overload.derived1b;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import pageFlowCore.inheritance.overload.super1.Super1;
+
+@Jpf.Controller(
+    inheritLocalPaths=true,
+    readOnly = false
+)
+public class Derived1b extends Super1
+{
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "derivedSuccess",
+                path = "done.jsp")
+        })
+    public Forward actionOne(FormOne form) {
+        return new Forward("derivedSuccess");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/Derived1b.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/done.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/done.jsp?rev=371598&view=auto
==============================================================================
    (empty)

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/done.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/index.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/index.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,16 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Derived1b</h3>
+    ${pageFlow.actionInfo}
+    <br/>
+    <netui:anchor action="actionOne">Action One</netui:anchor>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived1b/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/Derived2a.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/Derived2a.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/Derived2a.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/Derived2a.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.overload.derived2a;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import pageFlowCore.inheritance.overload.super2.Super2;
+
+@Jpf.Controller(
+    inheritLocalPaths=true,
+    readOnly = false
+)
+public class Derived2a extends Super2
+{
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "overrideSuccess",
+                path = "done.jsp")
+        })
+    public Forward actionOne(FormOne form) {
+        return new Forward("overrideSuccess");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/Derived2a.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/done.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/done.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/done.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/done.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Derived2a Done</h3>
+    <b>Test successfully executed the action override.</b>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/done.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/index.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/index.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,20 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Derived2a</h3>
+    ${pageFlow.actionInfo}
+    <br/>
+    <netui:form action="/actionOne">
+        <netui:textBox dataSource="actionForm.name" /><br />
+        Input Value:<netui:span value="${actionForm.name}" /><br />
+        <netui:button type="submit" action="actionOne" >Action One</netui:button>
+    </netui:form>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2a/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/Derived2b.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/Derived2b.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/Derived2b.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/Derived2b.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.overload.derived2b;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import pageFlowCore.inheritance.overload.super2.Super2;
+
+@Jpf.Controller(
+    inheritLocalPaths=true,
+    readOnly = false
+)
+public class Derived2b extends Super2
+{
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "overrideSuccess",
+                path = "done.jsp")
+        })
+    public Forward actionOne(FormTwo form) {
+        return new Forward("overrideSuccess");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/Derived2b.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/done.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/done.jsp?rev=371598&view=auto
==============================================================================
    (empty)

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/done.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/index.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/index.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,20 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Derived2b</h3>
+    ${pageFlow.actionInfo}
+    <br/>
+    <netui:form action="/actionOne">
+        <netui:textBox dataSource="actionForm.name" /><br />
+        Input Value:<netui:span value="${actionForm.name}" /><br />
+        <netui:button type="submit" action="actionOne" >Action One</netui:button>
+    </netui:form>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/derived2b/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/index.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/index.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,34 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+
+<html>
+<head>
+<title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h3>Page Flow Inheritance - Overriding Overloaded Actions</h3>
+
+    <p>Overloading Actions is really only useful for when you return from a nested flow. (See miniTests/overloadedActions/) Otherwise, from within a page flow, implicitly, you can only execute one of the overloaded actions.</p>
+    <p>Overloaded actions require work to disambiguate the action paths in the module config. The "natural" mapping is determined as follows.</p>
+    <p>As the NetUI compiler goes through the action methods of a page flow, the action mapping that takes no form has the highest precedence. If found, it replaces an existing overloaded action as the "natural" mapping for the given path.  Otherwise, if all the overloaded actions of a given name take forms, use the one with a form bean type that comes alphabetically before an existing one's.</p>
+    <b>Test overloaded action, one without a form bean:</b>
+    <br>The action executed should be the one without the form bean.
+    <ul>
+        <li><a href="super1/index.jsp">Super1</a></li>
+        <li><a href="derived1a/index.jsp">Derived1a</a> - override action without form bean</li>
+        <li><a href="derived1b/index.jsp">Derived1b</a> - override action with form bean</li>
+    </ul>
+    <b>Test overloaded action, both with a form bean (FormOne and FormTwo):</b>
+    <br>The action executed should be the one with the form bean (FormOne).
+    <ul>
+        <li><a href="super2/index.jsp">Super2</a></li>
+        <li><a href="derived2a/index.jsp">Derived2a</a> - override action with form bean, FormOne</li>
+        <li><a href="derived2b/index.jsp">Derived2b</a> - override action with form bean, FormTwo</li>
+    </ul>
+</body>
+</html>
+
+	
+
+
+			   

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/Super1.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/Super1.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/Super1.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/Super1.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.overload.super1;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.struts.action.ActionForm;
+
+import pageFlowCore.inheritance.override.base.Base;
+
+@Jpf.Controller(
+    readOnly = true
+)
+public class Super1 extends Base
+{
+    public static class FormOne extends ActionForm {
+        private String name = "No Name Yet";
+        public String getName() {
+            return name;
+        }
+        public void setName(String n) {
+            name = n;
+        }
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "noFormSuccess",
+                path = "noFormResult.jsp")
+        })
+    public Forward actionOne() {
+        return new Forward("noFormSuccess");
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "formSuccess",
+                path = "form1Result.jsp")
+        })
+    public Forward actionOne(FormOne form) {
+        return new Forward("formSuccess");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/Super1.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/form1Result.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/form1Result.jsp?rev=371598&view=auto
==============================================================================
    (empty)

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/form1Result.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/index.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/index.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,16 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Super1</h3>
+    ${pageFlow.actionInfo}
+    <br/>
+    <netui:anchor action="actionOne">Action One</netui:anchor>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/noFormResult.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/noFormResult.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/noFormResult.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/noFormResult.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Super1 No Form Results</h3>
+    <b>Test successfully executed the base action, no form.</b>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super1/noFormResult.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/Super2.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/Super2.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/Super2.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/Super2.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.overload.super2;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.struts.action.ActionForm;
+
+import pageFlowCore.inheritance.override.base.Base;
+
+@Jpf.Controller(
+    readOnly = true
+)
+public class Super2 extends Base
+{
+    public static class FormOne extends ActionForm {
+        private String name = "No Name Yet";
+        public String getName() {
+            return name;
+        }
+        public void setName(String n) {
+            name = n;
+        }
+    }
+
+    public static class FormTwo extends ActionForm {
+        private String name = "No Name Yet";
+        public String getName() {
+            return name;
+        }
+        public void setName(String n) {
+            name = n;
+        }
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "formOneSuccess",
+                path = "form1Result.jsp")
+        })
+    public Forward actionOne(FormOne form) {
+        return new Forward("formOneSuccess");
+    }
+
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(
+                name = "formTwoSuccess",
+                path = "form2Result.jsp")
+        })
+    public Forward actionOne(FormTwo form) {
+        return new Forward("formTwoSuccess");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/Super2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form1Result.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form1Result.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form1Result.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form1Result.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Super2 FormOne Results</h3>
+    <b>Test successfully executed the base action, with FormOne.</b>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form1Result.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form2Result.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form2Result.jsp?rev=371598&view=auto
==============================================================================
    (empty)

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/form2Result.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/index.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/index.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,20 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Overloaded Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Overloaded Actions</h1>
+    <h3>Super2</h3>
+    ${pageFlow.actionInfo}
+    <br/>
+    <netui:form action="/actionOne">
+        <netui:textBox dataSource="actionForm.name" /><br />
+        Input Value:<netui:span value="${actionForm.name}" /><br />
+        <netui:button type="submit" action="actionOne" >Action One</netui:button>
+    </netui:form>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/overload/super2/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/Controller.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/Controller.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.override.actions;
+
+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")
+    })
+public class Controller extends PageFlowController
+{
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/Derived1a.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/Derived1a.java?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/Derived1a.java (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/Derived1a.java Mon Jan 23 09:08:52 2006
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2006 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 pageFlowCore.inheritance.override.actions.derived1a;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import pageFlowCore.inheritance.override.actions.super1.Super1;
+
+@Jpf.Controller(
+    inheritLocalPaths=true,
+    readOnly = false,
+    loginRequired = false
+)
+public class Derived1a extends Super1
+{
+    @Jpf.Action(
+        readOnly = true,
+        forwards = {
+            @Jpf.Forward(
+                name = "derivedSuccess",
+                path = "index.jsp")
+        })
+    public Forward actionThree() {
+        return new Forward("derivedSuccess");
+    }
+
+    @Jpf.Action(
+        loginRequired = true,
+        forwards = {
+            @Jpf.Forward(
+                name = "derivedSuccess",
+                path = "index.jsp")
+        })
+    public Forward loginThree() {
+        return new Forward("derivedSuccess");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/Derived1a.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/index.jsp?rev=371598&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/index.jsp Mon Jan 23 09:08:52 2006
@@ -0,0 +1,16 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+<html>
+<head>
+    <title>Page Flow Inheritance - Overriding Actions</title>
+</head>
+<body>
+    <h1>Page Flow Inheritance - Overriding Actions</h1>
+    <h3>Derived1a</h3>
+    ${pageFlow.actionInfo}
+    <br/>
+    <netui:anchor action="actionOne">Action One</netui:anchor>
+    <br/>
+    <a href="../begin.do">back to start</a>
+</body>
+</html>

Propchange: beehive/trunk/netui/test/webapps/drt/web/pageFlowCore/inheritance/override/actions/derived1a/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native