You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by cs...@apache.org on 2006/07/14 22:22:28 UTC

svn commit: r422018 [1/6] - in /beehive/trunk/netui/test: conf/ webapps/controls/ webapps/controls/src/ webapps/controls/src/controls/ webapps/controls/src/controls/binding/ webapps/controls/src/controls/composition/ webapps/controls/src/controls/conte...

Author: cschoett
Date: Fri Jul 14 13:22:22 2006
New Revision: 422018

URL: http://svn.apache.org/viewvc?rev=422018&view=rev
Log:
Moved the controls/jpf tests ported from the controls tch framework to their own webapp: controlsWeb in the netui test framework.

Added:
    beehive/trunk/netui/test/webapps/controls/
    beehive/trunk/netui/test/webapps/controls/build.properties   (with props)
    beehive/trunk/netui/test/webapps/controls/build.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/src/
    beehive/trunk/netui/test/webapps/controls/src/controls/
    beehive/trunk/netui/test/webapps/controls/src/controls/binding/
    beehive/trunk/netui/test/webapps/controls/src/controls/binding/ControlBindingController.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/composition/
    beehive/trunk/netui/test/webapps/controls/src/controls/composition/ControlCompositionController.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/context/
    beehive/trunk/netui/test/webapps/controls/src/controls/context/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/
    beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/beanrecord/
    beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/beanrecord/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/implrecord/
    beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/implrecord/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/event/
    beehive/trunk/netui/test/webapps/controls/src/controls/event/eventhandler/
    beehive/trunk/netui/test/webapps/controls/src/controls/event/eventhandler/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/event/listener/
    beehive/trunk/netui/test/webapps/controls/src/controls/event/listener/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/extension/
    beehive/trunk/netui/test/webapps/controls/src/controls/extension/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/instantiate/
    beehive/trunk/netui/test/webapps/controls/src/controls/instantiate/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/property/
    beehive/trunk/netui/test/webapps/controls/src/controls/property/client_access/
    beehive/trunk/netui/test/webapps/controls/src/controls/property/client_access/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/property/client_impl/
    beehive/trunk/netui/test/webapps/controls/src/controls/property/client_impl/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/property/impl_access/
    beehive/trunk/netui/test/webapps/controls/src/controls/property/impl_access/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/property/property_constraints/
    beehive/trunk/netui/test/webapps/controls/src/controls/property/property_constraints/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/controls/property/veto/
    beehive/trunk/netui/test/webapps/controls/src/controls/property/veto/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/BindingTestControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/BindingTestControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/BindingTestControlOverrideImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/DefaultBindingTestControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/DefaultBindingTestControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/DefaultBindingTestOverrideControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/ExternalBindingTestControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/ExternalBindingTestControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/binding/ExternalBindingTestOverrideControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/InnerControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/InnerControlEventListener.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/InnerControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/Nested.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/NestedAssembler.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/NestedImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/OuterControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/composition/OuterControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/container/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/container/ContainerControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/container/ContainerControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/context/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/context/ServiceGetter.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/context/ServiceGetterImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/contextevent/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/contextevent/BeanContextRecorder.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/contextevent/BeanContextRecorderImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/contextevent/Recorder.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/contextevent/RecorderImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/event/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/event/Event2Listener.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/event/Hello.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/event/HelloImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/event/SerializeUtils.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/extension/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/extension/ExtensibleControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/extension/ExtensibleControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/extension/SubControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/extension/SubControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/instantiate/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/instantiate/SingleProperty.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/instantiate/SinglePropertyImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/property/
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/property/BoundExtPropertySet.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/property/BoundPropertyControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/property/BoundPropertyControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/property/PropertyConstraintControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/property/PropertyConstraintControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/property/PropertyControl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/src/org/apache/beehive/netui/test/controls/property/PropertyControlImpl.java   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/
    beehive/trunk/netui/test/webapps/controls/testRecorder/config/
    beehive/trunk/netui/test/webapps/controls/testRecorder/config/testRecorder-config.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/config/testRecorder-tests.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/config/testRecorder-webapp.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/ControlComposition.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/ControlContext.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/ControlContextEvents.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/ControlEvents.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/ControlExtension.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/ControlInstantiation.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/ControlProperties.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/testRecorder/tests/ControlsBinding.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/web/
    beehive/trunk/netui/test/webapps/controls/web/WEB-INF/
    beehive/trunk/netui/test/webapps/controls/web/WEB-INF/web.xml   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/
    beehive/trunk/netui/test/webapps/controls/web/controls/binding/
    beehive/trunk/netui/test/webapps/controls/web/controls/binding/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/composition/
    beehive/trunk/netui/test/webapps/controls/web/controls/composition/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/composition/result.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/context/
    beehive/trunk/netui/test/webapps/controls/web/controls/context/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/contextevent/
    beehive/trunk/netui/test/webapps/controls/web/controls/contextevent/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/event/
    beehive/trunk/netui/test/webapps/controls/web/controls/event/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/extension/
    beehive/trunk/netui/test/webapps/controls/web/controls/extension/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/extension/result.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/instantiate/
    beehive/trunk/netui/test/webapps/controls/web/controls/instantiate/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/controls/property/
    beehive/trunk/netui/test/webapps/controls/web/controls/property/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/error.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/index/
    beehive/trunk/netui/test/webapps/controls/web/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/index/Beehive.gif   (with props)
    beehive/trunk/netui/test/webapps/controls/web/index/Controller.java   (with props)
    beehive/trunk/netui/test/webapps/controls/web/index/index.jsp   (with props)
    beehive/trunk/netui/test/webapps/controls/web/index/linkDown.gif   (with props)
    beehive/trunk/netui/test/webapps/controls/web/index/linkOver.gif   (with props)
    beehive/trunk/netui/test/webapps/controls/web/index/style.css   (with props)
