We're pleased to announce that 3.3.0.Alpha3 of Portlet Bridge is now available!
- Switched Arquillian Drone from using HtmlUnit to PhantomJS and GhostDriver
- Updated Mojarra to latest versions for testing: 2.1.26 and 2.2.3
- Added tests for JSF 2.2 HTML Pass Through attributes
- Updates to objects during an Ajax Request are no longer stored in the Bridge Request Scope for later re-rendering of the portlet.
Full details of what is contained within the release can be found in the Release Notes.
Updating Bridge Request Scope data after Ajax Request
Previously, any updates to JSF Managed Beans or attributes on the Faces Context were stored in the Bridge Request Scope, which is used to reconstitute the state of the portlet in JSF for future rendering. That default behavior is a relic of the most recent Bridge specification, which is based on JSF 1.2! In a world where Ajax requests are more prevalent, it makes sense to provide some flexibility around how data is retained during an Ajax request.
The default behavior, from this release, is that any data updated during an Ajax request will not be retained for use on any subsequent re-rendering of the portlet page. It's possible to revert to the previous behavior by setting the following context param in web.xml:
<context-param> <param-name>org.jboss.portletbridge.BRIDGE_SCOPE_ENABLED_ON_AJAX_REQUEST</param-name> <param-value>true</param-value> </context-param>
As part of this change we also added a new parameter that can be used to disable the saving of Faces Messages during an Ajax request. This setting only applies of the above context parameter is set to true, and can be controlled with:
<context-param> <param-name>org.jboss.portletbridge.FACES_MESSAGES_STORED_ON_AJAX_REQUEST</param-name> <param-value>false</param-value> </context-param>
This setting can be beneficial when you want to prevent messages from an Ajax request being rendered to the portlet again on a re-render of the portlet.
Full details on these configuration settings can be found in the documentation.
For a JSF2 only portlet:
<dependency> <groupId>org.jboss.portletbridge</groupId> <artifactId>portletbridge-api</artifactId> <version>3.3.0.Alpha3</version> </dependency> <dependency> <groupId>org.jboss.portletbridge</groupId> <artifactId>portletbridge-impl</artifactId> <version>3.3.0.Alpha3</version> <scope>runtime</scope> </dependency>
For a RichFaces 4 portlet you need the above as well as:
<dependency> <groupId>org.jboss.portletbridge</groupId> <artifactId>portletbridge-extension-richfaces</artifactId> <version>3.3.0.Alpha3</version> <scope>runtime</scope> </dependency>
Keeping up with the latest
One of the best ways to hear about the latest releases and changes with Portlet Bridge is to follow us on Twitter (@portletbridge).
Don't be a stranger
As always, if you have any questions about or issues with Portlet Bridge, please get in touch.