Author: rich
Date: Fri Dec 10 00:33:03 2004
New Revision: 111484
URL: http://svn.apache.org/viewcvs?view=rev&rev=111484
Log:
Rewrote Shared Flow support. A shared flow is an object that can provide
common actions, state and exception handlers to a page flow. It is declared in
a page flow's @Jpf.Controller annotation like this:
sharedFlowRefs={
@Jpf.SharedFlowRef(name="mySharedFlow",
type=foo.bar.MySharedFlow.class),
@Jpf.SharedFlowRef(name="anotherSharedFlow",
type=another.SharedFlow.class)
}
- Shared flow source files can exist in the webapp as ".jpfs" files, and
they can also exist as normal Java source files. Unlike page flows, they are
not web-addressable.
- When a page flow is hit, all its declared shared flows are created and
stored in the session.
- Raising an action on a shared flow is much like raising an action on a
page flow. It follows the pattern "<shared-flow-name>.<action-name>", e.g.,
<netui:anchor action="mySharedFlow.someAction">raise someAction on
mySharedFlow</netui:anchor>
- Binding to a property of a shared flow is also much like binding to a
property on a page flow. It follows the patternn
"sharedFlow.<shared-flow-name>.<property-name>", e.g.,
<netui:span value="${sharedFlow.mySharedFlow.someProperty}"/>
- Any unhandled exception raised during page flow action processing will be
handled by the first declared shared flow with an appropriate @Jpf.Catch
annotation. The shared flows are tried in order of declaration in the
'simpleActions' attribute of @Jpf.Controller.
- If a page flow wants to have a direct reference to any of its shared
flows, it simply declares a member variable annotated with @Jpf.SharedFlowField:
@Jpf.SharedFlowField(name="mySharedFlow")
foo.bar.MySharedFlow _mySharedFlow;
When the page flow is created, this field will be initialized with a
reference to the current instance of foo.bar.MySharedFlow.
- Shared flows can be retrieved and deleted explicitly through methods on
PageFlowUtils.
Finally, a quote from an ancient Shared Flow checkin:
"Philosophical question: Why not just depend on inheritance for these
features? The main reason is that most often the state for a shared flow needs
to be... shared, rather than duplicated across all page flows extending a
common base class. Shared flows have their own lifecycles, and can be managed
independently of the page flows that depend on them. Shared flows also avoid
stealing the single spot in the inheritance hierarchy, so that various page
flows using a single shared flow can extend the right base classes to provide
inherited behavior and state."
DRT/BVT: netui (WinXP)
BB: self (linux)
Added:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/SharedFlowRefGrammar.java
(contents, props changed)
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedSharedFlowRefInfo.java
(contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/global/Global.app
(contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/Controller.jpf
(contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow1/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow1/SharedFlow.jpfs
(contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow2/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow2/SharedFlow.jpfs
(contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/webappRoot/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/webappRoot/SharedFlow.jpfs
- copied, changed from r111151,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/SharedFlow.jpfs
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfSharedFlowActions.xml
(contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/SharedFlowExceptions.xml
(contents, props changed)
Removed:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/SharedFlow.jpfs
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfSharedFlow.xml
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/FlowControllerChecker.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerInfo.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/compiler/org/apache/beehive/netui/compiler/genmodel/GenSharedFlowStrutsApp.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CatchGrammar.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/EnumType.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/JavaIdentifierType.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/AbstractForwardContainer.java
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/GlobalApp.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowControllerConfig.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedFacesBackingInfo.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedPageFlowInfo.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java
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/util/URLRewriterService.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/common/ImplicitObjectUtil.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/el/NetUIUpdateVariableResolver.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/invoke/CallPageFlow.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/index.jsp
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/globalApp/nojpf/index.jsp
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Begin.jsp
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Controller.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/Controller.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/nested/Controller.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/lifecycle/Controller.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/AnyBeanReturnController.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/nested/NestedController.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfGlobalApp/Controller.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/returnToTest/returnToTestController.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/results/Begin.jsp
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/CellRepeaterError2.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfGlobalApp.xml
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/CompilerUtils.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/CompilerUtils.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/CompilerUtils.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/CompilerUtils.java&r2=111484
==============================================================================
---
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 Dec 10 00:33:03 2004
@@ -152,6 +152,12 @@
return value != null ? ( String ) value.getValue() : ( defaultIsNull ?
null : "" );
}
+ public static TypeMirror getTypeMirror( AnnotationMirror annotation,
String memberName, boolean defaultIsNull )
+ {
+ AnnotationValue value = getAnnotationValue( annotation, memberName,
defaultIsNull );
+ return value != null ? ( TypeMirror ) value.getValue() : null;
+ }
+
public static String getEnumFieldName( AnnotationMirror annotation, String
memberName, boolean defaultIsNull )
{
AnnotationValue value = getAnnotationValue( annotation, memberName,
defaultIsNull );
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerChecker.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerChecker.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerChecker.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerChecker.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerChecker.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerChecker.java
Fri Dec 10 00:33:03 2004
@@ -128,23 +128,82 @@
//
// Run additional .jpf- or .app-specific checks.
//
- File sourceFile = CompilerUtils.getOriginalFile( jclass );
doAdditionalClassChecks( jclass, getWebappRoot() );
+ //
+ // Runtime performance enhancement: enable saving of previous-page and
previous-action information based on
+ // whether there were Forwards that contained navigateTo attributes.
+ //
+ enableNavigateTo( jclass, _fcInfo );
+ Map< String, TypeDeclaration > sharedFlowTypes =
_fcInfo.getSharedFlowTypes();
+
+ if ( sharedFlowTypes != null )
+ {
+ for ( TypeDeclaration sharedFlowType : sharedFlowTypes.values() )
+ {
+ //
+ // Saving of previous-page/previous-action info must be
enabled if any of the referenced shared flows
+ // use this feature.
+ //
+ enableNavigateTo( sharedFlowType, _fcInfo );
+ }
+ }
+
endCheckClass( jclass );
_fcInfo.endBuild();
_checkResultMap.put(
JpfLanguageConstants.ExtraInfoKeys.flowControllerInfo, _fcInfo );
return _checkResultMap;
}
- protected void endCheckClass( ClassDeclaration jclass )
+ private static void enableNavigateTo( TypeDeclaration flowControllerClass,
FlowControllerInfo fcInfo )
{
-
//
- // Now do some rudimentary code analysis to catch unresolvable
forwards.
+ // Look through Forwards and SimpleActions in the Controller
annotation.
+ //
+ AnnotationMirror controllerAnn = CompilerUtils.getAnnotation(
flowControllerClass, CONTROLLER_TAG_NAME );
+ enableNavigateTo( controllerAnn, FORWARDS_ATTR, fcInfo );
+ enableNavigateTo( controllerAnn, SIMPLE_ACTIONS_ATTR, fcInfo );
+
+ //
+ // Look through Forwards on Action and ExceptionHandler methods.
//
- // @TODO enable when it's supported
- // checkActionMethodForwards( ( ILangNode ) first.getNode() );
+ Collection< MethodDeclaration > methods =
CompilerUtils.getClassMethods( flowControllerClass, null );
+ for ( MethodDeclaration method : methods )
+ {
+ AnnotationMirror ann = CompilerUtils.getAnnotation( method,
ACTION_TAG_NAME );
+ if ( ann == null ) ann = CompilerUtils.getAnnotation( method,
EXCEPTION_HANDLER_TAG_NAME );
+ if ( ann != null ) enableNavigateTo( ann, FORWARDS_ATTR, fcInfo );
+ }
+ }
+
+ private static void enableNavigateTo( AnnotationMirror ann, String
memberArrayName, FlowControllerInfo fcInfo )
+ {
+ List< AnnotationMirror > childAnnotations =
CompilerUtils.getAnnotationArray( ann, memberArrayName, true );
+
+ if ( childAnnotations != null )
+ {
+ for ( AnnotationMirror childAnnotation : childAnnotations )
+ {
+ String val = CompilerUtils.getEnumFieldName( childAnnotation,
NAVIGATE_TO_ATTR, true );
+
+ if ( val != null )
+ {
+ if ( val.equals( NAVIGATE_TO_CURRENT_PAGE_STR ) ||
val.equals( NAVIGATE_TO_PREVIOUS_PAGE_STR )
+ || val.equals( NAVIGATE_TO_PAGE_LEGACY_STR ) )
+ {
+ fcInfo.enableNavigateToPage();
+ }
+ else if ( val.equals( NAVIGATE_TO_PREVIOUS_ACTION_STR ) )
+ {
+ fcInfo.enableNavigateToAction();
+ }
+ }
+ }
+ }
+ }
+
+ protected void endCheckClass( ClassDeclaration jclass )
+ {
}
protected abstract GenStrutsApp createStrutsApp( File sourceFile,
ClassDeclaration jclass )
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerInfo.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerInfo.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerInfo.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerInfo.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerInfo.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/FlowControllerInfo.java
Fri Dec 10 00:33:03 2004
@@ -23,9 +23,9 @@
import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.io.File;
@@ -38,12 +38,14 @@
private boolean _nested = false;
private Set _returnActions = null;
private File _webappRoot = null;
- private List< TypeDeclaration > _sharedFlowTypeHierarchy;
- private List< String > _sharedFlowTypeNameHierarchy;
- private List< File > _sharedFlowFileHierarchy;
+ private Map< String, TypeDeclaration > _sharedFlowTypes;
+ private LinkedHashMap< String, String > _sharedFlowTypeNames;
+ private LinkedHashMap< String, File > _sharedFlowFiles;
private List< File > _referencedFiles = new ArrayList< File >();
private boolean _isBuilding = false;
private Map< String, String > _messageResourcesByKey = new HashMap<
String, String >();
+ private boolean _navigateToActionEnabled = false;
+ private boolean _navigateToPageEnabled = false;
public static class ActionInfo
@@ -120,7 +122,7 @@
void endBuild()
{
_isBuilding = false;
- _sharedFlowTypeHierarchy = null; // don't hang onto the
ClassDeclaration
+ _sharedFlowTypes = null; // don't hang onto ClassDeclarations
}
public ActionInfo[] getActions()
@@ -207,37 +209,31 @@
}
}
- public File getSharedFlowFile()
+ void setSharedFlowInfo( Map< String, TypeDeclaration > sharedFlowTypes )
{
- return _sharedFlowFileHierarchy != null &&
_sharedFlowFileHierarchy.size() > 0 ? _sharedFlowFileHierarchy.get( 0 ) : null;
- }
-
- void setSharedFlowInfo( List< TypeDeclaration > typeHierarchy, List< File
> fileHierarchy )
- {
- _sharedFlowTypeHierarchy = typeHierarchy;
- _sharedFlowFileHierarchy = fileHierarchy;
+ _sharedFlowTypes = sharedFlowTypes;
+ _sharedFlowTypeNames = new LinkedHashMap< String, String >();
+ _sharedFlowFiles = new LinkedHashMap< String, File >();
- if ( fileHierarchy != null )
+ for ( Map.Entry< String, TypeDeclaration > entry :
_sharedFlowTypes.entrySet() )
{
- _sharedFlowTypeNameHierarchy = new ArrayList< String >();
-
- for ( Iterator<TypeDeclaration> i = typeHierarchy.iterator();
i.hasNext(); )
- {
- TypeDeclaration sfType = i.next();
- _sharedFlowTypeNameHierarchy.add( sfType != null ?
sfType.getQualifiedName() : null );
- }
+ TypeDeclaration type = entry.getValue();
+ _sharedFlowTypeNames.put( entry.getKey(), type.getQualifiedName()
);
+ File file = type.getPosition().file();
+ _sharedFlowFiles.put( entry.getKey(), file );
+ _referencedFiles.add( file );
}
}
- public List<TypeDeclaration> getSharedFlowTypeHierarchy()
+ public Map< String, TypeDeclaration > getSharedFlowTypes()
{
- assert _isBuilding : "use getSharedFlowTypeNameHierarchy after check
phase";
- return _sharedFlowTypeHierarchy;
+ assert _isBuilding : "use getSharedFlowTypeNames after check phase";
+ return _sharedFlowTypes;
}
- public List< String > getSharedFlowTypeNameHierarchy()
+ public Map< String, String > getSharedFlowTypeNames()
{
- return _sharedFlowTypeNameHierarchy;
+ return _sharedFlowTypeNames;
}
public File getWebappRoot()
@@ -263,5 +259,30 @@
public String getControllerClassName()
{
return getClassName();
+ }
+
+ public Map< String, File > getSharedFlowFiles()
+ {
+ return _sharedFlowFiles;
+ }
+
+ public void enableNavigateToAction()
+ {
+ _navigateToActionEnabled = true;
+ }
+
+ public void enableNavigateToPage()
+ {
+ _navigateToPageEnabled = true;
+ }
+
+ public boolean isNavigateToActionEnabled()
+ {
+ return _navigateToActionEnabled;
+ }
+
+ public boolean isNavigateToPageEnabled()
+ {
+ return _navigateToPageEnabled;
}
}
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/JpfLanguageConstants.java&r2=111484
==============================================================================
---
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 Dec 10 00:33:03 2004
@@ -41,6 +41,8 @@
public static final String FACES_BACKING_TAG_NAME = "FacesBacking";
public static final String COMMAND_HANDLER_TAG_NAME = "CommandHandler";
public static final String RAISE_ACTION_TAG_NAME = "RaiseAction";
+ public static final String SHARED_FLOW_REF_TAG_NAME = "SharedFlowRef";
+ public static final String SHARED_FLOW_FIELD_TAG_NAME = "SharedFlowField";
public static final String VALIDATE_REQUIRED_TAG_NAME = "ValidateRequired";
public static final String VALIDATE_RANGE_TAG_NAME = "ValidateRange";
@@ -79,6 +81,7 @@
public static final String GLOBALAPP_BASE_CLASS = PAGEFLOW_PACKAGE +
".GlobalApp";
public static final String GLOBALAPP_PACKAGE = "global";
public static final String GLOBALAPP_CLASSNAME = "Global";
+ public static final String GLOBALAPP_SHARED_FLOW_NAME = "__global";
public static final String GLOBALAPP_FULL_CLASSNAME = GLOBALAPP_PACKAGE +
'.' + GLOBALAPP_CLASSNAME;
public static final String WEBINF_DIR_NAME = "WEB-INF";
public static final String WEBINF_SRC_PATH = '/' + WEBINF_DIR_NAME +
"/src";
@@ -155,6 +158,7 @@
public static final String ACTION_ATTR = "action";
public static final String RAISE_ACTIONS_ATTR = "raiseActions";
public static final String MULTIPART_HANDLER_ATTR = "multipartHandler";
+ public static final String SHARED_FLOW_REFS_ATTR = "sharedFlowRefs";
public static final String MIN_INT_ATTR = "minInt";
public static final String MAX_INT_ATTR = "maxInt";
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/PageFlowChecker.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/PageFlowChecker.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/PageFlowChecker.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/PageFlowChecker.java&r2=111484
==============================================================================
---
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 Dec 10 00:33:03 2004
@@ -30,12 +30,16 @@
import com.sun.mirror.declaration.AnnotationMirror;
import com.sun.mirror.declaration.MemberDeclaration;
import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
+import com.sun.mirror.declaration.FieldDeclaration;
+import com.sun.mirror.type.TypeMirror;
+import com.sun.mirror.type.DeclaredType;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.HashSet;
+import java.util.LinkedHashMap;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
@@ -44,7 +48,6 @@
public class PageFlowChecker
extends FlowControllerChecker
{
- private static final FilenameFilter SHARED_FLOW_FILE_FILTER = new
SharedFlowFileFilter();
private static final FilenameFilter JPF_FILE_FILTER = new JpfFileFilter();
@@ -61,87 +64,109 @@
}
}
- private static class SharedFlowFileFilter implements FilenameFilter
- {
- public boolean accept( File dir, String name )
- {
- return name.endsWith( SHARED_FLOW_FILE_EXTENSION_DOT ) ||
name.endsWith( JAVA_FILE_EXTENSION_DOT );
- }
- }
-
public BaseGenerator getGenerator()
{
return new PageFlowGenerator( getEnv(), getFlowControllerInfo() );
}
- protected void startCheckClass( ClassDeclaration jclass )
+ protected void checkField( FieldDeclaration field, TypeDeclaration jclass )
{
//
- // First, find the SharedFlow.jpfs file (or Global.app, for legacy
apps). Crawl up through the directories,
- // looking for SharedFlow.jpfs files. The first one found is the
applicable one.
+ // Check to make sure that if this is a Shared Flow field, its type
matches up with the type declared
+ // for the shared flow of that name.
//
- File jpfFile = CompilerUtils.getOriginalFile( jclass );
- List< File > sharedFlowFileHierarchy = new ArrayList< File >();
- List< TypeDeclaration > sharedFlowTypeHierarchy = new ArrayList<
TypeDeclaration >();
-
- String webappRootPath = getWebappRoot().getPath();
+ AnnotationMirror sfFieldAnn = CompilerUtils.getAnnotation( field,
SHARED_FLOW_FIELD_TAG_NAME );
- for ( File i = jpfFile.getAbsoluteFile().getParentFile(); i != null; i
= i.getParentFile() )
+ if ( sfFieldAnn != null )
{
- File[] sharedFlowFiles = i.listFiles( SHARED_FLOW_FILE_FILTER );
- boolean atWebappRoot = i.equals( getWebappRoot() );
-
- // HACK: apt doesn't like files whose pkg decl is inconsistent
with its directory location,
- // so when looking for a shared pageflow in the webapp root, we
additionally look in a special
- // subdir named "webappRoot". This should all go away when shared
pageflow usage is declared with
- // annotations.
- if ( atWebappRoot )
+ String sharedFlowName = CompilerUtils.getString( sfFieldAnn,
NAME_ATTR, true );
+ assert sharedFlowName != null;
+
+ List< AnnotationMirror > sharedFlowRefs =
+ CompilerUtils.getAnnotationArrayValue( jclass,
CONTROLLER_TAG_NAME, SHARED_FLOW_REFS_ATTR, true );
+
+ boolean foundOne = false;
+
+ if ( sharedFlowRefs != null )
{
- if ( sharedFlowFiles == null || sharedFlowFiles.length == 0 )
+ for ( AnnotationMirror sharedFlowRef : sharedFlowRefs )
{
- File specialRootPkg = new File( i, "webappRoot" );
- sharedFlowFiles = specialRootPkg.listFiles(
SHARED_FLOW_FILE_FILTER );
+ if ( sharedFlowName.equals( CompilerUtils.getString(
sharedFlowRef, NAME_ATTR, true ) ) )
+ {
+ foundOne = true;
+
+ TypeMirror sfType = CompilerUtils.getTypeMirror(
sharedFlowRef, TYPE_ATTR, true );
+ TypeMirror ft = field.getType();
+
+ if ( ! ( sfType instanceof DeclaredType )
+ || ! CompilerUtils.isAssignableFrom( ft, ( (
DeclaredType ) sfType ).getDeclaration() ) )
+ {
+ getDiagnostics().addError(
+ field, "error.field-not-assignable",
+ CompilerUtils.getDeclaration( (
DeclaredType ) sfType ).getQualifiedName() );
+ }
+ }
}
}
-
- if ( sharedFlowFiles != null && sharedFlowFiles.length > 0 )
+
+ if ( ! foundOne )
{
- File sfFile = sharedFlowFiles[0];
- TypeDeclaration sfType =
- atWebappRoot ?
- getEnv().getTypeDeclaration( WEBAPP_ROOT_PACKAGE + '.'
- +
CompilerUtils.removeFileExtension( sfFile.getName() ) ):
- CompilerUtils.inferTypeFromFile( sfFile,
webappRootPath, getEnv() );
+ getDiagnostics().addError( sfFieldAnn,
"error.no-matching-shared-flow-declared",
+ SHARED_FLOW_REF_TAG_NAME,
sharedFlowName );
+ }
+ }
+
+ super.checkField( field, jclass );
+ }
- if ( sfType != null && CompilerUtils.isAssignableFrom(
SHARED_FLOW_BASE_CLASS, sfType, getEnv() ) )
+ protected void startCheckClass( ClassDeclaration jclass )
+ {
+ //
+ // First, find all referenced Shared Flow types.
+ //
+ LinkedHashMap< String, TypeDeclaration > sharedFlowTypes = new
LinkedHashMap< String, TypeDeclaration >();
+
+ AnnotationMirror ann = CompilerUtils.getAnnotation( jclass,
CONTROLLER_TAG_NAME );
+ List< AnnotationMirror > sharedFlowRefs =
CompilerUtils.getAnnotationArray( ann, SHARED_FLOW_REFS_ATTR, true );
+
+ if ( sharedFlowRefs != null )
+ {
+ for ( AnnotationMirror sharedFlowRef : sharedFlowRefs )
+ {
+ String name = CompilerUtils.getString( sharedFlowRef,
NAME_ATTR, true );
+ TypeMirror type = CompilerUtils.getTypeMirror( sharedFlowRef,
TYPE_ATTR, true );
+
+ if ( type instanceof DeclaredType ) // if it's not a
DeclaredType, the error will be caught elsewhere.
{
- sharedFlowFileHierarchy.add( sfFile );
- sharedFlowTypeHierarchy.add( sfType );
+ TypeDeclaration typeDecl = ( ( DeclaredType ) type
).getDeclaration();
+
+ if ( typeDecl != null ) // If the declaration is null,
it's an error type.
+ {
+ sharedFlowTypes.put( name, typeDecl );
+ }
}
}
-
- if ( atWebappRoot ) break;
}
//
// If there's no SharedFlowController, fall back to the deprecated
Global.app.
//
- if ( sharedFlowTypeHierarchy.isEmpty() )
+ if ( sharedFlowTypes.isEmpty() )
{
- File globalAppFile = new File( webappRootPath + GLOBALAPP_URI );
+ File globalAppFile = new File( getWebappRoot().getPath() +
GLOBALAPP_URI );
+
if ( globalAppFile.exists() )
{
TypeDeclaration type = getEnv().getTypeDeclaration(
GLOBALAPP_FULL_CLASSNAME );
if ( type != null )
{
- sharedFlowFileHierarchy.add( globalAppFile );
- sharedFlowTypeHierarchy.add( type );
+ sharedFlowTypes.put( GLOBALAPP_SHARED_FLOW_NAME, type );
}
}
}
- getFlowControllerInfo().setSharedFlowInfo( sharedFlowTypeHierarchy,
sharedFlowFileHierarchy );
+ getFlowControllerInfo().setSharedFlowInfo( sharedFlowTypes );
super.startCheckClass( jclass );
}
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/apt/PageFlowAnnotationProcessor.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/apt/PageFlowAnnotationProcessor.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/apt/PageFlowAnnotationProcessor.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/apt/PageFlowAnnotationProcessor.java&r2=111484
==============================================================================
---
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 Dec 10 00:33:03 2004
@@ -108,8 +108,8 @@
if ( ann != null )
{
- diagnostics.addError( ann,
"error.controller-annotation-invalid-base-class",
- JPF_BASE_CLASS, SHARED_FLOW_BASE_CLASS );
+ diagnostics.addError( ann,
"error.annotation-invalid-base-class2",
+ CONTROLLER_TAG_NAME, JPF_BASE_CLASS,
SHARED_FLOW_BASE_CLASS );
}
}
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/diagnostics.properties
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/diagnostics.properties?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/diagnostics.properties&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/diagnostics.properties&r2=111484
==============================================================================
---
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 Dec 10 00:33:03 2004
@@ -132,8 +132,11 @@
error.incompatible-locale-annotations = The attribute "{0}" may not be present
when attribute "{1}" is true.
error.missing-locale-annotations = The attribute "{0}" must be present when
attribute "{1}" is false.
-error.controller-annotation-invalid-base-class = \
-This annotation is not valid on this class. The class should extend {0} or
{1}.
+error.annotation-invalid-base-class = \
+The {0} annotation is not valid on this class. The class should extend {1}.
+
+error.annotation-invalid-base-class2 = \
+The {0} annotation is not valid on this class. The class should extend {1} or
{2}.
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.
@@ -158,3 +161,6 @@
error.action-outputs-with-redirect = Action outputs may not be used when the
"{0}" attribute is true.
error.action-outputs-with-absolute-uri = \
Action outputs may not be used when the "{0}" attribute is an absolute URI,
which automatically causes a redirect.
+
+error.field-not-assignable = This field must be of a type assignable from {0}.
+error.no-matching-shared-flow-declared = There is no {0} annotation that
declares a shared flow with name "{1}".
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenSharedFlowStrutsApp.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenSharedFlowStrutsApp.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenSharedFlowStrutsApp.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenSharedFlowStrutsApp.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenSharedFlowStrutsApp.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenSharedFlowStrutsApp.java
Fri Dec 10 00:33:03 2004
@@ -26,6 +26,8 @@
import java.io.File;
import java.io.IOException;
+import static org.apache.beehive.netui.compiler.JpfLanguageConstants.*;
+
public class GenSharedFlowStrutsApp
extends GenStrutsApp
{
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
Fri Dec 10 00:33:03 2004
@@ -23,7 +23,6 @@
import org.apache.beehive.netui.compiler.model.MessageResourcesModel;
import org.apache.beehive.netui.compiler.model.ActionModel;
import org.apache.beehive.netui.compiler.CompilerUtils;
-import org.apache.beehive.netui.compiler.JpfLanguageConstants;
import org.apache.beehive.netui.compiler.FlowControllerInfo;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlCursor;
@@ -48,10 +47,11 @@
import com.sun.mirror.type.TypeMirror;
import com.sun.mirror.type.DeclaredType;
+import static org.apache.beehive.netui.compiler.JpfLanguageConstants.*;
+
public class GenStrutsApp
extends StrutsApp
- implements JpfLanguageConstants
{
private ClassDeclaration _jclass;
private String _containingPackage;
@@ -106,7 +106,9 @@
if ( fcInfo != null )
{
- setSharedFlowTypeNames( fcInfo.getSharedFlowTypeNameHierarchy() );
+ setSharedFlows( fcInfo.getSharedFlowTypeNames() );
+ setReturnToActionDisabled( ! fcInfo.isNavigateToActionEnabled() );
+ setReturnToPageDisabled( ! fcInfo.isNavigateToPageEnabled() );
}
}
@@ -433,7 +435,7 @@
private static String getAlternateLocation( File strutsConfigFile, File
webappRoot )
throws XmlException, IOException
{
- File webXmlFile = new File( webappRoot.getPath() + "/" +
StrutsApp.WEBINF_DIR_NAME + "/web.xml" );
+ File webXmlFile = new File( webappRoot.getPath() + '/' +
StrutsApp.WEBINF_DIR_NAME + "/web.xml" );
if ( ! webXmlFile.canRead() )
{
@@ -585,7 +587,7 @@
{
comment.append( " and " ).append( getWebappRelativePath( mergeFile
) );
}
- comment.append( " on " ).append( new Date().toString() ).append( " " );
+ comment.append( " on " ).append( new Date().toString() ).append( ' ' );
return comment.toString();
}
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CatchGrammar.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CatchGrammar.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CatchGrammar.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CatchGrammar.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CatchGrammar.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/CatchGrammar.java
Fri Dec 10 00:33:03 2004
@@ -30,13 +30,11 @@
import com.sun.mirror.declaration.ParameterDeclaration;
import com.sun.mirror.declaration.AnnotationValue;
import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
import com.sun.mirror.type.TypeMirror;
import com.sun.mirror.type.DeclaredType;
import java.util.Map;
import java.util.Collection;
-import java.util.List;
import static org.apache.beehive.netui.compiler.JpfLanguageConstants.*;
@@ -168,7 +166,7 @@
{
String otherForwardName = CompilerUtils.getString(
otherForward, NAME_ATTR, true );
String otherForwardPath = CompilerUtils.getString(
otherForward, PATH_ATTR, true );
- String otherFwdReturnTo =
+ String otherFwdNavigateTo =
CompilerUtils.getEnumFieldName(
otherForward, NAVIGATE_TO_ATTR, true );
Collection< AnnotationMirror > forwards =
@@ -180,12 +178,12 @@
{
String forwardName = CompilerUtils.getString(
forward, NAME_ATTR, true );
String forwardPath = CompilerUtils.getString(
forward, PATH_ATTR, true );
- String fwdReturnTo =
CompilerUtils.getEnumFieldName( forward, NAVIGATE_TO_ATTR, true );
+ String fwdNavigateTo =
CompilerUtils.getEnumFieldName( forward, NAVIGATE_TO_ATTR, true );
if ( forwardName != null &&
forwardName.equals( otherForwardName ) )
{
if ( ( forwardPath == null || !
forwardPath.equals( otherForwardPath ) )
- && ( fwdReturnTo == null || !
fwdReturnTo.equals( otherFwdReturnTo ) ) )
+ && ( fwdNavigateTo == null || !
fwdNavigateTo.equals( otherFwdNavigateTo ) ) )
{
addError( value,
"error.duplicate-exception-handler-forwards",
new Object[]{
methodBeingChecked.getSimpleName(), methodName, forwardName } );
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ControllerGrammar.java
Fri Dec 10 00:33:03 2004
@@ -43,6 +43,7 @@
addMemberType( VALIDATOR_MERGE_ATTR, new ValidXmlFileType(
FormValidationDocument.type, null, this, fcInfo ) );
addMemberType( MULTIPART_HANDLER_ATTR, new AnnotationMemberType( null,
this ) );
+ addMemberArrayGrammar( SHARED_FLOW_REFS_ATTR, new
SharedFlowRefGrammar( env, diags, rvc ) );
addMemberArrayGrammar( FORWARDS_ATTR, new ForwardGrammar( env, diags,
null, rvc, fcInfo ) );
addMemberArrayGrammar( CATCHES_ATTR, new CatchGrammar( env, diags,
null, rvc, CONTROLLER_TAG_NAME, fcInfo ) );
addMemberArrayGrammar( MESSAGE_RESOURCES_ATTR, new
MessageResourcesGrammar( env, diags, null, rvc, fcInfo ) );
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/EnumType.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/EnumType.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/EnumType.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/EnumType.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/EnumType.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/EnumType.java
Fri Dec 10 00:33:03 2004
@@ -34,7 +34,7 @@
/**
* Supports deprecated values and values that require particular runtime
versions.
*/
-public final class EnumType
+public class EnumType
extends AnnotationMemberType
{
/** map of enum-val (String) -> required-runtime-version (String, may be
null) */
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/ForwardGrammar.java
Fri Dec 10 00:33:03 2004
@@ -84,7 +84,7 @@
addMemberType( NAME_ATTR, getNameType() );
addMemberType( OUTPUT_FORM_BEAN_TYPE_ATTR, new TypeNameType( null,
false, null, this ) );
addMemberType( OUTPUT_FORM_BEAN_ATTR, new MemberFieldType( null ,
null, this ) );
- addMemberType( RETURN_ACTION_ATTR, new JavaIdentifierType( null, this
) );
+ addMemberType( RETURN_ACTION_ATTR, new JavaIdentifierType( null, this,
'.' ) );
addMemberType( PATH_ATTR, new ExternalPathOrActionType( false, null,
this, fcInfo ) );
addMemberType( REDIRECT_ATTR, new AnnotationMemberType( null, this ) );
addMemberType( EXTERNAL_REDIRECT_ATTR, new AbsolutePathType( null ,
this ) );
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/JavaIdentifierType.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/JavaIdentifierType.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/JavaIdentifierType.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/JavaIdentifierType.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/JavaIdentifierType.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/JavaIdentifierType.java
Fri Dec 10 00:33:03 2004
@@ -27,9 +27,12 @@
public class JavaIdentifierType
extends AnnotationMemberType
{
- public JavaIdentifierType( String requiredRuntimeVersion,
AnnotationGrammar parentGrammar )
+ private char[] _validChars;
+
+ public JavaIdentifierType( String requiredRuntimeVersion,
AnnotationGrammar parentGrammar, char ... validChars )
{
super( requiredRuntimeVersion, parentGrammar );
+ _validChars = validChars;
}
public Object onCheck( AnnotationTypeElementDeclaration valueDecl,
AnnotationValue value,
@@ -49,14 +52,29 @@
for ( int i = 1; i < val.length(); i++ )
{
- if ( ! Character.isJavaIdentifierPart( val.charAt( i ) ) )
+ char c = val.charAt( i );
+
+ if ( ! Character.isJavaIdentifierPart( val.charAt( i ) ) && !
isValid( c ) )
{
- Object[] args = new Object[]{ new Character( val.charAt( i
) ) };
+ Object[] args = new Object[]{ c };
addError( value, "error.invalid-java-identifier-part",
args );
}
}
}
return null;
+ }
+
+ private boolean isValid( char c )
+ {
+ if ( _validChars != null )
+ {
+ for ( int i = 0; i < _validChars.length; i++ )
+ {
+ if ( c == _validChars[i] ) return true;
+ }
+ }
+
+ return false;
}
}
Added:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/SharedFlowRefGrammar.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/SharedFlowRefGrammar.java?view=auto&rev=111484
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/SharedFlowRefGrammar.java
Fri Dec 10 00:33:03 2004
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package 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.CompilerUtils;
+import org.apache.beehive.netui.compiler.JpfLanguageConstants;
+import com.sun.mirror.apt.AnnotationProcessorEnvironment;
+import com.sun.mirror.declaration.AnnotationMirror;
+import com.sun.mirror.declaration.MemberDeclaration;
+import com.sun.mirror.declaration.TypeDeclaration;
+
+import static org.apache.beehive.netui.compiler.JpfLanguageConstants.TYPE_ATTR;
+import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.SHARED_FLOW_BASE_CLASS;
+import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.JPF_BASE_CLASS;
+import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.SHARED_FLOW_REF_TAG_NAME;
+
+public class SharedFlowRefGrammar
+ extends AnnotationGrammar
+{
+ public SharedFlowRefGrammar( AnnotationProcessorEnvironment env,
Diagnostics diags, RuntimeVersionChecker rvc )
+ {
+ super( env, diags, null, rvc );
+
+ // NAME_ATTR does not need a custom type
+ addMemberType( TYPE_ATTR, new TypeNameType( SHARED_FLOW_BASE_CLASS,
false, null, this ) );
+ }
+
+ protected boolean onBeginCheck( AnnotationMirror annotation,
AnnotationMirror[] parentAnnotations,
+ MemberDeclaration classMember )
+ {
+ assert classMember instanceof TypeDeclaration :
classMember.getClass().getName(); // enforced in Jpf.java
+
+ if ( ! CompilerUtils.isAssignableFrom( JPF_BASE_CLASS, (
TypeDeclaration ) classMember, getEnv() ) )
+ {
+ addError( annotation, "error.annotation-invalid-base-class",
SHARED_FLOW_REF_TAG_NAME, JPF_BASE_CLASS );
+ return false;
+ }
+
+ return super.onBeginCheck( annotation, parentAnnotations, classMember
);
+ }
+}
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathOrActionType.java
Fri Dec 10 00:33:03 2004
@@ -29,7 +29,6 @@
import com.sun.mirror.apt.AnnotationProcessorEnvironment;
import java.util.Collection;
-import java.util.List;
public class WebappPathOrActionType
extends WebappPathType
@@ -56,12 +55,33 @@
if ( ! foundIt )
{
- List< TypeDeclaration > sharedFlowTypeHierarchy =
-
getFlowControllerInfo().getSharedFlowTypeHierarchy();
+ //
+ // Check for a Shared Flow action reference of the form
<shared-flow-name>.<action>.
+ //
+ int dot = actionMethodName.indexOf( '.' );
- if ( sharedFlowTypeHierarchy != null &&
sharedFlowTypeHierarchy.size() > 0 )
+ if ( dot != 1 && dot > actionMethodName.length() -1 )
{
- foundIt = actionExists( actionMethodName,
sharedFlowTypeHierarchy.get( 0 ), null, getEnv() );
+ String sharedFlowName = actionMethodName.substring( 0,
dot );
+ TypeDeclaration sfTypeDecl =
getFlowControllerInfo().getSharedFlowTypes().get( sharedFlowName );
+
+ if ( sfTypeDecl != null )
+ {
+ actionMethodName = actionMethodName.substring( dot
+ 1 );
+ foundIt = actionExists( actionMethodName,
sfTypeDecl, null, getEnv() );
+ }
+ }
+ }
+
+ if ( ! foundIt )
+ {
+ //
+ // Look in (legacy) Global.app
+ //
+ TypeDeclaration globalAppDecl =
getEnv().getTypeDeclaration( GLOBALAPP_FULL_CLASSNAME );
+ if ( globalAppDecl != null )
+ {
+ foundIt = actionExists( actionMethodName,
globalAppDecl, null, getEnv() );
}
}
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/AbstractForwardContainer.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/AbstractForwardContainer.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/AbstractForwardContainer.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/AbstractForwardContainer.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/AbstractForwardContainer.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/AbstractForwardContainer.java
Fri Dec 10 00:33:03 2004
@@ -63,10 +63,6 @@
return;
}
- //
- // Optimizations for the runtime.
- //
- getParentApp().enableReturnTo( newActionForward );
_forwards.put( newActionForward.getName(), newActionForward );
}
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java&r1=111483&p2=incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java
(original)
+++
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/model/StrutsApp.java
Fri Dec 10 00:33:03 2004
@@ -35,6 +35,7 @@
import java.util.Iterator;
import java.util.Collections;
import java.util.Comparator;
+import java.util.LinkedHashMap;
import static
org.apache.beehive.netui.compiler.JpfLanguageConstants.PAGEFLOW_PACKAGE;
@@ -58,7 +59,8 @@
private boolean _isNestedPageFlow = false;
private boolean _isLongLivedPageFlow = false;
private boolean _isSharedFlow = false;
- private List< String > _sharedFlowTypeNames = null;
+ /** Map of name to typename */
+ private Map< String, String > _sharedFlows = null;
private String _controllerClassName = null;
private String _multipartHandlerClassName = null;
@@ -186,18 +188,6 @@
_exceptionCatches.add( c );
}
- void enableReturnTo( ForwardModel fwd )
- {
- if ( fwd.isReturnToAction() )
- {
- _returnToActionDisabled = false;
- }
- else if ( fwd.isReturnToPage() )
- {
- _returnToPageDisabled = false;
- }
- }
-
/**
* Returns all of the form beans that are defined for this
* StrutsApp.
@@ -402,6 +392,16 @@
return _returnToActionDisabled;
}
+ public void setReturnToPageDisabled( boolean disabled )
+ {
+ _returnToPageDisabled = disabled;
+ }
+
+ public void setReturnToActionDisabled( boolean disabled )
+ {
+ _returnToActionDisabled = disabled;
+ }
+
public void setValidationModel( ValidationModel validationModel )
{
if ( ! validationModel.isEmpty() ) // if there's nothing in the
validation model, we don't care about it.
@@ -685,23 +685,21 @@
if ( isReturnToPageDisabled() ) addSetProperty( controller,
"isReturnToPageDisabled", "true" );
if ( isReturnToActionDisabled() ) addSetProperty( controller,
"isReturnToActionDisabled", "true" );
- if ( _sharedFlowTypeNames != null )
+ if ( _sharedFlows != null )
{
- StringBuilder sharedFlowModules = new StringBuilder();
+ StringBuilder str = new StringBuilder();
+ boolean first = true;
- for ( Iterator< String > i = _sharedFlowTypeNames.iterator();
i.hasNext(); )
+ for ( Map.Entry< String, String > entry :
_sharedFlows.entrySet() )
{
- String typeName = i.next();
- int lastDot = typeName.lastIndexOf( '.' );
- assert lastDot != -1 : typeName;
- String containingPackage = typeName.substring( 0, lastDot
);
- if ( sharedFlowModules.length() > 0 )
sharedFlowModules.append( ';' );
- sharedFlowModules.append( '/' );
- sharedFlowModules.append( STRUTS_CONFIG_SEPARATOR );
- sharedFlowModules.append( containingPackage.replace( '.',
'/' ) );
- }
+ if ( ! first ) str.append( ',' );
+ first = false;
+ String name = entry.getKey();
+ String type = entry.getValue();
+ str.append( name ).append( '=' ).append( type );
+ }
- addSetProperty( controller, "sharedFlowModules",
sharedFlowModules.toString() );
+ addSetProperty( controller, "sharedFlows", str.toString() );
}
addSetProperty( controller, "controllerClass",
_controllerClassName );
@@ -811,11 +809,11 @@
_isSharedFlow = sharedFlow;
}
- protected void setSharedFlowTypeNames( List< String > sharedFlowTypeNames )
+ protected void setSharedFlows( Map< String, String > sharedFlows )
{
- _sharedFlowTypeNames = sharedFlowTypeNames;
+ _sharedFlows = sharedFlows;
}
-
+
public String getMultipartHandlerClassName()
{
return _multipartHandlerClassName;
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
Fri Dec 10 00:33:03 2004
@@ -665,13 +665,14 @@
}
else
{
+ String relativeURI = InternalUtils.getDecodedServletPath(
request );
+ /*
//
// If we couldn't find an appropriate module, try raising the
action on the appropriate
// SharedFlowController, if one exists.
//
SharedFlowController sf =
FlowControllerFactory.getSharedFlowForRequest(
request, response, servletContext );
- String relativeURI = InternalUtils.getDecodedServletPath(
request );
if ( sf != null )
{
@@ -683,7 +684,7 @@
frh.forward( sfActionURI.toString(), request, response );
return;
}
-
+ */
if ( _log.isErrorEnabled() )
{
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FacesBackingBean.java
Fri Dec 10 00:33:03 2004
@@ -21,8 +21,10 @@
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.internal.CachedFacesBackingInfo;
import org.apache.beehive.netui.pageflow.internal.ServerAdapterManager;
+import org.apache.beehive.netui.pageflow.internal.CachedSharedFlowRefInfo;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.util.cache.ClassLevelCache;
+import org.apache.beehive.netui.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -35,6 +37,7 @@
extends PageFlowManagedObject
{
private static final String CACHED_INFO_KEY = "cachedInfo";
+ private static final Logger _log = Logger.getInstance(
FacesBackingBean.class );
private Map _pageInputs;
@@ -87,14 +90,36 @@
}
//
- // Initialize the shared flow field.
+ // Initialize the shared flow fields.
//
- Field sharedFlowMemberField =
getCachedInfo().getSharedFlowMemberField();
+ CachedSharedFlowRefInfo.SharedFlowFieldInfo[] sharedFlowMemberFields =
+ getCachedInfo().getSharedFlowMemberFields();
- if ( fieldIsUninitialized( sharedFlowMemberField ) )
+ if ( sharedFlowMemberFields != null )
{
- SharedFlowController sf = PageFlowUtils.getSharedFlow( request,
servletContext );
- initializeField( sharedFlowMemberField, sf );
+ for ( int i = 0; i < sharedFlowMemberFields.length; i++ )
+ {
+ CachedSharedFlowRefInfo.SharedFlowFieldInfo fi =
sharedFlowMemberFields[i];
+ Field field = fi.field;
+
+ if ( fieldIsUninitialized( field ) )
+ {
+ Map< String, SharedFlowController > sharedFlows =
PageFlowUtils.getSharedFlows( request );
+ String name = fi.sharedFlowName;
+ SharedFlowController sf =
+ name != null ? sharedFlows.get( name ) :
PageFlowUtils.getGlobalApp( request );
+
+ if ( sf != null )
+ {
+ initializeField( field, sf );
+ }
+ else
+ {
+ _log.error( "Could not find shared flow with name \""
+ fi.sharedFlowName
+ + "\" to initialize field " +
field.getName() + " in " + getClass().getName() );
+ }
+ }
+ }
}
super.reinitialize( request, response, servletContext );
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
Fri Dec 10 00:33:03 2004
@@ -933,18 +933,6 @@
{
_moduleConfig = InternalUtils.getModuleConfig( getModulePath(),
servletContext );
- //
- // We'll get into this next block if the requested module path
differs in case from
- // the "natural" module path for this file (Windows only). If so,
we'll parse the
- // module path from the request. Note that the request (which
comes from _perRequestState)
- // may be null for Global.app, but because we create the
Global.app URIs ("/-global"
- // module path), we'll never have a case issue.
- //
- if ( _moduleConfig == null && ! FileUtils.isOSCaseSensitive() &&
request != null )
- {
- _moduleConfig = InternalUtils.getModuleConfig(
PageFlowUtils.getModulePath( request ), servletContext );
- }
-
if ( _moduleConfig == null )
{
//
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
Fri Dec 10 00:33:03 2004
@@ -21,6 +21,8 @@
import org.apache.beehive.netui.util.config.ConfigUtil;
import org.apache.beehive.netui.util.config.bean.PageflowConfig;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.InternalConstants;
+import org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -28,9 +30,12 @@
import javax.servlet.ServletException;
import org.apache.struts.config.ModuleConfig;
+import org.apache.struts.config.ControllerConfig;
import org.apache.struts.action.ActionServlet;
import java.io.IOException;
+import java.util.Map;
+import java.util.LinkedHashMap;
/**
@@ -103,30 +108,76 @@
return cur;
}
- public static SharedFlowController getSharedFlowForRequest(
HttpServletRequest request,
-
HttpServletResponse response,
- ServletContext
servletContext )
+ public static Map<String, SharedFlowController> getSharedFlowsForRequest(
HttpServletRequest request,
+
HttpServletResponse response,
+
ServletContext servletContext )
{
- return getSharedFlowForRelativeURI( request, response,
InternalUtils.getDecodedServletPath( request ), servletContext );
+ String relativeURI = InternalUtils.getDecodedServletPath( request );
+ return getSharedFlowsForRelativeURI( request, response, relativeURI,
servletContext );
}
- public static SharedFlowController getSharedFlowForRelativeURI(
HttpServletRequest request, HttpServletResponse response,
- String
relativeURI, ServletContext servletContext )
+ public static Map<String, SharedFlowController>
getSharedFlowsForRelativeURI( HttpServletRequest request,
+
HttpServletResponse response,
+
String relativeURI,
+
ServletContext servletContext )
{
- String className = InternalUtils.getSharedFlowClassNameForRelativeURI(
relativeURI, request, servletContext );
- if ( className == null ) return null;
- SharedFlowController cur = PageFlowUtils.getSharedFlow( className,
request );
+ String parentDir = PageFlowUtils.getModulePathForRelativeURI(
relativeURI );
+ ModuleConfig mc = InternalUtils.ensureModuleConfig( parentDir,
request, servletContext );
+
+ if ( mc != null )
+ {
+ ControllerConfig cc = mc.getControllerConfig();
+
+ if ( cc instanceof PageFlowControllerConfig )
+ {
+ Map< String, String > sharedFlowTypes = ( (
PageFlowControllerConfig ) cc ).getSharedFlowTypes();
+
+ if ( sharedFlowTypes != null && sharedFlowTypes.size() > 0 )
+ {
+ LinkedHashMap< String, SharedFlowController > sharedFlows =
+ new LinkedHashMap< String, SharedFlowController
>();
+
+ for ( Map.Entry< String, String > entry :
sharedFlowTypes.entrySet() )
+ {
+ String name = entry.getKey();
+ String className = entry.getValue();
+ SharedFlowController sf = PageFlowUtils.getSharedFlow(
className, request );
+
+ //
+ // Reinitialize transient data that may have been lost
on session failover.
+ //
+ if ( sf != null )
+ {
+ sf.reinitialize( request, response, servletContext
);
+ }
+ else
+ {
+ sf = getSharedFlow( className, request, response,
servletContext );
+ }
+
+ if ( sf != null && ! ( sf instanceof GlobalApp ) )
sharedFlows.put( name, sf );
+ }
+
+ return sharedFlows;
+ }
+ }
+ }
- if ( cur != null )
+ //
+ // Legacy behavior: if there's no page flow for the request,
initialize a GlobalApp instance.
+ //
+ SharedFlowController ga = PageFlowUtils.getGlobalApp( request );
+
+ if ( ga != null )
+ {
+ ga.reinitialize( request, response, servletContext );
+ }
+ else
{
- //
- // Reinitialize transient data that may have been lost on session
failover.
- //
- cur.reinitialize( request, response, servletContext );
- return cur;
+ getSharedFlow( InternalConstants.GLOBALAPP_CLASSNAME, request,
response, servletContext );
}
- return getSharedFlow( className, request, response ,servletContext );
+ return null;
}
/**
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java
Fri Dec 10 00:33:03 2004
@@ -377,7 +377,7 @@
HttpServletResponse
response, ActionMapping mapping )
{
PageFlowStack pfStack = PageFlowStack.get( request );
- String exitAction = pageFlowFwd.getPath();
+ String returnAction = pageFlowFwd.getPath();
if ( pfStack.isEmpty() )
{
@@ -397,7 +397,7 @@
_log.warn( msg.append( '.' ).toString() );
}
- PageFlowException ex = new EmptyNestingStackException( exitAction,
curJpf );
+ PageFlowException ex = new EmptyNestingStackException(
returnAction, curJpf );
InternalUtils.throwPageFlowException( ex, request );
}
@@ -426,7 +426,7 @@
{
interceptorForward = interceptor.doPostIntercept( request,
response, poppedPageFlow,
pushedPageFlowWrapper.getInterceptedForward(),
- exitAction );
+ returnAction
);
}
catch ( Exception e )
{
@@ -449,29 +449,21 @@
//
// Raise the returned action on the popped pageflow.
//
- assert exitAction.charAt( 0 ) != '/' : exitAction;
+ assert returnAction.charAt( 0 ) != '/' : returnAction;
if ( _log.isDebugEnabled() )
{
- _log.debug( "Action on popped PageFlowController is " + exitAction
);
+ _log.debug( "Action on popped PageFlowController is " +
returnAction );
}
- StringBuilder exitActionPath = new StringBuilder(
poppedPageFlow.getModulePath() );
- if ( exitAction.charAt( 0 ) != '/' )
- {
- exitActionPath.append( '/' );
- }
- exitActionPath.append( exitAction ).append( ACTION_EXTENSION );
+ StringBuilder returnActionPath = new StringBuilder(
poppedPageFlow.getModulePath() );
+ returnActionPath.append( '/' ).append( returnAction ).append(
ACTION_EXTENSION );
//
// Store the returned form in the request.
//
ActionForm retForm = pageFlowFwd.getFirstOutputForm( request );
-
- if ( retForm != null )
- {
- RequestValues.setForwardedForm( request, retForm );
- }
+ if ( retForm != null ) RequestValues.setForwardedForm( request,
retForm );
// @TODO 9.0 - delete this deprecated feature (following line)
request.setAttribute( InternalConstants.RETURNING_FROM_NESTING_ATTR,
Boolean.TRUE );
@@ -479,7 +471,7 @@
//
// Forward to the rerturn-action on the nestig page flow.
//
- ActionForward fwd = new ActionForward( exitActionPath.toString(),
false );
+ ActionForward fwd = new ActionForward( returnActionPath.toString(),
false );
fwd.setContextRelative( true );
return fwd;
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/GlobalApp.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/GlobalApp.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/GlobalApp.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/GlobalApp.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/GlobalApp.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/GlobalApp.java
Fri Dec 10 00:33:03 2004
@@ -39,6 +39,7 @@
* Data in the current GlobalApp instance can be accessed by databinding tags
using the
* <code>globalApp</code> scope.
*
+ * @deprecated Use [EMAIL PROTECTED] SharedFlowController} instead.
* @see PageFlowController
*/
public class GlobalApp
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
Fri Dec 10 00:33:03 2004
@@ -20,9 +20,9 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSessionBindingEvent;
-import javax.servlet.http.HttpSession;
import javax.servlet.ServletContext;
import java.lang.reflect.Field;
+import java.util.Map;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
@@ -37,6 +37,7 @@
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.internal.InternalConstants;
import org.apache.beehive.netui.pageflow.internal.ServerAdapterManager;
+import org.apache.beehive.netui.pageflow.internal.CachedSharedFlowRefInfo;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import static org.apache.beehive.netui.pageflow.internal.InternalConstants.*;
@@ -233,32 +234,56 @@
HttpServletResponse response )
throws Exception
{
- initializeSharedFlowField( request, response, getServletContext() );
+ initializeSharedFlowFields( request );
return super.internalExecute( mapping, form, request, response );
}
- private void initializeSharedFlowField( HttpServletRequest request,
HttpServletResponse response,
- ServletContext servletContext )
+ private void initializeSharedFlowFields( HttpServletRequest request )
{
- Field sharedFlowMemberField =
getCachedInfo().getSharedFlowMemberField();
+ //
+ // Initialize the shared flow fields.
+ //
+ CachedSharedFlowRefInfo.SharedFlowFieldInfo[] sharedFlowMemberFields =
+ getCachedInfo().getSharedFlowMemberFields();
- if ( fieldIsUninitialized( sharedFlowMemberField ) )
+ if ( sharedFlowMemberFields != null )
{
- SharedFlowController sf = InternalUtils.getSharedFlow( this,
request, response, servletContext );
- initializeField( sharedFlowMemberField, sf );
+ for ( int i = 0; i < sharedFlowMemberFields.length; i++ )
+ {
+ CachedSharedFlowRefInfo.SharedFlowFieldInfo fi =
sharedFlowMemberFields[i];
+ Field field = fi.field;
+
+ if ( fieldIsUninitialized( field ) )
+ {
+ Map< String, SharedFlowController > sharedFlows =
PageFlowUtils.getSharedFlows( request );
+ String name = fi.sharedFlowName;
+ SharedFlowController sf =
+ name != null ? sharedFlows.get( name ) :
PageFlowUtils.getGlobalApp( request );
+
+ if ( sf != null )
+ {
+ initializeField( field, sf );
+ }
+ else
+ {
+ _log.error( "Could not find shared flow with name \""
+ fi.sharedFlowName
+ + "\" to initialize field " +
field.getName() + " in " + getClass().getName() );
+ }
+ }
+ }
}
}
- protected SharedFlowController getSharedFlow()
+ public Map< String, SharedFlowController > getSharedFlows()
{
- return InternalUtils.getSharedFlow( this, getRequest(), getResponse(),
getServletContext() );
+ return PageFlowUtils.getSharedFlows( getRequest() );
}
public final synchronized void create( HttpServletRequest request,
HttpServletResponse response,
ServletContext servletContext )
{
reinitialize( request, response, servletContext );
- initializeSharedFlowField( request, response, servletContext );
+ initializeSharedFlowFields( request );
super.create( request, response, servletContext );
}
@@ -552,17 +577,7 @@
ControllerConfig cc = mc.getControllerConfig();
if ( cc instanceof PageFlowControllerConfig && ( (
PageFlowControllerConfig ) cc ).isReturnToActionDisabled() )
{
- //
- // Make sure previous-action is disabled in the
SharedFlowController too; if not, we can't do it.
- //
- ModuleConfig sharedFlowConfig = InternalUtils.getSharedFlowConfig(
mc, request, servletContext );
- ControllerConfig sc = sharedFlowConfig != null ?
sharedFlowConfig.getControllerConfig() : null;
-
- if ( sc == null ||
- ( sc instanceof PageFlowControllerConfig && ( (
PageFlowControllerConfig ) sc ).isReturnToActionDisabled() ) )
- {
- if ( ! alwaysTrackPreviousAction() ) return;
- }
+ if ( ! alwaysTrackPreviousAction() ) return;
}
String actionURI = PageFlowUtils.getRelativeURI( request, null );
@@ -583,17 +598,7 @@
ControllerConfig cc = mc.getControllerConfig();
if ( cc instanceof PageFlowControllerConfig && ( (
PageFlowControllerConfig ) cc ).isReturnToPageDisabled() )
{
- //
- // Make sure previous-page is disabled in the
SharedFlowController, too; if not, we can't do it.
- //
- ModuleConfig sharedFlowConfig = InternalUtils.getSharedFlowConfig(
mc, request, servletContext );
- ControllerConfig sc = sharedFlowConfig != null ?
sharedFlowConfig.getControllerConfig() : null;
-
- if ( sc == null ||
- ( sc instanceof PageFlowControllerConfig && ( (
PageFlowControllerConfig ) sc ).isReturnToPageDisabled() ) )
- {
- if ( ! alwaysTrackPreviousPage() ) return;
- }
+ if ( ! alwaysTrackPreviousPage() ) return;
}
if ( forward != null )
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowPageFilter.java
Fri Dec 10 00:33:03 2004
@@ -28,6 +28,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Set;
+import java.util.Map;
import org.apache.struts.util.RequestUtils;
import org.apache.struts.util.MessageResources;
@@ -162,6 +163,14 @@
ModuleConfig prevModuleConfig =
RequestUtils.getRequestModuleConfig( httpRequest );
MessageResources prevMessageResources = ( MessageResources )
request.getAttribute( Globals.MESSAGES_KEY );
initializeModule( httpRequest, httpResponse );
+
+ //
+ // Initialize shared flows for the current request.
+ //
+ Map< String, SharedFlowController > sharedFlows =
+ FlowControllerFactory.getSharedFlowsForRequest(
httpRequest, httpResponse, _servletContext );
+ ImplicitObjectUtil.loadSharedFlow( request, sharedFlows );
+ ImplicitObjectUtil.loadGlobalApp( request,
PageFlowUtils.getGlobalApp( httpRequest ) );
//
// Make sure that the current PageFlowController is set up for
this request.
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowRequestProcessor.java
Fri Dec 10 00:33:03 2004
@@ -79,6 +79,7 @@
import org.apache.beehive.netui.pageflow.internal.JavaControlUtils;
import org.apache.beehive.netui.pageflow.internal.FlowControllerAction;
import org.apache.beehive.netui.pageflow.internal.ServerAdapterManager;
+import org.apache.beehive.netui.pageflow.internal.InternalConstants;
import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
import org.apache.beehive.netui.pageflow.scoping.ScopedRequest;
import org.apache.beehive.netui.pageflow.handler.ForwardRedirectHandler;
@@ -414,7 +415,7 @@
String actionPath = paramName.substring(
ACTION_OVERRIDE_PARAM_PREFIX_LEN );
ServletContext servletContext = getServletContext();
- String qualifiedAction = InternalUtils.qualifiedAction(
servletContext,actionPath );
+ String qualifiedAction = InternalUtils.qualifyAction(
servletContext,actionPath );
actionPath = InternalUtils.createActionPath(request,
qualifiedAction );
if ( _log.isDebugEnabled() )
@@ -499,14 +500,6 @@
if ( processActionOverride( request, response ) ) return;
//
- // Create the appropriate SharedFlowController if it doesn't exist.
- //
- if ( _log.isInfoEnabled() )
- {
- _log.info( "Attempting to instantiate a SharedFlowController for
request " + request.getRequestURI() );
- }
-
- //
// Process any direct request for a page flow by forwarding to its
"begin" action.
//
if ( processPageFlowRequest( request, response, uri ) ) return;
@@ -528,6 +521,19 @@
+ " for \"controllerClass\". Page Flow actions in
this module may not be handled correctly." );
}
+ //
+ // Create the appropriate SharedFlowController if it doesn't exist.
+ //
+ if ( _log.isInfoEnabled() )
+ {
+ _log.info( "Attempting to instantiate SharedFlowControllers for
request " + request.getRequestURI() );
+ }
+
+ Map< String, SharedFlowController > sharedFlows =
+ FlowControllerFactory.getSharedFlowsForRequest( request,
response, servletContext );
+ ImplicitObjectUtil.loadSharedFlow( request, sharedFlows );
+ ImplicitObjectUtil.loadGlobalApp( request, PageFlowUtils.getGlobalApp(
request ) );
+
FlowController currentFlowController = null;
if ( flowControllerClassName != null )
@@ -1053,11 +1059,19 @@
public ActionMapping processMapping( HttpServletRequest request,
HttpServletResponse response, String path )
throws IOException
{
+ FlowController fc = RequestValues.getCurrentFlowController( request );
+ Object forwardedForm = InternalUtils.unwrapFormBean(
RequestValues.getForwardedForm( request, false ) );
+
+ //
+ // First, see if this is a request for a shared flow action. The
shared flow's name (as declared by the
+ // current page flow) will precede the dot.
+ //
+ if ( fc != null && ! processSharedFlowMapping( request, response,
path, fc ) ) return null;
+
//
// Look for a form-specific action path. This is used when there are
two actions with the same
// name, but different forms (in nesting).
//
- Object forwardedForm = InternalUtils.unwrapFormBean(
RequestValues.getForwardedForm( request, false ) );
Class forwardedFormClass = null;
if ( forwardedForm != null )
@@ -1142,70 +1156,97 @@
}
//
- // If we've already tried Global.app, return an error. Otherwise, try
it (forward to it).
+ // RequestValues.getOriginalServletPath returns the request URI we had
before trying to forward to an action
+ // in a shared flow.
//
+ String errorServletPath = RequestValues.getOriginalServletPath(
request );
- // originalRequestURI is the request URI we had before trying to
forward to an action in Global.app.
- String originalServletPath = RequestValues.getOriginalServletPath(
request );
-
- if ( originalServletPath != null )
- {
- return processUnresolvedAction( path, originalServletPath,
request, response, forwardedForm );
- }
- else
+ if ( errorServletPath == null
+ && InternalUtils.getModuleConfig( GLOBALAPP_MODULE_CONTEXT_PATH,
getServletContext() ) != null )
{
- if ( !trySharedFlowAction( path, request, response ) )
- {
- return processUnresolvedAction( path,
InternalUtils.getDecodedServletPath( request ),
- request, response,
forwardedForm );
- }
- }
-
- return null;
- }
-
- protected boolean trySharedFlowAction( String actionPath,
HttpServletRequest request, HttpServletResponse response )
- throws IOException
- {
- SharedFlowController sf = PageFlowUtils.getSharedFlow( request,
getServletContext() );
-
- if ( sf != null )
- {
- // Try letting the SharedFlowController handle this action.
if ( _log.isDebugEnabled() )
{
- _log.debug( "Action \"" + actionPath + "\" not handled in
request for "
- + request.getRequestURI() + ". Trying this action
on the SharedFlowController." );
+ _log.debug( "Trying Global.app for unhandled action " + path );
}
//
- // Save the original request URI, so if the action fails on the
shared flow, too, then we can
- // give an error message that includes *this* URI, not the shared
flow URI.
- //
- RequestValues.setOriginalServletPath( request,
InternalUtils.getDecodedServletPath( request ) );
-
+ // We haven't tried the deprecated Global.app fallback yet. Try
it now.
//
- // Construct a URI that is [shared flow module path] + [base
action path] + [action-extension (.do)]
- //
- int lastSlash = actionPath.lastIndexOf( '/' );
- assert lastSlash != -1 : actionPath;
- String basePath = actionPath.substring( lastSlash );
- StringBuilder uri = new StringBuilder( sf.getModulePath() );
- uri.append( basePath );
- uri.append( ACTION_EXTENSION );
-
+ errorServletPath = InternalUtils.getDecodedServletPath( request );
+ RequestValues.setOriginalServletPath( request, errorServletPath );
+ String globalAppURI = GLOBALAPP_MODULE_CONTEXT_PATH + path +
ACTION_EXTENSION;
try
{
- doForward( uri.toString(), request, response );
+ doForward( globalAppURI, request, response );
}
catch ( ServletException e )
{
- _log.error( "Could not forward to shared flow URI " + uri, e );
+ _log.error( "Could not forward to Global.app URI " +
globalAppURI );
}
- return true;
+ return null;
+ }
+ else
+ {
+ errorServletPath = InternalUtils.getDecodedServletPath( request );
+ return processUnresolvedAction( path, errorServletPath, request,
response, forwardedForm );
}
-
- return false;
+ }
+
+ protected boolean processSharedFlowMapping( HttpServletRequest request,
HttpServletResponse response,
+ String actionPath,
FlowController currentFlowController )
+ throws IOException
+ {
+ if ( currentFlowController.isPageFlow() )
+ {
+ int dot = actionPath.indexOf( '.' );
+
+ if ( dot != -1 )
+ {
+ Map< String, SharedFlowController > sharedFlows =
PageFlowUtils.getSharedFlows( request );
+ if ( sharedFlows == null ) return true;
+ if ( dot == actionPath.length() - 1 ) return true; //
empty action name
+ assert actionPath.startsWith( "/" ) : actionPath;
+ String sharedFlowName = actionPath.substring( 1, dot );
+ SharedFlowController sf = sharedFlows.get( sharedFlowName );
+
+ if ( sf != null )
+ {
+ if ( _log.isDebugEnabled() )
+ {
+ _log.debug( "Forwarding to shared flow " + sf.getURI()
+ " to handle action \""
+ + actionPath + "\"." );
+ }
+
+ //
+ // Save the original request URI, so if the action fails
on the shared flow, too, then we can
+ // give an error message that includes *this* URI, not the
shared flow URI.
+ //
+ RequestValues.setOriginalServletPath( request,
InternalUtils.getDecodedServletPath( request ) );
+
+ //
+ // Construct a URI that is [shared flow module path] +
[base action path] + [action-extension (.do)]
+ //
+ int lastSlash = actionPath.lastIndexOf( '/' );
+ assert lastSlash != -1 : actionPath;
+ StringBuilder uri = new StringBuilder( sf.getModulePath()
);
+ uri.append( '/' );
+ uri.append( actionPath.substring( dot + 1 ) );
+ uri.append( ACTION_EXTENSION );
+
+ try
+ {
+ doForward( uri.toString(), request, response );
+ return false;
+ }
+ catch ( ServletException e )
+ {
+ _log.error( "Could not forward to shared flow URI " +
uri, e );
+ }
+ }
+ }
+ }
+
+ return true;
}
protected ActionMapping processUnresolvedAction( String actionPath, String
originalServletPath,
@@ -1224,14 +1265,11 @@
// action-not-found exception. Otherwise, let Struts print out its
"invalid path"
// message.
//
- FlowController fc = null;
+ FlowController fc = PageFlowUtils.getCurrentPageFlow( request );
+ if ( fc == null ) fc = RequestValues.getCurrentFlowController( request
);
try
{
- ServletContext servletContext = getServletContext();
- fc = FlowControllerFactory.getPageFlowForRelativeURI( request,
response, originalServletPath, servletContext );
- if ( fc == null ) fc = PageFlowUtils.getSharedFlow( request,
servletContext );
-
if ( fc != null )
{
Exception ex = new ActionNotFoundException( actionPath, fc,
returningForm );
@@ -1366,7 +1404,7 @@
ActionMapping mapping = ( ActionMapping )
request.getAttribute( Globals.MAPPING_KEY );
assert mapping != null;
ActionForm form = InternalUtils.getFormBean( mapping, request
);
- PageFlowController curJpf =
InternalUtils.ensureCurrentPageFlow( request, response );
+ PageFlowController curJpf = PageFlowUtils.getCurrentPageFlow(
request );
Forward pfFwd = new Forward( ( ActionForward ) fwd,
servletContext );
fwd = ForwardHandler.processForward( pfFwd, mapping, request,
response, form, servletContext, curJpf );
}
@@ -1417,8 +1455,8 @@
// path so it makes sense (strip off the shared flow
module prefix "/-" and replace it with "/").
//
ModuleConfig mc = ( ModuleConfig ) request.getAttribute(
Globals.MODULE_KEY );
- if ( InternalUtils.isSharedFlowModule( mc )
- && fwdURI.startsWith( SHARED_FLOW_MODULE_PREFIX ) )
+
+ if ( InternalUtils.isSharedFlowModule( mc ) &&
fwdURI.startsWith( SHARED_FLOW_MODULE_PREFIX ) )
{
fwdURI = '/' + fwdURI.substring(
SHARED_FLOW_MODULE_PREFIX_LEN );
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowUtils.java
Fri Dec 10 00:33:03 2004
@@ -18,7 +18,6 @@
package org.apache.beehive.netui.pageflow;
import org.apache.beehive.netui.pageflow.config.PageFlowActionFormBean;
-import org.apache.beehive.netui.pageflow.config.PageFlowActionMapping;
import org.apache.beehive.netui.pageflow.internal.ActionResultImpl;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.pageflow.internal.RequestValues;
@@ -31,6 +30,7 @@
import org.apache.beehive.netui.util.FileUtils;
import org.apache.beehive.netui.util.ServletUtils;
import org.apache.beehive.netui.util.logging.Logger;
+import org.apache.beehive.netui.script.common.ImplicitObjectUtil;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
@@ -42,15 +42,14 @@
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
-import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
+import java.util.Collections;
import java.util.concurrent.ConcurrentHashMap;
-import java.io.IOException;
import java.io.PrintStream;
import static org.apache.beehive.netui.pageflow.internal.InternalConstants.*;
@@ -235,6 +234,7 @@
/**
* Get the current [EMAIL PROTECTED] GlobalApp} instance.
*
+ * @deprecated Use [EMAIL PROTECTED] #getSharedFlow} instead.
* @param request the current HttpServletRequest.
* @return the current [EMAIL PROTECTED] GlobalApp} from the user session,
or <code>null</code> if none
* exists.
@@ -245,10 +245,10 @@
return sf instanceof GlobalApp ? ( GlobalApp ) sf : null;
}
- public static SharedFlowController getSharedFlow( HttpServletRequest
request, ServletContext servletContext )
+ public static Map< String, SharedFlowController > getSharedFlows(
HttpServletRequest request )
{
- String className = InternalUtils.getSharedFlowClassName( request,
servletContext );
- return className != null ? getSharedFlow( className, request ) : null;
+ Map< String, SharedFlowController > sharedFlows =
ImplicitObjectUtil.getSharedFlow( request );
+ return sharedFlows != null ? sharedFlows : Collections.EMPTY_MAP;
}
public static SharedFlowController getSharedFlow( String
sharedFlowClassName, HttpServletRequest request )
@@ -263,11 +263,22 @@
return null;
}
+ /**
+ * Destroy the current [EMAIL PROTECTED] GlobalApp} instance.
+ *
+ * @deprecated Use [EMAIL PROTECTED] #deleteSharedFlow} instead.
+ * @param request the current HttpServletRequest.
+ */
public static void deleteGlobalApp( HttpServletRequest request )
{
deleteSharedFlow( InternalConstants.GLOBALAPP_CLASSNAME, request );
}
+ /**
+ * Destroy the current [EMAIL PROTECTED] SharedFlowController} of the
given class name.
+ * @param sharedFlowClassName the class name of the current
SharedFlowController to destroy.
+ * @param request the current HttpServletRequest.
+ */
public static void deleteSharedFlow( String sharedFlowClassName,
HttpServletRequest request )
{
HttpSession session = request.getSession( false );
@@ -647,7 +658,7 @@
}
/**
- * Sets the most recent action URI that was processed by [EMAIL PROTECTED]
org.apache.beehive.netui.pageflow.FlowController#execute}.
+ * Sets the most recent action URI that was processed by [EMAIL PROTECTED]
FlowController#execute}.
*/
static void setActionURI( HttpServletRequest request )
{
@@ -805,8 +816,8 @@
* @exclude
*
* @param context the current ServletContext
- * @param request the ServletRequest, which must be a [EMAIL PROTECTED]
org.apache.beehive.netui.pageflow.scoping.ScopedRequest}.
- * @param response the ServletResponse, which must be a [EMAIL PROTECTED]
org.apache.beehive.netui.pageflow.scoping.ScopedResponse}.
+ * @param request the ServletRequest, which must be a [EMAIL PROTECTED]
ScopedRequest}.
+ * @param response the ServletResponse, which must be a [EMAIL PROTECTED]
ScopedResponse}.
* @param actionOverride if not <code>null</code>, this action-name is
used to construct an action
* URI which is set as the request URI.
* @param autoResolveExtensions a list of URI extensions (e.g., ".do",
".jpf") that will be auto-resolved, i.e.,
@@ -929,12 +940,13 @@
*/
public static GlobalApp ensureGlobalApp( HttpServletRequest request,
HttpServletResponse response )
{
- return ( GlobalApp ) InternalUtils.ensureSharedFlow( request, response
);
+ ServletContext servletContext = InternalUtils.getServletContext(
request );
+ return ensureGlobalApp( request, response, servletContext );
}
/**
* Get or create the current [EMAIL PROTECTED] GlobalApp} instance.
- * @deprecated Use [EMAIL PROTECTED] #getGlobalApp} instead.
+ * @deprecated Use [EMAIL PROTECTED] #getSharedFlow} instead.
*
* @param request the current HttpServletRequest.
* @param response the current HttpServletResponse
@@ -945,7 +957,9 @@
public static GlobalApp ensureGlobalApp( HttpServletRequest request,
HttpServletResponse response,
ServletContext servletContext )
{
- return ( GlobalApp ) InternalUtils.ensureSharedFlow( request,
response, servletContext );
+ Map< String, SharedFlowController > sf =
+ FlowControllerFactory.getSharedFlowsForRequest( request,
response, servletContext );
+ return getGlobalApp( request );
}
/**
@@ -962,7 +976,6 @@
* not guaranteed to be supported in the future.
*/
public static ModuleConfig ensureModuleConfig( String modulePath,
ServletRequest request, ServletContext context )
- throws IOException, ServletException
{
return InternalUtils.ensureModuleConfig( modulePath, request, context
);
}
@@ -1033,7 +1046,7 @@
HttpServletResponse response,
ServletContext servletContext )
{
- return InternalUtils.ensureCurrentPageFlow( request, response );
+ return FlowControllerFactory.getPageFlowForRequest( request, response,
servletContext );
}
/**
@@ -1042,7 +1055,14 @@
public static final PageFlowController ensureCurrentPageFlow(
HttpServletRequest request,
HttpServletResponse response )
{
- return InternalUtils.ensureCurrentPageFlow( request, response );
+ ServletContext servletContext = InternalUtils.getServletContext(
request );
+
+ if ( servletContext == null && _log.isWarnEnabled() )
+ {
+ _log.warn( "could not get ServletContext from request " + request
);
+ }
+
+ return FlowControllerFactory.getPageFlowForRequest( request, response,
servletContext );
}
/**
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/annotations/Jpf.java
Fri Dec 10 00:33:03 2004
@@ -39,6 +39,8 @@
@Retention( RUNTIME )
public @interface Controller
{
+ SharedFlowRef[] sharedFlowRefs() default {};
+
/**
* Location of the Struts merge file; relative to the page flow, or a
path from the webapp root. Optional.
*/
@@ -174,14 +176,12 @@
public @interface Action
{
/**
- * page flow-scoped form; references a member variable (bean) in the
page flow
- * (optional )
+ * page flow-scoped form; references a member variable (bean) in the
page flow (optional )
*/
String useFormBean() default "";
/**
- * is this action read-only, i.e., is it guaranteed not to modify
member state
- * (optional )
+ * is this action read-only, i.e., is it guaranteed not to modify
member state (optional )
*/
boolean readOnly() default false;
@@ -740,8 +740,12 @@
@Target( FIELD )
@Retention( RUNTIME )
- public @interface SharedFlowField
+ public @interface SharedFlowField
{
+ /**
+ * The name of the shared flow, as declared in [EMAIL PROTECTED]
SharedFlowRef#name()}
+ */
+ String name();
}
@Target( FIELD )
@@ -757,8 +761,8 @@
}
@Target( METHOD )
- @Retention( RUNTIME )
- public @interface CommandHandler
+ @Retention( RUNTIME )
+ public @interface CommandHandler
{
RaiseAction[] raiseActions() default {};
}
@@ -769,5 +773,13 @@
{
String action();
String outputFormBean() default "";
+ }
+
+ @Target( ANNOTATION_TYPE )
+ @Retention( RUNTIME )
+ public @interface SharedFlowRef
+ {
+ Class type();
+ String name();
}
}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowControllerConfig.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowControllerConfig.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowControllerConfig.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowControllerConfig.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowControllerConfig.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/config/PageFlowControllerConfig.java
Fri Dec 10 00:33:03 2004
@@ -23,8 +23,8 @@
import org.apache.beehive.netui.util.config.bean.PageflowConfig;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
-import java.util.List;
-import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.Map;
public class PageFlowControllerConfig extends ControllerConfig
{
@@ -36,7 +36,7 @@
private boolean _isReturnToPageDisabled;
private boolean _isReturnToActionDisabled;
private boolean _isMissingDefaultMessages;
- private List< String > _sharedFlowModules;
+ private LinkedHashMap< String, String > _sharedFlowTypes;
private String _controllerClass;
private boolean _isSharedFlow;
private String _overrideMultipartClass = null;
@@ -93,19 +93,29 @@
_isMissingDefaultMessages = missingDefaultMessages;
}
- public void setSharedFlowModules( String sharedFlowModules )
+ public void setSharedFlows( String sharedFlows )
{
- _sharedFlowModules = Arrays.asList( sharedFlowModules.split( ";" ) );
+ String[] keyValues = sharedFlows.split( "," );
+ _sharedFlowTypes = new LinkedHashMap< String, String >();
+
+ for ( int i = 0; i < keyValues.length; i++ )
+ {
+ String keyValue = keyValues[i];
+ int delim = keyValue.indexOf( '=' );
+ assert delim != -1 : "no delimiter in " + keyValue;
+ assert delim < keyValue.length() - 1 : "missing value in " +
keyValue;
+ _sharedFlowTypes.put( keyValue.substring( 0, delim ),
keyValue.substring( delim + 1 ) );
+ }
}
-
- public String getSharedFlowModules()
+
+ public String getSharedFlows()
{
- throw new IllegalStateException( "not implemented" );
+ throw new UnsupportedOperationException( "not implemented; uses
getSharedFlowTypes" );
}
- public List< String > getSharedFlowModulesList()
+ public Map< String, String > getSharedFlowTypes()
{
- return _sharedFlowModules;
+ return _sharedFlowTypes;
}
public String getControllerClass()
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedFacesBackingInfo.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedFacesBackingInfo.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedFacesBackingInfo.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedFacesBackingInfo.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedFacesBackingInfo.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedFacesBackingInfo.java
Fri Dec 10 00:33:03 2004
@@ -17,7 +17,6 @@
*/
package org.apache.beehive.netui.pageflow.internal;
-import org.apache.beehive.netui.pageflow.PageFlowConstants;
import org.apache.beehive.netui.pageflow.annotations.Jpf;
import java.lang.reflect.Field;
@@ -25,48 +24,34 @@
/**
* Information that is cached per pageflow class.
- *
- * @exclude
*/
public class CachedFacesBackingInfo
+ extends CachedSharedFlowRefInfo
{
/**
- * The SharedFlowController-initialized member field -- may or may not be
present.
- */
- private Field _sharedFlowMemberField;
-
- /**
* The PageFlowController-initialized member field -- may or may not be
present.
*/
private Field _pageFlowMemberField;
- public CachedFacesBackingInfo( Class pageFlowClass )
+ public CachedFacesBackingInfo( Class facesBackingClass )
{
- Field[] fields = pageFlowClass.getDeclaredFields();
+ Field[] fields = facesBackingClass.getDeclaredFields();
for ( int i = 0; i < fields.length; i++ )
{
Field field = fields[i];
- if ( field.getAnnotation( Jpf.SharedFlowField.class ) != null )
- {
- _sharedFlowMemberField = field;
- _sharedFlowMemberField.setAccessible( true );
- }
- else if ( field.getAnnotation( Jpf.PageFlowField.class ) != null )
+ if ( field.getAnnotation( Jpf.PageFlowField.class ) != null )
{
_pageFlowMemberField = field;
_pageFlowMemberField.setAccessible( true );
}
}
+
+ initSharedFlowFields( fields );
}
- public Field getSharedFlowMemberField()
- {
- return _sharedFlowMemberField;
- }
-
public Field getPageFlowMemberField()
{
return _pageFlowMemberField;
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedPageFlowInfo.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedPageFlowInfo.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedPageFlowInfo.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedPageFlowInfo.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedPageFlowInfo.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedPageFlowInfo.java
Fri Dec 10 00:33:03 2004
@@ -18,17 +18,13 @@
package org.apache.beehive.netui.pageflow.internal;
import org.apache.beehive.netui.pageflow.PageFlowConstants;
-import org.apache.beehive.netui.pageflow.annotations.Jpf;
-
-import java.lang.reflect.Field;
/**
* Information that is cached per pageflow class.
- *
- * @exclude
*/
public class CachedPageFlowInfo
+ extends CachedSharedFlowRefInfo
{
/**
* A cached copy of the module path for this PageFlowController (the path
starting at the webapp root).
@@ -40,35 +36,16 @@
*/
private String _URI;
- /**
- * The SharedFlowController-initialized member field -- may or may not be
present.
- */
- private Field _sharedFlowMemberField;
-
public CachedPageFlowInfo( Class pageFlowClass )
{
- Field[] fields = pageFlowClass.getDeclaredFields();
-
- for ( int i = 0; i < fields.length; i++ )
- {
- Field field = fields[i];
-
- // TODO: auto-upgrade to get rid of legacy "globalApp" field
- if ( field.getAnnotation( Jpf.SharedFlowField.class ) != null
- || field.getName().equals(
InternalConstants.GLOBALAPP_MEMBER_NAME ) )
- {
- _sharedFlowMemberField = field;
- _sharedFlowMemberField.setAccessible( true );
- break;
- }
- }
+ initSharedFlowFields( pageFlowClass.getDeclaredFields() );
//
// URI
//
String className = pageFlowClass.getName();
- _URI = "/" + className.replace( '.', '/' ) +
PageFlowConstants.JPF_EXTENSION;
+ _URI = '/' + className.replace( '.', '/' ) +
PageFlowConstants.JPF_EXTENSION;
//
// module path
@@ -94,15 +71,5 @@
public void setURI( String URI )
{
_URI = URI;
- }
-
- public Field getSharedFlowMemberField()
- {
- return _sharedFlowMemberField;
- }
-
- public void setSharedFlowMemberField( Field sharedFlowMemberField )
- {
- _sharedFlowMemberField = sharedFlowMemberField;
}
}
Added:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedSharedFlowRefInfo.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedSharedFlowRefInfo.java?view=auto&rev=111484
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/CachedSharedFlowRefInfo.java
Fri Dec 10 00:33:03 2004
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.pageflow.internal;
+
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.lang.reflect.Field;
+
+public class CachedSharedFlowRefInfo
+{
+ public static class SharedFlowFieldInfo
+ {
+ public Field field;
+ public String sharedFlowName;
+ }
+
+ /**
+ * The SharedFlowController-initialized member fields -- may or may not be
present.
+ */
+ private SharedFlowFieldInfo[] _sharedFlowMemberFields;
+
+ protected void initSharedFlowFields( Field[] fields )
+ {
+ List< SharedFlowFieldInfo > sharedFlowFields = null;
+
+ for ( int i = 0; i < fields.length; i++ )
+ {
+ Field field = fields[i];
+
+ Jpf.SharedFlowField sharedFlowFieldAnn = field.getAnnotation(
Jpf.SharedFlowField.class );
+
+ if ( sharedFlowFieldAnn != null )
+ {
+ field.setAccessible( true );
+ if ( sharedFlowFields == null ) sharedFlowFields = new
ArrayList< SharedFlowFieldInfo >();
+ SharedFlowFieldInfo info = new SharedFlowFieldInfo();
+ info.field = field;
+ info.sharedFlowName = sharedFlowFieldAnn.name();
+ sharedFlowFields.add( info );
+ }
+ else if ( field.getName().equals(
InternalConstants.GLOBALAPP_MEMBER_NAME ) )
+ {
+ //
+ // Legacy behavior: initialize a field called 'globalApp' with
the Global.app instance.
+ //
+ field.setAccessible( true );
+ if ( sharedFlowFields == null ) sharedFlowFields = new
ArrayList< SharedFlowFieldInfo >();
+ SharedFlowFieldInfo info = new SharedFlowFieldInfo();
+ info.field = field;
+ info.sharedFlowName = null;
+ sharedFlowFields.add( info );
+ }
+ }
+
+ if ( sharedFlowFields != null )
+ {
+ _sharedFlowMemberFields = sharedFlowFields.toArray( new
SharedFlowFieldInfo[ sharedFlowFields.size() ] );
+ }
+ }
+
+ public SharedFlowFieldInfo[] getSharedFlowMemberFields()
+ {
+ return _sharedFlowMemberFields;
+ }
+}
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultExceptionsHandler.java
Fri Dec 10 00:33:03 2004
@@ -35,6 +35,7 @@
import java.lang.reflect.UndeclaredThrowableException;
import java.lang.reflect.Method;
import java.util.Locale;
+import java.util.Collection;
import java.io.StringWriter;
import java.io.PrintWriter;
import java.io.IOException;
@@ -43,6 +44,8 @@
import org.apache.beehive.netui.pageflow.FlowController;
import org.apache.beehive.netui.pageflow.PageFlowException;
import org.apache.beehive.netui.pageflow.FormData;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.SharedFlowController;
import org.apache.beehive.netui.pageflow.handler.ExceptionsHandler;
import org.apache.beehive.netui.util.Bundle;
import org.apache.beehive.netui.util.cache.ClassLevelCache;
@@ -91,13 +94,13 @@
//
if ( exceptionConfig == null )
{
- exceptionConfig =
- getAlternateExceptionConfig( exClass, flowController,
request, servletContext );
+ FlowController fallbackFC =
+ getFallbackFlowController( flowController, exClass,
request, response, servletContext );
- if ( exceptionConfig != null )
+ if ( fallbackFC != null )
{
- flowController = getAlternateFlowController( flowController,
request, response, servletContext );
- if ( flowController == null ) exceptionConfig = null; //
must have both for this to work.
+ flowController = fallbackFC;
+ exceptionConfig = getExceptionConfig( exClass,
fallbackFC.getModuleConfig() );
}
actionMapping = null; // This action mapping isn't relevant if
we found the exception elsewhere.
@@ -192,36 +195,35 @@
return config;
}
- protected ExceptionConfig getAlternateExceptionConfig( Class exClass,
FlowController originalFlowController,
- HttpServletRequest
request, ServletContext servletContext )
+ protected FlowController getFallbackFlowController( FlowController
originalFlowController, Class exClass,
+ HttpServletRequest
request, HttpServletResponse response,
+ ServletContext
servletContext )
{
- ModuleConfig exceptionHandlerModuleConfig =
- InternalUtils.getSharedFlowConfig(
originalFlowController.getModuleConfig(), request, servletContext );
- return getExceptionConfig( exClass, exceptionHandlerModuleConfig );
- }
-
- protected FlowController getAlternateFlowController( FlowController
originalFlowController,
- HttpServletRequest
request, HttpServletResponse response,
- ServletContext
servletContext )
- {
- FlowController exceptionController =
- InternalUtils.getSharedFlow( originalFlowController, request,
response, servletContext );
-
- //
- // If there's no Global.app class, then it means there's an orphan
module configuration file
- // for Global.app (jpf-struts-config--global.xml). Effectively
there's no Global.app.
- //
- if ( exceptionController != null )
+ if ( originalFlowController instanceof PageFlowController )
{
- InternalUtils.setCurrentModule(
exceptionController.getModuleConfig(), request );
-
- if ( _log.isDebugEnabled() )
+ Collection< SharedFlowController > sharedFlows =
+ ( ( PageFlowController ) originalFlowController
).getSharedFlows().values();
+
+ for ( SharedFlowController sf : sharedFlows )
{
- _log.debug( "Found exception-config in SharedFlowController "
+ exceptionController.getDisplayName() );
- }
+ ModuleConfig mc = sf.getModuleConfig();
+ ExceptionConfig ec = getExceptionConfig( exClass, mc );
+
+ if ( ec != null )
+ {
+ if ( _log.isDebugEnabled() )
+ {
+ _log.debug( "Found exception-config for " +
exClass.getName() + " in SharedFlowController "
+ + sf.getDisplayName() );
+ }
+
+ InternalUtils.setCurrentModule( mc, request );
+ return sf;
+ }
+ }
}
- return exceptionController;
+ return null;
}
protected ActionForward invokeExceptionHandlerClass( Throwable throwable,
ExceptionConfig exceptionConfig,
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java&r2=111484
==============================================================================
---
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 Dec 10 00:33:03 2004
@@ -225,52 +225,12 @@
}
}
- /**
- * Get or create the current PageFlowConroller for the given request.
Deduces the
- * ServletContext from the request.
- *
- * @exclude
- *
- * @param request the current HttpServletRequest.
- * @param response the current HttpServletResponse
- * @return the current PageFlowController in the user session, or if there
is none, create one
- * appropriate to the given request if possible. Failing that, return
<code>null</code>.
- */
- public static final PageFlowController ensureCurrentPageFlow(
HttpServletRequest request,
-
HttpServletResponse response )
- {
- assert request != null;
- assert response != null;
-
- //
- // This method is provided for
org.apache.beehive.netui.script.xscript.context.PageFlowContextResolver.
- //
- ServletContext servletContext = getServletContext( request );
-
- if ( servletContext == null && _log.isWarnEnabled() )
- {
- _log.warn( "could not get ServletContext from request " + request
);
- }
-
- return FlowControllerFactory.getPageFlowForRequest( request, response,
servletContext );
- }
-
public static String getFlowControllerClassName( String modulePath,
ServletRequest request, ServletContext context )
{
//
// We're going to look in the struts config to get the
PageFlowController class.
//
- ModuleConfig mc = null;
-
- try
- {
- mc = ensureModuleConfig( modulePath, request, context );
- }
- catch ( Exception e )
- {
- _log.error( "Error while registering Struts module " + modulePath,
e );
- }
-
+ ModuleConfig mc = ensureModuleConfig( modulePath, request, context );
return mc != null ? getFlowControllerClassName( mc ) : null;
}
@@ -504,27 +464,6 @@
}
/**
- * Get the Struts ModuleConfig associated with the SharedFlowController
for the given FlowController module.
- */
- public static ModuleConfig getSharedFlowConfig( ModuleConfig
flowControllerConfig, HttpServletRequest request,
- ServletContext
servletContext )
- {
- ControllerConfig cc = flowControllerConfig.getControllerConfig();
-
- //
- // If the current module is not a page flow module, use an alternate
method for finding the nearest shared flow.
- //
- if ( ! ( cc instanceof PageFlowControllerConfig ) )
- {
- SharedFlowController sfc = PageFlowUtils.getSharedFlow( request,
servletContext );
- return sfc != null ? sfc.getModuleConfig() : null;
- }
-
- List< String > sfModules = ( ( PageFlowControllerConfig ) cc
).getSharedFlowModulesList();
- return sfModules != null && sfModules.size() > 0 ? getModuleConfig(
sfModules.get( 0 ), servletContext ) : null;
- }
-
- /**
* Get the Struts ModuleConfig for the given module path.
*/
public static ModuleConfig getModuleConfig( String modulePath,
ServletContext context )
@@ -536,25 +475,34 @@
* Get the Struts ModuleConfig for the given module path. If there is
none registered,
* and if it is possible to register one automatically, do so.
*/
- public static ModuleConfig ensureModuleConfig( String modulePath,
ServletRequest request,
- ServletContext context )
- throws IOException, ServletException
+ public static ModuleConfig ensureModuleConfig( String modulePath,
ServletRequest request, ServletContext context )
{
- ModuleConfig ret = getModuleConfig( modulePath, context );
-
- if ( ret != null )
- {
- return ret;
- }
- else
+ try
{
- ActionServlet as = getActionServlet( context );
+ ModuleConfig ret = getModuleConfig( modulePath, context );
- if ( as instanceof AutoRegisterActionServlet )
+ if ( ret != null )
+ {
+ return ret;
+ }
+ else
{
- return ( ( AutoRegisterActionServlet ) as
).ensureModuleRegistered( modulePath, request );
+ ActionServlet as = getActionServlet( context );
+
+ if ( as instanceof AutoRegisterActionServlet )
+ {
+ return ( ( AutoRegisterActionServlet ) as
).ensureModuleRegistered( modulePath, request );
+ }
}
}
+ catch ( IOException e )
+ {
+ _log.error( "Error while registering Struts module " + modulePath,
e );
+ }
+ catch ( ServletException e )
+ {
+ _log.error( "Error while registering Struts module " + modulePath,
e );
+ }
return null;
}
@@ -920,17 +868,6 @@
}
}
- public static SharedFlowController getSharedFlow( FlowController pfc,
HttpServletRequest request,
- HttpServletResponse
response, ServletContext servletContext )
- {
- ModuleConfig sfConfig = getSharedFlowConfig( pfc.getModuleConfig(),
request, servletContext );
- if ( sfConfig == null ) return null;
- String sfClassName = getFlowControllerClassName( sfConfig );
- if ( sfClassName == null ) return null;
- SharedFlowController sf = PageFlowUtils.getSharedFlow( sfClassName,
request );
- return sf != null ? sf : FlowControllerFactory.getSharedFlow(
sfClassName, request, response, servletContext );
- }
-
public static boolean isSharedFlowModule( ModuleConfig mc )
{
ControllerConfig cc = mc.getControllerConfig();
@@ -1018,7 +955,7 @@
return qualifiedAction;
}
- public static String qualifiedAction( ServletContext servletContext,
String action )
+ public static String qualifyAction( ServletContext servletContext, String
action )
{
assert action != null;
StringBuilder sb = new StringBuilder( 32 );
@@ -1033,7 +970,7 @@
{
queryString = action.substring( question );
}
- String actionMapping = URLRewriterService.getActionMappingName(
action );
+ String actionMapping = getActionMappingName( action );
if ( servletMapping.startsWith( "*." ) )
{
sb.append( actionMapping );
@@ -1067,6 +1004,51 @@
return sb.toString();
}
+
+ /**
+ * Return the form action converted into an action mapping path. The
+ * value of the <code>action</code> property is manipulated as follows in
+ * computing the name of the requested mapping:
+ * <ul>
+ * <li>Any filename extension is removed (on the theory that extension
+ * mapping is being used to select the controller servlet).</li>
+ * <li>If the resulting value does not start with a slash, then a
+ * slash is prepended.</li>
+ * </ul>
+ *
+ * @param action the action name to be converted.
+ * @return an action path, suitable for lookup in the Struts configuration
file.
+ */
+ public static String getActionMappingName( String action )
+ {
+ return getCleanActionName( action, true );
+ }
+
+ public static String getCleanActionName( String action, boolean
prependSlash )
+ {
+ int question = action.indexOf( '?' );
+ if ( question >= 0 )
+ {
+ action = action.substring( 0, question );
+ }
+
+ if ( action.endsWith( ACTION_EXTENSION ) )
+ {
+ action = action.substring( 0, action.length() -
ACTION_EXTENSION_LEN );
+ }
+
+ if ( action.charAt( 0 ) == '/' )
+ {
+ if ( ! prependSlash ) action = action.substring( 1 );
+ }
+ else
+ {
+ if ( prependSlash ) action = '/' + action;
+ }
+
+ return action;
+ }
+
/**
* Add a parameter to the given URL. Assumes there is no trailing
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/util/URLRewriterService.java
Fri Dec 10 00:33:03 2004
@@ -20,6 +20,7 @@
import org.apache.beehive.netui.core.urls.MutableURI;
import org.apache.beehive.netui.pageflow.PageFlowUtils;
import org.apache.beehive.netui.pageflow.SecurityProtocol;
+import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.util.logging.Logger;
import javax.servlet.ServletContext;
@@ -203,7 +204,7 @@
*/
public static String getActionMappingName(String action)
{
- return
org.apache.beehive.netui.core.urls.URLRewriterService.getActionMappingName(
action );
+ return InternalUtils.getActionMappingName( action );
}
/**
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/common/ImplicitObjectUtil.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/common/ImplicitObjectUtil.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/common/ImplicitObjectUtil.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/common/ImplicitObjectUtil.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/common/ImplicitObjectUtil.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/common/ImplicitObjectUtil.java
Fri Dec 10 00:33:03 2004
@@ -53,6 +53,7 @@
private static final String PAGE_FLOW_IMPLICIT_OBJECT_KEY = "pageFlow";
private static final String SHARED_FLOW_IMPLICIT_OBJECT_KEY = "sharedFlow";
+ private static final String GLOBAL_APP_IMPLICIT_OBJECT_KEY = "globalApp";
private static final String BUNDLE_IMPLICIT_OBJECT_KEY = "bundle";
private static final String BACKING_IMPLICIT_OBJECT_KEY = "backing";
private static final String PAGE_INPUT_IMPLICIT_OBJECT_KEY = "pageInput";
@@ -83,10 +84,16 @@
request.setAttribute(PAGE_INPUT_IMPLICIT_OBJECT_KEY, map != null ? map
: Collections.EMPTY_MAP);
}
- public static final void loadSharedFlow(ServletRequest request,
SharedFlowController sharedFlow)
+ public static final void loadSharedFlow(ServletRequest request,
Map<String, SharedFlowController> sharedFlows)
{
- if (sharedFlow != null)
- request.setAttribute(SHARED_FLOW_IMPLICIT_OBJECT_KEY, sharedFlow);
+ if (sharedFlows != null)
+ request.setAttribute(SHARED_FLOW_IMPLICIT_OBJECT_KEY, sharedFlows);
+ }
+
+ public static final void loadGlobalApp(ServletRequest request, GlobalApp
globalApp)
+ {
+ if (globalApp != null)
+ request.setAttribute(GLOBAL_APP_IMPLICIT_OBJECT_KEY, globalApp);
}
public static final void loadBundleMap(ServletRequest servletRequest,
BundleMap bundleMap)
@@ -104,31 +111,28 @@
else return form;
}
- public static final SharedFlowController getSharedFlow(ServletRequest
request, ServletResponse response)
+ public static final Map<String, SharedFlowController>
getSharedFlow(ServletRequest request)
{
assert request instanceof HttpServletRequest;
- assert response instanceof HttpServletResponse;
- SharedFlowController sharedFlow =
InternalUtils.ensureSharedFlow((HttpServletRequest)request,
(HttpServletResponse)response);
- if(sharedFlow == null)
+ Map<String, SharedFlowController> sharedFlows = (Map<String,
SharedFlowController>) request.getAttribute(SHARED_FLOW_IMPLICIT_OBJECT_KEY);
+ if(sharedFlows == null)
{
// @todo: i18n
- RuntimeException re = new RuntimeException("Can not create the
sharedFlow binding context; the SharedFlow object is null.");
+ RuntimeException re = new RuntimeException("Can not create the
sharedFlow binding context; the SharedFlow map is null.");
if(_logger.isErrorEnabled())
_logger.error("", re);
throw re;
}
- else return sharedFlow;
+ else return sharedFlows;
}
public static final PageFlowController getPageFlow(ServletRequest request,
ServletResponse response)
{
assert request instanceof HttpServletRequest;
- assert response instanceof HttpServletResponse;
- PageFlowController jpf =
InternalUtils.ensureCurrentPageFlow((HttpServletRequest)request,
-
(HttpServletResponse)response);
+ PageFlowController jpf =
PageFlowUtils.getCurrentPageFlow((HttpServletRequest)request);
if(jpf != null)
return jpf;
else
@@ -303,9 +307,6 @@
FacesBackingBeanFactory.getFacesBackingBeanForRequest(
request, response, servletContext );
loadPageFlow( request, curJpf, fbb );
}
-
- SharedFlowController sf =
FlowControllerFactory.getSharedFlowForRequest( request, response,
servletContext );
- loadSharedFlow( request, sf );
// @todo: need to move bundleMap creation to a BundleMapFactory
BundleMap bundleMap = new BundleMap( request, servletContext, null );
Modified:
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/el/NetUIUpdateVariableResolver.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/el/NetUIUpdateVariableResolver.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/el/NetUIUpdateVariableResolver.java&r1=111483&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/el/NetUIUpdateVariableResolver.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/el/NetUIUpdateVariableResolver.java
(original)
+++
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/script/el/NetUIUpdateVariableResolver.java
Fri Dec 10 00:33:03 2004
@@ -31,6 +31,8 @@
import org.apache.beehive.netui.pageflow.PageFlowController;
import org.apache.beehive.netui.pageflow.GlobalApp;
+import java.util.Map;
+
/**
*
*/
@@ -101,9 +103,9 @@
else return new String[] {"actionForm", "pageFlow", "globalApp",
"request", "session", "application"};
}
- private static final SharedFlowController getSharedFlow(ServletRequest
request, ServletResponse response)
+ private static final Map<String, SharedFlowController>
getSharedFlow(ServletRequest request, ServletResponse response)
{
- return ImplicitObjectUtil.getSharedFlow(request, response);
+ return ImplicitObjectUtil.getSharedFlow(request);
}
private static final PageFlowController getPageFlow(ServletRequest
request, ServletResponse response)
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java&r1=111483&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
Fri Dec 10 00:33:03 2004
@@ -106,7 +106,7 @@
String pageUri = null;
if (_pageAction != null) {
PageContext pageContext =
JspUtil.getPageContext(_model.getJspContext());
- String qualifiedAction =
InternalUtils.qualifiedAction(pageContext.getServletContext(), _pageAction);
+ String qualifiedAction =
InternalUtils.qualifyAction(pageContext.getServletContext(), _pageAction);
pageUri = InternalUtils.createActionURL((HttpServletRequest)
pageContext.getRequest(), qualifiedAction);
} else if (_pageHref != null) {
pageUri = _pageHref;
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/invoke/CallPageFlow.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/invoke/CallPageFlow.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/invoke/CallPageFlow.java&r1=111483&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/invoke/CallPageFlow.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/invoke/CallPageFlow.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/invoke/CallPageFlow.java
Fri Dec 10 00:33:03 2004
@@ -126,8 +126,7 @@
/**
* Get the PageFlow for the using JSP's directory. This is an
implementation of the
* [EMAIL PROTECTED] CallMethod#resolveObject()} method that finds the
current PageFlow
- * using the [EMAIL PROTECTED]
InternalUtils#ensureCurrentPageFlow(HttpServletRequest, HttpServletResponse)}
- * method.
+ * using the [EMAIL PROTECTED] InternalUtils#getCurrentPageFlow} method.
*
* @throws ObjectNotFoundException when an exception occurs ensuring that
a Page Flow is created.
* @return the current PageFlow. If there is no current PageFlow, the
[EMAIL PROTECTED] ObjectNotFoundException} will
@@ -138,8 +137,7 @@
{
try
{
- PageFlowController jpf =
InternalUtils.ensureCurrentPageFlow((HttpServletRequest)pageContext.getRequest(),
-
(HttpServletResponse)pageContext.getResponse());
+ PageFlowController jpf =
InternalUtils.getCurrentPageFlow((HttpServletRequest)pageContext.getRequest(),
false);
if(_logger.isDebugEnabled())
_logger.debug("Found a pageflow of type: " + (jpf != null ?
jpf.getClass().getName() : "null"));
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java&r1=111483&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/AnchorBase.java
Fri Dec 10 00:33:03 2004
@@ -328,7 +328,7 @@
}
// report that action is not an action
- if ((_action != null) && (!PageFlowTagUtils.isAction(request,
response, ctxt, _action))) {
+ if ((_action != null) && (!PageFlowTagUtils.isAction(request,
_action))) {
String s = null;
if (_action.equals("")) {
s = Bundle.getString("Tags_NullBadAction", null);
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java&r1=111483&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Button.java
Fri Dec 10 00:33:03 2004
@@ -231,7 +231,7 @@
ByRef ref = new ByRef();
if (_action != null) {
- boolean isAction = PageFlowTagUtils.isAction(request, response,
pageContext.getServletContext(), _action);
+ boolean isAction = PageFlowTagUtils.isAction(request, _action);
if (isAction) {
String overrideAction = ACTION_OVERRIDE + _action;
overrideAction = HtmlUtils.addParams(overrideAction, _params,
response.getCharacterEncoding());
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java&r1=111483&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/Form.java
Fri Dec 10 00:33:03 2004
@@ -22,6 +22,7 @@
import org.apache.beehive.netui.pageflow.*;
import org.apache.beehive.netui.pageflow.internal.ContextCache;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.InternalConstants;
import org.apache.beehive.netui.script.common.ImplicitObjectUtil;
import org.apache.beehive.netui.tags.internal.PageFlowTagUtils;
import org.apache.beehive.netui.tags.rendering.*;
@@ -878,55 +879,21 @@
_flowController = PageFlowUtils.getCurrentPageFlow(request);
// check to see if this is a bad action
- boolean isAction = PageFlowTagUtils.isAction(request, response,
servletContext, _state.action);
- if (!isAction) {
+
+ PageFlowTagUtils.MappingAndController mac =
PageFlowTagUtils.getActionMapping(request, _flowController, _state.action);
+ if (mac == null) {
+ FlowController globalApp =
PageFlowUtils.getSharedFlow(InternalConstants.GLOBALAPP_CLASSNAME, request);
+ mac = PageFlowTagUtils.getActionMapping( request, globalApp,
_state.action );
+ }
+ if (mac == null) {
registerTagError(Bundle.getString("Tags_BadAction",
_state.action), null);
return;
}
-
- //
- // If the current module is a SharedFlowController module, then we'll
first try the module
- // associated with the current pageflow. Later we'll retry this one
if necessary.
- if (InternalUtils.isSharedFlowModule(_appConfig)) {
- if (_flowController != null) {
- _appConfig = _flowController.getModuleConfig();
- }
- }
-
- // Look up the action mapping we will be submitting to
- String mappingName =
URLRewriterService.getActionMappingName(_state.action);
- _mapping = (ActionMapping) _appConfig.findActionConfig(mappingName);
-
- // If we didn't find it in the current module's config, look in
Global.app
- if (_mapping == null) {
- //ModuleConfig sharedFlowConfig =
InternalUtils.getSharedFlowConfig(_appConfig, request, servletContext);
- SharedFlowController sfc = PageFlowUtils.getSharedFlow(request,
servletContext);
-
- if (sfc != null) {
- ModuleConfig sharedFlowConfig = sfc.getModuleConfig();
- ActionMapping globalMapping =
- (ActionMapping)
sharedFlowConfig.findActionConfig(mappingName);
-
- if (globalMapping != null) {
- _appConfig = sharedFlowConfig;
- _flowController = sfc;
- _mapping = globalMapping;
- }
- }
- }
-
- if (_mapping == null) {
- // @TODO portal - will most likely require requestURI and lookupKey
- String jpfDescrip = "";
- PageFlowController curJpf =
- FlowControllerFactory.getPageFlowForRequest(request,
response, pageContext.getServletContext());
-
- if (curJpf != null)
- jpfDescrip = " in " + curJpf.getClass().getName();
- JspException e = new JspException("form: ActionMapping \"" +
mappingName + "\" not found" + jpfDescrip);
- pageContext.setAttribute(Globals.EXCEPTION_KEY, e,
PageContext.REQUEST_SCOPE);
- throw e;
- }
+
+ _flowController = mac.controller;
+ _mapping = mac.mapping;
+ _appConfig = _mapping.getModuleConfig();
+ assert _mapping != null;
// Were the required values already specified?
if (_state.name != null) {
@@ -940,21 +907,17 @@
return;
}
- if (_mapping != null) {
-
- // Look up the form bean definition
- FormBeanConfig formBeanConfig =
- _appConfig.findFormBeanConfig(_mapping.getName());
- if (formBeanConfig == null) {
- //Ignore - this is okay if binding happens in the pageFlow.
- }
- else {
- // Calculate the required values
- _beanName = _mapping.getAttribute();
- _beanScope = _mapping.getScope();
- _beanType = formBeanConfig.getType();
- }
+ // Look up the form bean definition
+ FormBeanConfig formBeanConfig =
+ _appConfig.findFormBeanConfig(_mapping.getName());
+ if (formBeanConfig == null) {
+ //Ignore - this is okay if binding happens in the pageFlow.
+ }
+ else {
+ // Calculate the required values
+ _beanName = _mapping.getAttribute();
+ _beanScope = _mapping.getScope();
+ _beanType = formBeanConfig.getType();
}
-
}
}
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java&r1=111483&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/internal/PageFlowTagUtils.java
Fri Dec 10 00:33:03 2004
@@ -25,7 +25,11 @@
import org.apache.beehive.netui.pageflow.PageFlowConstants;
import org.apache.beehive.netui.pageflow.PageFlowUtils;
import org.apache.beehive.netui.pageflow.SecurityProtocol;
+import org.apache.beehive.netui.pageflow.SharedFlowController;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.beehive.netui.pageflow.internal.InternalConstants;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.config.ActionConfig;
import java.net.URISyntaxException;
import java.util.Map;
@@ -61,7 +65,7 @@
ServletContext servletContext = pageContext.getServletContext();
ServletRequest request = pageContext.getRequest();
HttpServletResponse response = ( HttpServletResponse )
pageContext.getResponse();
- String qualifiedAction = InternalUtils.qualifiedAction(
servletContext, action );
+ String qualifiedAction = InternalUtils.qualifyAction( servletContext,
action );
String actionUrl = InternalUtils.createActionURL( ( HttpServletRequest
) request, qualifiedAction );
MutableURI uri = new MutableURI( actionUrl );
@@ -150,44 +154,81 @@
* Determine whether a given URI is an Action.
*
* @param request the current HttpServletRequest.
- * @param response the current HttpServletResponse.
- * @param servletContext the current ServletContext.
* @param action the URI to check.
* @return <code>true</code> if the action is defined in the current page
flow
* or in a shared flow. Otherwise, return <code>false</code>.
*/
- public static boolean isAction( HttpServletRequest request,
HttpServletResponse response,
- ServletContext servletContext, String
action )
+ public static boolean isAction( HttpServletRequest request, String action )
{
- boolean isAnAction = true;
FlowController flowController = InternalUtils.getCurrentPageFlow(
request, false );
+
if ( flowController != null )
{
- String checkAction = action;
- if ( checkAction.startsWith( "/" ) )
+ if ( action.endsWith( PageFlowConstants.ACTION_EXTENSION ) )
{
- checkAction = checkAction.substring( 1 );
+ action = action.substring( 0, action.length() -
PageFlowConstants.ACTION_EXTENSION.length() );
}
- if ( checkAction.endsWith( PageFlowConstants.ACTION_EXTENSION ) )
+
+ if ( getActionMapping( request, flowController, action ) != null )
return true;
+ FlowController globalApp = PageFlowUtils.getSharedFlow(
InternalConstants.GLOBALAPP_CLASSNAME, request );
+ return getActionMapping( request, globalApp, action ) != null;
+ }
+
+ return true;
+ }
+
+ public static class MappingAndController
+ {
+ public ActionMapping mapping;
+ public FlowController controller;
+ }
+
+ public static MappingAndController getActionMapping( HttpServletRequest
request, FlowController flowController, String action )
+ {
+ ActionConfig mapping = null;
+ FlowController fc = null;
+
+ if ( flowController != null )
+ {
+ //
+ // If there's a '.' delimiter, it's a shared flow action.
+ //
+ int dot = action.indexOf( '.' );
+
+ if ( dot == -1 )
{
- checkAction = checkAction.substring( 0, checkAction.length() -
PageFlowConstants.ACTION_EXTENSION.length() );
+ if ( action.charAt( 0 ) != '/' ) action = '/' + action;
+ mapping = flowController.getModuleConfig().findActionConfig(
action );
+ fc = flowController;
}
- isAnAction = flowController.isAction( checkAction );
-
- if ( !isAnAction )
+ else if ( dot < action.length() - 1 )
{
- FlowController globalController =
- FlowControllerFactory.getSharedFlowForRequest(
request, response, servletContext );
- if ( globalController != null )
+ String sharedFlowName = action.substring( 0, dot );
+ if ( sharedFlowName.charAt( 0 ) == '/' ) sharedFlowName =
sharedFlowName.substring( 1 );
+ FlowController sharedFlow = PageFlowUtils.getSharedFlows(
request ).get( sharedFlowName );
+
+ if ( sharedFlow != null )
{
- isAnAction = globalController.isAction( checkAction );
+ String actionPath = '/' + action.substring( dot + 1 );
+ mapping = sharedFlow.getModuleConfig().findActionConfig(
actionPath );
+ fc = sharedFlow;
}
}
}
-
- return isAnAction;
+
+ assert mapping == null || mapping instanceof ActionMapping :
mapping.getClass().getName();
+
+ if ( mapping != null )
+ {
+ MappingAndController mac = new MappingAndController();
+ mac.mapping = ( ActionMapping ) mapping;
+ mac.controller = fc;
+ return mac;
+ }
+
+ return null;
}
-
+
/**
* Tell whether a given URI should be written to be secure.
*
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java&r1=111483&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/Tree.java
Fri Dec 10 00:33:03 2004
@@ -1011,7 +1011,7 @@
if (action == null) {
action = _iState.getSelectionAction();
}
- boolean isAction = PageFlowTagUtils.isAction(request, response,
pageContext.getServletContext(), action);
+ boolean isAction = PageFlowTagUtils.isAction(request, action);
if (!isAction) {
registerTagError(Bundle.getString("Tags_BadAction", action), null);
return false;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java&r1=111483&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
Fri Dec 10 00:33:03 2004
@@ -302,7 +302,7 @@
if (_action != null) {
HttpServletRequest request = (HttpServletRequest)
pageContext.getRequest();
HttpServletResponse response = (HttpServletResponse)
pageContext.getResponse();
- boolean isAction = PageFlowTagUtils.isAction(request, response,
pageContext.getServletContext(), _action);
+ boolean isAction = PageFlowTagUtils.isAction(request, _action);
if (!isAction) {
registerTagError(Bundle.getString("Tags_BadAction", _action),
null);
}
Modified:
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java&r1=111483&p2=incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java
(original)
+++
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/core/urls/URLRewriterService.java
Fri Dec 10 00:33:03 2004
@@ -244,45 +244,6 @@
}
/**
- * Return the form action converted into an action mapping path. The
- * value of the <code>action</code> property is manipulated as follows in
- * computing the name of the requested mapping:
- * <ul>
- * <li>Any filename extension is removed (on the theory that extension
- * mapping is being used to select the controller servlet).</li>
- * <li>If the resulting value does not start with a slash, then a
- * slash is prepended.</li>
- * </ul>
- *
- * @param action the action name to be converted.
- * @return an action path, suitable for lookup in the Struts configuration
file.
- */
- public static String getActionMappingName( String action )
- {
- String value = action;
- int question = action.indexOf( "?" );
- if ( question >= 0 )
- {
- value = value.substring( 0, question );
- }
- int slash = value.lastIndexOf( "/" );
- int period = value.lastIndexOf( "." );
- if ( ( period >= 0 ) && ( period > slash ) )
- {
- value = value.substring( 0, period );
- }
-
- if ( value.startsWith( "/" ) )
- {
- return ( value );
- }
- else
- {
- return ( "/" + value );
- }
- }
-
- /**
* Tell whether rewritten form actions should be allowed to have query
parameters. If this returns
* <code>false</code>, then a form-tag implementation should render query
parameters into hidden
* fields on the form instead of allowing them to remain in the URL.
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/SharedFlow.jpfs
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/SharedFlow.jpfs?view=auto&rev=111483
==============================================================================
Added:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/global/Global.app
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/global/Global.app?view=auto&rev=111484
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/global/Global.app
Fri Dec 10 00:33:03 2004
@@ -0,0 +1,530 @@
+package global;
+
+import org.apache.beehive.netui.pageflow.*;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.util.Arrays;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionForward;
+import shared.FormA;
+import shared.QaTrace;
+import pageFlowCore.returnToTest.returnToTestController.InputForm;
+
[EMAIL PROTECTED](
+ catches={
+ @Jpf.Catch(type=NoPreviousPageException.class,
path="/timeout/error.jsp"),
+ @Jpf.Catch(type=SessionExpiredException.class,
path="/timeout/error.jsp")
+ },
+ strutsMerge="/WEB-INF/src/global/merge-jpf-struts-config.xml"
+)
+public class Global extends GlobalApp
+{
+ private String _globalAppInfo = "";
+ private String _results;
+
+ public String getGlobalAppInfo() {
+ return _globalAppInfo;
+ }
+
+ public String getResults() {
+ return _results;
+ }
+ public void setResults(String results) {
+ _results = results;
+ }
+
+ @Jpf.Action(
+ forwards={
+ @Jpf.Forward(
+ name="success",
+ navigateTo=Jpf.NavigateTo.currentPage
+ )
+ }
+ )
+ public Forward pageFlowCore_sharedFlow_globalAction()
+ {
+ return new Forward( "success", "message", "hit Global.app" );
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "nesting", path =
"/globalJpfs/nestReturn/Controller.jpf") })
+ public Forward globalAction_action()
+ {
+ return new Forward("nesting");
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "nesting", path =
"/globalJpfs/nestReturn/Controller.jpf") })
+ public Forward globalAction_form(GlobalForm form)
+ {
+ return new Forward("nesting");
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "return", navigateTo =
Jpf.NavigateTo.currentPage) })
+ public Forward globalAction_getInfo(GlobalForm form)
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append("<table border='1' cellspacing='0'cellpaddinig='2'>");
+
+ sb = new StringBuffer();
+ sb.append("<table border='1' cellspacing='0'cellpaddinig='2'>");
+
+ HttpServletRequest req = getRequest();
+ sb.append("<tr><td>Request</td><td>");
+ sb.append(req.getRequestURI());
+ sb.append("</td></tr>");
+
+
+ HttpServletResponse resp = getResponse();
+ sb.append("<tr><td>Response</td><td>Committed:");
+ sb.append("" + resp.isCommitted());
+ sb.append("</td></tr>");
+
+
+ HttpSession session = getSession();
+ session.setMaxInactiveInterval( 3600 );
+ sb.append("<tr><td>Session</td><td>In active interval:");
+ sb.append("" + session.getMaxInactiveInterval());
+ sb.append("</td></tr>");
+
+ // nestable
+ sb.append("<tr><td>Nestable</td><td>");
+ sb.append("" + isNestable());
+ sb.append("</td></tr>");
+
+ // nestable
+ sb.append("<tr><td>PageFlow</td><td>");
+ sb.append("" + isPageFlow());
+ sb.append("</td></tr>");
+
+ // get action
+ sb.append("<tr><td>Actions</td><td>");
+ String[] actions = getActions();
+ Arrays.sort(actions);
+ for (int i=0;i<actions.length;i++) {
+ sb.append(actions[i]);
+ sb.append("<br />");
+ }
+ sb.append("</td></tr>");
+
+
+ // get mapping
+ ActionMapping map = getMapping();
+ sb.append("<tr><td>ActionMapping</td><td>");
+ sb.append("" + map);
+ sb.append("</td></tr>");
+
+ // URI
+ sb.append("<tr><td>URI</td><td>");
+ sb.append("" + getURI());
+ sb.append("</td></tr>");
+
+ // parent dir
+ sb.append("<tr><td>parentDir</td><td>");
+ sb.append("" + getModulePath());
+ sb.append("</td></tr>");
+
+
+ sb.append("</table>");
+ _globalAppInfo = sb.toString();
+
+ return new Forward("return");
+ }
+
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "results", path =
"/results/Controller.jpf") })
+ public Forward globalAction_results()
+ {
+ return new Forward("results");
+ }
+
+ public static class GlobalForm extends FormData
+ {
+ String _search;
+ public void setSearch(String search) {
+ _search = search;
+ }
+ public String getSearch() {
+ return _search;
+ }
+
+ }
+
+ public String getAppState() {
+ return "running";
+ }
+
+ public String getAppInfo() {
+ return "App DRT";
+ }
+
+ /**
+ * This property is referenced by the databinding/globalApp/nojpf/ BVT.
+ */
+ public String getSayHello()
+ {
+ return "Hello World! -- the Global.app";
+ }
+
+ public String[] getStrings()
+ {
+ return new String[] {"One", "Fish", "Two", "Fish"};
+ }
+
+ //
+ // The following actions are for
/pageFlowCore/returnToTest/returnToTestController.jpf.
+ //
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
+ protected Forward globalReturnToCurrentPageOverrideInputs()
+ {
+ Forward fwd = new Forward( "success", "input1", "overridden #1" );
+ fwd.addPageInput( "input2", "overridden #2" );
+ return fwd;
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
+ protected Forward globalReturnToCurrentPageOverrideForm()
+ {
+ InputForm overrideForm = new InputForm();
+ overrideForm.setFoo( "override foo" );
+ overrideForm.setBar( "override bar" );
+ return new Forward("success", overrideForm);
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
+ protected Forward globalReturnToCurrentPage()
+ {
+ return new Forward("success");
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
+ protected Forward globalReturnToCurrentPageWithForm( InputForm form )
+ {
+ return new Forward("success");
+ }
+
+
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
+ protected Forward globalReturnToPageOverrideInputs()
+ {
+ Forward fwd = new Forward( "success", "input1", "overridden #1" );
+ fwd.addPageInput( "input2", "overridden #2" );
+ return fwd;
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
+ protected Forward globalReturnToPageOverrideForm()
+ {
+ InputForm overrideForm = new InputForm();
+ overrideForm.setFoo( "override foo" );
+ overrideForm.setBar( "override bar" );
+ return new Forward("success", overrideForm);
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
+ protected Forward globalReturnToPage()
+ {
+ return new Forward("success");
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
+ protected Forward globalReturnToPageWithForm( InputForm form )
+ {
+ return new Forward("success");
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousPage) })
+ protected Forward globalReturnToPreviousPage()
+ {
+ return new Forward("success");
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousPage) })
+ protected Forward globalReturnToPreviousPageOverrideInputs()
+ {
+ Forward fwd = new Forward( "success", "input1", "overridden #1" );
+ fwd.addPageInput( "input2", "overridden #2" );
+ return fwd;
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousPage) })
+ protected Forward globalReturnToPreviousPageOverrideForm()
+ {
+ InputForm overrideForm = new InputForm();
+ overrideForm.setFoo( "override foo" );
+ overrideForm.setBar( "override bar" );
+ return new Forward("success", overrideForm);
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousAction) })
+ protected Forward globalReturnToPreviousAction()
+ {
+ return new Forward("success");
+ }
+
+ @Jpf.Action(forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousAction) })
+ protected Forward globalReturnToAction()
+ {
+ return new Forward("success");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "goBack",
+ navigateTo = Jpf.NavigateTo.previousPage)
+ })
+ public Forward test35GlobalAction()
+ {
+ //_log.tracePoint("Global.test35GlobalAction():" + _cnt + " -
Test35");
+ return new Forward("goBack");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "gotoPg2",
+ path = "/returnTo/test36/Jsp2.jsp")
+ })
+ public Forward test36GlobalAction()
+ {
+ //_log.tracePoint("Global.test36GlobalAction():" + _cnt + " -
Test36");
+ return new Forward("gotoPg2");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "goBack",
+ navigateTo = Jpf.NavigateTo.currentPage)
+ })
+ public Forward test39GlobalAction()
+ {
+ //_log.tracePoint("Global.test39GlobalAction():" + _cnt + " -
Test39");
+ return new Forward("goBack");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "gotoPg2",
+ path = "/returnTo/test40/Jsp2.jsp")
+ })
+ public Forward test40GlobalAction()
+ {
+ //_log.tracePoint("Global.test40GlobalAction():" + _cnt + " - Test40");
+ return new Forward("gotoPg2");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "goBack",
+ navigateTo = Jpf.NavigateTo.currentPage)
+ })
+ public Forward test40GlobalAction_B()
+ {
+ //_log.tracePoint("Global.test40GlobalAction_B():" + _cnt + " - Test40");
+ return new Forward("goBack");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "goBack",
+ navigateTo = Jpf.NavigateTo.previousAction)
+ })
+ public Forward test45GlobalAction()
+ {
+ //_log.tracePoint("Global.test45GlobalAction():" + _cnt + " - Test45");
+ return new Forward("goBack");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "gotoAct2",
+ path = "/returnTo/test46/action2.do")
+ })
+ public Forward test46GlobalAction()
+ {
+ //_log.tracePoint("Global.test46GlobalAction():" + _cnt + " - Test46");
+ if (_toggle == true)
+ {
+ _toggle = false;
+ return new Forward("gotoAct2");
+ }
+ _toggle = true;
+ return new Forward("gotoError");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "goBack",
+ navigateTo = Jpf.NavigateTo.previousAction)
+ })
+ public Forward test48GlobalAction(FormA inForm)
+// public Forward test48GlobalAction()
+ {
+ //_log.tracePoint("Global.test48GlobalAction(FormA):"
+ // + _cnt
+ // + " - Test48 - FormA instance:"
+ // + _log.getClassCnter(inForm));
+ return new Forward("goBack");
+ }
+
+ private String _pageGroupState = "";
+
+ // from QA Global.app
+ private boolean _toggle = true;
+ private QaTrace _log = null;
+ private int _cnt = 0;
+
+ public String getPageFlowState() {
+ return _pageGroupState;
+ }
+ public void setPageFlowState(String pgs) {
+ _pageGroupState = pgs;
+ }
+
+ // from QA Web
+ /**
+ * onCreate
+ */
+ public void onCreate() throws Exception
+ {
+ HttpSession session = getSession();
+ _log = QaTrace.getTrace(getSession(), true);
+ //_cnt = _log.newClass(this);
+ //_log.tracePoint("Global.onCreate():" + session.hashCode());
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "struts1Do",
+ path = "/interOp/tests/test2/gotoStrutsJSP.do")
+ })
+ public Forward toLegacy()
+ {
+ // _log.tracePoint("Global.toLegacy():" + _cnt + " - Test2");
+ return new Forward("struts1Do");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "struts2Do",
+ path = "/interOp/tests/test5/gotoStruts2JSP.do")
+ })
+ public Forward globalAction()
+ {
+ //_log.tracePoint("Global.globalAction():" + _cnt + " - Test5");
+ return new Forward("struts2Do");
+ }
+
+ @Jpf.Action(
+ )
+ public Forward unKnown()
+ {
+ ActionMapping mapping = getMapping();
+ //_log.tracePoint("Global.unKnown():"
+ // + _cnt
+ // + " - Parameter:"
+ // + mapping.getParameter());
+ return new Forward("gotoError");
+ }
+
+ /**
+ * StrutsMergeTest2 will raise this "unHandledAction" action. The forward
+ * "jpf:gotoAction1" below will be overridden by the "struts-merge"
+ * annotation above and send control back to a valid action in the
+ * StrutsMergeTest2 pageflow.
+ */
+ @Jpf.Action(
+ )
+ public Forward unHandledAction()
+ {
+ ActionMapping mapping = getMapping();
+ //_log.tracePoint("Global.unHandledAction():"
+ // + _cnt
+ // + " - Parameter:"
+ // + mapping.getParameter());
+ return new Forward("gotoAction1");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "gotoResults",
+ path = "/miscJpf/bug30448/jpfReturn1.do")
+ })
+ public Forward jpfReturn1(FormA inForm)
+ {
+ //_log.tracePoint("Global.jpfReturn1(FormA):" + _cnt + " - bug30448");
+ return new Forward("gotoResults");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "success",
+ path = "/scopedJpf/jpfTest5/jpf1/Jpf1.jpf")
+ })
+ public Forward jpf1Begin()
+ {
+ //_log.tracePoint("Global.jpf1Begin():" + _cnt + " - JpfTest5");
+ return new Forward("success");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "success",
+ path = "/scopedJpf/jpfTest5/jpf2/Jpf2.jpf")
+ })
+ public Forward jpf2Begin()
+ {
+ //_log.tracePoint("Global.jpf2Begin():" + _cnt + " - JpfTest5");
+ return new Forward("success");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "success",
+ path = "/scopedJpf/jpfTest5/jpf1/goNested.do")
+ })
+ public Forward jpf1GoNested(FormA form)
+ {
+ //_log.tracePoint("Global.jpf1GoNested(FormA):" + _cnt + " - JpfTest5");
+ return new Forward("success");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "success",
+ path = "/scopedJpf/jpfTest5/jpf2/goNested.do")
+ })
+ public Forward jpf2GoNested(FormA form)
+ {
+ //_log.tracePoint("Global.jpf2GoNested(FormA):" + _cnt + " - JpfTest5");
+ return new Forward("success");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "success",
+ path = "/singletonJpf/jpfTest10/jpf1/Jpf1.jpf")
+ })
+ public Forward gblJpfTest10()
+ {
+ //_log.tracePoint("Global.jpfTest10():" + _cnt + " - JpfTest10");
+ return new Forward("success");
+ }
+
+}
Added:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/Controller.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/Controller.jpf?view=auto&rev=111484
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/Controller.jpf
Fri Dec 10 00:33:03 2004
@@ -0,0 +1,16 @@
+package databinding.cellrepeatererror;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
[EMAIL PROTECTED](
+ sharedFlowRefs={
+ @Jpf.SharedFlowRef(name="root", type=webappRoot.SharedFlow.class)
+ },
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp")
+ }
+)
+public class Controller extends PageFlowController
+{
+}
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/index.jsp
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/index.jsp?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/index.jsp&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/index.jsp&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/index.jsp
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/cellrepeatererror/index.jsp
Fri Dec 10 00:33:03 2004
@@ -71,7 +71,7 @@
<%}catch(Exception e){out.write(HtmlExceptionFormatter.format("Expected
failure, columns < 0", e, false));}%>
<hr/>
<% try{ %>
-<netui-data:cellRepeater dataSource="sharedFlow.noCellRepeaterProperty"
rows="-42" columns="5">
+<netui-data:cellRepeater dataSource="sharedFlow.root.noCellRepeaterProperty"
rows="-42" columns="5">
Item: <netui-html:span value="${container.item}"/>
</netui-data:cellRepeater>
<%}catch(Exception e){out.write(HtmlExceptionFormatter.format("Expected
failure, rows < 0", e, false));}%>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/globalApp/nojpf/index.jsp
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/globalApp/nojpf/index.jsp?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/globalApp/nojpf/index.jsp&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/globalApp/nojpf/index.jsp&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/globalApp/nojpf/index.jsp
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/globalApp/nojpf/index.jsp
Fri Dec 10 00:33:03 2004
@@ -13,11 +13,11 @@
<br/>
<br/>
<b>JSP 2.0 EL</b>
-The Global.app says: <netui:span value="${sharedFlow.sayHello}"/>
+The Global.app says: <netui:span value="${globalApp.sayHello}"/>
<br/>
<br/>
<b>NetUIEL</b><br/>
-<netui-data:repeater dataSource="sharedFlow.strings">
+<netui-data:repeater dataSource="globalApp.strings">
${container.item}<br/>
</netui-data:repeater>
<br/>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Begin.jsp
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Begin.jsp?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Begin.jsp&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Begin.jsp&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Begin.jsp
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Begin.jsp
Fri Dec 10 00:33:03 2004
@@ -11,7 +11,7 @@
binding is done the page flow. The page flow exposes a a property that passes
through the property
on the global app. This is a single page test.
</p>
-App State: <netui:span value="${sharedFlow.appState}"/><br>
+App State: <netui:span value="${globalApp.appState}"/><br>
App State through page flow: <netui:span value="${pageFlow.appInfo}"/>
</netui:body>
</netui:html>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Controller.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Controller.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Controller.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Controller.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Controller.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appState/Controller.jpf
Fri Dec 10 00:33:03 2004
@@ -23,11 +23,10 @@
@Jpf.Controller
public class Controller extends PageFlowController
{
- @Jpf.SharedFlowField
- protected transient webappRoot.SharedFlow _sharedFlow;
+ protected transient global.Global globalApp;
public String getAppInfo() {
- return _sharedFlow.getAppInfo();
+ return globalApp.getAppInfo();
}
@Jpf.Action(
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/Controller.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/Controller.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/Controller.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/Controller.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/Controller.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/Controller.jpf
Fri Dec 10 00:33:03 2004
@@ -23,97 +23,12 @@
import org.apache.beehive.netui.pageflow.annotations.Jpf;
[EMAIL PROTECTED](
-)
-
[EMAIL PROTECTED](
- value = {
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- "<pageflow-object
id='pageflow:/miniTests/appStatePass/Controller.jpf'/>",
- "<pageflow-object id='action:nest.do'>",
- " <property value='100' name='x'/>",
- " <property value='120' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToPage.do'>",
- " <property value='400' name='x'/>",
- " <property value='80' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToAction.do'>",
- " <property value='400' name='x'/>",
- " <property value='240' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:begin.do'>",
- " <property value='400' name='x'/>",
- " <property value='320' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='external-jpf:nested/Controller.jpf'>",
- " <property value='240' name='x'/>",
- " <property value='120' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:path#nest#nested/[EMAIL
PROTECTED]:nest.do@'>",
- " <property value='136,170,170,204' name='elbowsX'/>",
- " <property value='112,112,112,112' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='nest' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:Begin.jsp'>",
- " <property value='600' name='x'/>",
- " <property value='160' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:returnToPage.do@'>",
- " <property value='436,500,500,564' name='elbowsX'/>",
- " <property value='72,72,152,152' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='begin' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:returnToAction.do@'>",
- " <property value='436,500,500,564' name='elbowsX'/>",
- " <property value='232,232,163,163' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_2' name='toPort'/>",
- " <property value='begin' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'>",
- " <property value='436,500,500,564' name='elbowsX'/>",
- " <property value='312,312,163,163' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_2' name='toPort'/>",
- " <property value='begin' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@external-jpf:nested/[EMAIL
PROTECTED]@action:returnToAction.do@'>",
- " <property value='276,320,320,364' name='elbowsX'/>",
- " <property value='123,123,232,232' name='elbowsY'/>",
- " <property value='East_2' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@external-jpf:nested/[EMAIL
PROTECTED]@action:returnToPage.do@'>",
- " <property value='276,320,320,364' name='elbowsX'/>",
- " <property value='123,123,72,72' name='elbowsY'/>",
- " <property value='East_2' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:/nest.do'>",
- " <property value='740' name='x'/>",
- " <property value='180' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:/nest.do@'>",
- " <property value='636,670,670,704' name='elbowsX'/>",
- " <property value='163,163,172,172' name='elbowsY'/>",
- " <property value='East_2' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "</view-properties>"
- }
-)
[EMAIL PROTECTED]
public class Controller extends PageFlowController
{
- @Jpf.SharedFlowField
- protected transient webappRoot.SharedFlow _sharedFlow;
+ protected transient global.Global globalApp;
public String getState() {
- return _sharedFlow.getPageFlowState();
+ return globalApp.getPageFlowState();
}
@Jpf.Action(
@@ -124,7 +39,7 @@
})
public Forward nest()
{
- _sharedFlow.setPageFlowState(_sharedFlow.getPageFlowState() + "<br
/>nest");
+ globalApp.setPageFlowState(globalApp.getPageFlowState() + "<br
/>nest");
return new Forward("nest");
}
@@ -138,7 +53,7 @@
{
HttpSession session = getSession();
session.setAttribute("pageFlow",this);
- _sharedFlow.setPageFlowState(_sharedFlow.getPageFlowState() + "<br
/>returnToPage");
+ globalApp.setPageFlowState(globalApp.getPageFlowState() + "<br
/>returnToPage");
return new Forward("begin");
}
@@ -152,7 +67,7 @@
{
HttpSession session = getSession();
session.setAttribute("pageFlow",this);
- _sharedFlow.setPageFlowState(_sharedFlow.getPageFlowState() + "<br
/>returnToAction");
+ globalApp.setPageFlowState(globalApp.getPageFlowState() + "<br
/>returnToAction");
return new Forward("begin");
}
@@ -164,7 +79,7 @@
})
public Forward begin()
{
- _sharedFlow.setPageFlowState(_sharedFlow.getPageFlowState() + "<br
/>begin");
+ globalApp.setPageFlowState(globalApp.getPageFlowState() + "<br
/>begin");
return new Forward("begin");
}
}
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/nested/Controller.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/nested/Controller.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/nested/Controller.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/nested/Controller.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/nested/Controller.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/appStatePass/nested/Controller.jpf
Fri Dec 10 00:33:03 2004
@@ -24,87 +24,14 @@
import org.apache.beehive.netui.pageflow.annotations.Jpf;
@Jpf.Controller(
- nested = true)
[EMAIL PROTECTED](
- value = {
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- "<pageflow-object
id='pageflow:/miniTests/appStatePass/nested/Controller.jpf'/>",
- "<pageflow-object id='action:nestOne.do'>",
- " <property value='560' name='x'/>",
- " <property value='220' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:nestTwo.do'>",
- " <property value='560' name='x'/>",
- " <property value='60' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:begin.do'>",
- " <property value='560' name='x'/>",
- " <property value='140' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='exit:returnToPage'>",
- " <property value='400' name='x'/>",
- " <property value='180' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:nestOne.do@'>",
- " <property value='524,480,480,436' name='elbowsX'/>",
- " <property value='212,212,172,172' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- " <property value='return' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='exit:returnToAction'>",
- " <property value='400' name='x'/>",
- " <property value='80' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:nestTwo.do@'>",
- " <property value='524,480,480,436' name='elbowsX'/>",
- " <property value='52,52,72,72' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- " <property value='return' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:Begin.jsp'>",
- " <property value='260' name='x'/>",
- " <property value='120' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'>",
- " <property value='524,410,410,296' name='elbowsX'/>",
- " <property value='132,132,123,123' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_2' name='toPort'/>",
- " <property value='begin' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:/nestOne.do'>",
- " <property value='140' name='x'/>",
- " <property value='120' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:/nestTwo.do'>",
- " <property value='260' name='x'/>",
- " <property value='260' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:nestOne.do@'>",
- " <property value='296,410,410,524' name='elbowsX'/>",
- " <property value='112,112,201,201' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_0' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:nestTwo.do@'>",
- " <property value='296,410,410,524' name='elbowsX'/>",
- " <property value='101,101,63,63' name='elbowsY'/>",
- " <property value='East_0' name='fromPort'/>",
- " <property value='West_2' name='toPort'/>",
- "</pageflow-object>",
- "</view-properties>"
- }
+ nested=true
)
public class Controller extends PageFlowController
{
- @Jpf.SharedFlowField
- protected transient webappRoot.SharedFlow _sharedFlow;
+ protected transient global.Global globalApp;
public String getState() {
- return _sharedFlow.getPageFlowState();
+ return globalApp.getPageFlowState();
}
@Jpf.Action(
@@ -117,7 +44,7 @@
{
HttpSession session = getSession();
session.setAttribute("pageFlow",this);
- _sharedFlow.setPageFlowState(_sharedFlow.getPageFlowState() + "<br
/>[nested]nestOne");
+ globalApp.setPageFlowState(globalApp.getPageFlowState() + "<br
/>[nested]nestOne");
return new Forward("return");
}
@@ -131,7 +58,7 @@
{
HttpSession session = getSession();
session.setAttribute("pageFlow",this);
- _sharedFlow.setPageFlowState(_sharedFlow.getPageFlowState() + "<br
/>[nested]nestTwo");
+ globalApp.setPageFlowState(globalApp.getPageFlowState() + "<br
/>[nested]nestTwo");
return new Forward("return");
}
@@ -145,7 +72,7 @@
{
HttpSession session = getSession();
session.setAttribute("pageFlow",this);
- _sharedFlow.setPageFlowState(_sharedFlow.getPageFlowState() + "<br
/>[nested]begin");
+ globalApp.setPageFlowState(globalApp.getPageFlowState() + "<br
/>[nested]begin");
return new Forward("begin");
}
}
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/lifecycle/Controller.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/lifecycle/Controller.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/lifecycle/Controller.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/lifecycle/Controller.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/lifecycle/Controller.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/lifecycle/Controller.jpf
Fri Dec 10 00:33:03 2004
@@ -31,36 +31,6 @@
name = "begin",
path = "Begin.jsp")
})
[EMAIL PROTECTED](
- value = {
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- "<pageflow-object
id='pageflow:/miniTests/lifecycle/Controller.jpf'/>",
- "<pageflow-object id='action:begin.do'/>",
- "<pageflow-object id='action:postback.do'/>",
- "<pageflow-object id='page:Begin.jsp'/>",
- "<pageflow-object id='forward:path#begin#Begin.jsp'/>",
- "<pageflow-object id='action:/postback.do'/>",
- "<pageflow-object id='action:/globalAction_results.do'/>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:postback.do@'>",
- " <property value='100,100,100,100' name='elbowsX'/>",
- " <property value='164,270,270,376' name='elbowsY'/>",
- " <property value='South_1' name='fromPort'/>",
- " <property value='North_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:globalAction_results.do'>",
- " <property value='220' name='x'/>",
- " <property value='120' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalAction_results.do@'>",
- " <property value='136,160,160,185' name='elbowsX'/>",
- " <property value='112,112,112,112' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "</view-properties>"
- }
-)
public class Controller extends PageFlowController
{
protected void onCreate() {
@@ -75,11 +45,10 @@
System.err.println("inside onDestroy [lifecycle]");
_lifecycle += "onDestroy<br />";
- _sharedFlow.setResults(_lifecycle);
+ globalApp.setResults(_lifecycle);
}
- @Jpf.SharedFlowField
- protected transient webappRoot.SharedFlow _sharedFlow;
+ protected transient global.Global globalApp;
String _lifecycle = "";
public String getLifecycle() {
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/AnyBeanReturnController.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/AnyBeanReturnController.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/AnyBeanReturnController.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/AnyBeanReturnController.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/AnyBeanReturnController.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/AnyBeanReturnController.jpf
Fri Dec 10 00:33:03 2004
@@ -4,6 +4,9 @@
import org.apache.beehive.netui.pageflow.annotations.Jpf;
@Jpf.Controller(
+ sharedFlowRefs={
+ @Jpf.SharedFlowRef(name="sf", type=SharedFlow.class)
+ },
simpleActions={
@Jpf.SimpleAction(name="begin", path="index.jsp"),
@Jpf.SimpleAction(name="goNested", path="nested/NestedController.jpf")
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/nested/NestedController.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/nested/NestedController.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/nested/NestedController.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/nested/NestedController.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/nested/NestedController.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/anyBeanReturn/nested/NestedController.jpf
Fri Dec 10 00:33:03 2004
@@ -16,7 +16,7 @@
{
@Jpf.Action(
forwards={
- @Jpf.Forward(name="done", returnAction="sharedFlowAction",
outputFormBeanType=String.class)
+ @Jpf.Forward(name="done", returnAction="sf.sharedFlowAction",
outputFormBeanType=String.class)
}
)
protected Forward done()
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfGlobalApp/Controller.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfGlobalApp/Controller.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfGlobalApp/Controller.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfGlobalApp/Controller.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfGlobalApp/Controller.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/pfGlobalApp/Controller.jpf
Fri Dec 10 00:33:03 2004
@@ -30,36 +30,14 @@
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
[EMAIL PROTECTED](
- value = {
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- "<pageflow-object
id='pageflow:/pageFlowCore/pfGlobalApp/Controller.jpf'/>",
- "<pageflow-object id='action:begin.do'/>",
- "<pageflow-object id='page:Begin.jsp'/>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'/>",
- "<pageflow-object
id='action:globalAction_getInfo.do#global.Global.GlobalForm'>",
- " <property value='360' name='x'/>",
- " <property value='80' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalAction_getInfo.do#global.Global.GlobalForm@'>",
- " <property value='276,300,300,325' name='elbowsX'/>",
- " <property value='72,72,72,72' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "</view-properties>"
- }
-)
[EMAIL PROTECTED]
[EMAIL PROTECTED]()
public class Controller extends PageFlowController
{
- @Jpf.SharedFlowField
- protected transient webappRoot.SharedFlow _sharedFlow;
+ protected transient global.Global globalApp;
public String getGlobalAppInfo()
{
- return _sharedFlow.getGlobalAppInfo();
+ return globalApp.getGlobalAppInfo();
}
@Jpf.Action(
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/returnToTest/returnToTestController.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/returnToTest/returnToTestController.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/returnToTest/returnToTestController.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/returnToTest/returnToTestController.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/returnToTest/returnToTestController.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/returnToTest/returnToTestController.jpf
Fri Dec 10 00:33:03 2004
@@ -32,810 +32,10 @@
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
-/**
- * @jpf:controller
- * @jpf:message-resources resources="returnToTest.Messages"
- *
- * @jpf:view-properties view-properties::
- * <!-- This data is auto-generated. Hand-editing this section is not
recommended. -->
- * <view-properties>
- * <pageflow-object id="pageflow:/returnToTest/returnToTestController.jpf"/>
- * <pageflow-object id="action:begin.do">
- * <property value="540" name="x"/>
- * <property value="40" name="y"/>
- * </pageflow-object>
- * <pageflow-object
id="action:input.do#returnToTest.returnToTestController.InputForm">
- * <property value="540" name="x"/>
- * <property value="620" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToPage.do">
- * <property value="720" name="x"/>
- * <property value="840" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToCurrentPage.do">
- * <property value="720" name="x"/>
- * <property value="320" name="y"/>
- * </pageflow-object>
- * <pageflow-object
id="action:returnToCurrentPageWithForm.do#returnToTest.returnToTestController.InputForm">
- * <property value="720" name="x"/>
- * <property value="480" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToPreviousPage.do">
- * <property value="340" name="x"/>
- * <property value="840" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToCurrentPageOverrideInputs.do">
- * <property value="720" name="x"/>
- * <property value="400" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToCurrentPageOverrideForm.do">
- * <property value="720" name="x"/>
- * <property value="560" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToPreviousPageOverrideInputs.do">
- * <property value="340" name="x"/>
- * <property value="740" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToPreviousPageOverrideForm.do">
- * <property value="340" name="x"/>
- * <property value="940" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToPageOverrideInputs.do">
- * <property value="720" name="x"/>
- * <property value="740" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:returnToPageOverrideForm.do">
- * <property value="720" name="x"/>
- * <property value="940" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:goNested.do">
- * <property value="40" name="x"/>
- * <property value="1020" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToCurrentPageOverrideForm.do">
- * <property value="280" name="x"/>
- * <property value="260" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToPage.do">
- * <property value="280" name="x"/>
- * <property value="380" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToPageOverrideInputs.do">
- * <property value="280" name="x"/>
- * <property value="500" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToCurrentPage.do">
- * <property value="280" name="x"/>
- * <property value="200" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToPageOverrideForm.do">
- * <property value="280" name="x"/>
- * <property value="440" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToCurrentPageWithForm.do">
- * <property value="280" name="x"/>
- * <property value="120" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToPageWithForm.do">
- * <property value="280" name="x"/>
- * <property value="560" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToCurrentPageOverrideInputs.do">
- * <property value="280" name="x"/>
- * <property value="60" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToCurrentPageWithForm.do#returnToTest.returnToTestController.InputForm@">
- * <property value="576,630,630,684" name="elbowsX"/>
- * <property value="472,472,472,472" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToCurrentPageOverrideForm.do@">
- * <property value="576,630,630,684" name="elbowsX"/>
- * <property value="472,472,552,552" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToCurrentPageOverrideForm.do@">
- * <property value="504,409,409,315" name="elbowsX"/>
- * <property value="472,472,252,252" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPage.do@">
- * <property value="504,409,409,315" name="elbowsX"/>
- * <property value="472,472,372,372" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToCurrentPageOverrideInputs.do@">
- * <property value="576,630,630,684" name="elbowsX"/>
- * <property value="472,472,392,392" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:goNested.do@">
- * <property value="504,290,290,76" name="elbowsX"/>
- * <property value="483,483,1012,1012" name="elbowsY"/>
- * <property value="West_2" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:input.do#returnToTest.returnToTestController.InputForm@">
- * <property value="540,540,540,540" name="elbowsX"/>
- * <property value="524,550,550,576" name="elbowsY"/>
- * <property value="South_1" name="fromPort"/>
- * <property value="North_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPageOverrideInputs.do@">
- * <property value="504,409,409,315" name="elbowsX"/>
- * <property value="472,472,492,492" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToCurrentPage.do@">
- * <property value="504,409,409,315" name="elbowsX"/>
- * <property value="472,472,192,192" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPageOverrideForm.do@">
- * <property value="504,409,409,315" name="elbowsX"/>
- * <property value="472,472,432,432" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToCurrentPageWithForm.do@">
- * <property value="504,410,410,316" name="elbowsX"/>
- * <property value="472,472,112,112" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPageWithForm.do@">
- * <property value="504,410,410,316" name="elbowsX"/>
- * <property value="472,472,552,552" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToCurrentPage.do@">
- * <property value="576,630,630,684" name="elbowsX"/>
- * <property value="472,472,312,312" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToCurrentPageOverrideInputs.do@">
- * <property value="504,409,409,315" name="elbowsX"/>
- * <property value="472,472,52,52" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="page:inputPage.jsp">
- * <property value="540" name="x"/>
- * <property value="480" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToPreviousPageOverrideInputs.do">
- * <property value="320" name="x"/>
- * <property value="1300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToPreviousPage.do">
- * <property value="540" name="x"/>
- * <property value="1300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action:globalReturnToPreviousPageOverrideForm.do">
- * <property value="760" name="x"/>
- * <property value="1300" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToPreviousPageOverrideInputs.do@">
- * <property value="504,440,440,376" name="elbowsX"/>
- * <property value="1032,1032,732,732" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPreviousPageOverrideInputs.do@">
- * <property value="504,430,430,356" name="elbowsX"/>
- * <property value="1032,1032,1292,1292" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPreviousPage.do@">
- * <property value="540,540,540,540" name="elbowsX"/>
- * <property value="1084,1170,1170,1256" name="elbowsY"/>
- * <property value="South_1" name="fromPort"/>
- * <property value="North_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToPageOverrideForm.do@">
- * <property value="576,630,630,684" name="elbowsX"/>
- * <property value="1032,1032,932,932" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToPageOverrideInputs.do@">
- * <property value="576,630,630,684" name="elbowsX"/>
- * <property value="1032,1032,732,732" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:goNested.do@">
- * <property value="504,290,290,76" name="elbowsX"/>
- * <property value="1021,1021,1012,1012" name="elbowsY"/>
- * <property value="West_0" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToPage.do@">
- * <property value="576,630,630,684" name="elbowsX"/>
- * <property value="1032,1032,832,832" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToPreviousPageOverrideForm.do@">
- * <property value="504,440,440,376" name="elbowsX"/>
- * <property value="1032,1032,932,932" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPreviousPageOverrideForm.do@">
- * <property value="576,650,650,724" name="elbowsX"/>
- * <property value="1032,1032,1292,1292" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@page:[EMAIL
PROTECTED]@action:returnToPreviousPage.do@">
- * <property value="504,440,440,376" name="elbowsX"/>
- * <property value="1032,1032,832,832" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="page:nextPage.jsp">
- * <property value="540" name="x"/>
- * <property value="1040" name="y"/>
- * </pageflow-object>
- * <pageflow-object
id="action:returnToPageWithForm.do#returnToTest.returnToTestController.InputForm">
- * <property value="40" name="x"/>
- * <property value="120" name="y"/>
- * </pageflow-object>
- * <pageflow-object
id="action:returnToPreviousPageWithForm.do#returnToTest.returnToTestController.InputForm">
- * <property value="60" name="x"/>
- * <property value="40" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToCurrentPageWithForm.do#returnToTest.returnToTestController.InputForm@">
- * <property value="76,380,380,684" name="elbowsX"/>
- * <property value="841,841,483,483" name="elbowsY"/>
- * <property value="East_0" name="fromPort"/>
- * <property value="West_2" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToPageWithForm.do#returnToTest.returnToTestController.InputForm@">
- * <property value="29,29,40,40" name="elbowsX"/>
- * <property value="816,490,490,164" name="elbowsY"/>
- * <property value="North_0" name="fromPort"/>
- * <property value="South_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToPage.do@">
- * <property value="76,380,380,684" name="elbowsX"/>
- * <property value="852,852,832,832" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToCurrentPage.do@">
- * <property value="76,380,380,684" name="elbowsX"/>
- * <property value="863,863,323,323" name="elbowsY"/>
- * <property value="East_2" name="fromPort"/>
- * <property value="West_2" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToPreviousPageWithForm.do#returnToTest.returnToTestController.InputForm@">
- * <property value="40,40,60,60" name="elbowsX"/>
- * <property value="816,450,450,84" name="elbowsY"/>
- * <property value="North_1" name="fromPort"/>
- * <property value="South_1" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object id="action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToPreviousPage.do@">
- * <property value="76,190,190,304" name="elbowsX"/>
- * <property value="863,863,821,821" name="elbowsY"/>
- * <property value="East_2" name="fromPort"/>
- * <property value="West_0" name="toPort"/>
- * </pageflow-object>
- * <pageflow-object
id="external-jpf:/returnToTest/nested/nestedController.jpf">
- * <property value="40" name="x"/>
- * <property value="860" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:begin.do@">
- * <property value="540,540,540,540" name="elbowsX"/>
- * <property value="84,260,260,436" name="elbowsY"/>
- * <property value="South_1" name="fromPort"/>
- * <property value="North_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:input.do#returnToTest.returnToTestController.InputForm@">
- * <property value="540,540,540,540" name="elbowsX"/>
- * <property value="664,830,830,996" name="elbowsY"/>
- * <property value="South_1" name="fromPort"/>
- * <property value="North_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:input.do#returnToTest.returnToTestController.InputForm@">
- * <property value="416,460,460,504" name="elbowsX"/>
- * <property value="392,392,392,392" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="validationFail" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="return-to-page:@forward:[EMAIL
PROTECTED]:returnToPage.do@@">
- * <property value="860" name="x"/>
- * <property value="840" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:returnToPage.do@">
- * <property value="756,790,790,824" name="elbowsX"/>
- * <property value="832,832,832,832" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:returnToCurrentPage.do@">
- * <property value="184,140,140,96" name="elbowsX"/>
- * <property value="252,252,252,252" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToCurrentPageWithForm.do#returnToTest.returnToTestController.InputForm@"/>
- * <pageflow-object id="forward:[EMAIL PROTECTED]:returnToPreviousPage.do@">
- * <property value="184,140,140,96" name="elbowsX"/>
- * <property value="512,512,512,512" name="elbowsY"/>
- * <property value="West_1" name="fromPort"/>
- * <property value="East_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToCurrentPageOverrideInputs.do@"/>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToCurrentPageOverrideForm.do@"/>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToPreviousPageOverrideInputs.do@"/>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToPreviousPageOverrideForm.do@"/>
- * <pageflow-object id="return-to-page:@forward:[EMAIL
PROTECTED]:returnToPageOverrideInputs.do@@">
- * <property value="860" name="x"/>
- * <property value="740" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToPageOverrideInputs.do@">
- * <property value="756,790,790,824" name="elbowsX"/>
- * <property value="732,732,732,732" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="return-to-page:@forward:[EMAIL
PROTECTED]:returnToPageOverrideForm.do@@">
- * <property value="860" name="x"/>
- * <property value="940" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToPageOverrideForm.do@">
- * <property value="756,790,790,824" name="elbowsX"/>
- * <property value="932,932,932,932" name="elbowsY"/>
- * <property value="East_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="forward:path#success#/returnToTest/nested/[EMAIL
PROTECTED]:goNested.do@">
- * <property value="40,40,40,40" name="elbowsX"/>
- * <property value="976,940,940,904" name="elbowsY"/>
- * <property value="North_1" name="fromPort"/>
- * <property value="South_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object
id="formbeanprop:returnToTest.returnToTestController.InputForm#foo#java.lang.String"/>
- * <pageflow-object
id="formbeanprop:returnToTest.returnToTestController.InputForm#bar#java.lang.String"/>
- * <pageflow-object
id="formbean:returnToTest.returnToTestController.InputForm"/>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToPageWithForm.do#returnToTest.returnToTestController.InputForm@">
- * <property value="40,-26,-26,74" name="elbowsX"/>
- * <property value="76,76,82,82" name="elbowsY"/>
- * <property value="North_1" name="fromPort"/>
- * <property value="West_1" name="toPort"/>
- * <property value="success" name="label"/>
- * </pageflow-object>
- * <pageflow-object id="return-to-page:@forward:[EMAIL
PROTECTED]:returnToPageWithForm.do#returnToTest.returnToTestController.InputForm@@">
- * <property value="110" name="x"/>
- * <property value="90" name="y"/>
- * </pageflow-object>
- * <pageflow-object id="forward:[EMAIL
PROTECTED]:returnToPreviousPageWithForm.do#returnToTest.returnToTestController.InputForm@"/>
- * </view-properties>
- * ::
- */
@Jpf.Controller(
messageResources = {
@Jpf.MessageResource(
name = "returnToTest.Messages")
- })
[EMAIL PROTECTED](
- value = {
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- "<pageflow-object
id='pageflow:/returnToTest/returnToTestController.jpf'/>",
- "<pageflow-object id='action:begin.do'>",
- " <property value='540' name='x'/>",
- " <property value='40' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action:input.do#returnToTest.returnToTestController.InputForm'>",
- " <property value='540' name='x'/>",
- " <property value='620' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToPage.do'>",
- " <property value='720' name='x'/>",
- " <property value='840' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToCurrentPage.do'>",
- " <property value='720' name='x'/>",
- " <property value='320' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action:returnToCurrentPageWithForm.do#returnToTest.returnToTestController.InputForm'>",
- " <property value='720' name='x'/>",
- " <property value='480' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToPreviousPage.do'>",
- " <property value='340' name='x'/>",
- " <property value='840' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToCurrentPageOverrideInputs.do'>",
- " <property value='720' name='x'/>",
- " <property value='400' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToCurrentPageOverrideForm.do'>",
- " <property value='720' name='x'/>",
- " <property value='560' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToPreviousPageOverrideInputs.do'>",
- " <property value='340' name='x'/>",
- " <property value='740' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToPreviousPageOverrideForm.do'>",
- " <property value='340' name='x'/>",
- " <property value='940' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToPageOverrideInputs.do'>",
- " <property value='720' name='x'/>",
- " <property value='740' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:returnToPageOverrideForm.do'>",
- " <property value='720' name='x'/>",
- " <property value='940' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:goNested.do'>",
- " <property value='40' name='x'/>",
- " <property value='1020' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action:globalReturnToCurrentPageOverrideForm.do'>",
- " <property value='280' name='x'/>",
- " <property value='260' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:globalReturnToPage.do'>",
- " <property value='280' name='x'/>",
- " <property value='380' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:globalReturnToPageOverrideInputs.do'>",
- " <property value='280' name='x'/>",
- " <property value='500' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:globalReturnToCurrentPage.do'>",
- " <property value='280' name='x'/>",
- " <property value='200' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:globalReturnToPageOverrideForm.do'>",
- " <property value='280' name='x'/>",
- " <property value='440' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:globalReturnToCurrentPageWithForm.do'>",
- " <property value='280' name='x'/>",
- " <property value='120' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:globalReturnToPageWithForm.do'>",
- " <property value='280' name='x'/>",
- " <property value='560' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action:globalReturnToCurrentPageOverrideInputs.do'>",
- " <property value='280' name='x'/>",
- " <property value='60' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToCurrentPageWithForm.do#returnToTest.returnToTestController.InputForm@'>",
- " <property value='576,630,630,684' name='elbowsX'/>",
- " <property value='472,472,472,472' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToCurrentPageOverrideForm.do@'>",
- " <property value='576,630,630,684' name='elbowsX'/>",
- " <property value='472,472,552,552' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToCurrentPageOverrideForm.do@'>",
- " <property value='504,409,409,315' name='elbowsX'/>",
- " <property value='472,472,252,252' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPage.do@'>",
- " <property value='504,409,409,315' name='elbowsX'/>",
- " <property value='472,472,372,372' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToCurrentPageOverrideInputs.do@'>",
- " <property value='576,630,630,684' name='elbowsX'/>",
- " <property value='472,472,392,392' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:goNested.do@'>",
- " <property value='504,290,290,76' name='elbowsX'/>",
- " <property value='483,483,1012,1012' name='elbowsY'/>",
- " <property value='West_2' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:input.do#returnToTest.returnToTestController.InputForm@'>",
- " <property value='540,540,540,540' name='elbowsX'/>",
- " <property value='524,550,550,576' name='elbowsY'/>",
- " <property value='South_1' name='fromPort'/>",
- " <property value='North_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPageOverrideInputs.do@'>",
- " <property value='504,409,409,315' name='elbowsX'/>",
- " <property value='472,472,492,492' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToCurrentPage.do@'>",
- " <property value='504,409,409,315' name='elbowsX'/>",
- " <property value='472,472,192,192' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPageOverrideForm.do@'>",
- " <property value='504,409,409,315' name='elbowsX'/>",
- " <property value='472,472,432,432' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToCurrentPageWithForm.do@'>",
- " <property value='504,410,410,316' name='elbowsX'/>",
- " <property value='472,472,112,112' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPageWithForm.do@'>",
- " <property value='504,410,410,316' name='elbowsX'/>",
- " <property value='472,472,552,552' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToCurrentPage.do@'>",
- " <property value='576,630,630,684' name='elbowsX'/>",
- " <property value='472,472,312,312' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToCurrentPageOverrideInputs.do@'>",
- " <property value='504,409,409,315' name='elbowsX'/>",
- " <property value='472,472,52,52' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:inputPage.jsp'>",
- " <property value='540' name='x'/>",
- " <property value='480' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action:globalReturnToPreviousPageOverrideInputs.do'>",
- " <property value='320' name='x'/>",
- " <property value='1300' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action:globalReturnToPreviousPage.do'>",
- " <property value='540' name='x'/>",
- " <property value='1300' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action:globalReturnToPreviousPageOverrideForm.do'>",
- " <property value='760' name='x'/>",
- " <property value='1300' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToPreviousPageOverrideInputs.do@'>",
- " <property value='504,440,440,376' name='elbowsX'/>",
- " <property value='1032,1032,732,732' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPreviousPageOverrideInputs.do@'>",
- " <property value='504,430,430,356' name='elbowsX'/>",
- " <property value='1032,1032,1292,1292' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPreviousPage.do@'>",
- " <property value='540,540,540,540' name='elbowsX'/>",
- " <property value='1084,1170,1170,1256' name='elbowsY'/>",
- " <property value='South_1' name='fromPort'/>",
- " <property value='North_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToPageOverrideForm.do@'>",
- " <property value='576,630,630,684' name='elbowsX'/>",
- " <property value='1032,1032,932,932' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToPageOverrideInputs.do@'>",
- " <property value='576,630,630,684' name='elbowsX'/>",
- " <property value='1032,1032,732,732' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:goNested.do@'>",
- " <property value='504,290,290,76' name='elbowsX'/>",
- " <property value='1021,1021,1012,1012' name='elbowsY'/>",
- " <property value='West_0' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToPage.do@'>",
- " <property value='576,630,630,684' name='elbowsX'/>",
- " <property value='1032,1032,832,832' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToPreviousPageOverrideForm.do@'>",
- " <property value='504,440,440,376' name='elbowsX'/>",
- " <property value='1032,1032,932,932' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:globalReturnToPreviousPageOverrideForm.do@'>",
- " <property value='576,650,650,724' name='elbowsX'/>",
- " <property value='1032,1032,1292,1292' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='action-call:@page:[EMAIL
PROTECTED]@action:returnToPreviousPage.do@'>",
- " <property value='504,440,440,376' name='elbowsX'/>",
- " <property value='1032,1032,832,832' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object id='page:nextPage.jsp'>",
- " <property value='540' name='x'/>",
- " <property value='1040' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action:returnToPageWithForm.do#returnToTest.returnToTestController.InputForm'>",
- " <property value='40' name='x'/>",
- " <property value='120' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action:returnToPreviousPageWithForm.do#returnToTest.returnToTestController.InputForm'>",
- " <property value='60' name='x'/>",
- " <property value='40' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToCurrentPageWithForm.do#returnToTest.returnToTestController.InputForm@'>",
- " <property value='76,380,380,684' name='elbowsX'/>",
- " <property value='841,841,483,483' name='elbowsY'/>",
- " <property value='East_0' name='fromPort'/>",
- " <property value='West_2' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToPageWithForm.do#returnToTest.returnToTestController.InputForm@'>",
- " <property value='29,29,40,40' name='elbowsX'/>",
- " <property value='816,490,490,164' name='elbowsY'/>",
- " <property value='North_0' name='fromPort'/>",
- " <property value='South_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToPage.do@'>",
- " <property value='76,380,380,684' name='elbowsX'/>",
- " <property value='852,852,832,832' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToCurrentPage.do@'>",
- " <property value='76,380,380,684' name='elbowsX'/>",
- " <property value='863,863,323,323' name='elbowsY'/>",
- " <property value='East_2' name='fromPort'/>",
- " <property value='West_2' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToPreviousPageWithForm.do#returnToTest.returnToTestController.InputForm@'>",
- " <property value='40,40,60,60' name='elbowsX'/>",
- " <property value='816,450,450,84' name='elbowsY'/>",
- " <property value='North_1' name='fromPort'/>",
- " <property value='South_1' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object
id='action-call:@external-jpf:/returnToTest/nested/[EMAIL
PROTECTED]@action:returnToPreviousPage.do@'>",
- " <property value='76,190,190,304' name='elbowsX'/>",
- " <property value='863,863,821,821' name='elbowsY'/>",
- " <property value='East_2' name='fromPort'/>",
- " <property value='West_0' name='toPort'/>",
- "</pageflow-object>",
- "<pageflow-object
id='external-jpf:/returnToTest/nested/nestedController.jpf'>",
- " <property value='40' name='x'/>",
- " <property value='860' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'>",
- " <property value='540,540,540,540' name='elbowsX'/>",
- " <property value='84,260,260,436' name='elbowsY'/>",
- " <property value='South_1' name='fromPort'/>",
- " <property value='North_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:input.do#returnToTest.returnToTestController.InputForm@'>",
- " <property value='540,540,540,540' name='elbowsX'/>",
- " <property value='664,830,830,996' name='elbowsY'/>",
- " <property value='South_1' name='fromPort'/>",
- " <property value='North_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:input.do#returnToTest.returnToTestController.InputForm@'>",
- " <property value='416,460,460,504' name='elbowsX'/>",
- " <property value='392,392,392,392' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='validationFail' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='return-to-page:@forward:[EMAIL
PROTECTED]:returnToPage.do@@'>",
- " <property value='860' name='x'/>",
- " <property value='840' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL PROTECTED]:returnToPage.do@'>",
- " <property value='756,790,790,824' name='elbowsX'/>",
- " <property value='832,832,832,832' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToCurrentPage.do@'>",
- " <property value='184,140,140,96' name='elbowsX'/>",
- " <property value='252,252,252,252' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToCurrentPageWithForm.do#returnToTest.returnToTestController.InputForm@'/>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToPreviousPage.do@'>",
- " <property value='184,140,140,96' name='elbowsX'/>",
- " <property value='512,512,512,512' name='elbowsY'/>",
- " <property value='West_1' name='fromPort'/>",
- " <property value='East_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToCurrentPageOverrideInputs.do@'/>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToCurrentPageOverrideForm.do@'/>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToPreviousPageOverrideInputs.do@'/>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToPreviousPageOverrideForm.do@'/>",
- "<pageflow-object id='return-to-page:@forward:[EMAIL
PROTECTED]:returnToPageOverrideInputs.do@@'>",
- " <property value='860' name='x'/>",
- " <property value='740' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToPageOverrideInputs.do@'>",
- " <property value='756,790,790,824' name='elbowsX'/>",
- " <property value='732,732,732,732' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='return-to-page:@forward:[EMAIL
PROTECTED]:returnToPageOverrideForm.do@@'>",
- " <property value='860' name='x'/>",
- " <property value='940' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToPageOverrideForm.do@'>",
- " <property value='756,790,790,824' name='elbowsX'/>",
- " <property value='932,932,932,932' name='elbowsY'/>",
- " <property value='East_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:path#success#/returnToTest/nested/[EMAIL
PROTECTED]:goNested.do@'>",
- " <property value='40,40,40,40' name='elbowsX'/>",
- " <property value='976,940,940,904' name='elbowsY'/>",
- " <property value='North_1' name='fromPort'/>",
- " <property value='South_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object
id='formbeanprop:returnToTest.returnToTestController.InputForm#foo#java.lang.String'/>",
- "<pageflow-object
id='formbeanprop:returnToTest.returnToTestController.InputForm#bar#java.lang.String'/>",
- "<pageflow-object
id='formbean:returnToTest.returnToTestController.InputForm'/>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToPageWithForm.do#returnToTest.returnToTestController.InputForm@'>",
- " <property value='40,-26,-26,74' name='elbowsX'/>",
- " <property value='76,76,82,82' name='elbowsY'/>",
- " <property value='North_1' name='fromPort'/>",
- " <property value='West_1' name='toPort'/>",
- " <property value='success' name='label'/>",
- "</pageflow-object>",
- "<pageflow-object id='return-to-page:@forward:[EMAIL
PROTECTED]:returnToPageWithForm.do#returnToTest.returnToTestController.InputForm@@'>",
- " <property value='110' name='x'/>",
- " <property value='90' name='y'/>",
- "</pageflow-object>",
- "<pageflow-object id='forward:[EMAIL
PROTECTED]:returnToPreviousPageWithForm.do#returnToTest.returnToTestController.InputForm@'/>",
- "</view-properties>"
})
public class returnToTestController extends PageFlowController
{
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf
Fri Dec 10 00:33:03 2004
@@ -21,46 +21,17 @@
import org.apache.beehive.netui.pageflow.Forward;
import org.apache.beehive.netui.pageflow.annotations.Jpf;
-/**
- * This is the default controller for a blank web application.
- */
[EMAIL PROTECTED]@Jpf.ViewProperties( value={
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- " <pageflow-object
id='pageflow:/sharedFlow/SharedFlowController.jpf'/>",
- " <pageflow-object id='action:begin.do'>",
- " <property value='80' name='x'/>",
- " <property value='100' name='y'/>",
- " </pageflow-object>",
- " <pageflow-object id='page:index.jsp'>",
- " <property value='220' name='x'/>",
- " <property value='100' name='y'/>",
- " </pageflow-object>",
- " <pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'>",
- " <property value='116,140,140,164' 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>",
- "</view-properties>"})
[EMAIL PROTECTED](
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp")
+ }
+)
public class HasNoSharedFlow extends PageFlowController
{
- @Jpf.SharedFlowField
- private webappRoot.SharedFlow _sharedFlow;;
-
- @Jpf.Action(
- forwards={
- @Jpf.Forward(name="index", path="index.jsp")
- }
- )
- protected Forward begin()
- {
- return new Forward("index");
- }
+ private global.Global globalApp;
public String getSharedFlowField()
{
- return _sharedFlow.getDisplayName();
+ return globalApp.getDisplayName();
}
}
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf
Fri Dec 10 00:33:03 2004
@@ -21,44 +21,20 @@
import org.apache.beehive.netui.pageflow.Forward;
import org.apache.beehive.netui.pageflow.annotations.Jpf;
-/**
- * This is the default controller for a blank web application.
- */
[EMAIL PROTECTED]@Jpf.ViewProperties( value={
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- " <pageflow-object
id='pageflow:/sharedFlow/SharedFlowController.jpf'/>",
- " <pageflow-object id='action:begin.do'>",
- " <property value='80' name='x'/>",
- " <property value='100' name='y'/>",
- " </pageflow-object>",
- " <pageflow-object id='page:index.jsp'>",
- " <property value='220' name='x'/>",
- " <property value='100' name='y'/>",
- " </pageflow-object>",
- " <pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'>",
- " <property value='116,140,140,164' 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>",
- "</view-properties>"})
[EMAIL PROTECTED](
+ sharedFlowRefs={
+ @Jpf.SharedFlowRef(name="rootSharedFlow",
type=webappRoot.SharedFlow.class),
+ @Jpf.SharedFlowRef(name="sf1", type=SharedFlow1.class)
+ },
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp")
+ }
+)
public class HasSharedFlow1 extends PageFlowController
{
- @Jpf.SharedFlowField
+ @Jpf.SharedFlowField(name="sf1")
private SharedFlow1 sf;
- @Jpf.Action(
- forwards={
- @Jpf.Forward(name="index", path="index.jsp")
- }
- )
- protected Forward begin()
- {
- return new Forward("index");
- }
-
public String getSharedFlowField()
{
return sf.getDisplayName();
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp
Fri Dec 10 00:33:03 2004
@@ -16,7 +16,7 @@
SharedFlowController field: <b><netui:label
value="${pageFlow.sharedFlowField}"/></b>
<br/>
<br/>
- <netui:anchor
action="sharedFlow1Action">sharedFlow1Action</netui:anchor>
+ <netui:anchor
action="sf1.sharedFlow1Action">sharedFlow1Action</netui:anchor>
<br/>
<netui:anchor
href="seesSharedFlow1/SeesSharedFlow1.jpf">seesSharedFlow1/SeesSharedFlow1.jpf</netui:anchor>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf
Fri Dec 10 00:33:03 2004
@@ -22,44 +22,20 @@
import org.apache.beehive.netui.pageflow.annotations.Jpf;
import pageFlowCore.sharedFlow.hasSharedFlow1.SharedFlow1;
-/**
- * This is the default controller for a blank web application.
- */
[EMAIL PROTECTED]@Jpf.ViewProperties( value={
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- " <pageflow-object
id='pageflow:/sharedFlow/SharedFlowController.jpf'/>",
- " <pageflow-object id='action:begin.do'>",
- " <property value='80' name='x'/>",
- " <property value='100' name='y'/>",
- " </pageflow-object>",
- " <pageflow-object id='page:index.jsp'>",
- " <property value='220' name='x'/>",
- " <property value='100' name='y'/>",
- " </pageflow-object>",
- " <pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'>",
- " <property value='116,140,140,164' 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>",
- "</view-properties>"})
[EMAIL PROTECTED](
+ sharedFlowRefs={
+ @Jpf.SharedFlowRef(name="rootSharedFlow",
type=webappRoot.SharedFlow.class),
+ @Jpf.SharedFlowRef(name="sf1",
type=pageFlowCore.sharedFlow.hasSharedFlow1.SharedFlow1.class)
+ },
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp")
+ }
+)
public class SeesSharedFlow1 extends PageFlowController
{
- @Jpf.SharedFlowField
+ @Jpf.SharedFlowField(name="sf1")
private SharedFlow1 sf;
- @Jpf.Action(
- forwards={
- @Jpf.Forward(name="index", path="index.jsp")
- }
- )
- protected Forward begin()
- {
- return new Forward("index");
- }
-
public String getSharedFlowField()
{
return sf.getDisplayName();
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf
Fri Dec 10 00:33:03 2004
@@ -21,44 +21,19 @@
import org.apache.beehive.netui.pageflow.Forward;
import org.apache.beehive.netui.pageflow.annotations.Jpf;
-/**
- * This is the default controller for a blank web application.
- */
[EMAIL PROTECTED]@Jpf.ViewProperties( value={
- "<!-- This data is auto-generated. Hand-editing this section is not
recommended. -->",
- "<view-properties>",
- " <pageflow-object
id='pageflow:/sharedFlow/SharedFlowController.jpf'/>",
- " <pageflow-object id='action:begin.do'>",
- " <property value='80' name='x'/>",
- " <property value='100' name='y'/>",
- " </pageflow-object>",
- " <pageflow-object id='page:index.jsp'>",
- " <property value='220' name='x'/>",
- " <property value='100' name='y'/>",
- " </pageflow-object>",
- " <pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'>",
- " <property value='116,140,140,164' 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>",
- "</view-properties>"})
[EMAIL PROTECTED](
+ sharedFlowRefs={
+ @Jpf.SharedFlowRef(name="rootSharedFlow",
type=webappRoot.SharedFlow.class),
+ @Jpf.SharedFlowRef(name="sf2", type=SharedFlow2.class)
+ },
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp")
+ }
+)
public class HasSharedFlow2 extends PageFlowController
{
- @Jpf.SharedFlowField
+ @Jpf.SharedFlowField(name="sf2")
private SharedFlow2 sf;
-
- @Jpf.Action(
- forwards={
- @Jpf.Forward(name="index", path="index.jsp")
- }
- )
- protected Forward begin()
- {
- return new Forward("index");
- }
-
public String getSharedFlowField()
{
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp
Fri Dec 10 00:33:03 2004
@@ -16,7 +16,7 @@
SharedFlowController field: <b><netui:label
value="${pageFlow.sharedFlowField}"/></b>
<br/>
<br/>
- <netui:anchor
action="sharedFlow2Action">sharedFlow2Action</netui:anchor>
+ <netui:anchor
action="sf2.sharedFlow2Action">sharedFlow2Action</netui:anchor>
</body>
</netui:html>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp
Fri Dec 10 00:33:03 2004
@@ -16,7 +16,7 @@
SharedFlowController field: <b><netui:label
value="${pageFlow.sharedFlowField}"/></b>
<br/>
<br/>
- <netui:anchor
action="sharedFlow1Action">sharedFlow1Action</netui:anchor>
+ <netui:anchor
action="sf1.sharedFlow1Action">sharedFlow1Action</netui:anchor>
<br/>
<netui:anchor
href="hasSharedFlow2/HasSharedFlow2.jpf">hasSharedFlow2/HasSharedFlow2.jpf</netui:anchor>
Added:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow1/SharedFlow.jpfs
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow1/SharedFlow.jpfs?view=auto&rev=111484
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow1/SharedFlow.jpfs
Fri Dec 10 00:33:03 2004
@@ -0,0 +1,27 @@
+package pageFlowCore.sharedFlowExceptions.sharedFlow1;
+
+import org.apache.beehive.netui.pageflow.SharedFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
[EMAIL PROTECTED](
+ catches={
+ @Jpf.Catch(type=SharedFlow.Ex.class, method="handleIt")
+ }
+)
+public class SharedFlow extends SharedFlowController
+{
+ public static class Ex extends Exception
+ {
+ }
+
+ @Jpf.ExceptionHandler(
+ forwards={
+ @Jpf.Forward(name="cur", navigateTo=Jpf.NavigateTo.currentPage)
+ }
+ )
+ public Forward handleIt( Ex ex, String actionName, String message, Object
form )
+ {
+ return new Forward( "cur", "message", "handled " +
ex.getClass().getName() + " in sharedFlow1" );
+ }
+}
Added:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow2/SharedFlow.jpfs
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow2/SharedFlow.jpfs?view=auto&rev=111484
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/pageFlowCore/sharedFlowExceptions/sharedFlow2/SharedFlow.jpfs
Fri Dec 10 00:33:03 2004
@@ -0,0 +1,23 @@
+package pageFlowCore.sharedFlowExceptions.sharedFlow2;
+
+import org.apache.beehive.netui.pageflow.SharedFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
[EMAIL PROTECTED](
+ catches={
+ @Jpf.Catch(type=Exception.class, method="handleIt")
+ }
+)
+public class SharedFlow extends SharedFlowController
+{
+ @Jpf.ExceptionHandler(
+ forwards={
+ @Jpf.Forward(name="cur", navigateTo=Jpf.NavigateTo.currentPage)
+ }
+ )
+ public Forward handleIt( Exception ex, String actionName, String message,
Object form )
+ {
+ return new Forward( "cur", "message", "handled " +
ex.getClass().getName() + " in sharedFlow2" );
+ }
+}
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/results/Begin.jsp
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/results/Begin.jsp?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/results/Begin.jsp&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/results/Begin.jsp&r2=111484
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/results/Begin.jsp
(original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/results/Begin.jsp
Fri Dec 10 00:33:03 2004
@@ -12,7 +12,7 @@
the sharedFlow so that is can capture the onDestroy event within the lifecycle.
</p>
<hr />
-<netui:content value="${sharedFlow.results}"/>
+<netui:content value="${globalApp.results}"/>
<hr />
</body>
</html>
Copied:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/webappRoot/SharedFlow.jpfs
(from r111151,
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/SharedFlow.jpfs)
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/webappRoot/SharedFlow.jpfs?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/SharedFlow.jpfs&r1=111151&p2=incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/webappRoot/SharedFlow.jpfs&r2=111484
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/SharedFlow.jpfs
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/webappRoot/SharedFlow.jpfs
Fri Dec 10 00:33:03 2004
@@ -7,509 +7,15 @@
import javax.servlet.http.HttpSession;
import java.util.Arrays;
-import shared.FormA;
-import shared.QaTrace;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
-import pageFlowCore.returnToTest.returnToTestController.InputForm;
[EMAIL PROTECTED](
strutsMerge="/WEB-INF/src/global/merge-jpf-struts-config.xml" )
[EMAIL PROTECTED]()
public class SharedFlow extends SharedFlowController
{
- private String _pageGroupState = "";
- private String _results;
- private String _globalAppInfo = "";
-
- // from QA Global.app
- private boolean _toggle = true;
- private QaTrace _log = null;
- private int _cnt = 0;
-
- /**
- * This property is referenced by the databinding/globalApp/nojpf/ BVT.
- */
- public String getSayHello()
- {
- return "Hello World! -- the Global.app";
- }
-
- public String[] getStrings()
- {
- return new String[] {"One", "Fish", "Two", "Fish"};
- }
-
- public static class GlobalForm extends FormData
- {
- String _search;
- public void setSearch(String search) {
- _search = search;
- }
- public String getSearch() {
- return _search;
- }
- }
-
- public String getAppState() {
- return "running";
- }
-
- public String getAppInfo() {
- return "App DRT";
- }
-
- public String getResults() {
- return _results;
- }
- public void setResults(String results) {
- _results = results;
- }
-
- public String getPageFlowState() {
- return _pageGroupState;
- }
- public void setPageFlowState(String pgs) {
- _pageGroupState = pgs;
- }
-
- public String getGlobalAppInfo() {
- return _globalAppInfo;
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "nesting", path =
"/globalJpfs/nestReturn/Controller.jpf") })
- public Forward globalAction_action()
- {
- return new Forward("nesting");
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "nesting", path =
"/globalJpfs/nestReturn/Controller.jpf") })
- public Forward globalAction_form(GlobalForm form)
- {
- return new Forward("nesting");
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "return", navigateTo =
Jpf.NavigateTo.currentPage) })
- public Forward globalAction_getInfo(GlobalForm form)
- {
- StringBuffer sb = new StringBuffer();
- sb.append("<table border='1' cellspacing='0'cellpaddinig='2'>");
-
- sb = new StringBuffer();
- sb.append("<table border='1' cellspacing='0'cellpaddinig='2'>");
-
- HttpServletRequest req = getRequest();
- sb.append("<tr><td>Request</td><td>");
- sb.append(req.getRequestURI());
- sb.append("</td></tr>");
-
-
- HttpServletResponse resp = getResponse();
- sb.append("<tr><td>Response</td><td>Committed:");
- sb.append("" + resp.isCommitted());
- sb.append("</td></tr>");
-
-
- HttpSession session = getSession();
- session.setMaxInactiveInterval( 3600 );
- sb.append("<tr><td>Session</td><td>In active interval:");
- sb.append("" + session.getMaxInactiveInterval());
- sb.append("</td></tr>");
-
- // nestable
- sb.append("<tr><td>Nestable</td><td>");
- sb.append("" + isNestable());
- sb.append("</td></tr>");
-
- // nestable
- sb.append("<tr><td>PageFlow</td><td>");
- sb.append("" + isPageFlow());
- sb.append("</td></tr>");
-
- // get action
- sb.append("<tr><td>Actions</td><td>");
- String[] actions = getActions();
- Arrays.sort(actions);
- for (int i=0;i<actions.length;i++) {
- sb.append(actions[i]);
- sb.append("<br />");
- }
- sb.append("</td></tr>");
-
-
- // get mapping
- ActionMapping map = getMapping();
- sb.append("<tr><td>ActionMapping</td><td>");
- sb.append("" + map);
- sb.append("</td></tr>");
-
- // URI
- sb.append("<tr><td>URI</td><td>");
- sb.append("" + getURI());
- sb.append("</td></tr>");
-
- // parent dir
- sb.append("<tr><td>parentDir</td><td>");
- sb.append("" + getModulePath());
- sb.append("</td></tr>");
-
-
- sb.append("</table>");
- _globalAppInfo = sb.toString();
-
- return new Forward("return");
- }
-
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "results", path =
"/results/Controller.jpf") })
- public Forward globalAction_results()
- {
- return new Forward("results");
- }
-
-
- //
- // The following actions are for
/pageFlowCore/returnToTest/returnToTestController.jpf.
- //
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
- protected Forward globalReturnToCurrentPageOverrideInputs()
- {
- Forward fwd = new Forward( "success", "input1", "overridden #1" );
- fwd.addPageInput( "input2", "overridden #2" );
- return fwd;
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
- protected Forward globalReturnToCurrentPageOverrideForm()
- {
- InputForm overrideForm = new InputForm();
- overrideForm.setFoo( "override foo" );
- overrideForm.setBar( "override bar" );
- return new Forward("success", overrideForm);
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
- protected Forward globalReturnToCurrentPage()
- {
- return new Forward("success");
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
- protected Forward globalReturnToCurrentPageWithForm( InputForm form )
- {
- return new Forward("success");
- }
-
-
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
- protected Forward globalReturnToPageOverrideInputs()
- {
- Forward fwd = new Forward( "success", "input1", "overridden #1" );
- fwd.addPageInput( "input2", "overridden #2" );
- return fwd;
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
- protected Forward globalReturnToPageOverrideForm()
- {
- InputForm overrideForm = new InputForm();
- overrideForm.setFoo( "override foo" );
- overrideForm.setBar( "override bar" );
- return new Forward("success", overrideForm);
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
- protected Forward globalReturnToPage()
- {
- return new Forward("success");
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.currentPage) })
- protected Forward globalReturnToPageWithForm( InputForm form )
- {
- return new Forward("success");
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousPage) })
- protected Forward globalReturnToPreviousPage()
- {
- return new Forward("success");
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousPage) })
- protected Forward globalReturnToPreviousPageOverrideInputs()
- {
- Forward fwd = new Forward( "success", "input1", "overridden #1" );
- fwd.addPageInput( "input2", "overridden #2" );
- return fwd;
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousPage) })
- protected Forward globalReturnToPreviousPageOverrideForm()
- {
- InputForm overrideForm = new InputForm();
- overrideForm.setFoo( "override foo" );
- overrideForm.setBar( "override bar" );
- return new Forward("success", overrideForm);
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousAction) })
- protected Forward globalReturnToPreviousAction()
- {
- return new Forward("success");
- }
-
[EMAIL PROTECTED](forwards = { @Jpf.Forward(name = "success", navigateTo =
Jpf.NavigateTo.previousAction) })
- protected Forward globalReturnToAction()
- {
- return new Forward("success");
- }
-
- // from QA Web
- /**
- * onCreate
- */
- public void onCreate() throws Exception
- {
- HttpSession session = getSession();
- _log = QaTrace.getTrace(getSession(), true);
- //_cnt = _log.newClass(this);
- //_log.tracePoint("Global.onCreate():" + session.hashCode());
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "struts1Do",
- path = "/interOp/tests/test2/gotoStrutsJSP.do")
- })
- public Forward toLegacy()
- {
- // _log.tracePoint("Global.toLegacy():" + _cnt + " - Test2");
- return new Forward("struts1Do");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "struts2Do",
- path = "/interOp/tests/test5/gotoStruts2JSP.do")
- })
- public Forward globalAction()
- {
- //_log.tracePoint("Global.globalAction():" + _cnt + " - Test5");
- return new Forward("struts2Do");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "goBack",
- navigateTo = Jpf.NavigateTo.previousPage)
- })
- public Forward test35GlobalAction()
- {
- //_log.tracePoint("Global.test35GlobalAction():" + _cnt + " -
Test35");
- return new Forward("goBack");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "gotoPg2",
- path = "/returnTo/test36/Jsp2.jsp")
- })
- public Forward test36GlobalAction()
- {
- //_log.tracePoint("Global.test36GlobalAction():" + _cnt + " -
Test36");
- return new Forward("gotoPg2");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "goBack",
- navigateTo = Jpf.NavigateTo.currentPage)
- })
- public Forward test39GlobalAction()
- {
- //_log.tracePoint("Global.test39GlobalAction():" + _cnt + " -
Test39");
- return new Forward("goBack");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "gotoPg2",
- path = "/returnTo/test40/Jsp2.jsp")
- })
- public Forward test40GlobalAction()
- {
- //_log.tracePoint("Global.test40GlobalAction():" + _cnt + " - Test40");
- return new Forward("gotoPg2");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "goBack",
- navigateTo = Jpf.NavigateTo.currentPage)
- })
- public Forward test40GlobalAction_B()
- {
- //_log.tracePoint("Global.test40GlobalAction_B():" + _cnt + " - Test40");
- return new Forward("goBack");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "goBack",
- navigateTo = Jpf.NavigateTo.previousAction)
- })
- public Forward test45GlobalAction()
- {
- //_log.tracePoint("Global.test45GlobalAction():" + _cnt + " - Test45");
- return new Forward("goBack");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "gotoAct2",
- path = "/returnTo/test46/action2.do")
- })
- public Forward test46GlobalAction()
- {
- //_log.tracePoint("Global.test46GlobalAction():" + _cnt + " - Test46");
- if (_toggle == true)
- {
- _toggle = false;
- return new Forward("gotoAct2");
- }
- _toggle = true;
- return new Forward("gotoError");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "goBack",
- navigateTo = Jpf.NavigateTo.previousAction)
- })
- public Forward test48GlobalAction(FormA inForm)
-// public Forward test48GlobalAction()
- {
- //_log.tracePoint("Global.test48GlobalAction(FormA):"
- // + _cnt
- // + " - Test48 - FormA instance:"
- // + _log.getClassCnter(inForm));
- return new Forward("goBack");
- }
-
- @Jpf.Action(
- )
- public Forward unKnown()
- {
- ActionMapping mapping = getMapping();
- //_log.tracePoint("Global.unKnown():"
- // + _cnt
- // + " - Parameter:"
- // + mapping.getParameter());
- return new Forward("gotoError");
- }
-
- /**
- * StrutsMergeTest2 will raise this "unHandledAction" action. The forward
- * "jpf:gotoAction1" below will be overridden by the "struts-merge"
- * annotation above and send control back to a valid action in the
- * StrutsMergeTest2 pageflow.
- */
- @Jpf.Action(
- )
- public Forward unHandledAction()
- {
- ActionMapping mapping = getMapping();
- //_log.tracePoint("Global.unHandledAction():"
- // + _cnt
- // + " - Parameter:"
- // + mapping.getParameter());
- return new Forward("gotoAction1");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "gotoResults",
- path = "/miscJpf/bug30448/jpfReturn1.do")
- })
- public Forward jpfReturn1(FormA inForm)
- {
- //_log.tracePoint("Global.jpfReturn1(FormA):" + _cnt + " - bug30448");
- return new Forward("gotoResults");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "success",
- path = "/scopedJpf/jpfTest5/jpf1/Jpf1.jpf")
- })
- public Forward jpf1Begin()
- {
- //_log.tracePoint("Global.jpf1Begin():" + _cnt + " - JpfTest5");
- return new Forward("success");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "success",
- path = "/scopedJpf/jpfTest5/jpf2/Jpf2.jpf")
- })
- public Forward jpf2Begin()
- {
- //_log.tracePoint("Global.jpf2Begin():" + _cnt + " - JpfTest5");
- return new Forward("success");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "success",
- path = "/scopedJpf/jpfTest5/jpf1/goNested.do")
- })
- public Forward jpf1GoNested(FormA form)
- {
- //_log.tracePoint("Global.jpf1GoNested(FormA):" + _cnt + " - JpfTest5");
- return new Forward("success");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "success",
- path = "/scopedJpf/jpfTest5/jpf2/goNested.do")
- })
- public Forward jpf2GoNested(FormA form)
- {
- //_log.tracePoint("Global.jpf2GoNested(FormA):" + _cnt + " - JpfTest5");
- return new Forward("success");
- }
-
- @Jpf.Action(
- forwards = {
- @Jpf.Forward(
- name = "success",
- path = "/singletonJpf/jpfTest10/jpf1/Jpf1.jpf")
- })
- public Forward gblJpfTest10()
- {
- //_log.tracePoint("Global.jpfTest10():" + _cnt + " - JpfTest10");
- return new Forward("success");
- }
@Jpf.Action(
forwards={
@Jpf.Forward(
@@ -518,7 +24,6 @@
)
}
)
-
public Forward pageFlowCore_sharedFlow_globalAction()
{
return new Forward( "success", "message", "hit globalAction" );
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Fri Dec 10 00:33:03 2004
@@ -3731,8 +3731,8 @@
</features>
</test>
<test>
- <name>PfSharedFlow</name>
- <description>Tests shared flow features.</description>
+ <name>PfSharedFlowActions</name>
+ <description>Test of shared flows and actions.</description>
<webapp>coreWeb</webapp>
<categories>
<category>drt</category>
@@ -3742,6 +3742,7 @@
<features>
<feature>PageFlow</feature>
<feature>SharedFlow</feature>
+ <feature>Action</feature>
</features>
</test>
<test>
@@ -4580,6 +4581,21 @@
<feature>Form</feature>
<feature>Scoping</feature>
<feature>ActionForms</feature>
+ </features>
+ </test>
+ <test>
+ <name>SharedFlowExceptions</name>
+ <description>Test of exception handling in shared flows.</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>drt</category>
+ <category>bvt</category>
+ <category>corePageFlow</category>
+ </categories>
+ <features>
+ <feature>PageFlow</feature>
+ <feature>SharedFlow</feature>
+ <feature>Exceptions</feature>
</features>
</test>
<test>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/CellRepeaterError2.xml
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/CellRepeaterError2.xml?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/CellRepeaterError2.xml&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/CellRepeaterError2.xml&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/CellRepeaterError2.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/CellRepeaterError2.xml
Fri Dec 10 00:33:03 2004
@@ -123,8 +123,8 @@
<tr><th>Tag</th><td>CellRepeater</td>
<th>Errors</th><td colspan="2">1</td></tr>
<tr><th>Expression Error</th><th>Attribute</th><td>dataSource</td>
- <th>Expression</th><td>{sharedFlow.noCellRepeaterProperty}</td></tr>
- <tr><th valign="top">Message</th><td colspan="4">Caught exception when
evaluating expression "{sharedFlow.noCellRepeaterProperty}" with available
binding contexts [actionForm, pageFlow, globalApp, request, session,
application, pageContext, bundle, container, url, pageInput]. Root cause:
java.lang.RuntimeException: Could not find property or field
"noCellRepeaterProperty" on object of type "class
webappRoot.SharedFlow"</td></tr>
+ <th>Expression</th><td>{sharedFlow.root.noCellRepeaterProperty}</td></tr>
+ <tr><th valign="top">Message</th><td colspan="4">Caught exception when
evaluating expression "{sharedFlow.root.noCellRepeaterProperty}" with available
binding contexts [actionForm, pageFlow, globalApp, request, session,
application, pageContext, bundle, container, url, pageInput]. Root cause:
java.lang.RuntimeException: Could not find property or field
"noCellRepeaterProperty" on object of type "class
webappRoot.SharedFlow"</td></tr>
</table></span>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfGlobalApp.xml
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfGlobalApp.xml?view=diff&rev=111484&p1=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfGlobalApp.xml&r1=111483&p2=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfGlobalApp.xml&r2=111484
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfGlobalApp.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfGlobalApp.xml
Fri Dec 10 00:33:03 2004
@@ -161,7 +161,7 @@
<h4>PageFlow Global Info</h4>
<a href="/coreWeb/pageFlowCore/pfGlobalApp/globalAction_getInfo.do">Get Global
Info</a>
<hr />
-<table border='1'
cellspacing='0'cellpaddinig='2'><tr><td>Request</td><td>/coreWeb/-webappRoot/globalAction_getInfo.do</td></tr><tr><td>Response</td><td>Committed:false</td></tr><tr><td>Session</td><td>In
active
interval:3600</td></tr><tr><td>Nestable</td><td>false</td></tr><tr><td>PageFlow</td><td>false</td></tr><tr><td>Actions</td><td>gblJpfTest10<br
/>globalAction<br />globalAction_action<br />globalAction_form<br
/>globalAction_getInfo<br />globalAction_results<br />globalReturnToAction<br
/>globalReturnToCurrentPage<br />globalReturnToCurrentPageOverrideForm<br
/>globalReturnToCurrentPageOverrideInputs<br
/>globalReturnToCurrentPageWithForm<br />globalReturnToPage<br
/>globalReturnToPageOverrideForm<br />globalReturnToPageOverrideInputs<br
/>globalReturnToPageWithForm<br />globalReturnToPreviousAction<br
/>globalReturnToPreviousPage<br />globalReturnToPreviousPageOverrideForm<br
/>globalReturnToPreviousPageOverrideInputs<br />jpf1Begin<br />jpf1GoNested<br
/>jpf2Begin<br />jpf2GoNested<br />jpfReturn1<br
/>pageFlowCore_sharedFlow_globalAction<br />test35GlobalAction<br
/>test36GlobalAction<br />test39GlobalAction<br />test40GlobalAction<br
/>test40GlobalAction_B<br />test45GlobalAction<br />test46GlobalAction<br
/>test48GlobalAction<br />toLegacy<br />unHandledAction<br />unKnown<br
/></td></tr><tr><td>ActionMapping</td><td>ActionConfig[path=/globalAction_getInfo,name=globalForm,parameter=webappRoot.SharedFlow,scope=request,type=org.apache.beehive.netui.pageflow.internal.FlowControllerAction</td></tr><tr><td>URI</td><td>/</td></tr><tr><td>parentDir</td><td>/-webappRoot</td></tr></table>
+<table border='1'
cellspacing='0'cellpaddinig='2'><tr><td>Request</td><td>/coreWeb/-global/globalAction_getInfo.do</td></tr><tr><td>Response</td><td>Committed:false</td></tr><tr><td>Session</td><td>In
active
interval:3600</td></tr><tr><td>Nestable</td><td>false</td></tr><tr><td>PageFlow</td><td>false</td></tr><tr><td>Actions</td><td>gblJpfTest10<br
/>globalAction<br />globalAction_action<br />globalAction_form<br
/>globalAction_getInfo<br />globalAction_results<br />globalReturnToAction<br
/>globalReturnToCurrentPage<br />globalReturnToCurrentPageOverrideForm<br
/>globalReturnToCurrentPageOverrideInputs<br
/>globalReturnToCurrentPageWithForm<br />globalReturnToPage<br
/>globalReturnToPageOverrideForm<br />globalReturnToPageOverrideInputs<br
/>globalReturnToPageWithForm<br />globalReturnToPreviousAction<br
/>globalReturnToPreviousPage<br />globalReturnToPreviousPageOverrideForm<br
/>globalReturnToPreviousPageOverrideInputs<br />jpf1Begin<br />jpf1GoNested<br
/>jpf2Begin<br />jpf2GoNested<br />jpfReturn1<br
/>pageFlowCore_sharedFlow_globalAction<br />test35GlobalAction<br
/>test36GlobalAction<br />test39GlobalAction<br />test40GlobalAction<br
/>test40GlobalAction_B<br />test45GlobalAction<br />test46GlobalAction<br
/>test48GlobalAction<br />toLegacy<br />unHandledAction<br />unKnown<br
/></td></tr><tr><td>ActionMapping</td><td>ActionConfig[path=/globalAction_getInfo,name=globalForm,parameter=global.Global,scope=request,type=org.apache.beehive.netui.pageflow.internal.FlowControllerAction</td></tr><tr><td>URI</td><td>/</td></tr><tr><td>parentDir</td><td>/-global</td></tr></table>
</body>
</html>]]></ses:responseBody>
</ses:response>
Deleted:
/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfSharedFlow.xml
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfSharedFlow.xml?view=auto&rev=111483
==============================================================================
Added:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfSharedFlowActions.xml
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfSharedFlowActions.xml?view=auto&rev=111484
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/PfSharedFlowActions.xml
Fri Dec 10 00:33:03 2004
@@ -0,0 +1,691 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+ <ses:sessionName>PfSharedFlowActions</ses:sessionName>
+ <ses:tester>rich</ses:tester>
+ <ses:startDate>09 Dec 2004, 03:33:22.934 PM MST</ses:startDate>
+ <ses:description>Test of shared flows and actions.</ses:description>
+ <ses:tests>
+ <ses:test>
+ <ses:testNumber>1</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/index.jsp">
+ </head>
+ <body>
+ <h3>Shared Flow Test</h3>
+
+ message: <b><label></label></b>
+ <br/>
+ SharedFlow field: <b><label>Global.app</label></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/pageFlowCore_sharedFlow_globalAction.do">pageFlowCore_sharedFlow_globalAction</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf">hasSharedFlow1/HasSharedFlow1.jpf</a>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>2</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlow/pageFlowCore_sharedFlow_globalAction.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/HasNoSharedFlow.jpf</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/index.jsp">
+ </head>
+ <body>
+ <h3>Shared Flow Test</h3>
+
+ message: <b><label>hit Global.app</label></b>
+ <br/>
+ SharedFlow field: <b><label>Global.app</label></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/pageFlowCore_sharedFlow_globalAction.do">pageFlowCore_sharedFlow_globalAction</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf">hasSharedFlow1/HasSharedFlow1.jpf</a>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>3</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/pageFlowCore_sharedFlow_globalAction.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp">
+ </head>
+ <body>
+ <h3>Shared Flow Test</h3>
+
+ message: <b><label></label></b>
+ <br/>
+ SharedFlowController field:
<b><label>pageFlowCore.sharedFlow.hasSharedFlow1.SharedFlow1</label></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/sf1.sharedFlow1Action.do">sharedFlow1Action</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf">seesSharedFlow1/SeesSharedFlow1.jpf</a>
+
+
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>4</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/sf1.sharedFlow1Action.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/HasSharedFlow1.jpf</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/index.jsp">
+ </head>
+ <body>
+ <h3>Shared Flow Test</h3>
+
+ message: <b><label>hit SharedFlow1.jpfs</label></b>
+ <br/>
+ SharedFlowController field:
<b><label>pageFlowCore.sharedFlow.hasSharedFlow1.SharedFlow1</label></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/sf1.sharedFlow1Action.do">sharedFlow1Action</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf">seesSharedFlow1/SeesSharedFlow1.jpf</a>
+
+
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>5</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/sf1.sharedFlow1Action.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp">
+ </head>
+ <body>
+ <h3>Shared Flow Test</h3>
+
+ message: <b><label></label></b>
+ <br/>
+ SharedFlowController field:
<b><label>pageFlowCore.sharedFlow.hasSharedFlow1.SharedFlow1</label></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/sf1.sharedFlow1Action.do">sharedFlow1Action</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf">hasSharedFlow2/HasSharedFlow2.jpf</a>
+
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>6</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/sf1.sharedFlow1Action.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/SeesSharedFlow1.jpf</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/index.jsp">
+ </head>
+ <body>
+ <h3>Shared Flow Test</h3>
+
+ message: <b><label>hit SharedFlow1.jpfs</label></b>
+ <br/>
+ SharedFlowController field:
<b><label>pageFlowCore.sharedFlow.hasSharedFlow1.SharedFlow1</label></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/sf1.sharedFlow1Action.do">sharedFlow1Action</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf">hasSharedFlow2/HasSharedFlow2.jpf</a>
+
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>7</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/sf1.sharedFlow1Action.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp">
+ </head>
+ <body>
+ <h3>Shared Flow Test</h3>
+
+ message: <b><label></label></b>
+ <br/>
+ SharedFlowController field:
<b><label>pageFlowCore.sharedFlow.hasSharedFlow1.seesSharedFlow1.hasSharedFlow2.SharedFlow2</label></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/sf2.sharedFlow2Action.do">sharedFlow2Action</a>
+
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>8</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/sf2.sharedFlow2Action.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=CC80D789A3272417766BE7B304F901DE</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/HasSharedFlow2.jpf</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/index.jsp">
+ </head>
+ <body>
+ <h3>Shared Flow Test</h3>
+
+ message: <b><label>hit SharedFlow2.jpfs</label></b>
+ <br/>
+ SharedFlowController field:
<b><label>pageFlowCore.sharedFlow.hasSharedFlow1.seesSharedFlow1.hasSharedFlow2.SharedFlow2</label></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlow/hasSharedFlow1/seesSharedFlow1/hasSharedFlow2/sf2.sharedFlow2Action.do">sharedFlow2Action</a>
+
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ </ses:tests>
+ <ses:endDate>09 Dec 2004, 03:33:58.505 PM MST</ses:endDate>
+ <ses:testCount>8</ses:testCount>
+</ses:recorderSession>
Added:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/SharedFlowExceptions.xml
Url:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/SharedFlowExceptions.xml?view=auto&rev=111484
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/SharedFlowExceptions.xml
Fri Dec 10 00:33:03 2004
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+ <ses:sessionName>SharedFlowExceptions</ses:sessionName>
+ <ses:tester>rich</ses:tester>
+ <ses:startDate>09 Dec 2004, 11:41:50.095 PM MST</ses:startDate>
+ <ses:description>Test of exception handling in shared
flows.</ses:description>
+ <ses:tests>
+ <ses:test>
+ <ses:testNumber>1</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlowExceptions/Controller.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>60C007C21DE0C5F6AA04590CDD9235C4</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=60C007C21DE0C5F6AA04590CDD9235C4</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlowExceptions/index.jsp">
+ </head>
+ <body>
+ Message: <b><span></span></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow1Exception.do">throwSharedFlow1Exception</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow2Exception.do">throwSharedFlow2Exception</a>
+ <br/>
+ <br/>
+ <i>sharedFlow1 is
</i><b><span>pageFlowCore.sharedFlowExceptions.sharedFlow1.SharedFlow</span></b>
+ <br/>
+ <i>sharedFlow2 is
</i><b><span>pageFlowCore.sharedFlowExceptions.sharedFlow2.SharedFlow</span></b>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>2</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow1Exception.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>60C007C21DE0C5F6AA04590CDD9235C4</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=60C007C21DE0C5F6AA04590CDD9235C4</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlowExceptions/Controller.jpf</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlowExceptions/index.jsp">
+ </head>
+ <body>
+ Message: <b><span>handled
pageFlowCore.sharedFlowExceptions.sharedFlow1.SharedFlow$Ex in
sharedFlow1</span></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow1Exception.do">throwSharedFlow1Exception</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow2Exception.do">throwSharedFlow2Exception</a>
+ <br/>
+ <br/>
+ <i>sharedFlow1 is
</i><b><span>pageFlowCore.sharedFlowExceptions.sharedFlow1.SharedFlow</span></b>
+ <br/>
+ <i>sharedFlow2 is
</i><b><span>pageFlowCore.sharedFlowExceptions.sharedFlow2.SharedFlow</span></b>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>3</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+
<ses:uri>/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow2Exception.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>60C007C21DE0C5F6AA04590CDD9235C4</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+
<ses:value>JSESSIONID=60C007C21DE0C5F6AA04590CDD9235C4</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+
<ses:value>http://localhost:8080/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow1Exception.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML
4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <base
href="http://localhost:8080/coreWeb/pageFlowCore/sharedFlowExceptions/index.jsp">
+ </head>
+ <body>
+ Message: <b><span>handled java.lang.NullPointerException in
sharedFlow2</span></b>
+ <br/>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow1Exception.do">throwSharedFlow1Exception</a>
+ <br/>
+ <a
href="/coreWeb/pageFlowCore/sharedFlowExceptions/throwSharedFlow2Exception.do">throwSharedFlow2Exception</a>
+ <br/>
+ <br/>
+ <i>sharedFlow1 is
</i><b><span>pageFlowCore.sharedFlowExceptions.sharedFlow1.SharedFlow</span></b>
+ <br/>
+ <i>sharedFlow2 is
</i><b><span>pageFlowCore.sharedFlowExceptions.sharedFlow2.SharedFlow</span></b>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ </ses:tests>
+ <ses:endDate>09 Dec 2004, 11:42:19.437 PM MST</ses:endDate>
+ <ses:testCount>3</ses:testCount>
+</ses:recorderSession>