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/09/01 07:50:57 UTC

svn commit: r439193 - in /beehive/trunk: netui/src/compiler-core/org/apache/beehive/netui/compiler/ netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/ netui/test/src/compilerTests/testsuite/formBeanChecker/ netui/test/src/compilerTest...

Author: crogers
Date: Thu Aug 31 22:50:56 2006
New Revision: 439193

URL: http://svn.apache.org/viewvc?rev=439193&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-1127 to run the form bean checker on external form bean classes with declarative validation before entering the generate() phase of the Controller annotation processing.

The commit includes a new compiler test as well as updating other annotations to include the @Jpf.FormBean annotation on the class declaration of form beans with declarative validation annotations.

Tests: NetUI BVT (WinXP pass) and a build of samples.


Added:
    beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/
    beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/expectedOutput/
    beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/expectedOutput/warningsorerrors.expected   (with props)
    beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/
    beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/Controller.java   (with props)
    beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestBean.java   (with props)
    beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestFormBean.java   (with props)
    beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/index.jsp   (with props)
Modified:
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FlowControllerChecker.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FormBeanChecker.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/diagnostics.properties
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/PageFlowCoreAnnotationProcessor.java
    beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/TwoPhaseCoreAnnotationProcessor.java
    beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/pageflow/validation/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/miniTests/escapeXmlChars/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/miniTests/overrideMessageBundles/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/SharedFlow.java
    beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/getZip/GetZip.java
    beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/getZip/GetZip.java
    beehive/trunk/netui/test/webapps/drt/src/validation/argExpressions/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/validation/custom/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/validation/declarativeValidation/Controller.java
    beehive/trunk/netui/test/webapps/drt/src/validation/defaultMessages/DefaultMessagesController.java
    beehive/trunk/netui/test/webapps/drt/src/validation/validateExternalBean/Bean1.java
    beehive/trunk/netui/test/webapps/tomcat/src/login/Controller.java
    beehive/trunk/samples/netui-samples/src/advanced/clientsidevalidation/Controller.java
    beehive/trunk/samples/netui-samples/src/fileupload/Controller.java
    beehive/trunk/samples/netui-samples/src/loginexample/loginflow/Controller.java
    beehive/trunk/samples/netui-samples/src/nesting/chooseairport/ChooseAirport.java
    beehive/trunk/samples/netui-samples/src/ui/popup/Controller.java
    beehive/trunk/samples/netui-samples/src/validation/Controller.java

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FlowControllerChecker.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FlowControllerChecker.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FlowControllerChecker.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FlowControllerChecker.java Thu Aug 31 22:50:56 2006
@@ -542,7 +542,7 @@
             if ( annotationName.equals( ACTION_TAG_NAME ) )
             {
                 actionGrammar.check( annotation, null, method );
-                
+
                 if ( ! CompilerUtils.isAssignableFrom( FORWARD_CLASS_NAME, method.getReturnType(), getEnv() ) )
                 {
                     getDiagnostics().addError( method, "error.method-wrong-return-type", FORWARD_CLASS_NAME );
@@ -555,13 +555,39 @@
             }
         }
     }
-    
-    protected void checkInnerClass( ClassDeclaration innerClass )
+
+    /*
+     * Run a check of form bean classes that might not otherwise
+     * be processed. A @FormBean instance will get processed by the
+     * PageFlowCoreAnnotationProcessor and FormBeanChecker. Otherwise,
+     * run the class through the FormBeanChecker for other possible errors.
+     */
+    private void checkInnerClass(ClassDeclaration jclass)
             throws FatalCompileTimeException
     {
-        _formBeanChecker.check( innerClass );
+        boolean noFormBeanAnnotation = true;
+        if (CompilerUtils.getAnnotation(jclass, FORM_BEAN_TAG_NAME, true) != null) {
+            noFormBeanAnnotation = false;
+        }
+        else {
+            //
+            // check the methods for validatable property annotations that
+            // would be processed elsewhere.
+            //
+            MethodDeclaration[] methods = CompilerUtils.getClassMethods(jclass, null);
+            for (int i = 0; i < methods.length && noFormBeanAnnotation; i++) {
+                MethodDeclaration method = methods[i];
+                if (CompilerUtils.getAnnotation(method, VALIDATABLE_PROPERTY_TAG_NAME) != null) {
+                    noFormBeanAnnotation = false;
+                }
+            }
+        }
+
+        if (noFormBeanAnnotation) {
+            _formBeanChecker.check(jclass);
+        }
     }