Removed:
    beehive/trunk/netui/test/webapps/drt/src/controls/binding/
    beehive/trunk/netui/test/webapps/drt/src/controls/composition/
    beehive/trunk/netui/test/webapps/drt/src/controls/context/
    beehive/trunk/netui/test/webapps/drt/src/controls/contextevent/
    beehive/trunk/netui/test/webapps/drt/src/controls/event/
    beehive/trunk/netui/test/webapps/drt/src/controls/extension/
    beehive/trunk/netui/test/webapps/drt/src/controls/instantiate/
    beehive/trunk/netui/test/webapps/drt/src/controls/property/
    beehive/trunk/netui/test/webapps/drt/src/org/apache/beehive/netui/test/controls/binding/
    beehive/trunk/netui/test/webapps/drt/src/org/apache/beehive/netui/test/controls/composition/
    beehive/trunk/netui/test/webapps/drt/src/org/apache/beehive/netui/test/controls/context/
    beehive/trunk/netui/test/webapps/drt/src/org/apache/beehive/netui/test/controls/contextevent/
    beehive/trunk/netui/test/webapps/drt/src/org/apache/beehive/netui/test/controls/event/
    beehive/trunk/netui/test/webapps/drt/src/org/apache/beehive/netui/test/controls/extension/
    beehive/trunk/netui/test/webapps/drt/src/org/apache/beehive/netui/test/controls/instantiate/
    beehive/trunk/netui/test/webapps/drt/src/org/apache/beehive/netui/test/controls/property/
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ControlComposition.xml
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ControlContext.xml
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ControlContextEvents.xml
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ControlEvents.xml
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ControlExtension.xml
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ControlInstantiation.xml
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ControlProperties.xml
    beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ControlsBinding.xml
    beehive/trunk/netui/test/webapps/drt/web/controls/binding/
    beehive/trunk/netui/test/webapps/drt/web/controls/composition/
    beehive/trunk/netui/test/webapps/drt/web/controls/context/
    beehive/trunk/netui/test/webapps/drt/web/controls/contextevent/
    beehive/trunk/netui/test/webapps/drt/web/controls/event/
    beehive/trunk/netui/test/webapps/drt/web/controls/extension/
    beehive/trunk/netui/test/webapps/drt/web/controls/instantiate/
    beehive/trunk/netui/test/webapps/drt/web/controls/property/
Modified:
    beehive/trunk/netui/test/conf/testRecorder-server.xml
    beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml

Modified: beehive/trunk/netui/test/conf/testRecorder-server.xml
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/conf/testRecorder-server.xml?rev=422018&r1=422017&r2=422018&view=diff
==============================================================================
--- beehive/trunk/netui/test/conf/testRecorder-server.xml (original)
+++ beehive/trunk/netui/test/conf/testRecorder-server.xml Fri Jul 14 13:22:22 2006
@@ -6,6 +6,11 @@
     <port>8080</port>
     <webapps>
         <webapp>
+            <name>controlsWeb</name>
+            <contextRoot>/controlsWeb</contextRoot>
+            <servletURI>testRecorder</servletURI>
+        </webapp>
+        <webapp>
             <name>coreWeb</name>
             <contextRoot>/coreWeb</contextRoot>
             <servletURI>testRecorder</servletURI>

Added: beehive/trunk/netui/test/webapps/controls/build.properties
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/build.properties?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/build.properties (added)
+++ beehive/trunk/netui/test/webapps/controls/build.properties Fri Jul 14 13:22:22 2006
@@ -0,0 +1,9 @@
+#
+#
+#
+beehive.home=../../../..
+testrecorder.dir=../../ant/
+
+servlet-api.jar=${os.CATALINA_HOME}/common/lib/servlet-api.jar
+jsp-api.jar=${os.CATALINA_HOME}/common/lib/jsp-api.jar
+

