Author: rich
Date: Fri Aug 13 08:58:42 2004
New Revision: 36354
Added:
incubator/beehive/trunk/netui/external/jsf/
incubator/beehive/trunk/netui/external/jsf/myfaces.jar (contents, props
changed)
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FacesBackingChecker.java
(contents, props changed)
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CommandHandlerGrammar.java
(contents, props changed)
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/RaiseActionGrammar.java
(contents, props changed)
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/BackingClassMethodBinding.java
(contents, props changed)
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/BackingClassVariableResolver.java
(contents, props changed)
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowApplication.java
(contents, props changed)
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowApplicationFactory.java
(contents, props changed)
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowNavigationHandler.java
(contents, props changed)
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/faces-config.xml
(contents, props changed)
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/dataStructure.jspf
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/error.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/
- copied from rev 36299,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index.jsp
- copied unchanged from rev 36299,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Beehive.gif
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/Beehive.gif
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Controller.jpf
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/Controller.jpf
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/index.jsp
- copied, changed from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/index.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/linkDown.gif
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/linkDown.gif
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/linkOver.gif
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/linkOver.gif
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/style.css
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/style.css
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/JpfFacesController.jpf
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page1.jsfb
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page1.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page2.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page3.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page4.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/page.jspf
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/
- copied from rev 36299,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/admin.inc
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/admin.inc
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/admin.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/admin.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/error.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/error.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/forward.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/forward.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/forward2.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/forward2.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/index.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/index.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/playback.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/playback.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/record.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/record.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/redirect.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/redirect.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/sessionInfo.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/sessionInfo.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/startRecord.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/startRecord.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/status.inc
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/status.inc
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/status.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/status.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/test.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/test.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/testInfo.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/testInfo.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/testRecorder/testRecord.jsp
- copied unchanged from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/testRecorder/testRecord.jsp
Modified:
incubator/beehive/trunk/netui/ant/common.properties
incubator/beehive/trunk/netui/src/compiler/META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/CompilerUtils.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/PageFlowChecker.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/apt/PageFlowAnnotationProcessor.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/diagnostics.properties
incubator/beehive/trunk/netui/src/pageflow/build.xml
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowJspFilter.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalConstants.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/FileUtils.java
incubator/beehive/trunk/netui/test/webapps/jsf/build.xml
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/faces/facesSmoke/Backing.java
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces/facesSmoke/Controller.jpf
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces/facesSmoke/index.jsp
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-config.xml
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeAnchors.xml
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeBundle.xml
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeConversions.xml
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeDataTable.xml
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeFormOne.xml
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeFormTwo.xml
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeImage.xml
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokePanel.xml
incubator/beehive/trunk/test/ant/buildWebapp.xml
Log:
Preliminary integration of JSF with page flows. To enable this, add the
following entry in the <factory> section of your faces-config.xml:
<application-factory>org.apache.beehive.netui.pageflow.faces.PageFlowApplicationFactory</application-factory>
This enablees the following features:
- 'Backing class' management: each JSF-enabled JSP can have an implicitly
associated class that serves as a home for command handlers, backing component
objects, and other view-related state (as well as Java Controls in a subsequent
checkin). The class name is derived from the JSP's webapp-rooted URI:
/foo/bar.jsp -> class foo.bar. This class must have the @Jpf.FacesBacking
annotation, and it can optionally have a ".jsfb" extension and live alongside
its JSP in the webapp. The class is instantiated by the runtime before its JSP
is rendered, and is removed/replaced only when a new JSP is rendered.
- Raising Page Flow actions from JSF pages: when there is a page flow for
the current request, actions raised from JSF pages or backing classes are
handled by the page flow. Actions can be raised through the "action" attribute
on h:command* tags, or through command handlers in backing classes. Command
handlers annotated with @Jpf.CommandHandler can also pass form beans to page
flow actions (see example mentioned below).
- "backing" implicit bean: JSF pages can bind to properties in the backing
class through expressions like "#{backing.foo}".
For an example, see netui/test/webapps/jsf/jsfWeb/jpfFaces/*. To run this, you
must first point the JSF_HOME environment variable to a JavaServer Faces 1.1
Reference Implementation distribution.
Note: The TestRecorder filter is currently incompatible with JSF. This will be
fixed elsewhere; for now, TR and the JSF-related DRTs are disabled.
Things left to do:
- Ability for backing classes to host Controls in the same way page flow
classes host controls.
- Integration of JSF with @Jpf.Forward's
navigateTo=Jpf.NavigateTo.currentPage/previousPage.
DRT: netui (WinXP)
buddy build: self
Modified: incubator/beehive/trunk/netui/ant/common.properties
==============================================================================
--- incubator/beehive/trunk/netui/ant/common.properties (original)
+++ incubator/beehive/trunk/netui/ant/common.properties Fri Aug 13 08:58:42 2004
@@ -64,6 +64,11 @@
commons-validator.jar=${struts.dir}/commons-validator.jar
#
+# JSF
+#
+jsf-api.jar=${jsf.dir}/myfaces.jar
+
+#
# External TLDs
#
struts11.logic.tld=${struts.dir}/struts-logic.tld
Added: incubator/beehive/trunk/netui/external/jsf/myfaces.jar
==============================================================================
Binary file. No diff available.
Modified:
incubator/beehive/trunk/netui/src/compiler/META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
(original)
+++
incubator/beehive/trunk/netui/src/compiler/META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
Fri Aug 13 08:58:42 2004
@@ -1,4 +1 @@
-#
-# This configures APT so the ControlProcessorFactory can be used to process
Control annotations
-#
org.apache.beehive.netui.compiler.apt.PageFlowAnnotationProcessorFactory
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/CompilerUtils.java
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/CompilerUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/CompilerUtils.java
Fri Aug 13 08:58:42 2004
@@ -698,6 +698,7 @@
fileRelativePath = fileRelativePath.substring( 0, extensionPos );
retVal = new File( webappRootPath + fileRelativePath +
JPF_FILE_EXTENSION_DOT );
if ( ! retVal.exists() ) retVal = new File( webappRootPath +
fileRelativePath + SHARED_FLOW_FILE_EXTENSION_DOT );
+ if ( ! retVal.exists() ) retVal = new File( webappRootPath +
fileRelativePath + FACES_BACKING_FILE_EXTENSION_DOT );
// See if the .java file lives in WEB-INF/src.
if ( ! retVal.exists() )
@@ -858,5 +859,10 @@
{
return _getter;
}
+ }
+
+ public static boolean isPageFlowClass( ClassDeclaration jclass,
AnnotationProcessorEnvironment env )
+ {
+ return getAnnotation( jclass, CONTROLLER_TAG_NAME ) != null &&
isAssignableFrom( JPF_BASE_CLASS, jclass, env );
}
}
Added:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FacesBackingChecker.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FacesBackingChecker.java
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,70 @@
+/*
+* B E A S Y S T E M S
+* Copyright 2002-2004 BEA Systems, Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+* $Header:$
+*/
+package org.apache.beehive.netui.compiler;
+
+import com.sun.mirror.apt.AnnotationProcessorEnvironment;
+import com.sun.mirror.declaration.ClassDeclaration;
+import com.sun.mirror.declaration.MethodDeclaration;
+
+import java.util.Map;
+import java.util.Collection;
+
+import org.apache.beehive.netui.compiler.grammar.CommandHandlerGrammar;
+
+import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.COMMAND_HANDLER_TAG_NAME;
+
+
+public class FacesBackingChecker
+ extends BaseChecker
+{
+ public FacesBackingChecker( AnnotationProcessorEnvironment env,
Diagnostics diags )
+ {
+ super( env, diags );
+ }
+
+ public BaseGenerator getGenerator()
+ {
+ return null;
+ }
+
+ public Map onCheck( ClassDeclaration jclass )
+ {
+ Collection< ClassDeclaration > packageClasses =
jclass.getPackage().getClasses();
+ ClassDeclaration jpfClass = null;
+
+ for ( ClassDeclaration classDecl : packageClasses )
+ {
+ if ( CompilerUtils.isPageFlowClass( classDecl, getEnv() ) )
+ {
+ jpfClass = classDecl;
+ }
+ }
+
+ CommandHandlerGrammar chg =
+ new CommandHandlerGrammar( getEnv(), getDiagnostics(),
getRuntimeVersionChecker(), jpfClass );
+ Collection< MethodDeclaration > methods =
CompilerUtils.getClassMethods( jclass, COMMAND_HANDLER_TAG_NAME );
+
+ for ( MethodDeclaration method : methods )
+ {
+ chg.check( CompilerUtils.getAnnotation( method,
COMMAND_HANDLER_TAG_NAME ), method );
+ }
+
+ return null;
+ }
+}
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java
Fri Aug 13 08:58:42 2004
@@ -56,6 +56,7 @@
public static final String BEGIN_ACTION_NAME = "begin";
public static final String JPF_FILE_EXTENSION = "jpf";
+ public static final String FACES_BACKING_FILE_EXTENSION = "jsfb";
public static final String JAVA_FILE_EXTENSION = "java";
public static final String JSP_FILE_EXTENSION = "jsp";
public static final String XJSP_FILE_EXTENSION = "jspx";
@@ -63,6 +64,7 @@
public static final String JPF_FILE_EXTENSION_DOT = "." +
JPF_FILE_EXTENSION;
public static final String ACTION_EXTENSION_DOT = "." + ACTION_EXTENSION;
public static final String JAVA_FILE_EXTENSION_DOT = "." +
JAVA_FILE_EXTENSION;
+ public static final String FACES_BACKING_FILE_EXTENSION_DOT = "." +
FACES_BACKING_FILE_EXTENSION;
public static final String SHARED_FLOW_FILE_EXTENSION = "jpfs";
public static final String GLOBALAPP_FILE_EXTENSION = "app";
public static final String GLOBALAPP_FILE_EXTENSION_DOT = "." +
GLOBALAPP_FILE_EXTENSION;
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/PageFlowChecker.java
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/PageFlowChecker.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/PageFlowChecker.java
Fri Aug 13 08:58:42 2004
@@ -33,6 +33,7 @@
import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
import java.util.ArrayList;
+import java.util.Collection;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
@@ -105,29 +106,14 @@
protected void doAdditionalClassChecks( ClassDeclaration jpfClass, File
webappRoot )
{
PackageDeclaration pkg = jpfClass.getPackage();
- File jpfFile = CompilerUtils.getOriginalFile( jpfClass );
+ Collection< ClassDeclaration > packageClasses = pkg.getClasses();
+ ArrayList< String > overlapping = new ArrayList< String >();
- //
- // jpfPackage is null when there's a class with the same name as the
type's package.
- //
- String jpfPackageName = pkg != null ?
pkg.getQualifiedName().toString() : null;
-
- //
- // Make sure there are no other page flows in this directory (they may
not be
- // in the package as far as the compiler can see).
- //
- ArrayList overlapping = new ArrayList();
- File[] files = jpfFile.getAbsoluteFile().getParentFile().listFiles(
new PageFlowFileFilter() );
-
- if ( files != null )
+ for ( ClassDeclaration classDecl : packageClasses )
{
- for ( int i = 0; i < files.length; i++ )
+ if ( ! classDecl.equals( jpfClass ) &&
CompilerUtils.isPageFlowClass( classDecl, getEnv() ) )
{
- File file = files[i];
- if ( ! file.getPath().equals( jpfFile.getPath() ) )
- {
- overlapping.add( file.getName() );
- }
+ overlapping.add( CompilerUtils.getOriginalFile( classDecl
).getName() );
}
}
@@ -147,7 +133,8 @@
//
// Check the package name.
//
- File parentDir = jpfFile.getAbsoluteFile().getParentFile();
+ String jpfPackageName = pkg.getQualifiedName();
+ File parentDir = CompilerUtils.getOriginalFile( jpfClass
).getAbsoluteFile().getParentFile();
if ( parentDir.equals( webappRoot.getPath() ) )
{
if ( jpfPackageName != null && jpfPackageName.length() > 0 )
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/apt/PageFlowAnnotationProcessor.java
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/apt/PageFlowAnnotationProcessor.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/apt/PageFlowAnnotationProcessor.java
Fri Aug 13 08:58:42 2004
@@ -28,6 +28,7 @@
import org.apache.beehive.netui.compiler.FlowControllerInfo;
import org.apache.beehive.netui.compiler.PageFlowChecker;
import org.apache.beehive.netui.compiler.SharedFlowChecker;
+import org.apache.beehive.netui.compiler.FacesBackingChecker;
import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.JPF_BASE_CLASS;
import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.SHARED_FLOW_BASE_CLASS;
import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.GLOBALAPP_BASE_CLASS;
@@ -35,6 +36,7 @@
import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.SHARED_FLOW_FILE_EXTENSION_DOT;
import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.GLOBALAPP_FILE_EXTENSION_DOT;
import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.CONTROLLER_TAG_NAME;
+import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.FACES_BACKING_TAG_NAME;
import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.ANNOTATIONS_CLASSNAME;
@@ -51,7 +53,11 @@
FlowControllerInfo fcInfo =
new FlowControllerInfo( CompilerUtils.getOriginalFile(
classDecl ), classDecl.getQualifiedName() );
- if ( CompilerUtils.isAssignableFrom( JPF_BASE_CLASS, classDecl,
getEnv() ) )
+ if ( CompilerUtils.getAnnotation( classDecl, FACES_BACKING_TAG_NAME )
!= null )
+ {
+ return new FacesBackingChecker( getEnv(), diagnostics );
+ }
+ else if ( CompilerUtils.isAssignableFrom( JPF_BASE_CLASS, classDecl,
getEnv() ) )
{
if ( expectControllerAnnotation( classDecl,
JPF_FILE_EXTENSION_DOT, JPF_BASE_CLASS, diagnostics ) )
{
@@ -105,7 +111,8 @@
}
else if ( ! CompilerUtils.hasModifier( classDecl, Modifier.ABSTRACT ) )
{
- diagnostics.addWarning( classDecl,
"warning.no-controller-annotation", baseClass );
+ diagnostics.addWarning( classDecl,
"warning.no-controller-annotation", baseClass,
+ ANNOTATIONS_CLASSNAME + "." +
CONTROLLER_TAG_NAME );
}
return false;
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/diagnostics.properties
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/diagnostics.properties
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/diagnostics.properties
Fri Aug 13 08:58:42 2004
@@ -136,3 +136,5 @@
error.controller-annotation-required = Files ending with "{0}" must have the
{1} annotation.
warning.no-controller-annotation = This class extends {0}, but it does not
have the {1} annotation and is not abstract.
+
+warning.no-such-action = There is no action "{0}" in page flow {1}.
Added:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CommandHandlerGrammar.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CommandHandlerGrammar.java
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,39 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.compiler.grammar;
+
+import org.apache.beehive.netui.compiler.AnnotationGrammar;
+import org.apache.beehive.netui.compiler.Diagnostics;
+import org.apache.beehive.netui.compiler.RuntimeVersionChecker;
+import com.sun.mirror.apt.AnnotationProcessorEnvironment;
+import com.sun.mirror.declaration.ClassDeclaration;
+
+import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.RAISE_ACTIONS_ATTR;
+
+
+public class CommandHandlerGrammar
+ extends AnnotationGrammar
+{
+ public CommandHandlerGrammar( AnnotationProcessorEnvironment env,
Diagnostics diags, RuntimeVersionChecker rvc,
+ ClassDeclaration jpfClass )
+ {
+ super( env, diags, null, rvc );
+ addMemberArrayGrammar( RAISE_ACTIONS_ATTR, new RaiseActionGrammar(
env, diags, null, rvc, jpfClass ) );
+ }
+}
Added:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/RaiseActionGrammar.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/RaiseActionGrammar.java
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,73 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.compiler.grammar;
+
+import org.apache.beehive.netui.compiler.AnnotationGrammar;
+import org.apache.beehive.netui.compiler.Diagnostics;
+import org.apache.beehive.netui.compiler.RuntimeVersionChecker;
+import org.apache.beehive.netui.compiler.AnnotationMemberType;
+import org.apache.beehive.netui.compiler.CompilerUtils;
+import com.sun.mirror.apt.AnnotationProcessorEnvironment;
+import com.sun.mirror.declaration.ClassDeclaration;
+import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
+import com.sun.mirror.declaration.AnnotationValue;
+import com.sun.mirror.declaration.AnnotationMirror;
+import com.sun.mirror.declaration.MemberDeclaration;
+
+import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.OUTPUT_FORM_BEAN_ATTR;
+import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.ACTION_ATTR;
+
+
+public class RaiseActionGrammar
+ extends AnnotationGrammar
+{
+ public RaiseActionGrammar( AnnotationProcessorEnvironment env, Diagnostics
diags, String requiredRuntimeVersion,
+ RuntimeVersionChecker runtimeVersionChecker,
ClassDeclaration jpfClass )
+ {
+ super( env, diags, requiredRuntimeVersion, runtimeVersionChecker );
+ addMemberType( ACTION_ATTR, new PageFlowActionType( jpfClass ) );
+ addMemberType( OUTPUT_FORM_BEAN_ATTR, new MemberFieldType( null ,
null, this ) );
+ }
+
+ private class PageFlowActionType
+ extends AnnotationMemberType
+ {
+ private ClassDeclaration _jpfClass;
+
+ public PageFlowActionType( ClassDeclaration jpfClass )
+ {
+ super( RaiseActionGrammar.this.getRequiredRuntimeVersion(),
RaiseActionGrammar.this );
+ _jpfClass = jpfClass;
+ }
+
+ protected Object onCheck( AnnotationTypeElementDeclaration valueDecl,
AnnotationValue member,
+ AnnotationMirror parentAnnotation,
MemberDeclaration classMember )
+ {
+ String action = ( String ) member.getValue();
+
+ if ( _jpfClass != null && ! WebappPathOrActionType.actionExists(
action, _jpfClass, null ) )
+ {
+ getDiagnostics().addWarning( member, "warning.no-such-action",
action,
+ CompilerUtils.getOriginalFile(
_jpfClass ) );
+ }
+
+ return null;
+ }
+ }
+}
Modified: incubator/beehive/trunk/netui/src/pageflow/build.xml
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/build.xml (original)
+++ incubator/beehive/trunk/netui/src/pageflow/build.xml Fri Aug 13
08:58:42 2004
@@ -2,7 +2,7 @@
<project name="NetUI/PageFlow" default="compile" basedir=".">
- <property name="module.classpath"
value="${struts.jar};${servlet24.jar};${jsp20.jar};${util.jar};${commons-beanutils.jar};${commons-logging.jar};${commons-collections.jar};${commons-digester.jar};${commons-validator.jar};${log4j.jar};${scoping.jar};${xbean.jar};${controls.jar}"/>
+ <property name="module.classpath"
value="${struts.jar};${servlet24.jar};${jsp20.jar};${util.jar};${commons-beanutils.jar};${commons-logging.jar};${commons-collections.jar};${commons-digester.jar};${commons-validator.jar};${log4j.jar};${scoping.jar};${xbean.jar};${controls.jar};${jsf-api.jar}"/>
<target name="compile">
<echo>compile module: ${module.name}</echo>
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowJspFilter.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowJspFilter.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowJspFilter.java
Fri Aug 13 08:58:42 2004
@@ -215,6 +215,7 @@
BundleMap bundleMap = new
BundleMap(httpRequest, _servletContext, null);
httpRequest.setAttribute("bundle",
bundleMap);
+ InternalUtils.setFacesBackingBean(
httpRequest, _servletContext );
chain.doFilter( request, response );
}
finally
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/BackingClassMethodBinding.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/BackingClassMethodBinding.java
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,159 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.pageflow.faces;
+
+import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import javax.faces.el.MethodBinding;
+import javax.faces.el.MethodNotFoundException;
+import javax.faces.el.EvaluationException;
+import javax.faces.context.FacesContext;
+import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponentBase;
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+import java.lang.reflect.Field;
+
+// TODO: rich needs to doc this when he gets all 10 of his fingers back
+// TODO: move to internal
+public class BackingClassMethodBinding
+ extends MethodBinding
+ implements StateHolder
+{
+ private String _methodName;
+ private Class[] _params;
+ private MethodBinding _delegate;
+ private boolean _transient = false;
+
+
+ public BackingClassMethodBinding()
+ {
+ }
+
+ public BackingClassMethodBinding( String methodName, Class[] params,
MethodBinding delegate )
+ {
+ _methodName = methodName;
+ _params = params;
+ _delegate = delegate;
+ }
+
+ public Class getType( FacesContext context )
+ throws MethodNotFoundException
+ {
+ return _delegate.getType( context );
+ }
+
+ public String getExpressionString() {
+ return _delegate.getExpressionString();
+ }
+
+ public Object invoke( FacesContext context, Object params[] )
+ throws EvaluationException, MethodNotFoundException
+ {
+ Object result = _delegate.invoke( context, params );
+
+ if ( result instanceof String )
+ {
+ String action = ( String ) result;
+ Object request = context.getExternalContext().getRequest();
+ assert request != null;
+ assert request instanceof HttpServletRequest :
request.getClass().getName();
+
+ HttpServletRequest httpRequest = ( HttpServletRequest ) request;
+ Object backingBean = InternalUtils.getFacesBackingBean(
httpRequest );
+
+ if ( backingBean != null )
+ {
+ Class backingClass = backingBean.getClass();
+
+ try
+ {
+ Method method = backingClass.getMethod( _methodName,
_params );
+ Jpf.CommandHandler ann = method.getAnnotation(
Jpf.CommandHandler.class );
+
+ if ( ann != null )
+ {
+ Jpf.RaiseAction[] raiseActions = ann.raiseActions();
+
+ for ( int i = 0; i < raiseActions.length; i++ )
+ {
+ Jpf.RaiseAction raiseAction = raiseActions[i];
+
+ if ( raiseAction.action().equals( action ) )
+ {
+ String formBeanMember =
raiseAction.outputFormBean();
+
+ if ( formBeanMember.length() > 0 )
+ {
+ try
+ {
+ // TODO: must cache fields and
annotations
+ Field field =
backingClass.getDeclaredField( formBeanMember );
+ field.setAccessible( true );
+ Object value = field.get( backingBean
);
+ InternalUtils.setForwardedForm(
InternalUtils.wrapFormBean( value ), httpRequest );
+ }
+ catch ( NoSuchFieldException e )
+ {
+ e.printStackTrace( ); // TODO: log
+ }
+ catch ( IllegalAccessException e )
+ {
+ e.printStackTrace( ); // TODO: log
+ }
+ }
+ }
+ }
+ }
+ }
+ catch ( NoSuchMethodException e )
+ {
+ e.printStackTrace( ); // TODO: log
+ }
+ }
+ }
+
+ return result;
+ }
+
+ public Object saveState( FacesContext context )
+ {
+ return new Object[]{ _methodName, _params,
UIComponentBase.saveAttachedState( context, _delegate ) };
+ }
+
+ public void restoreState( FacesContext context, Object state )
+ {
+ Object[] values = ( Object[] ) state;
+ _methodName = ( String ) values[0];
+ _params = ( Class[] ) values[1];
+ _delegate = ( MethodBinding ) UIComponentBase.restoreAttachedState(
context, values[2] );
+ }
+
+ public boolean isTransient()
+ {
+ return _transient;
+ }
+
+ public void setTransient( boolean newTransientValue )
+ {
+ _transient = newTransientValue;
+ }
+}
+
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/BackingClassVariableResolver.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/BackingClassVariableResolver.java
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,54 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.pageflow.faces;
+
+import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.InternalConstants;
+
+import javax.faces.el.VariableResolver;
+import javax.faces.el.EvaluationException;
+import javax.faces.context.FacesContext;
+import javax.servlet.http.HttpServletRequest;
+
+// TODO: rich needs to doc this when he gets all 10 of his fingers back
+// TODO: move to internal
+public class BackingClassVariableResolver
+ extends VariableResolver
+{
+ private VariableResolver _delegate;
+
+ public BackingClassVariableResolver( VariableResolver delegate )
+ {
+ _delegate = delegate;
+ }
+
+ public Object resolveVariable( FacesContext context, String name ) throws
EvaluationException
+ {
+ if ( InternalConstants.BACKING_CLASS_IMPLICIT_OBJECT.equals( name ) )
+ {
+ Object request = context.getExternalContext().getRequest();
+ assert request != null;
+ assert request instanceof HttpServletRequest :
request.getClass().getName();
+ return InternalUtils.getFacesBackingBean( ( HttpServletRequest )
request );
+ }
+
+ return _delegate.resolveVariable( context, name );
+ }
+}
+
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowApplication.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowApplication.java
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,253 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.pageflow.faces;
+
+import org.apache.beehive.netui.pageflow.internal.InternalConstants;
+import org.apache.beehive.netui.util.logging.Logger;
+
+import javax.faces.FacesException;
+import javax.faces.application.Application;
+import javax.faces.application.NavigationHandler;
+import javax.faces.application.StateManager;
+import javax.faces.application.ViewHandler;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.el.MethodBinding;
+import javax.faces.el.PropertyResolver;
+import javax.faces.el.ReferenceSyntaxException;
+import javax.faces.el.ValueBinding;
+import javax.faces.el.VariableResolver;
+import javax.faces.event.ActionListener;
+import javax.faces.validator.Validator;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Locale;
+
+// TODO: rich needs to doc this when he gets all 10 of his fingers back
+public class PageFlowApplication
+ extends Application
+{
+ private static final String BACKING_BINDING_START = "#{" +
InternalConstants.BACKING_CLASS_IMPLICIT_OBJECT + '.';
+
+ private static final Logger _log = Logger.getInstance(
PageFlowApplication.class );
+
+ private Application _delegate;
+
+
+ public PageFlowApplication( Application delegate )
+ {
+ if ( _log.isDebugEnabled() )
+ {
+ _log.debug( "Adapting Application" + delegate );
+ }
+
+ _delegate = delegate;
+ }
+
+ public ActionListener getActionListener()
+ {
+ return _delegate.getActionListener();
+ }
+
+ public void setActionListener( ActionListener listener )
+ {
+ _delegate.setActionListener( listener );
+ }
+
+ public Locale getDefaultLocale()
+ {
+ return _delegate.getDefaultLocale();
+ }
+
+ public void setDefaultLocale( Locale locale )
+ {
+ _delegate.setDefaultLocale( locale );
+ }
+
+ public String getDefaultRenderKitId()
+ {
+ return _delegate.getDefaultRenderKitId();
+ }
+
+ public void setDefaultRenderKitId( String renderKitId )
+ {
+ _delegate.setDefaultRenderKitId( renderKitId );
+ }
+
+ public String getMessageBundle()
+ {
+ return _delegate.getMessageBundle();
+ }
+
+ public void setMessageBundle( String bundle )
+ {
+ _delegate.setMessageBundle( bundle );
+ }
+
+ public NavigationHandler getNavigationHandler()
+ {
+ return _delegate.getNavigationHandler();
+ }
+
+ public void setNavigationHandler( NavigationHandler handler )
+ {
+ _delegate.setNavigationHandler( new PageFlowNavigationHandler( handler
) );
+ }
+
+ public PropertyResolver getPropertyResolver()
+ {
+ return _delegate.getPropertyResolver();
+ }
+
+ public void setPropertyResolver( PropertyResolver resolver )
+ {
+ _delegate.setPropertyResolver( resolver );
+ }
+
+ public VariableResolver getVariableResolver()
+ {
+ return _delegate.getVariableResolver();
+ }
+
+ public void setVariableResolver( VariableResolver resolver )
+ {
+ _delegate.setVariableResolver( new BackingClassVariableResolver(
resolver ) );
+ }
+
+ public ViewHandler getViewHandler()
+ {
+ return _delegate.getViewHandler();
+ }
+
+ public void setViewHandler( ViewHandler handler )
+ {
+ _delegate.setViewHandler( handler );
+ }
+
+ public StateManager getStateManager()
+ {
+ return _delegate.getStateManager();
+ }
+
+ public void setStateManager( StateManager manager )
+ {
+ _delegate.setStateManager( manager );
+ }
+
+ public void addComponent( String componentType, String componentClass )
+ {
+ _delegate.addComponent( componentType, componentClass );
+ }
+
+ public UIComponent createComponent( String componentType )
+ throws FacesException
+ {
+ return _delegate.createComponent( componentType );
+ }
+
+ public UIComponent createComponent( ValueBinding componentBinding,
FacesContext context, String componentType )
+ throws FacesException
+ {
+ return _delegate.createComponent( componentBinding, context,
componentType );
+ }
+
+ public Iterator getComponentTypes()
+ {
+ return _delegate.getComponentTypes();
+ }
+
+ public void addConverter( String converterId, String converterClass )
+ {
+ _delegate.addConverter( converterId, converterClass );
+ }
+
+ public void addConverter( Class targetClass, String converterClass )
+ {
+ _delegate.addConverter( targetClass, converterClass );
+ }
+
+ public Converter createConverter( String converterId )
+ {
+ return _delegate.createConverter( converterId );
+ }
+
+ public Converter createConverter( Class targetClass )
+ {
+ return _delegate.createConverter( targetClass );
+ }
+
+ public Iterator getConverterIds()
+ {
+ return _delegate.getConverterIds();
+ }
+
+ public Iterator getConverterTypes()
+ {
+ return _delegate.getConverterTypes();
+ }
+
+ public MethodBinding createMethodBinding( String ref, Class params[] )
+ throws ReferenceSyntaxException
+ {
+ MethodBinding mb = _delegate.createMethodBinding( ref, params );
+
+ if ( ref.startsWith( BACKING_BINDING_START ) && ref.endsWith( "}" ) )
+ {
+ String methodName = ref.substring( BACKING_BINDING_START.length(),
ref.length() - 1 );
+ return new BackingClassMethodBinding( methodName, params, mb );
+ }
+ else
+ {
+ return mb;
+ }
+ }
+
+ public Iterator getSupportedLocales()
+ {
+ return _delegate.getSupportedLocales();
+ }
+
+ public void setSupportedLocales( Collection locales )
+ {
+ _delegate.setSupportedLocales( locales );
+ }
+
+ public void addValidator( String validatorId, String validatorClass )
+ {
+ _delegate.addValidator( validatorId, validatorClass );
+ }
+
+ public Validator createValidator( String validatorId )
+ throws FacesException
+ {
+ return _delegate.createValidator( validatorId );
+ }
+
+ public Iterator getValidatorIds()
+ {
+ return _delegate.getValidatorIds();
+ }
+
+ public ValueBinding createValueBinding( String ref )
+ throws ReferenceSyntaxException
+ {
+ return _delegate.createValueBinding( ref );
+ }
+}
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowApplicationFactory.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowApplicationFactory.java
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,56 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.pageflow.faces;
+
+import org.apache.beehive.netui.util.logging.Logger;
+
+import javax.faces.application.ApplicationFactory;
+import javax.faces.application.Application;
+
+// TODO: rich needs to doc this when he gets all 10 of his fingers back
+public class PageFlowApplicationFactory
+ extends ApplicationFactory
+{
+ private static final Logger _log = Logger.getInstance(
PageFlowApplicationFactory.class );
+
+ private ApplicationFactory _delegate;
+ private PageFlowApplication _app;
+
+ public PageFlowApplicationFactory( ApplicationFactory delegate )
+ {
+ if ( _log.isDebugEnabled() )
+ {
+ _log.debug( "Adapting ApplicationFactory" + delegate );
+ }
+
+ _delegate = delegate;
+ _app = new PageFlowApplication( delegate.getApplication() );
+ }
+
+ public Application getApplication()
+ {
+ return _app;
+ }
+
+ public void setApplication( Application application )
+ {
+ _delegate.setApplication( application );
+ _app = new PageFlowApplication( application );
+ }
+}
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowNavigationHandler.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/PageFlowNavigationHandler.java
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,88 @@
+package org.apache.beehive.netui.pageflow.faces;
+
+import javax.faces.application.NavigationHandler;
+import javax.faces.application.ApplicationFactory;
+import javax.faces.context.FacesContext;
+import javax.faces.FactoryFinder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+import java.io.IOException;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.PageFlowUtils;
+import org.apache.beehive.netui.pageflow.PageFlowConstants;
+import org.apache.beehive.netui.pageflow.FlowControllerFactory;
+import org.apache.beehive.netui.util.logging.Logger;
+
+
+// TODO: rich needs to doc this when he gets all 10 of his fingers back
+public class PageFlowNavigationHandler
+ extends NavigationHandler
+{
+ private static final Logger _log = Logger.getInstance(
PageFlowNavigationHandler.class );
+
+ private NavigationHandler _baseHandler;
+
+
+ public PageFlowNavigationHandler( NavigationHandler base )
+ {
+ if ( _log.isDebugEnabled() )
+ {
+ _log.debug( "Adapting NavigationHandler" + base );
+ }
+
+ _baseHandler = base;
+ }
+
+ public void handleNavigation( FacesContext context, String fromAction,
String outcome )
+ {
+ Object request = context.getExternalContext().getRequest();
+ Object response = context.getExternalContext().getResponse();
+ Object extContext = context.getExternalContext().getContext();
+
+ if ( request instanceof HttpServletRequest && response instanceof
HttpServletResponse
+ && extContext instanceof ServletContext )
+ {
+ HttpServletRequest httpRequest = ( HttpServletRequest ) request;
+ HttpServletResponse httpResponse = ( HttpServletResponse )
response;
+ ServletContext servletContext = ( ServletContext ) extContext;
+ PageFlowController pfc =
FlowControllerFactory.getPageFlowForRequest( httpRequest, httpResponse,
servletContext );
+ PageFlowUtils.getCurrentPageFlow( httpRequest );
+
+ if ( pfc != null )
+ {
+ if ( outcome != null )
+ {
+ try
+ {
+ String actionURI = outcome +
PageFlowConstants.ACTION_EXTENSION;
+
+ if ( _log.isDebugEnabled() )
+ {
+ _log.debug( "Forwarding to " + actionURI );
+ }
+
+ httpRequest.getRequestDispatcher( actionURI ).forward(
httpRequest, httpResponse );
+ }
+ catch ( IOException e )
+ {
+ // TODO: log
+ e.printStackTrace();
+ }
+ catch ( ServletException e )
+ {
+ // TODO: log
+ e.printStackTrace();
+ }
+ }
+
+ return;
+ }
+ }
+
+ _baseHandler.handleNavigation( context, fromAction, outcome );
+ }
+}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalConstants.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalConstants.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalConstants.java
Fri Aug 13 08:58:42 2004
@@ -26,4 +26,7 @@
*/
public static final String MESSAGE_IS_EXPRESSION_PREFIX =
"NETUI-EXPRESSION:";
public static final int MESSAGE_IS_EXPRESSION_PREFIX_LENGTH =
MESSAGE_IS_EXPRESSION_PREFIX.length();
+
+ public static final String FACES_BACKING_ATTR =
InternalUtils.class.getName() + "_facesBacking";
+ public static final String BACKING_CLASS_IMPLICIT_OBJECT = "backing";
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
Fri Aug 13 08:58:42 2004
@@ -26,12 +26,14 @@
import org.apache.beehive.netui.pageflow.AutoRegisterActionServlet;
import org.apache.beehive.netui.pageflow.ServerAdapter;
import org.apache.beehive.netui.pageflow.GlobalApp;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
import org.apache.beehive.netui.pageflow.handler.ReloadableClassHandler;
import org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.util.Bundle;
import org.apache.beehive.netui.util.ServletUtils;
+import org.apache.beehive.netui.util.FileUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -59,6 +61,9 @@
import org.apache.struts.config.FormBeanConfig;
import org.apache.struts.Globals;
+import static org.apache.beehive.netui.pageflow.internal.InternalConstants.*;
+
+
public class InternalUtils
implements PageFlowConstants
{
@@ -933,5 +938,60 @@
public static void setGlobalApp( GlobalApp ga, HttpServletRequest request )
{
request.getSession().setAttribute( GLOBALAPP_ATTR, ga );
+ }
+
+ public static void setFacesBackingBean( HttpServletRequest request,
ServletContext servletContext )
+ {
+ String relativeURI = PageFlowUtils.getRelativeURI( request,
InternalUtils.decodeURI( request ), null );
+ assert relativeURI.startsWith( "/" ) : relativeURI;
+ String backingClassName = FileUtils.stripFileExtension(
relativeURI.substring( 1 ).replace( '/', '.' ) );
+ Object currentBean = getFacesBackingBean( request );
+
+ if ( currentBean == null || ! currentBean.getClass().getName().equals(
backingClassName ) )
+ {
+ try
+ {
+ Class backingClass =
+ ContextCache.get( servletContext
).getReloadableClassHandler().loadClass( backingClassName, request );
+
+ if ( backingClass.getAnnotation( Jpf.FacesBacking.class ) !=
null )
+ {
+ request.getSession().setAttribute( FACES_BACKING_ATTR,
backingClass.newInstance() );
+ return;
+ }
+ else
+ {
+ if ( _log.isDebugEnabled() )
+ {
+ _log.debug( "Found matching backing class " +
backingClassName + "for request "
+ + request.getRequestURI() + ", but it does
not have the "
+ + Jpf.FacesBacking.class.getName() + "
annotation." );
+ }
+ }
+ }
+ catch ( ClassNotFoundException e )
+ {
+ if ( _log.isTraceEnabled() )
+ {
+ _log.trace( "No backing bean class found for request " +
request.getRequestURI() );
+ }
+ }
+ catch ( InstantiationException e )
+ {
+ _log.error( "Could not create backing bean instance of " +
backingClassName, e );
+ }
+ catch ( IllegalAccessException e )
+ {
+ _log.error( "Could not create backing bean instance of " +
backingClassName, e );
+ }
+
+ request.getSession().removeAttribute( FACES_BACKING_ATTR );
+ }
+ }
+
+ public static Object getFacesBackingBean( HttpServletRequest request )
+ {
+ HttpSession session = request.getSession( false );
+ return session != null ? session.getAttribute( FACES_BACKING_ATTR ) :
null;
}
}
Modified:
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/FileUtils.java
==============================================================================
---
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/FileUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/FileUtils.java
Fri Aug 13 08:58:42 2004
@@ -85,8 +85,13 @@
public static String getFileExtension( String filename )
{
int lastDot = filename.lastIndexOf( '.' );
-
- return ( lastDot != -1 ? filename.substring( lastDot + 1 ) : "" );
+ return lastDot != -1 ? filename.substring( lastDot + 1 ) : "";
+ }
+
+ public static String stripFileExtension( String filename )
+ {
+ int lastDot = filename.lastIndexOf( '.' );
+ return lastDot != -1 ? filename.substring( 0, lastDot ) : filename;
}
/**
Modified: incubator/beehive/trunk/netui/test/webapps/jsf/build.xml
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/jsf/build.xml (original)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/build.xml Fri Aug 13
08:58:42 2004
@@ -28,6 +28,21 @@
<!-- -->
<!-- ================================================================ -->
<target name="build" description="Build webapp">
+ <fail unless="os.JSF_HOME" message="JSF_HOME must point to the
JavaServer Faces 1.1 Reference Implementation distribution."/>
+
+ <property name="webapp.dir" location="${app.dir}/jsf/${webapp.name}"/>
+ <property name="webinf.dir" value="${webapp.dir}/WEB-INF"/>
+ <copy todir="${webinf.dir}/lib" overwrite="true" failonerror="true">
+ <fileset dir="${os.JSF_HOME}/lib">
+ <include name="*.jar"/>
+ </fileset>
+ </copy>
+ <copy todir="${webinf.dir}" overwrite="true" failonerror="true">
+ <fileset dir="${os.JSF_HOME}/lib">
+ <include name="*.tld"/>
+ </fileset>
+ </copy>
+
<ant antfile="${test.dir}/ant/buildWebapp.xml" target="deploy.netui"
inheritAll="false">
<property name="webapp.dir"
location="${app.dir}/jsf/${webapp.name}"/>
<property name="include.testrecorder" value="true"/>
@@ -64,6 +79,7 @@
<ant antfile="${test.dir}/ant/testRecorder.xml"
target="suite.callback" inheritAll="false">
<property name="testRecorder.config.name"
value="${testRecorder.config.name}"/>
<property name="suite.name" value="drt"/>
+ <property name="waitfor.url"
value="http://localhost:8080/${webapp.name}"/>
</ant>
</target>
Added:
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/faces-config.xml
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/faces-config.xml
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,117 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!--
+ Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the following
+ conditions are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistribution in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ Neither the name of Sun Microsystems, Inc. or the names of
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ This software is provided "AS IS," without a warranty of any
+ kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
+ WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
+ EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
+ DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR
+ RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR
+ ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE
+ FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
+ SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
+ CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF
+ THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS
+ BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ You acknowledge that this software is not designed, licensed or
+ intended for use in the design, construction, operation or
+ maintenance of any nuclear facility.
+-->
+
+<!DOCTYPE faces-config PUBLIC
+ "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
+ "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
+
+<faces-config>
+
+ <application>
+ <locale-config>
+ <default-locale>en</default-locale>
+ <supported-locale>de</supported-locale>
+ <supported-locale>fr</supported-locale>
+ <supported-locale>es</supported-locale>
+ </locale-config>
+ </application>
+
+ <factory>
+
<application-factory>org.apache.beehive.netui.pageflow.faces.PageFlowApplicationFactory</application-factory>
+ </factory>
+
+ <navigation-rule>
+ <description>
+ The decision rule used by the NavigationHandler to
+ determine which view must be displayed after the
+ current view, greeting.jsp is processed.
+ </description>
+ <from-view-id>/greeting.jsp</from-view-id>
+ <navigation-case>
+ <description>
+ Indicates to the NavigationHandler that the response.jsp
+ view must be displayed if the Action referenced by a
+ UICommand component on the greeting.jsp view returns
+ the outcome "success".
+ </description>
+ <from-outcome>success</from-outcome>
+ <to-view-id>/response.jsp</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <navigation-rule>
+ <description>
+ The decision rules used by the NavigationHandler to
+ determine which view must be displayed after the
+ current view, response.jsp is processed.
+ </description>
+ <from-view-id>/response.jsp</from-view-id>
+ <navigation-case>
+ <description>
+ Indicates to the NavigationHandler that the greeting.jsp
+ view must be displayed if the Action referenced by a
+ UICommand component on the response.jsp view returns
+ the outcome "success".
+ </description>
+ <from-outcome>success</from-outcome>
+ <to-view-id>/greeting.jsp</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+
+ <managed-bean>
+ <description>
+ The "backing file" bean that backs up the guessNumber webapp
+ </description>
+ <managed-bean-name>UserNumberBean</managed-bean-name>
+ <managed-bean-class>guessNumber.UserNumberBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ <managed-property>
+ <property-name>minimum</property-name>
+ <property-class>int</property-class>
+ <value>0</value>
+ </managed-property>
+ <managed-property>
+ <property-name>maximum</property-name>
+ <property-class>int</property-class>
+ <value>10</value>
+ </managed-property>
+ </managed-bean>
+
+</faces-config>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/faces/facesSmoke/Backing.java
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/faces/facesSmoke/Backing.java
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/faces/facesSmoke/Backing.java
Fri Aug 13 08:58:42 2004
@@ -18,7 +18,7 @@
*/
package faces.facesSmoke;
-import com.bea.wlw.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.PageFlowController;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
Modified: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml
(original)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml
Fri Aug 13 08:58:42 2004
@@ -11,24 +11,27 @@
<param-value>true</param-value>
</context-param>
- <!--
+<!--
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
+-->
<context-param>
+ <param-name>com.sun.faces.validateXml</param-name>
+ <param-value>true</param-value>
<description>
Set this flag to true if you want the JavaServer Faces
Reference Implementation to validate the XML in your
faces-config.xml resources against the DTD. Default
value is false.
</description>
- <param-name>com.sun.faces.validateXml</param-name>
- <param-value>true</param-value>
</context-param>
<context-param>
+ <param-name>com.sun.faces.verifyObjects</param-name>
+ <param-value>true</param-value>
<description>
Set this flag to true if you want the JavaServer Faces
Reference Implementation to verify that all of the application
@@ -36,10 +39,7 @@
renderers, and validators) can be successfully created.
Default value is false.
</description>
- <param-name>com.sun.faces.verifyObjects</param-name>
- <param-value>true</param-value>
</context-param>
- -->
<!-- Test Recorder Filter -->
<filter>
@@ -47,7 +47,7 @@
<filter-class>org.apache.beehive.netui.tools.testrecorder.server.TestRecorderFilter</filter-class>
<init-param>
<param-name>webapp</param-name>
- <param-value>coreWeb</param-value>
+ <param-value>jsfWeb</param-value>
</init-param>
</filter>
@@ -56,21 +56,22 @@
<filter-class>org.apache.beehive.netui.pageflow.PageFlowJspFilter</filter-class>
</filter>
+<!--
<filter-mapping>
<filter-name>TestRecorderFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+-->
<filter-mapping>
<filter-name>PageFlowJspFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
+ <dispatcher>FORWARD</dispatcher>
</filter-mapping>
- <!--
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
- -->
<!-- Test Recorder Servlet (control channel) -->
<servlet>
@@ -150,13 +151,11 @@
</servlet-mapping>
<!-- Faces Servlet -->
- <!--
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
- -->
<!-- TestRecorder Control Servlet -->
<servlet-mapping>
@@ -169,11 +168,11 @@
request comes to the server for foo.faces, the container will
send the request to the FacesServlet, which will expect a
corresponding foo.jsp page to exist containing the content.
+ -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
- -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/dataStructure.jspf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/dataStructure.jspf
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,18 @@
+<%
+ class Info {
+ public String _test;
+ public String _href;
+ public String _description;
+ public String _coverage;
+
+ public Info(String test, String href, String description,
+ String coverage)
+ {
+ _test = test;
+ _href = href;
+ _description = description;
+ _coverage = coverage;
+ }
+ }
+%>
+
Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/error.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/error.jsp Fri Aug
13 08:58:42 2004
@@ -0,0 +1,18 @@
+<!--Generated by Weblogic Workshop-->
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="netui-tags-databinding.tld" prefix="netui-data"%>
+<%@ taglib uri="netui-tags-html.tld" prefix="netui"%>
+<%@ taglib uri="netui-tags-template.tld" prefix="netui-template"%>
+<netui-template:template templatePage="/resources/jsp/template.jsp">
+ <netui-template:setAttribute value="Error" name="title"/>
+ <netui-template:section name="bodySection">
+ <% response.setStatus( 200 ); %>
+ Internal Error:<br />
+ <span style="color:red;">
+ <netui:exceptions showMessage="true"
showStackTrace="false"></netui:exceptions>
+ <span><br>
+ <span style="color:gray;font-size:10pt;font-family:arial;">
+ <netui:exceptions showMessage="false"
showStackTrace="true"></netui:exceptions>
+ <span>
+ </netui-template:section>
+</netui-template:template>
Modified: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces.jsp
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces.jsp
(original)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces.jsp Fri Aug
13 08:58:42 2004
@@ -6,35 +6,35 @@
<%
TestDefinitions testDefs =
TestRecorderFilter.instance().getTestDefinitions();
Info[] _testList = {
- new Info("FacesSmokeAnchors",
"/coreWeb/faces/facesSmoke/Controller.jpf",
+ new Info("FacesSmokeAnchors", "/jsfWeb/faces/facesSmoke/Controller.jpf",
"Smoke test of the JSF Anchor.",
"JSF, commandLink"
),
- new Info("FacesSmokeBundle", "/coreWeb/faces/facesSmoke/Controller.jpf",
+ new Info("FacesSmokeBundle", "/jsfWeb/faces/facesSmoke/Controller.jpf",
"Smoke test of the JSF Bundle.",
"JSF, bundle"
),
- new Info("FacesSmokeConversions",
"/coreWeb/faces/facesSmoke/Controller.jpf",
+ new Info("FacesSmokeConversions",
"/jsfWeb/faces/facesSmoke/Controller.jpf",
"Smoke test of the JSF Conversions.",
"JSF, conversions"
),
- new Info("FacesSmokeDataTable",
"/coreWeb/faces/facesSmoke/Controller.jpf",
+ new Info("FacesSmokeDataTable",
"/jsfWeb/faces/facesSmoke/Controller.jpf",
"Smoke test of the JSF DataTable.",
"JSF, DataTable"
),
- new Info("FacesSmokeFormOne",
"/coreWeb/faces/facesSmoke/Controller.jpf",
+ new Info("FacesSmokeFormOne", "/jsfWeb/faces/facesSmoke/Controller.jpf",
"Smoke test of the JSF Form and controls.",
"JSF, Form"
),
- new Info("FacesSmokeFormTwo",
"/coreWeb/faces/facesSmoke/Controller.jpf",
+ new Info("FacesSmokeFormTwo", "/jsfWeb/faces/facesSmoke/Controller.jpf",
"Smoke test of the JSF Form and controls.",
"JSF, Form"
),
- new Info("FacesSmokeImage", "/coreWeb/faces/facesSmoke/Controller.jpf",
+ new Info("FacesSmokeImage", "/jsfWeb/faces/facesSmoke/Controller.jpf",
"Smoke test of the JSF Image.",
"JSF, GraphicImage"
),
- new Info("FacesSmokePanel", "/coreWeb/faces/facesSmoke/Controller.jpf",
+ new Info("FacesSmokePanel", "/jsfWeb/faces/facesSmoke/Controller.jpf",
"Smoke test of the JSF Panel.",
"JSF, PanelGrid"
),
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces/facesSmoke/Controller.jpf
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces/facesSmoke/Controller.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces/facesSmoke/Controller.jpf
Fri Aug 13 08:58:42 2004
@@ -13,316 +13,7 @@
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpSession;
-/**
- * This is the default controller for a blank web application.
- *
- * @jpf:controller
- * @jpf:view-properties view-properties::
- * <!-- This data is auto-generated. Hand-editing this section is not
recommended. -->
- * <view-properties>
- * <pageflow-object id="formbean:FormOne"/>
- * <pageflow-object id="formbean:FormTwo"/>
- * <pageflow-object id="formbean:ListBean"/>
- * <pageflow-object id="action:begin.do">
- * <property value="80" name="x"/>
- * <property value="100" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:begin.do@">
- * <property value="116,130,130,144" name="elbowsX"/>
- * <property value="92,92,92,92" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="index" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:goPanels.do">
- * <property value="80" name="x"/>
- * <property value="200" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:goPanels.do@">
- * <property value="116,130,130,144" name="elbowsX"/>
- * <property value="192,192,192,192" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:goImages.do">
- * <property value="80" name="x"/>
- * <property value="280" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:goImages.do@">
- * <property value="116,130,130,144" name="elbowsX"/>
- * <property value="272,272,272,272" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:goAnchors.do">
- * <property value="80" name="x"/>
- * <property value="360" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:goAnchors.do@">
- * <property value="116,130,130,144" name="elbowsX"/>
- * <property value="352,352,352,352" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:goConvert.do">
- * <property value="400" name="x"/>
- * <property value="100" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:goConvert.do@">
- * <property value="436,460,460,484" name="elbowsX"/>
- * <property value="92,92,92,92" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:goFormOne.do">
- * <property value="400" name="x"/>
- * <property value="200" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:goFormOne.do@">
- * <property value="436,460,460,484" name="elbowsX"/>
- * <property value="192,192,192,192" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:goBundle.do">
- * <property value="400" name="x"/>
- * <property value="280" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:goBundle.do@">
- * <property value="436,460,460,484" name="elbowsX"/>
- * <property value="272,272,272,272" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:goFormTwo.do">
- * <property value="400" name="x"/>
- * <property value="360" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:goFormTwo.do@">
- * <property value="436,460,460,484" name="elbowsX"/>
- * <property value="352,352,352,352" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="action:goDataTable.do">
- * <property value="400" name="x"/>
- * <property value="440" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:goDataTable.do@">
- * <property value="436,460,460,484" name="elbowsX"/>
- * <property value="432,432,432,432" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="page:index.faces">
- * <property value="180" name="x"/>
- * <property value="100" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:Panels.faces">
- * <property value="180" name="x"/>
- * <property value="200" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:Image.faces">
- * <property value="180" name="x"/>
- * <property value="280" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:Anchors.faces">
- * <property value="180" name="x"/>
- * <property value="360" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:Convert.faces">
- * <property value="520" name="x"/>
- * <property value="100" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:FormOne.faces">
- * <property value="520" name="x"/>
- * <property value="200" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:Bundle.faces">
- * <property value="520" name="x"/>
- * <property value="280" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:FormTwo.faces">
- * <property value="520" name="x"/>
- * <property value="360" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:DataTable.faces">
- * <property value="520" name="x"/>
- * <property value="440" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:facesTemplate.faces">
- * <property value="80" name="x"/>
- * <property value="520" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="page:testPage.faces">
- * <property value="80" name="x"/>
- * <property value="460" name="y"/>
- * </pageflow-object>
- * </view-properties>
- * ::
- */
[EMAIL PROTECTED](
- )
[EMAIL PROTECTED](
- value = {
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- "<pageflow-object id='formbean:FormOne'/>",
- "<pageflow-object id='formbean:FormTwo'/>",
- "<pageflow-object id='formbean:ListBean'/>",
- "<pageflow-object id='action:begin.do'>",
- " <property value='80' name='x'/>",
- " <property value='100' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'>",
- " <property value='116,130,130,144' name='elbowsX'/>",
- " <property value='92,92,92,92' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='index' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goPanels.do'>",
- " <property value='80' name='x'/>",
- " <property value='200' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:goPanels.do@'>",
- " <property value='116,130,130,144' name='elbowsX'/>",
- " <property value='192,192,192,192' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goImages.do'>",
- " <property value='80' name='x'/>",
- " <property value='280' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:goImages.do@'>",
- " <property value='116,130,130,144' name='elbowsX'/>",
- " <property value='272,272,272,272' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goAnchors.do'>",
- " <property value='80' name='x'/>",
- " <property value='360' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:goAnchors.do@'>",
- " <property value='116,130,130,144' name='elbowsX'/>",
- " <property value='352,352,352,352' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goConvert.do'>",
- " <property value='400' name='x'/>",
- " <property value='100' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:goConvert.do@'>",
- " <property value='436,460,460,484' name='elbowsX'/>",
- " <property value='92,92,92,92' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goFormOne.do'>",
- " <property value='400' name='x'/>",
- " <property value='200' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:goFormOne.do@'>",
- " <property value='436,460,460,484' name='elbowsX'/>",
- " <property value='192,192,192,192' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goBundle.do'>",
- " <property value='400' name='x'/>",
- " <property value='280' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:goBundle.do@'>",
- " <property value='436,460,460,484' name='elbowsX'/>",
- " <property value='272,272,272,272' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goFormTwo.do'>",
- " <property value='400' name='x'/>",
- " <property value='360' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:goFormTwo.do@'>",
- " <property value='436,460,460,484' name='elbowsX'/>",
- " <property value='352,352,352,352' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goDataTable.do'>",
- " <property value='400' name='x'/>",
- " <property value='440' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:goDataTable.do@'>",
- " <property value='436,460,460,484' name='elbowsX'/>",
- " <property value='432,432,432,432' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:index.faces'>",
- " <property value='180' name='x'/>",
- " <property value='100' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:Panels.faces'>",
- " <property value='180' name='x'/>",
- " <property value='200' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:Image.faces'>",
- " <property value='180' name='x'/>",
- " <property value='280' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:Anchors.faces'>",
- " <property value='180' name='x'/>",
- " <property value='360' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:Convert.faces'>",
- " <property value='520' name='x'/>",
- " <property value='100' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:FormOne.faces'>",
- " <property value='520' name='x'/>",
- " <property value='200' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:Bundle.faces'>",
- " <property value='520' name='x'/>",
- " <property value='280' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:FormTwo.faces'>",
- " <property value='520' name='x'/>",
- " <property value='360' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:DataTable.faces'>",
- " <property value='520' name='x'/>",
- " <property value='440' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:facesTemplate.faces'>",
- " <property value='80' name='x'/>",
- " <property value='520' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:testPage.faces'>",
- " <property value='80' name='x'/>",
- " <property value='460' name='y'/>",
- "</pageflow-object>",
- "</view-properties>"
- })
[EMAIL PROTECTED]
public class Controller extends PageFlowController
{
private Date _date;
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces/facesSmoke/index.jsp
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces/facesSmoke/index.jsp
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/faces/facesSmoke/index.jsp
Fri Aug 13 08:58:42 2004
@@ -1,6 +1,7 @@
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+
<html>
<head>
<title>CustomRenderer - Test Web</title>
@@ -44,4 +45,4 @@
</body>
</html>
-
\ No newline at end of file
+
Copied: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/index.jsp
(from rev 36304,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/index.jsp)
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/index/index.jsp
(original)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/index.jsp
Fri Aug 13 08:58:42 2004
@@ -54,12 +54,12 @@
<netui-data:repeaterHeader><table border='1px'
cellspacing='0'></netui-data:repeaterHeader>
<netui-data:repeaterItem>
<tr class="${pageFlow.rowStyle}">
- <td class="nameColumn"><netui:anchor
href="/coreWeb/testRecorder?mode=displayLink">${container.item.name}
+ <td class="nameColumn"><netui:anchor
href="/jsfWeb/testRecorder?mode=displayLink">${container.item.name}
<netui:parameter name="file" value="${container.item.name}"/>
</netui:anchor></td>
<td class="diffColumn">
<c:if test="${container.item.diff == true}">
- <netui:anchor href="/coreWeb/testRecorder?mode=diff">Diff
+ <netui:anchor href="/jsfWeb/testRecorder?mode=diff">Diff
<netui:parameter name="file"
value="${container.item.name}"/>
</netui:anchor>
</c:if>
@@ -67,7 +67,7 @@
</td>
<td class="descrColumn">${container.item.description}
</td>
- <td class="detailColumn"><netui:anchor
href="/coreWeb/testRecorder?mode=details">Details
+ <td class="detailColumn"><netui:anchor
href="/jsfWeb/testRecorder?mode=details">Details
<netui:parameter name="file" value="${container.item.name}"/>
</netui:anchor></td>
</tr>
Added:
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/JpfFacesController.jpf
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/JpfFacesController.jpf
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,54 @@
+package jpfFaces;
+
+import org.apache.beehive.netui.pageflow.*;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
[EMAIL PROTECTED]
+public class JpfFacesController extends PageFlowController
+{
+ public static class BarForm extends FormData
+ {
+ private String _bar;
+
+ public void setBar( String bar )
+ {
+ _bar = bar;
+ }
+
+ public String getBar()
+ {
+ return _bar;
+ }
+ }
+
+ @Jpf.Action([EMAIL PROTECTED](name="page1", path="page1.faces"))
+ public Forward begin()
+ {
+ return new Forward( "page1" );
+ }
+
+ @Jpf.Action([EMAIL PROTECTED](name="page1", path="page1.faces"))
+ public Forward go1()
+ {
+ return new Forward( "page1" );
+ }
+
+ @Jpf.Action([EMAIL PROTECTED](name="page2", path="page2.faces"))
+ public Forward go2( BarForm form )
+ {
+ getRequest().setAttribute( "message", "got form; bar was '" +
form.getBar() + "'" );
+ return new Forward( "page2" );
+ }
+
+ @Jpf.Action([EMAIL PROTECTED](name="page3", path="page3.faces"))
+ public Forward go3()
+ {
+ return new Forward( "page3" );
+ }
+
+ @Jpf.Action([EMAIL PROTECTED](name="page4", path="page4.faces"))
+ public Forward go4()
+ {
+ return new Forward( "page4" );
+ }
+}
Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page1.jsfb
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page1.jsfb
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,43 @@
+package jpfFaces;
+
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+
[EMAIL PROTECTED]
+public class page1
+{
+ public JpfFacesController.BarForm bar = new JpfFacesController.BarForm();
+ private String _foo;
+
+ public void setFoo( String foo )
+ {
+ _foo = foo;
+ }
+
+ public String getFoo()
+ {
+ return _foo;
+ }
+
+ @Jpf.CommandHandler(
+ raiseActions = {
+ @Jpf.RaiseAction( action="go2", outputFormBean="bar" )
+ }
+ )
+ public String commandHandler2()
+ {
+ if ( "stay".equals( _foo ) ) return null;
+ bar.setBar( _foo );
+ return "go2";
+ }
+
+ @Jpf.CommandHandler(
+ raiseActions = {
+ @Jpf.RaiseAction( action="go3" )
+ }
+ )
+ public String commandHandler3()
+ {
+ return "go3";
+ }
+}
Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page1.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page1.jsp
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,20 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+
+<html>
+ <head> <title>Page Flow / JSF</title> </head>
+ <body bgcolor="white">
+ <h3>Page Flow / JSF: page 1</h3>
+ <f:view>
+ <h:form id="go2form">
+ <h:inputText id="foo" value="#{backing.foo}"/>
+ <br/>
+ <h:commandLink id="go2button" action="#{backing.commandHandler2}"
value="go to page2 (pass a form)" />
+ - type "stay" to make the CommandHandler return null
+ <br/>
+ <h:commandLink id="go3button" action="#{backing.commandHandler3}"
value="go to page3 (no form)" />
+ <br/>
+ <h:commandLink id="go4button" action="go4" value="go to page4 (no
CommandHandler)" />
+ </h:form>
+ </f:view>
+</HTML>
Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page2.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page2.jsp
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,16 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+
+<html>
+ <head> <title>Page Flow / JSF</title> </head>
+ <body bgcolor="white">
+ <h3>Page Flow / JSF: page 2</h3>
+ <f:view>
+ Message from page flow: <i><h:outputText id="msg"
value="#{requestScope.message}"/></i>
+ <br/>
+
+ <h:form id="go1form" >
+ <h:commandButton id="go1button" action="go1" value="back to page
1" />
+ </h:form>
+ </f:view>
+</HTML>
Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page3.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page3.jsp
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,13 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+
+<html>
+ <head> <title>Page Flow / JSF</title> </head>
+ <body bgcolor="white">
+ <h3>Page Flow / JSF: page 3</h3>
+ <f:view>
+ <h:form id="go1form" >
+ <h:commandButton id="go1button" action="go1" value="back to page
1" />
+ </h:form>
+ </f:view>
+</HTML>
Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page4.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/jpfFaces/page4.jsp
Fri Aug 13 08:58:42 2004
@@ -0,0 +1,13 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+
+<html>
+ <head> <title>Page Flow / JSF</title> </head>
+ <body bgcolor="white">
+ <h3>Page Flow / JSF: page 4</h3>
+ <f:view>
+ <h:form id="go1form" >
+ <h:commandButton id="go1button" action="go1" value="back to page
1" />
+ </h:form>
+ </f:view>
+</HTML>
Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/page.jspf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/page.jspf Fri Aug
13 08:58:42 2004
@@ -0,0 +1,95 @@
+<%@ page
import="org.apache.beehive.netui.tools.testrecorder.shared.config.TestDefinition,
+ java.net.URL,
+ java.io.File"%>
+<html>
+<head>
+ <title>NetUI V2 BVT - <%= _title %></title>
+ <link rel="stylesheet" href="<%=
((HttpServletRequest)pageContext.getRequest()).getContextPath()
%>/site/style.css">
+</head>
+<body topmargin="0" leftmargin="0" marginwidth="10" marginheight="10">
+<table class="header" width="100%">
+<tr>
+<td width="200" style="padding:4,0,0,4">
+ <img src="<%=
((HttpServletRequest)pageContext.getRequest()).getContextPath()
%>/images/godzilla.gif" height="66" width="48"/>
+</td><td valign="top">
+<h1 class="title">NetUI Tests - <%= _title %></h1>
+</td></tr>
+<tr><td colspan="2">
+<hr />
+</td></tr>
+<td valign="top">
+<b>Core Tests<b><br>
+<a href="/coreWeb/index.jsp">Core PageFlow Tests – v1</a><br>
+<a href="/coreWeb/coreTests.jsp">Core PageFlow Tests – v2</a><br>
+<a href="/coreWeb/bvtTests2.jsp">Bug Verification Tests – cr</a><br>
+<a href="/coreWeb/bvtTests.jsp">Bug Verification Tests – b</a><br>
+<a href="/coreWeb/databindingTests.jsp">Databinding – General
Tests</a></br>
+<a href="/coreWeb/gridTests.jsp">DataBinding – Grid Tests</a><br>
+<a href="/coreWeb/errorTests.jsp">Error Tests</a><br>
+<a href="/coreWeb/mockPortalTests.jsp">Mock Portal Tests</a></br>
+<a href="/coreWeb/tagTests.jsp">Tag – General Tests</a><br>
+<a href="/coreWeb/treeTests.jsp">Tag – Tree Tests</a><br>
+<a href="/coreWeb/templateTests.jsp">Tag – Template Tests</a></br>
+<a href="xhtml./coreWeb/jsp">Tag – XHTML Tests</a><br>
+<hr>
+<b>Optional Tests</b></br>
+<a href="faces.jsp">Faces Tests</a><br>
+<hr />
+<a href="#Bottom">Goto Bottom</a></br>
+</td><td valign='top'>
+<span style="background-color:white">
+<!-- Errors Table -->
+
+<table border="1" width="100%" cellspacing="0">
+<tr><th>DRT</th>
+ <th>Details</th>
+ <th>Diff</th>
+ <th>Description</th>
+ <th>Coverage</th>
+</tr>
+<%
+ for (int i=0;i<_testList.length;i++) {
+%>
+<tr>
+ <td width="100pt"><a href="<%= _testList[i]._href %>"><%= _testList[i]._test
%></a></td>
+ <td width="60pt" align="center"><a href="<%=
((HttpServletRequest)pageContext.getRequest()).getContextPath()
%>/testRecorder?mode=details&file=<%= _testList[i]._test %>">Details</a></td>
+ <td width="100pt" align="center">
+<%
+ TestDefinition def = testDefs.getTest( _testList[i]._test );
+ if ( def == null ) {
+%>
+ <strong>Not Found: <%= _testList[i]._test %></strong>
+<%
+ }
+ else {
+ File file = new File( def.getResultDiffFilePath() );
+ if ( file.exists() ) {
+ %>
+ <a href="/netuiDRT/testRecorder?mode=diff&file=<%= def.getName()
%>">Diff</a>
+ <%
+ }
+ else {
+ %>
+
+ <%
+ }
+ }
+ %>
+ </td>
+ <td width="400pt"><%= _testList[i]._description %></td>
+ <td><%= _testList[i]._coverage %></td>
+</tr>
+
+<%
+ }
+%>
+<!-- The end of the Errors table-->
+</table>
+
+</table>
+</span>
+</td></tr>
+</table>
+<a name="Bottom">
+</body>
+</html>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-config.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-config.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-config.xml
Fri Aug 13 08:58:42 2004
@@ -6,8 +6,9 @@
<suffix>jspx</suffix>
<suffix>do</suffix>
<suffix>jpf</suffix>
+ <suffix>faces</suffix>
<suffix></suffix>
</suffixList>
<servletURI>testRecorder</servletURI>
<baseDirectory>@BASE_DIR@</baseDirectory>
-</config>
\ No newline at end of file
+</config>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeAnchors.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeAnchors.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeAnchors.xml
Fri Aug 13 08:58:42 2004
@@ -17,7 +17,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/Controller.jpf</uri>
+ <uri>/jsfWeb/faces/facesSmoke/Controller.jpf</uri>
<method>GET</method>
<parameters>
@@ -93,7 +93,7 @@
</head>
<body style="border: 1px dotted;">
- <form id="pageForm" method="post"
action="/coreWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="pageForm" method="post"
action="/jsfWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
@@ -169,6 +169,7 @@
</table>
<input type="hidden" name="com.sun.faces.VIEW"
value="rO0ABXNyACBjb20uc3VuLmZhY2VzLnV0aWwuVHJlZVN0cnVjdHVyZRRmG0QclWAgAgAETAAIY2hpbGRyZW50ABVMamF2YS91dGlsL0FycmF5TGlzdDtMAAljbGFzc05hbWV0ABJMamF2YS9sYW5nL1N0cmluZztMAAZmYWNldHN0ABNMamF2YS91dGlsL0hhc2hNYXA7TAACaWRxAH4AAnhwc3IAE2phdmEudXRpbC5BcnJheUxpc3R4gdIdmcdhnQMAAUkABHNpemV4cAAAAAF3BAAAAApzcQB+AABzcQB+AAUAAAACdwQAAAAKc3EAfgAAc3EAfgAFAAAAAXcEAAAACnNxAH4AAHB0AClqYXZheC5mYWNlcy5jb21wb25lbnQuaHRtbC5IdG1sT3V0cHV0VGV4dHB0AARfaWQxeHQAKGphdmF4LmZhY2VzLmNvbXBvbmVudC5odG1sLkh0bWxQYW5lbEdyaWRwdAAEX2lkMHNxAH4AAHNxAH4ABQAAABB3BAAAABBzcQB+AABzcQB+AAUAAAABdwQAAAAKc3EAfgAAcHEAfgAMcHQABF9pZDR4dAApamF2YXguZmFjZXMuY29tcG9uZW50Lmh0bWwuSHRtbE91dHB1dExpbmtwdAAEX2lkM3NxAH4AAHBxAH4ADHB0AARfaWQ1c3EAfgAAc3EAfgAFAAAAAXcEAAAACnNxAH4AAHBxAH4ADHB0AARfaWQ3eHEAfgAWcHQABF9pZDZzcQB+AABwcQB+AAxwdAAEX2lkOHNxAH4AAHNxAH4ABQAAAAF3BAAAAApzcQB+AABwcQB+AAxwdAAFX2lkMTB4cQB+ABZwdAAEX2lkOXNxAH4AAHBxAH4ADHB0AAVfaWQxMXNxAH4AAHNxAH4ABQAAAAF3BAAAAApzcQB+AABwcQB+AAxwdAAFX2lkMTN4cQB+ABZwdAAFX2lkMTJzcQB+AABwcQB+AAxwdAAFX2lkMTRzcQB+AABzcQB+AAUAAAABdwQAAAAKc3EAfgAAcHEAfgAMcHQABV9pZDE2eHEAfgAWcHQABV9pZDE1c3EAfgAAcHEAfgAMcHQABV9pZDE3c3EAfgAAc3EAfgAFAAAAAXcEAAAACnNxAH4AAHBxAH4ADHB0AAVfaWQxOXhxAH4AFnB0AAVfaWQxOHNxAH4AAHBxAH4ADHB0AAVfaWQyMHNxAH4AAHNxAH4ABQAAAAF3BAAAAApzcQB+AABwcQB+AAxwdAAFX2lkMjJ4cQB+ABZwdAAFX2lkMjFzcQB+AABwcQB+AAxwdAAFX2lkMjNzcQB+AABzcQB+AAUAAAABdwQAAAAKc3EAfgAAcHEAfgAMcHQABV9pZDI1eHEAfgAWcHQABV9pZDI0c3EAfgAAcHEAfgAMcHQABV9pZDI2eHEAfgAOcHQABF9pZDJ4dAAjamF2YXguZmFjZXMuY29tcG9uZW50Lmh0bWwuSHRtbEZvcm1wdAAIcGFnZUZvcm14dAAgamF2YXguZmFjZXMuY29tcG9uZW50LlVJVmlld1Jvb3RwcHVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAJ1cQB+AE8AAAAEdXEAfgBPAAAACHNyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAAAABdAAkamF2YXguZmFjZXMud2ViYXBwLkNVUlJFTlRfVklFV19ST09UcQB+AFV4cHBwc3IAEWphdmEubGFuZy5Cb29sZWFuzSBygNWc+u4CAAFaAAV2YWx1ZXhwAXNxAH4AVgBwcHQACkhUTUxfQkFTSUN0ABsvZmFjZXMvZmFjZXNTbW9rZS9pbmRleC5qc3BzcgAQamF2YS51dGlsLkxvY2FsZX74EWCcMPnsAgAESQAIaGFzaGNvZGVMAAdjb3VudHJ5cQB+AAJMAAhsYW5ndWFnZXEAfgACTAAHdmFyaWFudHEAfgACeHD/////dAACVVN0AAJlbnQAAHVxAH4ATwAAAAF1cQB+AE8AAAACdXEAfgBPAAAAFnVxAH4ATwAAAAhzcQB+AFM/QAAAAAAADHcIAAAAEAAAAAF0ACBqYXZheC5mYWNlcy53ZWJhcHAuQ09NUE9ORU5UX0lEU3NxAH4ABQAAAAJ3BAAAAApxAH4AD3EAfgBLeHhwdAAIcGFnZUZvcm1xAH4ATXEAfgBXcQB+AFh0ABBqYXZheC5mYWNlcy5Gb3JtcHBwcHQAIWFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZHBwcHBwcHBwcHBwcHBwcHBwdXEAfgBPAAAAAnVxAH4ATwAAAAJ1cQB+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"
/>
+
<input type="hidden" name="pageForm" value="pageForm" /></form>
</body>
@@ -190,7 +191,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/goAnchors.do</uri>
+ <uri>/jsfWeb/faces/facesSmoke/goAnchors.do</uri>
<method>GET</method>
<parameters>
@@ -266,7 +267,7 @@
</head>
<body>
- <form id="formBase" method="post"
action="/coreWeb/faces/facesSmoke/Anchors.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="formBase" method="post"
action="/jsfWeb/faces/facesSmoke/Anchors.faces"
enctype="application/x-www-form-urlencoded">
@@ -376,4 +377,4 @@
<testCount>2</testCount>
<passedCount>0</passedCount>
<failedCount>2</failedCount>
-</recorderSession>
\ No newline at end of file
+</recorderSession>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeBundle.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeBundle.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeBundle.xml
Fri Aug 13 08:58:42 2004
@@ -17,7 +17,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/Controller.jpf</uri>
+ <uri>/jsfWeb/faces/facesSmoke/Controller.jpf</uri>
<method>GET</method>
<parameters>
@@ -93,7 +93,7 @@
</head>
<body style="border: 1px dotted;">
- <form id="pageForm" method="post"
action="/coreWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="pageForm" method="post"
action="/jsfWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
@@ -190,7 +190,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/goBundle.do</uri>
+ <uri>/jsfWeb/faces/facesSmoke/goBundle.do</uri>
<method>GET</method>
<parameters>
@@ -267,7 +267,7 @@
<body>
- <form id="_id0" method="post"
action="/coreWeb/faces/facesSmoke/Bundle.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="_id0" method="post"
action="/jsfWeb/faces/facesSmoke/Bundle.faces"
enctype="application/x-www-form-urlencoded">
@@ -326,4 +326,4 @@
<testCount>2</testCount>
<passedCount>0</passedCount>
<failedCount>2</failedCount>
-</recorderSession>
\ No newline at end of file
+</recorderSession>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeConversions.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeConversions.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeConversions.xml
Fri Aug 13 08:58:42 2004
@@ -17,7 +17,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/Controller.jpf</uri>
+ <uri>/jsfWeb/faces/facesSmoke/Controller.jpf</uri>
<method>GET</method>
<parameters>
@@ -93,7 +93,7 @@
</head>
<body style="border: 1px dotted;">
- <form id="pageForm" method="post"
action="/coreWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="pageForm" method="post"
action="/jsfWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
@@ -190,7 +190,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/goConvert.do</uri>
+ <uri>/jsfWeb/faces/facesSmoke/goConvert.do</uri>
<method>GET</method>
<parameters>
@@ -266,7 +266,7 @@
</head>
<body>
- <form id="_id0" method="post"
action="/coreWeb/faces/facesSmoke/Convert.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="_id0" method="post"
action="/jsfWeb/faces/facesSmoke/Convert.faces"
enctype="application/x-www-form-urlencoded">
@@ -341,4 +341,4 @@
<testCount>2</testCount>
<passedCount>0</passedCount>
<failedCount>2</failedCount>
-</recorderSession>
\ No newline at end of file
+</recorderSession>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeDataTable.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeDataTable.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeDataTable.xml
Fri Aug 13 08:58:42 2004
@@ -17,7 +17,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/Controller.jpf</uri>
+ <uri>/jsfWeb/faces/facesSmoke/Controller.jpf</uri>
<method>GET</method>
<parameters>
@@ -93,7 +93,7 @@
</head>
<body style="border: 1px dotted;">
- <form id="pageForm" method="post"
action="/coreWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="pageForm" method="post"
action="/jsfWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
@@ -190,7 +190,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/goDataTable.do</uri>
+ <uri>/jsfWeb/faces/facesSmoke/goDataTable.do</uri>
<method>GET</method>
<parameters>
@@ -266,7 +266,7 @@
</head>
<body>
- <form id="_id0" method="post"
action="/coreWeb/faces/facesSmoke/DataTable.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="_id0" method="post"
action="/jsfWeb/faces/facesSmoke/DataTable.faces"
enctype="application/x-www-form-urlencoded">
@@ -367,4 +367,4 @@
<testCount>2</testCount>
<passedCount>0</passedCount>
<failedCount>2</failedCount>
-</recorderSession>
\ No newline at end of file
+</recorderSession>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeFormOne.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeFormOne.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeFormOne.xml
Fri Aug 13 08:58:42 2004
@@ -17,7 +17,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/Controller.jpf</uri>
+ <uri>/jsfWeb/faces/facesSmoke/Controller.jpf</uri>
<method>GET</method>
<parameters>
@@ -93,7 +93,7 @@
</head>
<body style="border: 1px dotted;">
- <form id="pageForm" method="post"
action="/coreWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="pageForm" method="post"
action="/jsfWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
@@ -190,7 +190,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/goFormOne.do</uri>
+ <uri>/jsfWeb/faces/facesSmoke/goFormOne.do</uri>
<method>GET</method>
<parameters>
@@ -266,7 +266,7 @@
</head>
<body>
- <form id="_id0" method="post"
action="/coreWeb/faces/facesSmoke/FormOne.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="_id0" method="post"
action="/jsfWeb/faces/facesSmoke/FormOne.faces"
enctype="application/x-www-form-urlencoded">
@@ -364,4 +364,4 @@
<testCount>2</testCount>
<passedCount>0</passedCount>
<failedCount>2</failedCount>
-</recorderSession>
\ No newline at end of file
+</recorderSession>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeFormTwo.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeFormTwo.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeFormTwo.xml
Fri Aug 13 08:58:42 2004
@@ -17,7 +17,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/Controller.jpf</uri>
+ <uri>/jsfWeb/faces/facesSmoke/Controller.jpf</uri>
<method>GET</method>
<parameters>
@@ -93,7 +93,7 @@
</head>
<body style="border: 1px dotted;">
- <form id="pageForm" method="post"
action="/coreWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="pageForm" method="post"
action="/jsfWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
@@ -190,7 +190,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/goFormTwo.do</uri>
+ <uri>/jsfWeb/faces/facesSmoke/goFormTwo.do</uri>
<method>GET</method>
<parameters>
@@ -266,7 +266,7 @@
</head>
<body>
- <form id="_id0" method="post"
action="/coreWeb/faces/facesSmoke/FormTwo.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="_id0" method="post"
action="/jsfWeb/faces/facesSmoke/FormTwo.faces"
enctype="application/x-www-form-urlencoded">
@@ -433,4 +433,4 @@
<testCount>2</testCount>
<passedCount>0</passedCount>
<failedCount>2</failedCount>
-</recorderSession>
\ No newline at end of file
+</recorderSession>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeImage.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeImage.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokeImage.xml
Fri Aug 13 08:58:42 2004
@@ -17,7 +17,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/Controller.jpf</uri>
+ <uri>/jsfWeb/faces/facesSmoke/Controller.jpf</uri>
<method>GET</method>
<parameters>
@@ -93,7 +93,7 @@
</head>
<body style="border: 1px dotted;">
- <form id="pageForm" method="post"
action="/coreWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="pageForm" method="post"
action="/jsfWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
@@ -190,7 +190,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/goImages.do</uri>
+ <uri>/jsfWeb/faces/facesSmoke/goImages.do</uri>
<method>GET</method>
<parameters>
@@ -266,7 +266,7 @@
</head>
<body>
- <form id="_id0" method="post"
action="/coreWeb/faces/facesSmoke/Image.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="_id0" method="post"
action="/jsfWeb/faces/facesSmoke/Image.faces"
enctype="application/x-www-form-urlencoded">
@@ -319,4 +319,4 @@
<testCount>2</testCount>
<passedCount>0</passedCount>
<failedCount>2</failedCount>
-</recorderSession>
\ No newline at end of file
+</recorderSession>
Modified:
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokePanel.xml
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokePanel.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/FacesSmokePanel.xml
Fri Aug 13 08:58:42 2004
@@ -17,7 +17,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/Controller.jpf</uri>
+ <uri>/jsfWeb/faces/facesSmoke/Controller.jpf</uri>
<method>GET</method>
<parameters>
@@ -93,7 +93,7 @@
</head>
<body style="border: 1px dotted;">
- <form id="pageForm" method="post"
action="/coreWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="pageForm" method="post"
action="/jsfWeb/faces/facesSmoke/index.faces"
enctype="application/x-www-form-urlencoded">
@@ -190,7 +190,7 @@
<protocolVersion>1.1</protocolVersion>
<host>localhost</host>
<port>7001</port>
- <uri>/coreWeb/faces/facesSmoke/goPanels.do</uri>
+ <uri>/jsfWeb/faces/facesSmoke/goPanels.do</uri>
<method>GET</method>
<parameters>
@@ -266,7 +266,7 @@
</head>
<body>
- <form id="_id0" method="post"
action="/coreWeb/faces/facesSmoke/Panels.faces"
enctype="application/x-www-form-urlencoded">
+ <form id="_id0" method="post"
action="/jsfWeb/faces/facesSmoke/Panels.faces"
enctype="application/x-www-form-urlencoded">
@@ -418,4 +418,4 @@
<testCount>2</testCount>
<passedCount>0</passedCount>
<failedCount>2</failedCount>
-</recorderSession>
\ No newline at end of file
+</recorderSession>
Modified: incubator/beehive/trunk/test/ant/buildWebapp.xml
==============================================================================
--- incubator/beehive/trunk/test/ant/buildWebapp.xml (original)
+++ incubator/beehive/trunk/test/ant/buildWebapp.xml Fri Aug 13 08:58:42 2004
@@ -99,7 +99,7 @@
<move todir="${webapp.dir}/global"
file="${webapp.dir}/WEB-INF/src/global/Global.app" failOnError="false"/>
<apt srcdir="${webapp.dir}" destdir="${webapp.dir}/WEB-INF/classes"
gendir="${webapp.dir}/WEB-INF/${tmp.sourcegen.dir}"
- classpathref="pageflow.build.classpath"
srcExtensions="*.app,*.jpf">
+ classpathref="pageflow.build.classpath"
srcExtensions="*.app,*.jpf,*.jsfb">
</apt>
<echo>TODO: when we move to subversion, get rid of the following hack
move of Global.app back into WEB-INF/src.</echo>
<move todir="${webapp.dir}/WEB-INF/src/global"
file="${webapp.dir}/global/Global.app" failOnError="false"/>