-    
+
     private void checkExceptionHandlerMethod( MethodDeclaration method )
     {
         if ( ! CompilerUtils.isAssignableFrom( FORWARD_CLASS_NAME, method.getReturnType(), getEnv() ) )

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FormBeanChecker.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FormBeanChecker.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FormBeanChecker.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/FormBeanChecker.java Thu Aug 31 22:50:56 2006
@@ -48,8 +48,9 @@
             throws FatalCompileTimeException
     {
         GetterValidatablePropertyGrammar validatablePropertyGrammar = new GetterValidatablePropertyGrammar();
-        boolean isFormBeanClass = CompilerUtils.getAnnotation( jclass, FORM_BEAN_TAG_NAME, true ) != null;
-        
+        boolean hasFormBeanAnnotation = CompilerUtils.getAnnotation( jclass, FORM_BEAN_TAG_NAME, true ) != null;
+        boolean isFormBeanClass = hasFormBeanAnnotation;
+
         // Look for ValidationField annotations on the methods; if there are some present, then we consider this
         // a form bean class, even if it's not annotated as such.
         MethodDeclaration[] methods = CompilerUtils.getClassMethods( jclass, null );
@@ -94,7 +95,12 @@
                getDiagnostics().addError( jclass, "error.form-no-default-constructor" );
             }
         }
-        
+
+        // check that a class with declarative validation  uses a FormBean annotation
+        if (isFormBeanClass && !hasFormBeanAnnotation) {
+            getDiagnostics().addWarning(jclass, "warning.validatable-formbean-use-formbean",
+                                        ANNOTATION_INTERFACE_PREFIX + FORM_BEAN_TAG_NAME);
+        }
         
         // Check to see if this class extends the (deprecated) FormData class and overrides its validate() method.
         // If so, then declarative validation annotations won't work unless the override calls super.validate().

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/diagnostics.properties
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/diagnostics.properties?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/diagnostics.properties (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/diagnostics.properties Thu Aug 31 22:50:56 2006
@@ -141,6 +141,9 @@
 The enclosing {0} annotation does not have a {1} value.  Without a {1}, the validation annotations on the form bean \
 of type {2} will have no effect.
 
+warning.validatable-formbean-use-formbean = \
+Form beans using declarative validation annotations should have a {0} annotation on the class declaration.
+
 error.validatable-field-property-name-not-allowed = \
 The {0} attribute is not allowed here. The property name is inferred from the getter method name.
 

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/PageFlowCoreAnnotationProcessor.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/PageFlowCoreAnnotationProcessor.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/PageFlowCoreAnnotationProcessor.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/PageFlowCoreAnnotationProcessor.java Thu Aug 31 22:50:56 2006
@@ -22,9 +22,16 @@
 import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationInstance;
 import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationTypeDeclaration;
 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.MethodDeclaration;
+import org.apache.beehive.netui.compiler.typesystem.declaration.TypeDeclaration;
 import org.apache.beehive.netui.compiler.typesystem.env.CoreAnnotationProcessorEnv;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
 
 
 public class PageFlowCoreAnnotationProcessor
@@ -37,17 +44,57 @@
         super( annotationTypeDecls, env );
     }
 