Propchange: beehive/trunk/netui/test/webapps/controls/build.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/controls/build.xml
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/build.xml?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/build.xml (added)
+++ beehive/trunk/netui/test/webapps/controls/build.xml Fri Jul 14 13:22:22 2006
@@ -0,0 +1,246 @@
+<?xml version="1.0"?>
+
+<!--
+   Copyright 2004-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:$
+-->
+
+<!-- 
+  -->
+<project name="Beehive/NetUI/Test/Controls" default="usage" basedir=".">
+
+    <property environment="os"/>
+    <property file="build.properties"/>
+
+    <property name="webapp.build.dir" location="build"/>
+    <property name="classes.dir" location="${webapp.build.dir}/WEB-INF/classes"/>
+    <property name="sourcegen.dir" location="${webapp.build.dir}/WEB-INF/.tmpbeansrc"/>
+    <property name="src.dir" location="src"/>
+    <property name="web.dir" location="web"/>
+
+    <property name="webapp.name" value="controlsWeb"/>
+    <property name="server.root.url" value="http://localhost:8080"/>
+    <property name="webapp.waitfor.url" value="${server.root.url}/${webapp.name}"/>
+
+    <import file="${testrecorder.dir}/testRecorder.xml"/>
+    <import file="${beehive.home}/beehive-imports.xml"/>
+
+    <path id="webapp.classpath">
+        <pathelement location="${classes.dir}"/>
+        <fileset dir="${webapp.build.dir}/WEB-INF/lib" includes="*.jar"/>
+    </path>
+
+    <!-- ================================================================ -->
+    <!--                                                                  -->
+    <!-- Targets for building a webapp                                    -->
+    <!--                                                                  -->
+    <!-- ================================================================ -->
+    <target name="build" description="Build webapp">
+        <echo message="--------------------------------------------------"/>
+        <echo message="|   NetUI/Controls BVT webapp build starting |"/>
+        <echo message="--------------------------------------------------"/>
+
+        <mkdir dir="${webapp.build.dir}"/>
+        <mkdir dir="${webapp.build.dir}/WEB-INF/classes"/>
+        <mkdir dir="${webapp.build.dir}/WEB-INF/lib"/>
+
+        <antcall target="update.runtime"/>
+
+        <copy todir="${webapp.build.dir}">
+            <fileset dir="${web.dir}">
+                <exclude name="**/*.java"/>
+            </fileset>
+        </copy>
+
+        <path id="build.classpath">
+            <path refid="webapp.classpath"/>
+            <path refid="velocity.dependency.path"/>
+            <path refid="netui-compiler.dependency.path"/>
+
+            <pathelement location="${servlet-api.jar}"/>
+            <pathelement location="${jsp-api.jar}"/>
+        </path>
+
+        <taskdef name="apt" 
+                 classname="org.apache.beehive.controls.runtime.generator.AptTask" 
+                 classpathref="build.classpath"
+                 onerror="fail"/>
+
+        <apt srcdir="${src.dir}:${web.dir}"
+             destdir="${classes.dir}"
+             gendir="${sourcegen.dir}"
+             classpathref="build.classpath"
+             debug="true"
+             processorOptions="web.content.root=${web.dir}"
+             nocompile="false"/>
+
+        <!-- 
+        Copy a META-INF reference to our test.TestServletContainerAdapter (see
+        /WEB-INF/src/test/TestServletContainerAdapter.java for more details). 
+          -->
+        <copy todir="${webapp.build.dir}/WEB-INF/classes">
+            <fileset dir="${src.dir}" includes="META-INF/**"/>
+        </copy>
+
+        <echo message="--------------------------------------------------"/>
+        <echo message="|   NetUI/Controls BVT webapp build ending   |"/>
+        <echo message="--------------------------------------------------"/>
+    </target>
+
+    <target name="update.runtime" description="Update the NetUI runtime in the webapp without building the resources">
+        <!-- the default version of Struts for the BVTs.  To override, pass -Dstruts.version=1.1 on the command line -->
+        <property name="struts.version" value="1.2"/>
+
+        <echo>Struts version: ${struts.version}</echo>
+
+        <deploy-netui webappdir="${webapp.build.dir}"/>
+
+        <testrecorder-config testfile="${basedir}/testRecorder/config/testRecorder-tests.xml"
+                             configfile="testRecorder/config/testRecorder-config.xml"
+                             webappfile="testRecorder/config/testRecorder-webapp.xml"
+                             appdir="${basedir}"
+                             outputdir="${classes.dir}"/>
+
+        <testrecorder-deploy webappdir="${webapp.build.dir}"/>
+    </target>
+
+    <target name="clean" description="Clean webapp">
+        <echo message="--------------------------------------------------"/>
+        <echo message="|   NetUI/Controls BVT webapp clean starting     |"/>
+        <echo message="--------------------------------------------------"/>
+
+        <delete dir="${webapp.build.dir}"/>
+
+        <echo message="--------------------------------------------------"/>
+        <echo message="|   NetUI Controls BVT webapp clean ending       |"/>
+        <echo message="--------------------------------------------------"/>
+    </target>
+
+    <!-- ================================================================ -->
+    <!--                                                                  -->
+    <!-- Targets for running test recorder test suites                    -->
+    <!--                                                                  -->
+    <!-- ================================================================ -->
+    <target name="playback" description="Playback a specified list of test recorder tests">
+        <ant dir="${testrecorder.dir}" antfile="testRecorder.xml" target="playback" inheritAll="false">
+            <property name="playback.webapps" value="${webapp.name}"/>
+        </ant>
+    </target>
+
+    <target name="bvt.running" description="Playback the 'bvt' category to a running server">
+        <ant dir="${testrecorder.dir}" antfile="testRecorder.xml" target="suite.callback" inheritAll="false">
+            <property name="suite.name" value="bvt"/>
+            <property name="playback.webapps" value="${webapp.name}"/>
+            <property name="waitfor.url" value="${webapp.waitfor.url}"/>
+        </ant>
+    </target>
+
+    <target name="bvt" description="Run the bvt suite with full server start / stop support." depends="clean,build">
+        <ant dir="${testrecorder.dir}" antfile="testRecorder.xml" inheritAll="false" target="server.test">
+            <property name="app.build.dir" location="${basedir}"/>
+            <property name="waitfor.url" value="${server.root.url}"/>
+            <property name="suite.name" value="bvt"/>
+            <property name="playback.webapps" value="${webapp.name}"/>
+            <property name="drt.mode" value="true"/>
+            <property name="formatter.type" value="xml"/>
+            <property name="formatter.usefile" value="true"/>
+        </ant>
+    </target>
+
+    <!-- ================================================================ -->
+    <!--                                                                  -->
+    <!-- Targets for deploying the webapp on a server                     -->
+    <!--                                                                  -->
+    <!-- ================================================================ -->
+    <target name="deploy" description="Deploy webapp">
+        <deploy-webapp webappDir="${webapp.build.dir}" contextPath="${webapp.name}"/>
+    </target>
+
+    <target name="undeploy" description="Undeploy webapp">
+        <undeploy-webapp contextPath="${webapp.name}"/>
+    </target>
+
+    <target name="redeploy" description="Redeploy webapp">
+        <redeploy-webapp contextPath="${webapp.name}"/>
+    </target>
+
+    <!-- ================================================================ -->
+    <!--                                                                  -->
+    <!-- Targets for starting / stopping a server                         -->
+    <!--                                                                  -->
+    <!-- ================================================================ -->
+    <target name="start" description="Start server">
+        <echo>Running start</echo>
+        <start-server shmem="false" javaOptions="-ea:org.apache.beehive.netui..."/>
+    </target>
+
+    <target name="start.without.asserts" description="Start server without assertions enabled">
+        <start-server shmem="false" javaOptions=""/>
+    </target>
+
+    <target name="start.with.shmem" description="Start server with shared memory debugging enabled">
+        <start-server shmem="true" javaOptions="-ea:org.apache.beehive.netui..."/>
+    </target>
+
+    <target name="stop" description="Stop server">
+        <stop-server/>
+    </target>
+
+    <!-- todo: this needs to compost down into buildWebapp.xml; until we're sure it works, it stays here -->
+    <target name="ensure.deployed" description="Deploy webapp for the test recorder">
+        <echo>Ensuring that the webapp ${webapp.name} is deployed on a running server at the url ${webapp.waitfor.url}</echo>
+
+        <waitfor maxwait="5" maxwaitunit="second" timeoutproperty="unavailable">
+            <http url="${webapp.waitfor.url}"/>
+        </waitfor>
+
+        <antcall target="do.deploy"/>
+        <antcall target="do.redeploy"/>
+
+        <fail if="still.unavailable" message="Couldn't find webapp with path ${webapp.waitfor.url}"/>
+    </target>
+
+    <target name="do.deploy" if="unavailable">
+        <echo>Webapp is not deployed; deploying</echo>
+
+        <antcall target="deploy"/>
+        <echo>...deploy complete</echo>
+
+        <waitfor maxwait="120" maxwaitunit="second" timeoutproperty="still.unavailable">
+            <http url="${webapp.waitfor.url}"/>
+        </waitfor>
+    </target>
+
+    <target name="do.redeploy" unless="unavailable">
+        <echo>Webapp is deployed; undeploy and redeploy</echo>
+
+        <antcall target="undeploy"/>
+        <echo>...undeploy complete</echo>
+
+        <antcall target="deploy"/>
+        <echo>...deploy complete</echo>
+
+        <waitfor maxwait="120" maxwaitunit="second" timeoutproperty="still.unavailable">
+            <http url="${webapp.waitfor.url}"/>
+        </waitfor>
+    </target>
+
+    <target name="usage">
+        <java fork="no" classname="org.apache.tools.ant.Main">
+            <arg line="-projecthelp"/>
+        </java>
+    </target>
+</project>

