Introduce PortletFacesContextFactory that will be used to create the
FacesContext when running in a portlet environment. This moves logic
from the FacesContextHelper preventing the package tangle that would
otherwise occur.
Output from a flow can now be saved to the flash scope of Spring MVC
when the 'saveOutputToFlashScopeOnRedirect' property of the
FlowHandlerAdapter is 'true'.
For backwards compatibility this is an opt-in feature that must be
configured by the user.
Issues: SWF-1561
The ResourcesBeanDefinitionParser will now automatically register an
additional portlet resource resolver when a portlet environment and
and relevant Spring portlet classes are detected.
Issues: SWF-1500
* Rework all state handling, removed FlowSerializedView class and save
state as opaque object
* Use FacesWrapper classes instead of custom delegates
* Deprecate isAtLeastJSFXXX() methods and removed all internal use
* Remove all Jsf2XXX versions of classes
* Refactor all calls to deprecated JSF methods
* Removed older VariableResolver and PropertyResolver classes
* Deprecate Jsf2FlowResourceResolver and log warning if used
* Create new FlowELResolver to replace removed VariableResolvers and
PropertyResolvers
* Update faces-config.xml to use newer xsd
* Significantly rework FlowFacesContext to remove the message delegate
and generally improve the code
* Added "provided" dependency to MyFaces and fixed partial state saving
on MyFaces
* Fixed FlowResourceResolver to delegate to both MyFaces or Mojarra
depending on availability
* Add JsfUtils.findFactory method and rework existing code to replace
FactoryFinder calls and casts
* Refactor JsfViewFactory to improve code readability
* Rename FlowViewStateManager and FlowViewResponseStateManager to
FlowStateManager and FlowResponseStateManager
* Ensure ResponseContextHolder is reset after each test
* Update JSF portlet support to function with JSF 2.0
Issue: SWF-1536, SWF-1540, SWF-1550
Deprecate CompositeIterator in favor Spring core.
Deprecate existing class and refactor internal code to use the org.spring.util version that
has been available since Spring 3.0
Issues: SWF-1532
Reviewed and replaced when possible:
- new Integer
- intValue()
- new Boolean
- booleanValue()
- Boolean.TRUE
- Boolean.FALSE
- new Long
- longValue()
Issues: SWF-1532
Backport concurrency code is no longer needed as JDK 1.5 is now a minimum requirement. Removing JdkBackportConcurrentConversationLock has also
removed the need for the package scoped ConversationLockFactory interface,
this has been replaced with a factory method in
SessionBindingConversationManager.
Issues: SWF-1532
- Apply and use Generics
- Remove JdkVersion.isAtLeastJava15() conditionals
- Replace iterator loops with foreach syntax
- Switch on warning in eclipse
Issues: SWF-1532
Previously we checked the "Faces-Request" header only.
Now we try to delegate the call to
PartialViewContext.isAjaxRequest() first. If a FacesContext
is unavailble for some reason we also check the
"javax.faces.partial.ajax" request parameter.
A PostRestoreStateEvent should be delivered whenever a JSF view is
restored. Typically we rely on JSF to generate required events but
in this case since WebFlow handles the RESTORE_VIEW phase itself,
we need to deliver this event ourselves.
Issues: SWF-1500
For JSF 2.0.x Spring Web Flow the view root could not be preserved
across redirects in the same state (e.g. following validation)
because a JSF state saving listener held on to the FacesContext,
which Web Flow releases before the redirect.
This issue was addressed in JSF 2.1
http://java.net/jira/browse/JAVASERVERFACES-1604
which means we can allow the view root to survive the redirect.
Note that the behavior can also be controlled with the
redirect-in-same state flow execution attribute.
Issues: SWF-1502