+    /*
+     * Run the checkers on classes including form beans with declarative
+     * validation annotations. This override will find class declarations
+     * for classes that may only have method level declarative validation
+     * annotations.
+     */
+    protected void check(Collection decls)
+        throws FatalCompileTimeException
+    {
+        ArrayList classDecls = new ArrayList();
+        HashSet classNames = new HashSet();
+        for (Iterator i = decls.iterator(); i.hasNext();) {
+            Declaration decl = (Declaration) i.next();
+            if (decl instanceof ClassDeclaration) {
+                ClassDeclaration jclass = (ClassDeclaration) decl;
+                if (!classNames.contains(jclass.getQualifiedName())) {
+                    classNames.add(jclass.getQualifiedName());
+                    classDecls.add(jclass);
+                }
+            }
+            else if (decl instanceof MethodDeclaration) {
+                //
+                // Declarative validation annotations on a method. Include as a
+                // possible form bean that does not have the @FormBean annotation.
+                //
+                MethodDeclaration methodDecl = (MethodDeclaration) decl;
+                TypeDeclaration type = methodDecl.getDeclaringType();
+                if (type instanceof ClassDeclaration) {
+                    ClassDeclaration jclass = (ClassDeclaration) type;
+                    if (!classNames.contains(jclass.getQualifiedName())) {
+                        classNames.add(jclass.getQualifiedName());
+                        classDecls.add(jclass);
+                    }
+                }
+            }
+        }
+
+        super.check(classDecls);
+    }
+
     public BaseChecker getChecker( ClassDeclaration classDecl, Diagnostics diagnostics )
     {
         CoreAnnotationProcessorEnv env = getAnnotationProcessorEnvironment();
-        
+
         if ( CompilerUtils.isAssignableFrom( JPF_BASE_CLASS, classDecl, env ) )
         {
             if ( expectAnnotation( classDecl, CONTROLLER_TAG_NAME, JPF_FILE_EXTENSION_DOT, JPF_BASE_CLASS, diagnostics ) )
             {
                 FlowControllerInfo fcInfo = new FlowControllerInfo( classDecl );
                 setSourceFileInfo( classDecl, fcInfo );
-                
+
                 return new PageFlowChecker( env, diagnostics, fcInfo );
             }
         }
@@ -58,7 +105,7 @@
             {
                 FlowControllerInfo fcInfo = new FlowControllerInfo( classDecl );
                 setSourceFileInfo( classDecl, fcInfo );
-                
+
                 return new SharedFlowChecker( env, fcInfo, diagnostics );
             }
         }
@@ -69,7 +116,7 @@
             {
                 FlowControllerInfo fcInfo = new FlowControllerInfo( classDecl );
                 setSourceFileInfo( classDecl, fcInfo );
-                
+
                 return new SharedFlowChecker( env, fcInfo, diagnostics );
             }
         }
@@ -86,30 +133,31 @@
         else
         {
             AnnotationInstance ann = CompilerUtils.getAnnotation( classDecl, CONTROLLER_TAG_NAME );
-            
+
             if ( ann != null )
             {
                 diagnostics.addError( ann, "error.annotation-invalid-base-class2",
                                       CONTROLLER_TAG_NAME, JPF_BASE_CLASS, SHARED_FLOW_BASE_CLASS );
             }
-            
+
             ann = CompilerUtils.getAnnotation( classDecl, FACES_BACKING_TAG_NAME );
-            
+
             if ( ann != null )
             {
                 diagnostics.addError( ann, "error.annotation-invalid-base-class",
                                       FACES_BACKING_TAG_NAME, FACES_BACKING_BEAN_CLASS );
             }
         }
-        
-        return null;
+
+        // check the class as a form bean for declarative validation annotations
+        return new FormBeanChecker(getAnnotationProcessorEnvironment(), diagnostics);
     }
 
     public BaseGenerator getGenerator( ClassDeclaration classDecl, Diagnostics diags )
     {
         CoreAnnotationProcessorEnv env = getAnnotationProcessorEnvironment();
         SourceFileInfo sourceFileInfo = getSourceFileInfo( classDecl );
-        
+
         if ( CompilerUtils.isAssignableFrom( JPF_BASE_CLASS, classDecl, env ) )
         {
             assert sourceFileInfo != null : classDecl.getQualifiedName();
@@ -128,7 +176,7 @@
             assert sourceFileInfo instanceof FacesBackingInfo : sourceFileInfo.getClass().getName();
             return new FacesBackingGenerator( env, sourceFileInfo, diags );
         }
-        
+
         return null;
     }
 }

Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/TwoPhaseCoreAnnotationProcessor.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/TwoPhaseCoreAnnotationProcessor.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/TwoPhaseCoreAnnotationProcessor.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/processor/TwoPhaseCoreAnnotationProcessor.java Thu Aug 31 22:50:56 2006
@@ -25,6 +25,9 @@
 import org.apache.beehive.netui.compiler.typesystem.env.CoreAnnotationProcessorEnv;
 import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationTypeDeclaration;
 import org.apache.beehive.netui.compiler.typesystem.declaration.Declaration;