Propchange: beehive/trunk/netui/test/webapps/controls/build.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/controls/src/controls/binding/ControlBindingController.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/src/controls/binding/ControlBindingController.java?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/src/controls/binding/ControlBindingController.java (added)
+++ beehive/trunk/netui/test/webapps/controls/src/controls/binding/ControlBindingController.java Fri Jul 14 13:22:22 2006
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package controls.binding;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.api.properties.BaseProperties;
+import org.apache.beehive.netui.test.controls.binding.BindingTestControl;
+import org.apache.beehive.netui.test.controls.binding.DefaultBindingTestControl;
+import org.apache.beehive.netui.test.controls.binding.ExternalBindingTestControl;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.Controller(
+        forwards = {@Jpf.Forward(name = "index", path = "index.jsp")}
+)
+public class ControlBindingController
+    extends PageFlowController {
+
+    @Control
+    @BaseProperties(controlImplementation = "org.apache.beehive.netui.test.controls.binding.BindingTestControlOverrideImpl")
+    public BindingTestControl btc;
+
+    @Control
+    public DefaultBindingTestControl dbtc;
+
+    @Control
+    public ExternalBindingTestControl ebtc;
+
+    @Jpf.Action
+    protected Forward begin() {
+        getRequest().setAttribute("BindingTestControlStatus", btc.getStatus());
+        getRequest().setAttribute("DefaultBindingTestControlStatus", dbtc.getStatus());
+        getRequest().setAttribute("ExternalBindingTestControlStatus", ebtc.getStatus());
+        return new Forward("index");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/controls/src/controls/binding/ControlBindingController.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/controls/src/controls/composition/ControlCompositionController.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/src/controls/composition/ControlCompositionController.java?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/src/controls/composition/ControlCompositionController.java (added)
+++ beehive/trunk/netui/test/webapps/controls/src/controls/composition/ControlCompositionController.java Fri Jul 14 13:22:22 2006
@@ -0,0 +1,476 @@
+/*
+ * 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 controls.composition;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.netui.test.controls.composition.InnerControl;
+import org.apache.beehive.netui.test.controls.composition.InnerControlBean;
+import org.apache.beehive.netui.test.controls.composition.OuterControlBean;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+/**
+ * Test control composition by invoking methods on a control that has nested controls
+ */
+@Jpf.Controller(
+        forwards = {
+        @Jpf.Forward(name = "result", path = "result.jsp")
+                })
+public class ControlCompositionController extends PageFlowController {
+
+    @Control
+    private OuterControlBean outercontrol;
+
+    @Jpf.Action()
+    protected Forward begin() {
+        return new Forward("index.jsp");
+    }
+
+    /**
+     * Verifies the instantiation of nested controls.
+     * The outer control is instantiated declaratively.
+     */
+    @Jpf.Action()
+    protected Forward testInstantiation() {
+        InnerControlBean declaredNestedControl = outercontrol.getDeclaredNestedControl();
+        if (declaredNestedControl == null) {
+            return new Forward("result", "message", "testInstantiation.do: the nested control instantiated declaratively is NULL.");
+        }
+
+        InnerControlBean programNestedControl = outercontrol.instantiateNestedControlProgrammatically();
+        if (programNestedControl == null) {
+            return new Forward("result", "message", "testInstantiation.do: The nested control instantiated programmatically is NULL.");
+        }
+
+        return new Forward("result", "message", "testInstantiation.do: PASSED");
+    }
+
+    /**
+     * Verifies the instantiation of nested controls.
+     * The outer control is instantiated programmatically.
+     */
+    @Jpf.Action()
+    protected Forward testInstantiationP() {
+
+        OuterControlBean outerbean = null;
+        try {
+            outerbean = (OuterControlBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.composition.OuterControlBean");
+        }
+        catch (Exception e) {
+            return new Forward("result", "message", "testInstantiationP.do: Instantiation failed.");
+        }
+
+        InnerControlBean declaredNestedControl = outerbean.getDeclaredNestedControl();
+        if (declaredNestedControl == null) {
+            return new Forward("result", "message",
+                               "testInstantiateP.do: the nested control instantiated declaratively is NULL.");
+        }
+
+        InnerControlBean programNestedControl = outerbean.instantiateNestedControlProgrammatically();
+        if (programNestedControl == null) {
+            return new Forward("result", "message",
+                               "testInstantiateP.do: The nested control instantiated programmatically is NULL.");
+        }
+
+        return new Forward("result", "message", "testInstantiateP.do: PASSED");
+    }
+
+    /**
+     * Verifies the instantiation of nested control, if the property of the nested control is
+     * is reconfigured when instantiated.
+     * The outer control is instantiated declaratively.
+     */
+    @Jpf.Action()
+    protected Forward testInstantiationWithProperty() {
+        InnerControlBean declaredNestedControl = outercontrol.getDeclaredNestedControl2();
+        if (declaredNestedControl == null) {
+            return new Forward("result", "message",
+                               "testInstantiationWithProperty.do: The nested control instantiated declaratively is NULL");
+        }
+
+        InnerControlBean programNestedControl = outercontrol.instantiateNestedControlWithProperty();
+        if (programNestedControl == null) {
+            return new Forward("result", "message", "testInstantiationWithProperty.do: Missing API:Controls. JIRA-BEEHIVE-113");
+        }
+        return new Forward("result", "message", "testInstantiationWithProperty.do: PASSED");
+    }
+
+    /**
+     * Verifies the instantiation of nested control, if the property of the nested control is
+     * is reconfigured when instantiated.
+     * The outer control is instantiated programmatically.
+     */
+    @Jpf.Action()
+    protected Forward testInstantiationWithPropertyP() {
+
+        OuterControlBean outerbean = null;
+        try {
+            outerbean = (OuterControlBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.composition.OuterControlBean");
+        }
+        catch (Exception e) {
+            return new Forward("result", "message", "testInstantiationWithPropertyP.do: Instantiation failed.");
+        }
+
+        InnerControlBean declaredNestedControl = outerbean.getDeclaredNestedControl2();
+        if (declaredNestedControl == null) {
+            return new Forward("result", "message",
+                               "testInstantiationWithPropertyP.do: The nested control instantiated declaratively is NULL");
+        }
+
+        InnerControlBean programNestedControl = outerbean.instantiateNestedControlWithProperty();
+        if (programNestedControl == null) {
+            return new Forward("result", "message", "testInstantiationWithPropertyP.do: Missing API:Controls. JIRA-BEEHIVE-113");
+        }
+        return new Forward("result", "message", "testInstantiationWithPropertyP.do: PASSED");
+    }
+
+    /**
+     * Tests getting control property from the context of the nested control.
+     * The outer control is instantiated declaratively.
+     */
+    @Jpf.Action()
+    protected Forward testGetPropertyByContext() {
+
+        InnerControlBean declaredNestedControl = outercontrol.getDeclaredNestedControl();
+        String property_value = declaredNestedControl.getNameFromContext();
+
+        if (property_value == null || !property_value.equals("Bob")) {
+            return new Forward("result", "message",
+                               "testGetPropertyByContext.do: property retrieved from context is:" + property_value);
+        }
+
+        InnerControlBean programNestedControl = outercontrol.instantiateNestedControlProgrammatically();
+        String property_value2 = programNestedControl.getNameFromContext();
+
+        if (property_value2 == null || !property_value2.equals("Bob")) {
+            return new Forward("result", "message",
+                               "testGetPropertyByContext.do: property retrieved from context is:" + property_value);
+        }
+
+        return new Forward("result", "message", "testGetPropertyByContext.do: PASSED");
+    }
+
+    /**
+     * Tests getting control property from the context of the nested control.
+     * The outer control is instantiated programmatically.
+     */
+    @Jpf.Action()
+    protected Forward testGetPropertyByContextP() {
+
+        OuterControlBean outerbean = null;
+        try {
+            outerbean = (OuterControlBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.composition.OuterControlBean");
+        }
+        catch (Exception e) {
+            return new Forward("result", "message", "testGetPropertyByContextP.do: Instantiation failed.");
+        }
+
+        InnerControlBean declaredNestedControl = outerbean.getDeclaredNestedControl();
+        String property_value = declaredNestedControl.getNameFromContext();
+
+        if (property_value == null || !property_value.equals("Bob")) {
+            return new Forward("result", "message",
+                               "testGetPropertyByContextP.do: property retrieved from context is:" + property_value);
+        }
+
+        InnerControlBean programNestedControl = outerbean.instantiateNestedControlProgrammatically();
+        String property_value2 = programNestedControl.getNameFromContext();
+
+        if (property_value2 == null || !property_value2.equals("Bob")) {
+            return new Forward("result", "message",
+                               "testGetPropertyByContextP.do: property retrieved from context is:" + property_value);
+        }
+
+        return new Forward("result", "message", "testGetPropertyByContextP.do: PASSED");
+    }
+
+    /**
+     * Tests getting control property from getter method of the nested control bean.
+     * The outer control is instantiated declaratively.
+     */
+    @Jpf.Action()
+    protected Forward testGetPropertyByGetter() {
+
+        InnerControlBean innerbean = outercontrol.getDeclaredNestedControl();
+        String name = innerbean.getName();
+        String job = innerbean.getJob();
+
+        if (!name.equals(InnerControl.DEFAULT_NAME) || (job != null)) {
+            return new Forward("result", "message",
+                               "testGetPropertyByGetter.do: The property from getter:name=" + name + "and job=" + job);
+        }
+
+        InnerControlBean innerbean2 = outercontrol.getDeclaredNestedControl2();
+        String name2 = innerbean2.getName();
+        String job2 = innerbean2.getJob();
+
+        if (job2 == null) {
+            return new Forward("result", "message",
+                               "testGetPropertyByGetter.do: The property reset at declaration is NULL.");
+        }
+
+        if (!name.equals(InnerControl.DEFAULT_NAME) || !job2.equals("farmer")) {
+            return new Forward("result", "message",
+                               "The property from getter:name=" + name2 + "and job=" + job2);
+        }
+        return new Forward("result", "message", "testGetPropertyByGetter.do: PASSED");
+    }
+
+    /**
+     * Tests getting control property from getter method of the nested control bean.
+     * The outer control is instantiated programmatically.
+     */
+    @Jpf.Action()
+    protected Forward testGetPropertyByGetterP() {
+
+        OuterControlBean outerbean = null;
+        try {
+            outerbean = (OuterControlBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.composition.OuterControlBean");
+        }
+        catch (Exception e) {
+            return new Forward("result", "message", "testGetPropertyByGetterP.do: Instantiation failed.");
+        }
+
+        InnerControlBean innerbean = outerbean.getDeclaredNestedControl();
+        String name = innerbean.getName();
+        String job = innerbean.getJob();
+
+        if (!name.equals(InnerControl.DEFAULT_NAME) || (job != null)) {
+            return new Forward("result", "message",
+                               "testGetPropertyByGetterP.do: The property from getter:name=" + name + "and job=" + job);
+        }
+
+        InnerControlBean innerbean2 = outerbean.getDeclaredNestedControl2();
+        String name2 = innerbean2.getName();
+        String job2 = innerbean2.getJob();
+
+        if (job2 == null) {
+            return new Forward("result", "message",
+                               "testGetPropertyByGetterP.do: The property reset at declaration is NULL.");
+        }
+
+        if (!name.equals(InnerControl.DEFAULT_NAME) || !job2.equals("farmer")) {
+            return new Forward("result", "message",
+                               "testGetPropertyByGetterP.do: The property from getter:name=" + name2 + "and job=" + job2);
+        }
+        return new Forward("result", "message", "testGetPropertyByGetterP.do: PASSED");
+    }
+
+    /**
+     * Tests setting control property using setter method of the nested control bean.
+     * The outer control is instantiated declaratively.
+     */
+    @Jpf.Action()
+    protected Forward testSetPropertyBySetter() {
+
+        InnerControlBean innerbean = outercontrol.getDeclaredNestedControl();
+        innerbean.setName("A_NEW_NAME");
+        innerbean.setJob("A_NEW_JOB");
+
+        String name = innerbean.getNameFromContext();
+        String job = innerbean.getJobFromContext();
+
+        if (!name.equals("A_NEW_NAME") || !job.equals("A_NEW_JOB")) {
+            return new Forward("result", "message",
+                               "testSetPropertyBySetter.do: The property from getter:name=" + name + "and job=" + job);
+        }
+        return new Forward("result", "message", "testSetPropertyBySetter.do: PASSED");
+    }
+
+    /**
+     * Tests setting control property using setter method of the nested control bean.
+     * The outer control is instantiated programmatically.
+     */
+    @Jpf.Action()
+    protected Forward testSetPropertyBySetterP() {
+        OuterControlBean outerbean = null;
+        try {
+            outerbean = (OuterControlBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.composition.OuterControlBean");
+        }
+        catch (Exception e) {
+            return new Forward("result", "message", "testSetPropertyBySetterP.do: Instantiation failed.");
+        }
+
+        InnerControlBean innerbean = outerbean.getDeclaredNestedControl();
+        innerbean.setName("A_NEW_NAME");
+        innerbean.setJob("A_NEW_JOB");
+
+        String name = innerbean.getNameFromContext();
+        String job = innerbean.getJobFromContext();
+
+        if (!name.equals("A_NEW_NAME") || !job.equals("A_NEW_JOB")) {
+            return new Forward("result", "message",
+                               "testSetPropertyBySetterP.do: The property from getter:name=" + name + "and job=" + job);
+        }
+        return new Forward("result", "message", "testSetPropertyBySetterP.do: PASSED");
+    }
+
+    /**
+     * Verifies outer control receiving events raised by the nested control.
+     * Outer control listens to the events by EventHandler.
+     * The outer control is instantiated declaratively.
+     */
+    @Jpf.Action()
+    protected Forward testEventHandler() {
+        String wakeupResult = outercontrol.testActivityWakeup();
+        String readMessageResult = outercontrol.testActivityReadMessage();
+        String reportResult = outercontrol.testActivityReport();
+        String shoppingResult = outercontrol.testActionShopping();
+        String dostuffResult = outercontrol.testActionDostuff();
+
+        if (wakeupResult.equals("0") && readMessageResult.equals("0") && reportResult.equals("0")
+                && shoppingResult.equals("0") && dostuffResult.equals("0")) {
+            return new Forward("result", "message", "testEventHandler.do: PASSED");
+        }
+
+        return new Forward("result", "message", "testEventHandlerP.do: ActivityWakeup:" + wakeupResult +
+                ". ActivityReadMessage:" + readMessageResult +
+                ". ActivityReport:" + reportResult +
+                ". ActionShopping:" + shoppingResult +
+                ". ActionDodtuff:" + dostuffResult);
+    }
+
+    /**
+     * Verifies outer control receiving events raised by the nested control.
+     * Outer control listens to the events by EventHandler.
+     * The outer control is instantiated programmatically.
+     */
+    @Jpf.Action()
+    protected Forward testEventHandlerP() {
+
+        OuterControlBean outerbean = null;
+        try {
+            outerbean = (OuterControlBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.composition.OuterControlBean");
+        }
+        catch (Exception e) {
+            return new Forward("result", "message", "testEventHandlerP.do: Instantiation failed.");
+        }
+        String wakeupResult = outerbean.testActivityWakeup();
+        String readMessageResult = outerbean.testActivityReadMessage();
+        String reportResult = outerbean.testActivityReport();
+        String shoppingResult = outerbean.testActionShopping();
+        String dostuffResult = outerbean.testActionDostuff();
+
+        if (wakeupResult.equals("0") && readMessageResult.equals("0") && reportResult.equals("0")
+                && shoppingResult.equals("0") && dostuffResult.equals("0")) {
+            return new Forward("result", "message", "testEventHandlerP.do: PASSED");
+        }
+
+        return new Forward("result", "message", "testEventHandlerP.do: ActivityWakeup:" + wakeupResult +
+                ". ActivityReadMessage:" + readMessageResult +
+                ". ActivityReport:" + reportResult +
+                ". ActionShopping:" + shoppingResult +
+                ". ActionDodtuff:" + dostuffResult);
+    }
+
+    /**
+     * Verifies outer control receiving events raised by the nested control.
+     * Outer control listens to the events by EventListener.
+     * The outer control is instantiated declaratively.
+     */
+    @Jpf.Action()
+    protected Forward testEventListener() {
+
+        String eventListener = outercontrol.testEventListener();
+        if (!eventListener.equals("0")) {
+            return new Forward("result", "message", "testEventListener.do: EventListener: " + eventListener);
+        }
+
+        return new Forward("result", "message", "testEventListener.do: PASSED");
+    }
+
+    /**
+     * Verifies outer control receiving events raised by the nested control.
+     * Outer control listens to the events by EventListener.
+     * The outer control is instantiated programmatically.
+     */
+    @Jpf.Action()
+    protected Forward testEventListenerP() {
+
+        OuterControlBean outerbean = null;
+        try {
+            outerbean = (OuterControlBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.composition.OuterControlBean");
+        }
+        catch (Exception e) {
+            return new Forward("result", "message", "testEventListenerP.do: Instantiation failed.");
+        }
+
+        String eventListener = outerbean.testEventListener();
+        if (!eventListener.equals("0")) {
+            return new Forward("result", "message", "testEventListenerP.do: EventListener: " + eventListener);
+        }
+
+        return new Forward("result", "message", "testEventListenerP.do: PASSED");
+    }
+
+    /**
+     * Verifies outer control receiving events raised by the nested control.
+     * Outer control listens to the events by an inner class listener.
+     * The outer control is instantiated declaratively.
+     */
+    @Jpf.Action()
+    protected Forward testInnerClassListener() {
+
+        String innerClassListener = outercontrol.testInnerClassListener();
+        if (!innerClassListener.equals("0")) {
+            return new Forward("result", "message", "testInnerClassListener.do: InnerClassListener: " + innerClassListener);
+        }
+        return new Forward("result", "message", "testInnerClassListener.do: PASSED");
+    }
+
+    /**
+     * Verifies outer control receiving events raised by the nested control.
+     * Outer control listens to the events by an inner class listener.
+     * The outer control is instantiated programmatically.
+     */
+    @Jpf.Action()
+    protected Forward testInnerClassListenerP() {
+
+        OuterControlBean outerbean = null;
+        try {
+            outerbean = (OuterControlBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.composition.OuterControlBean");
+        }
+        catch (Exception e) {
+            return new Forward("result", "message", "testInnerClassListenerP.do: Instantiation failed.");
+        }
+
+        String innerClassListener = outerbean.testInnerClassListener();
+        if (!innerClassListener.equals("0")) {
+            return new Forward("result", "message", "testInnerClassListener.do: InnerClassListener: " + innerClassListener);
+        }
+        return new Forward("result", "message", "testInnerClassListener.do: PASSED");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/controls/src/controls/composition/ControlCompositionController.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/controls/src/controls/context/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/src/controls/context/Controller.java?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/src/controls/context/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/controls/src/controls/context/Controller.java Fri Jul 14 13:22:22 2006
@@ -0,0 +1,193 @@
+/*
+ * 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 controls.context;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.netui.test.controls.context.ServiceGetterBean;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowControlContainer;
+import org.apache.beehive.netui.pageflow.PageFlowControlContainerFactory;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import javax.servlet.ServletRequestWrapper;
+import javax.servlet.ServletResponseWrapper;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpServletResponseWrapper;
+
+/**
+ * Test getting other services avaliable to control context
+ * The control is instantiated declaratively
+ */
+@Jpf.Controller(forwards = {@Jpf.Forward(name = "index", path = "index.jsp")})
+public class Controller extends PageFlowController {
+
+    @Control
+    public ServiceGetterBean _serviceGetter;
+
+    @Jpf.Action()
+    protected Forward begin() {
+        return new Forward("index");
+    }
+
+    @Jpf.Action()
+    protected Forward testServices() {
+        try {
+            if (!checkBeanContextService(_serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServices.do: BeanContextService unavailable.");
+            }
+
+            if (!checkControlBeanContext(_serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServices.do: ControlBeanContext unavailable.");
+            }
+
+            if (!checkResourceContext(_serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServices.do: ResourceContext unavailable.");
+            }
+
+            if (!checkServletContext(_serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServices.do: ServletContext unavailable.");
+            }
+
+            if (!checkServletRequest(_serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServices.do: ServletRequest unavailable.");
+            }
+
+            if (!checkServletResponse(_serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServices.do: ServletResponse unavailable.");
+            }
+
+            if (!checkHttpServletRequest(_serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServices.do: HttpServletRequest unavailable.");
+            }
+
+            if (!checkHttpServletResponse(_serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServices.do: HttpServletResponse unavailable.");
+            }
+
+        }
+        catch (ClassNotFoundException e) {
+            return new Forward("index", "message", "ERROR: " + e.getMessage());
+        }
+        return new Forward("index", "message", "PASSED");
+    }
+
+    @Jpf.Action()
+    protected Forward testServicesP() {
+        try {
+
+            PageFlowControlContainer pfcc = PageFlowControlContainerFactory.getControlContainer(getRequest(), getServletContext());
+            pfcc.createAndBeginControlBeanContext(this, getRequest(), getResponse(), getServletContext());
+
+            ServiceGetterBean serviceGetter = (ServiceGetterBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.context.ServiceGetterBean");
+
+            if (!checkBeanContextService(serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServicesP.do: BeanContextService unavailable.");
+            }
+
+            if (!checkControlBeanContext(serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServicesP.do: ControlBeanContext unavailable.");
+            }
+
+            if (!checkResourceContext(serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServicesP.do: ResourceContext unavailable.");
+            }
+
+            if (!checkServletContext(serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServicesP.do: ServletContext unavailable.");
+            }
+
+            if (!checkServletRequest(serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServicesP.do: ServletRequest unavailable.");
+            }
+
+            if (!checkServletResponse(serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServicesP.do: ServletResponse unavailable.");
+            }
+
+            if (!checkHttpServletRequest(serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServicesP.do: HttpServletRequest unavailable.");
+            }
+
+            if (!checkHttpServletResponse(serviceGetter)) {
+                return new Forward("index", "message", "ERROR: testServicesP.do: HttpServletResponse unavailable.");
+            }
+
+        }
+        catch (Exception e) {
+            return new Forward("index", "message", "ERROR: " + e.getMessage());
+        }
+        return new Forward("index", "message", "PASSED");
+    }
+
+
+    private boolean checkBeanContextService(ServiceGetterBean ctrl) {
+        return ctrl.getBeanContext() != null;
+    }
+
+    private boolean checkControlBeanContext(ServiceGetterBean ctrl) {
+        return ctrl.getControlBeanContext() != null;
+    }
+
+    private boolean checkResourceContext(ServiceGetterBean ctrl) throws ClassNotFoundException {
+        return ctrl.getService(Class.forName("org.apache.beehive.controls.api.context.ResourceContext"), null) != null;
+    }
+
+    private boolean checkServletContext(ServiceGetterBean ctrl) throws ClassNotFoundException {
+        return ctrl.getService(Class.forName("javax.servlet.ServletContext"), null) != null;
+    }
+
+    private boolean checkServletRequest(ServiceGetterBean ctrl) throws ClassNotFoundException {
+        boolean result = false;
+        Object servletrequest = ctrl.getService(Class.forName("javax.servlet.ServletRequest"), null);
+        if ((servletrequest != null) && (servletrequest instanceof ServletRequestWrapper))
+            result = true;
+
+        return result;
+    }
+
+    private boolean checkServletResponse(ServiceGetterBean ctrl) throws ClassNotFoundException {
+        boolean result = false;
+        Object servletresponse = ctrl.getService(Class.forName("javax.servlet.ServletResponse"), null);
+        if ((servletresponse != null) && (servletresponse instanceof ServletResponseWrapper))
+            result = true;
+
+        return result;
+    }
+
+    private boolean checkHttpServletRequest(ServiceGetterBean ctrl) throws ClassNotFoundException {
+        boolean result = false;
+        Object httpservletrequest = ctrl.getService(Class.forName("javax.servlet.http.HttpServletRequest"), null);
+        if ((httpservletrequest != null) && (httpservletrequest instanceof HttpServletRequestWrapper))
+            result = true;
+
+        return result;
+    }
+
+    private boolean checkHttpServletResponse(ServiceGetterBean ctrl) throws ClassNotFoundException {
+        boolean result = false;
+        Object httpservletresponse = ctrl.getService(Class.forName("javax.servlet.http.HttpServletResponse"), null);
+        if ((httpservletresponse != null) && (httpservletresponse instanceof HttpServletResponseWrapper))
+            result = true;
+
+        return result;
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/controls/src/controls/context/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/beanrecord/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/beanrecord/Controller.java?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/beanrecord/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/beanrecord/Controller.java Fri Jul 14 13:22:22 2006
@@ -0,0 +1,93 @@
+/*
+ * 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 controls.contextevent.beanrecord;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.api.context.ControlBeanContext;
+import org.apache.beehive.controls.api.context.ResourceContext;
+import org.apache.beehive.netui.test.controls.contextevent.RecorderBean;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import java.beans.PropertyChangeEvent;
+
+/**
+ * Test linstening to control life cycle events by adding listeners to control bean class.
+ * The control is instantiated declaratively
+ */
+@Jpf.Controller(
+        forwards = {
+        @Jpf.Forward(name = "index", path = "../index.jsp")
+                })
+public class Controller extends PageFlowController {
+
+    @Control
+    public RecorderBean _recorder;
+
+    private boolean _onCreateReceived = false;
+    private boolean _onAcquireReceived = false;
+    private boolean _onReleaseReceived = false;
+
+    @Jpf.Action()
+    protected Forward begin() {
+
+        ControlBeanContext beanContext = _recorder.getControlBeanContext();
+        beanContext.addLifeCycleListener(new ControlBeanContext.LifeCycle() {
+            public void onCreate() {
+                _onCreateReceived = true;
+            }
+
+            public void onPropertyChange(PropertyChangeEvent pce) {
+            }
+
+            public void onVetoableChange(PropertyChangeEvent pce) {
+            }
+        });
+
+        try {
+            ResourceContext resourceContext = beanContext.getService(ResourceContext.class, null);
+            resourceContext.addResourceEventsListener(new ResourceContext.ResourceEvents() {
+                public void onAcquire() {
+                    _onAcquireReceived = true;
+                }
+
+                public void onRelease() {
+                    _onReleaseReceived = true;
+                }
+            });
+
+            String s = _recorder.getRecord();
+        }
+        catch (Exception e) {
+            return new Forward("index", "message", e.getMessage());
+        }
+
+        try {
+            Thread.sleep(500);
+            if (!_onAcquireReceived) {
+                return new Forward("index", "message", "The onAcquire ResourceContext event was not received.");
+            }
+        }
+        catch (Exception e) {
+            return new Forward("index", "message", e.getMessage());
+        }
+        return new Forward("index", "message", "PASSED");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/beanrecord/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/implrecord/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/implrecord/Controller.java?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/implrecord/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/implrecord/Controller.java Fri Jul 14 13:22:22 2006
@@ -0,0 +1,75 @@
+/*
+ * 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 controls.contextevent.implrecord;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.netui.test.controls.contextevent.RecorderBean;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowControlContainer;
+import org.apache.beehive.netui.pageflow.PageFlowControlContainerFactory;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+/**
+ * Test linstening to control life cycle events by EventHandler on control implementation class.
+ * The control is instantiated declaratively
+ */
+@Jpf.Controller(forwards = {@Jpf.Forward(name = "index", path = "../index.jsp")})
+public  class Controller extends PageFlowController {
+
+    @Control
+    public RecorderBean _recorder;
+
+    @Jpf.Action()
+    protected Forward begin() {
+        return new Forward("index");
+    }
+
+    @Jpf.Action()
+    protected Forward testContextEvents() {
+
+        String record = _recorder.getRecord();
+        if (!record.equals("initonCreateonAcquire")) {
+            return new Forward("index", "message", "The events recorded by control impl:" + record);
+        }
+        return new Forward("index", "message", "PASSED");
+    }
+
+    @Jpf.Action()
+    protected Forward testContextEventsP() {
+
+        try {
+            PageFlowControlContainer pfcc = PageFlowControlContainerFactory.getControlContainer(getRequest(), getServletContext());
+            pfcc.createAndBeginControlBeanContext(this, getRequest(), getResponse(), getServletContext());
+
+            RecorderBean recorder = (RecorderBean) java.beans.Beans.instantiate(
+                    Thread.currentThread().getContextClassLoader(),
+                    "org.apache.beehive.netui.test.controls.contextevent.RecorderBean");
+
+            String record = recorder.getRecord();
+            if (!record.equals("initonCreateonAcquire")) {
+                return new Forward("index", "message", "The events recorded by control impl:" + record);
+            }
+        }
+        catch (Exception e) {
+            // fail
+        }
+        return new Forward("index", "message", "PASSED");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/controls/src/controls/contextevent/implrecord/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/controls/src/controls/event/eventhandler/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/src/controls/event/eventhandler/Controller.java?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/src/controls/event/eventhandler/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/controls/src/controls/event/eventhandler/Controller.java Fri Jul 14 13:22:22 2006
@@ -0,0 +1,96 @@
+/*
+ * 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 controls.event.eventhandler;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.api.events.EventHandler;
+import org.apache.beehive.netui.test.controls.event.HelloBean;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+/**
+ * Test receiving events raised by a control using EventHandler annotations
+ * The control is instantiated declaratively
+ */
+@Jpf.Controller(forwards = {@Jpf.Forward(name = "index", path = "../index.jsp")})
+public class Controller extends PageFlowController {
+
+    @Control
+    public HelloBean myHelloBean;
+
+    private boolean eventSet1Received = false;
+    private boolean eventSet2Received = false;
+
+//    /**
+//     * EventHandler that receives EventSet1 from myHelloBean
+//     */
+//    @EventHandler(field = "myHelloBean", eventSet = HelloBean.EventSet1.class, eventName = "method1")
+//    public void myHelloBeanMessageHandler() {
+//        eventSet1Received = true;
+//    }
+
+    /**
+     * EventHandler that receives EventSet2 from myHelloBean
+     */
+    @EventHandler(field = "myHelloBean", eventSet = org.apache.beehive.netui.test.controls.event.HelloBean.EventSet2.class, eventName = "set2Method2")
+    public int myHelloBeanMessageHandler2() {
+        eventSet2Received = true;
+        return 0;
+    }
+
+    @Jpf.Action
+    protected Forward begin() {
+
+//        // Invoke method on myHelloBean to trigger the events
+//        try {
+//            myHelloBean.triggerEvents();
+//            if (!eventSet1Received || !eventSet2Received) {
+//                String detail = "";
+//                if (!eventSet1Received) {
+//                    detail = "EventSet1 is not received.";
+//                }
+//                if (!eventSet2Received) {
+//                    detail = detail + "EventSet2 is not received.";
+//                }
+//                return new Forward("index", "message", "Error: " + detail);
+//            }
+//        }
+//        catch (Exception e) {
+//            return new Forward("index", "message", "Error: " + e.getMessage());
+//        }
+        return new Forward("index", "message", "PASSED");
+    }
+
+    @Jpf.Action
+    protected Forward verifyResult() {
+//        if (!eventSet1Received || !eventSet2Received) {
+//            String detail = "";
+//            if (!eventSet1Received) {
+//                detail = "EventSet1 is not received.";
+//            }
+//            if (!eventSet2Received) {
+//                detail = detail + "EventSet2 is not received.";
+//            }
+//            return new Forward("index", "message", "Error: " + detail);
+//        }
+        return new Forward("index", "message", "PASSED");
+    }
+
+}

Propchange: beehive/trunk/netui/test/webapps/controls/src/controls/event/eventhandler/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/netui/test/webapps/controls/src/controls/event/listener/Controller.java
URL: http://svn.apache.org/viewvc/beehive/trunk/netui/test/webapps/controls/src/controls/event/listener/Controller.java?rev=422018&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/controls/src/controls/event/listener/Controller.java (added)
+++ beehive/trunk/netui/test/webapps/controls/src/controls/event/listener/Controller.java Fri Jul 14 13:22:22 2006
@@ -0,0 +1,81 @@
+/*
+ * 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 controls.event.listener;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.netui.test.controls.event.Event2Listener;
+import org.apache.beehive.netui.test.controls.event.Hello;
+import org.apache.beehive.netui.test.controls.event.HelloBean;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+/**
+ * Test receiving events raised by a control using a registered listener
+ * The control is instantiated declaratively
+ */
+@Jpf.Controller(forwards = {@Jpf.Forward(name = "index", path = "../index.jsp")})
+public class Controller extends PageFlowController {
+
+    @Control
+    public HelloBean hello;
+
+    private boolean innerClassReceiveEvent = false;
+    private Event2Listener event2listener;
+
+    @Jpf.Action()
+    protected Forward begin() {
+
+        try {
+            // Register an inner class as listener for event1
+            hello.addEventSet1Listener(
+                    new Hello.EventSet1() {
+                        public void method1() {
+                            innerClassReceiveEvent = true;
+                        }
+                    });
+
+            /* Creates a listener for event2 and register it*/
+            event2listener = new Event2Listener();
+            hello.addEventSet2Listener(event2listener);
+
+            /* Invokes methods on myHelloBean to trigger the events*/
+            hello.triggerEvents();
+            Thread.sleep(1000);
+        }
+        catch (Exception e) {
+            return new Forward("index", "message", "Error: " + e.getMessage());
+        }
+
+        if (!innerClassReceiveEvent) {
+            return new Forward("index", "message", "Error: Innner Class didn't receive event.");
+        }
+
+        if (event2listener == null) {
+            return new Forward("index", "message", "Error: Event2Listerner is NULL");
+        }
+
+        String listenerResult = event2listener.getAllResult();
+        if (!listenerResult.equals("0000")) {
+            return new Forward("index", "message", "Error: Listener Result:" + listenerResult);
+        }
+
+        return new Forward("index", "message", "PASSED");
+    }
+}

Propchange: beehive/trunk/netui/test/webapps/controls/src/controls/event/listener/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native