+import org.apache.beehive.netui.compiler.typesystem.declaration.ClassDeclaration;
+import org.apache.beehive.netui.compiler.typesystem.declaration.MethodDeclaration;
+import org.apache.beehive.netui.compiler.typesystem.declaration.TypeDeclaration;
 import org.apache.beehive.netui.compiler.Diagnostics;
 import org.apache.beehive.netui.compiler.FatalCompileTimeException;
 import org.apache.beehive.netui.compiler.CompilerUtils;
@@ -138,13 +141,16 @@
             }
         }
 
-        //
         // Now, check the declarations.
-        //
-        for ( Iterator i = declsToCheck.iterator(); i.hasNext(); )
-        {
-            Declaration decl = ( Declaration ) i.next();
-            check( decl );
+        check(declsToCheck);
+    }
+
+    protected void check(Collection decls)
+        throws FatalCompileTimeException
+    {
+        for (Iterator i = decls.iterator(); i.hasNext();) {
+            Declaration decl = (Declaration) i.next();
+            check(decl);
         }
     }
 

Added: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/expectedOutput/warningsorerrors.expected
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/expectedOutput/warningsorerrors.expected?rev=439193&view=auto
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/expectedOutput/warningsorerrors.expected (added)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/expectedOutput/warningsorerrors.expected Thu Aug 31 22:50:56 2006
@@ -0,0 +1,32 @@
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\Controller.java:190: This value must be a primitive Class, e.g. int.class.
+        public String getName() { return name; }
+                      ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\Controller.java:198: The propertyName attribute is not allowed here. The property name is inferred from the getter method name.
+        public String getId() { return id; }
+                      ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\Controller.java:182: warning: Form beans using declarative validation annotations should have a Jpf.FormBean annotation on the class declaration.
+    public static class MyBean implements Serializable {
+                  ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\TestFormBean.java:34: This value must be a primitive Class, e.g. int.class.
+    public String getName() { return name; }
+                  ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\TestFormBean.java:43: The propertyName attribute is not allowed here. The property name is inferred from the getter method name.
+    public String getId() { return id; }
+                  ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\Controller.java:169: This value must be a primitive Class, e.g. int.class.
+        public String getName() { return name; }
+                      ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\Controller.java:177: The propertyName attribute is not allowed here. The property name is inferred from the getter method name.
+        public String getId() { return id; }
+                      ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\TestBean.java:33: This value must be a primitive Class, e.g. int.class.
+    public String getName() { return name; }
+                  ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\TestBean.java:42: The propertyName attribute is not allowed here. The property name is inferred from the getter method name.
+    public String getId() { return id; }
+                  ^
+[LOCAL_PATH]\WEB-INF\.tmpbeansrc\formBeanChecker\TestBean.java:23: warning: Form beans using declarative validation annotations should have a Jpf.FormBean annotation on the class declaration.
+public class TestBean implements java.io.Serializable {
+       ^
+8 errors
+2 warnings

Propchange: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/expectedOutput/warningsorerrors.expected
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/Controller.java?rev=439193&view=auto
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/Controller.java (added)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/Controller.java Thu Aug 31 22:50:56 2006
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 formBeanChecker;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.beehive.netui.pageflow.Forward;
+
+import java.io.Serializable;
+
+@Jpf.Controller(
+    validatableBeans={
+        @Jpf.ValidatableBean(
+            type=Controller.MyBean.class,
+            validatableProperties={
+                @Jpf.ValidatableProperty(
+                    propertyName="id",
+                    displayName="This field",
+                    validateRequired=@Jpf.ValidateRequired(),
+                    validateMinLength=@Jpf.ValidateMinLength(chars=2)
+                )
+            }
+        )
+    },
+    simpleActions = {
+        @Jpf.SimpleAction(name = "begin", path = "index.jsp")
+    })
+public class Controller extends PageFlowController {
+
+    @Jpf.Action(
+        validationErrorForward = @Jpf.Forward(
+            name="validationFailure",
+            path="index.jsp"),
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp")
+        })
+    public Forward testExternalFormBean(TestFormBean form) {
+        Forward forward = new Forward("success");
+        return forward;
+    }
+
+    @Jpf.Action(
+        validationErrorForward = @Jpf.Forward(
+            name="validationFailure",
+            path="index.jsp"),
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp")
+        })
+    public Forward testExternalFormBeanAgain(TestFormBean form) {
+        Forward forward = new Forward("success");
+        return forward;
+    }
+
+    @Jpf.Action(
+        validationErrorForward = @Jpf.Forward(
+            name="validationFailure",
+            path="index.jsp"),
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp")
+        })
+    public Forward testExternalBean(TestBean form) {
+        Forward forward = new Forward("success");
+        return forward;
+    }
+
+    @Jpf.Action(
+        validationErrorForward = @Jpf.Forward(
+            name="validationFailure",
+            path="index.jsp"),
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp")
+        })
+    public Forward testExternalAgainBean(TestBean form) {
+        Forward forward = new Forward("success");
+        return forward;
+    }
+
+
+    @Jpf.Action(
+        validationErrorForward = @Jpf.Forward(
+            name="validationFailure",
+            path="index.jsp"),
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp")
+        })
+    public Forward testInnerFormBean(MyFormBean form) {
+        Forward forward = new Forward("success");
+        return forward;
+    }
+
+    @Jpf.Action(
+        validationErrorForward = @Jpf.Forward(
+            name="validationFailure",
+            path="index.jsp"),
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp")
+        })
+    public Forward testInnerFormBeanAgain(MyFormBean form) {
+        Forward forward = new Forward("success");
+        return forward;
+    }
+
+    @Jpf.Action(
+        validationErrorForward = @Jpf.Forward(
+            name="validationFailure",
+            path="index.jsp"),
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp")
+        })
+    public Forward testInnerBean(MyBean form) {
+        Forward forward = new Forward("success");
+        return forward;
+    }
+
+    @Jpf.Action(
+        validationErrorForward = @Jpf.Forward(
+            name="validationFailure",
+            path="index.jsp"),
+        forwards = {
+            @Jpf.Forward(
+                name = "success",
+                path = "index.jsp")
+        })
+    public Forward testInnerBeanAgain(MyBean form) {
+        Forward forward = new Forward("success");
+        return forward;
+    }
+
+    // also test inner form bean class...
+    @Jpf.FormBean()
+    public static class MyFormBean implements Serializable {
+        private String name = "Form Bean";
+        private String id = "12345";
+
+        @Jpf.ValidatableProperty(
+            displayName = "name",
+            validateType = @Jpf.ValidateType(type=String.class)
+        )
+        public String getName() { return name; }
+        public void setName(String n) { name = n; }
+
+        @Jpf.ValidatableProperty(
+            propertyName = "id",
+            displayName = "ID",
+            validateType=@Jpf.ValidateType(type=int.class)
+        )
+        public String getId() { return id; }
+        public void setId(String i) { id = i; }
+    }
+
+    // also test inner class...
+    public static class MyBean implements Serializable {
+        private String name = "Form One";
+        private String id = "12345";
+
+        @Jpf.ValidatableProperty(
+            displayName = "name",
+            validateType = @Jpf.ValidateType(type=String.class)
+        )
+        public String getName() { return name; }
+        public void setName(String n) { name = n; }
+
+        @Jpf.ValidatableProperty(
+            propertyName = "id",
+            displayName = "ID",
+            validateType=@Jpf.ValidateType(type=int.class)
+        )
+        public String getId() { return id; }
+        public void setId(String i) { id = i; }
+    }
+}

Propchange: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestBean.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestBean.java?rev=439193&view=auto
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestBean.java (added)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestBean.java Thu Aug 31 22:50:56 2006
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 formBeanChecker;
+
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+public class TestBean implements java.io.Serializable {
+
+    private String name;
+    private String id = "12345";
+
+    @Jpf.ValidatableProperty(
+        displayName = "Name",
+        validateType=@Jpf.ValidateType(type=String.class)
+    )
+
+    public String getName() { return name; }
+    public void setName(String n) { name = n; }
+
+    @Jpf.ValidatableProperty(
+        propertyName = "bogus",
+        displayName = "ID",
+        validateType=@Jpf.ValidateType(type=int.class)
+    )
+
+    public String getId() { return id; }
+    public void setId(String i) { id = i; }
+}

Propchange: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestFormBean.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestFormBean.java?rev=439193&view=auto
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestFormBean.java (added)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestFormBean.java Thu Aug 31 22:50:56 2006
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 formBeanChecker;
+
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.FormBean()
+public class TestFormBean implements java.io.Serializable {
+
+    private String name;
+    private String id = "12345";
+
+    @Jpf.ValidatableProperty(
+        displayName = "Name",
+        validateType=@Jpf.ValidateType(type=String.class)
+    )
+
+    public String getName() { return name; }
+    public void setName(String n) { name = n; }
+
+    @Jpf.ValidatableProperty(
+        propertyName = "bogus",
+        displayName = "ID",
+        validateType=@Jpf.ValidateType(type=int.class)
+    )
+
+    public String getId() { return id; }
+    public void setId(String i) { id = i; }
+}

Propchange: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/TestFormBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/index.jsp
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/index.jsp?rev=439193&view=auto
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/index.jsp (added)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/index.jsp Thu Aug 31 22:50:56 2006
@@ -0,0 +1,31 @@
+<%--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You 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:$
+--%>
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
+<netui:html>
+  <head>
+    <title>Web Application Page</title>
+    <netui:base/>
+  </head>
+  <netui:body>
+    <p>
+      New Web Application Page
+    </p>
+  </netui:body>
+</netui:html>

Propchange: beehive/trunk/netui/test/src/compilerTests/testsuite/formBeanChecker/formBeanChecker/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/pageflow/validation/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/pageflow/validation/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/pageflow/validation/Controller.java (original)
+++ beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/pageflow/validation/Controller.java Thu Aug 31 22:50:56 2006
@@ -58,7 +58,8 @@
     {
         return new Forward( "index" );
     }
-    
+
+    @Jpf.FormBean()
     public static class AnyBeanForm
             implements Serializable, Validatable
     {
@@ -82,7 +83,8 @@
             errors.add( "foo", new ActionMessage( "message1" ) );
         }
     }
-    
+
+    @Jpf.FormBean()
     public static class FormDataForm
             extends FormData
     {
@@ -109,7 +111,8 @@
             return errors;
         }
     }
-    
+
+    @Jpf.FormBean()
     public static class ValidatableFormDataForm
         extends FormData
         implements Validatable

Modified: beehive/trunk/netui/test/webapps/drt/src/miniTests/escapeXmlChars/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/miniTests/escapeXmlChars/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/miniTests/escapeXmlChars/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/miniTests/escapeXmlChars/Controller.java Thu Aug 31 22:50:56 2006
@@ -48,6 +48,7 @@
         return new Forward("index");
     }
 
+    @Jpf.FormBean()
     public static class MyForm implements java.io.Serializable
     {
         private String _foo;

Modified: beehive/trunk/netui/test/webapps/drt/src/miniTests/overrideMessageBundles/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/miniTests/overrideMessageBundles/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/miniTests/overrideMessageBundles/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/miniTests/overrideMessageBundles/Controller.java Thu Aug 31 22:50:56 2006
@@ -42,6 +42,7 @@
         return new Forward("index");
     }
 
+    @Jpf.FormBean()
     public static class MyForm implements java.io.Serializable
     {
         private String _foo;

Modified: beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/Controller.java Thu Aug 31 22:50:56 2006
@@ -25,6 +25,7 @@
         return null;
     }
 
+    @Jpf.FormBean()
     public static class MyForm
     {
         @Jpf.ValidatableProperty(

Modified: beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/SharedFlow.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/SharedFlow.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/SharedFlow.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/miniTests/sharedFlowMessageKeys/SharedFlow.java Thu Aug 31 22:50:56 2006
@@ -35,6 +35,7 @@
         throw new Exception2();
     }
 
+    @Jpf.FormBean()
     public static class MyForm
     {
         @Jpf.ValidatableProperty(

Modified: beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/Controller.java Thu Aug 31 22:50:56 2006
@@ -67,6 +67,7 @@
     }
 
 
+    @Jpf.FormBean()
     public static class SubmitForm implements Serializable
     {
         private String _name;

Modified: beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/getZip/GetZip.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/getZip/GetZip.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/getZip/GetZip.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNested/getZip/GetZip.java Thu Aug 31 22:50:56 2006
@@ -55,6 +55,7 @@
     }
 
 
+    @Jpf.FormBean()
     public static class ZipForm implements Serializable
     {
         private String _zip;

Modified: beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/Controller.java Thu Aug 31 22:50:56 2006
@@ -44,6 +44,7 @@
     }
 
 
+    @Jpf.FormBean()
     public static class SubmitForm
         implements Serializable
     {

Modified: beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/getZip/GetZip.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/getZip/GetZip.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/getZip/GetZip.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/miniTests/updateFormFromNestedPopup/getZip/GetZip.java Thu Aug 31 22:50:56 2006
@@ -72,6 +72,7 @@
         return new Forward( "done" );
     }
 
+    @Jpf.FormBean()
     public static class ZipForm implements Serializable
     {
         private String _state;

Modified: beehive/trunk/netui/test/webapps/drt/src/validation/argExpressions/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/validation/argExpressions/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/validation/argExpressions/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/validation/argExpressions/Controller.java Thu Aug 31 22:50:56 2006
@@ -63,6 +63,7 @@
         }
     }
 
+    @Jpf.FormBean()
     public static class Form2
     {
         @Jpf.ValidatableProperty(

Modified: beehive/trunk/netui/test/webapps/drt/src/validation/custom/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/validation/custom/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/validation/custom/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/validation/custom/Controller.java Thu Aug 31 22:50:56 2006
@@ -35,6 +35,7 @@
         return new Forward( "success" );
     }
 
+    @Jpf.FormBean()
     public static class MyForm
     {
         private String _val;

Modified: beehive/trunk/netui/test/webapps/drt/src/validation/declarativeValidation/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/validation/declarativeValidation/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/validation/declarativeValidation/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/validation/declarativeValidation/Controller.java Thu Aug 31 22:50:56 2006
@@ -445,6 +445,7 @@
         }
     }
     
+    @Jpf.FormBean()
     public static class ValidatedForm implements Serializable
     {
         private String _validWhenPageFlowProp;

Modified: beehive/trunk/netui/test/webapps/drt/src/validation/defaultMessages/DefaultMessagesController.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/validation/defaultMessages/DefaultMessagesController.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/validation/defaultMessages/DefaultMessagesController.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/validation/defaultMessages/DefaultMessagesController.java Thu Aug 31 22:50:56 2006
@@ -51,6 +51,7 @@
     }
 
 
+    @Jpf.FormBean()
     public static class TheForm implements Serializable
     {
         private String _required;

Modified: beehive/trunk/netui/test/webapps/drt/src/validation/validateExternalBean/Bean1.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/drt/src/validation/validateExternalBean/Bean1.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/src/validation/validateExternalBean/Bean1.java (original)
+++ beehive/trunk/netui/test/webapps/drt/src/validation/validateExternalBean/Bean1.java Thu Aug 31 22:50:56 2006
@@ -3,6 +3,7 @@
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 import java.io.Serializable;
 
+@Jpf.FormBean()
 public class Bean1
     implements Serializable
 {

Modified: beehive/trunk/netui/test/webapps/tomcat/src/login/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/tomcat/src/login/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/tomcat/src/login/Controller.java (original)
+++ beehive/trunk/netui/test/webapps/tomcat/src/login/Controller.java Thu Aug 31 22:50:56 2006
@@ -58,6 +58,7 @@
         return new Forward( "success" );
     }
 
+    @Jpf.FormBean()
     public static class LoginForm
     {
         private String _username;

Modified: beehive/trunk/samples/netui-samples/src/advanced/clientsidevalidation/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/samples/netui-samples/src/advanced/clientsidevalidation/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/src/advanced/clientsidevalidation/Controller.java (original)
+++ beehive/trunk/samples/netui-samples/src/advanced/clientsidevalidation/Controller.java Thu Aug 31 22:50:56 2006
@@ -49,6 +49,7 @@
     /**
      * The form bean, with validation annotations on its properties.
      */
+    @Jpf.FormBean()
     public static class MyForm implements java.io.Serializable {
         private String _fullName;
         private String _email;

Modified: beehive/trunk/samples/netui-samples/src/fileupload/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/samples/netui-samples/src/fileupload/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/src/fileupload/Controller.java (original)
+++ beehive/trunk/samples/netui-samples/src/fileupload/Controller.java Thu Aug 31 22:50:56 2006
@@ -70,6 +70,7 @@
         return fwd;
     }
 
+    @Jpf.FormBean()
     public static class UploadForm
         implements Serializable, Validatable {
 

Modified: beehive/trunk/samples/netui-samples/src/loginexample/loginflow/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/samples/netui-samples/src/loginexample/loginflow/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/src/loginexample/loginflow/Controller.java (original)
+++ beehive/trunk/samples/netui-samples/src/loginexample/loginflow/Controller.java Thu Aug 31 22:50:56 2006
@@ -52,6 +52,7 @@
         return new Forward("success");
     }
 
+    @Jpf.FormBean()
     public static class LoginForm implements java.io.Serializable {
         private String _username;
         private String _password;

Modified: beehive/trunk/samples/netui-samples/src/nesting/chooseairport/ChooseAirport.java
URL: http://svn.apache.org/viewvc/beehive/trunk/samples/netui-samples/src/nesting/chooseairport/ChooseAirport.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/src/nesting/chooseairport/ChooseAirport.java (original)
+++ beehive/trunk/samples/netui-samples/src/nesting/chooseairport/ChooseAirport.java Thu Aug 31 22:50:56 2006
@@ -105,6 +105,7 @@
     /**
      * This is the form bean that works with findairport.jsp.
      */
+    @Jpf.FormBean()
     public static class SearchForm
         implements Serializable
     {

Modified: beehive/trunk/samples/netui-samples/src/ui/popup/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/samples/netui-samples/src/ui/popup/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/src/ui/popup/Controller.java (original)
+++ beehive/trunk/samples/netui-samples/src/ui/popup/Controller.java Thu Aug 31 22:50:56 2006
@@ -62,6 +62,7 @@
     }
 
 
+    @Jpf.FormBean()
     public static class SubmitForm
         implements Serializable {
 

Modified: beehive/trunk/samples/netui-samples/src/validation/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/samples/netui-samples/src/validation/Controller.java?rev=439193&r1=439192&r2=439193&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/src/validation/Controller.java (original)
+++ beehive/trunk/samples/netui-samples/src/validation/Controller.java Thu Aug 31 22:50:56 2006
@@ -82,6 +82,7 @@
      * inside the @Jpf.Controller annotation).  A form bean class can also define its <i>own</i>
      * message bundle through the @Jpf.FormBean annotation.
      */
+    @Jpf.FormBean()
     public static class MyForm
         implements Serializable {
         private String _value;