Tuesday, December 13, 2011

RichFaces 4.1.0.Final Release Announcement

I’m thrilled to announce the release of RichFaces 4.1.0.Final. It’s been a long road from 4.0 to 4.1, with a significant train of milestone releases along the way. The journey was worth it though, with a significant 4.1 release building on top of the successful 4.0.0.Final release, providing: additional components migrated from the RichFaces 3 component set, altogether new components, and significant enhancements to the framework feature set.

To try out this release you can download the distribution directly, or for maven users increment the RichFaces version in your pom.xml to 4.1.0.Final. For more information on setting up a RichFaces 4 application, refer to our getting started guide.

Let’s dive in, and look at some of the details of what’s new in RichFaces 4.1!

h3.New Components

We’ve delivered a number of new components in this release:

Not only have we migrated forward more RichFaces 3.x components, but we’re also providing an altogether new component – the notify component – put together by Bernard Labno, a RichFaces community member.

Mobile Compatible Components

We’ve leveraged HTML 5 and CSS 3 to create a set of resources that make the existing RichFaces components mobile compatible. Check out the results yourself in our mobile showcase with your webkit-based mobile phone, (or checkout the mobile showcase directly with your desktop browser).

We’ve put together a comprehensive guide detailing how you can take advantage of this approach with your own applications, and deliver a modern mobile application today – leveraging your existing skillset and investments in both JSF and Richfaces.

Not all the components make sense in a mobile environment, and not all mobile browsers are equally capable. Be sure to also take a look at our mobile design document, outlining the choices and compromises we had to make.


Along with this new mobile face, the Richfaces showcase has undergone a number of additional significant changes.

We’ve deployed the showcase to OpenShift, Red Hat’s PasS offering. The OpenShift Java EE 6 support provides a great platform to take your application all the way from development with Express (free!) to production with Flex (highly scalable!). For the RichFaces project, this gives us the chance to showcase our components in a Java EE environment, where our framework really shines!

We’ve also included samples for the new components listed above, as well as a rich:push component sample, keeping it straightforward to incorporate advanced RichFaces components in your application. Lastly, a number of bug fixes and simple improvements throughout the showcase have overall improved the user experience of the showcase itself.

Individual component improvements

I’d like to single out a few component enhancements from this release:

Push has been de-coupled from JMS, allowing RichFaces users to take advantage of push technology in non-JMS (ie. servlet) environments
A CDI API has been provided for firing push events – aligning the push component with the standardized Java EE programming model
Some events that were missing from the 4.0 release have been added, including the onclear event
drag and drop
A bug with dynamically rendering of drag sources and drop targets has been resolved, improving drag/drop functionality in components like the rich:tree
For those creating RichFaces skins, you’ll be happy to hear we replaced the cellpadding and cellspacing attributes of the extended datatable with CSS equivalents, allowing skins to override the values

For a complete listing of issues resolved, refer to the release notes of each of the milestone releases: 4.1.0.M1, 4.1.0.M2, 4.1.0.M3, 4.1.0.M4, 4.1.0.CR1, 4.1.0.CR2, 4.1.0.Final

Resource packaging

Another great feature with this release is the Resource packaging and minification. An absolute necessity when developing for mobile applications, this feature can provide performance improvements to your desktop applications as well by dramatically reducing the number of javascript and CSS files the browser client has to download. Read the docs to see how you can activate this for your applications.

For those looking for the RichFaces 3 LOAD_NONE capability, you can use this resource minification configuration to achieve the same results.

Source hosted on github

A significant achievement early in the 4.1 development process was the migration of our source code version control system from svn to git, specifically hosted on github.com. We noticed significant advantages to using git, both within our team, and in our collaboration with community members. Git’s ability to enable a sophisticated workflow, and encourage community contribution in the form of pull requests has made “bit management” a pleasurable task.

Other noteworthy items

It’s worth pointing out that RichFaces 4.1 ships with an updated jQuery release (v. 1.6.4). Keeping the jQuery release version up-to-date facilitates RichFaces inter-operability with other jQuery plugins.

RichFaces 4.1 works with a number of modern browsers, however it currently requires Internet explorer 9 to be run in compatibility mode, due to an upstream mojarra issue.


Lastly, I’d like to remind everyone of the availability of the RichFaces documentation:

These docs are a great resource detailing how to make use of the RichFaces framework in your application. They are however an ongoing effort, with some specific areas that need improvement. Specifically we need to flesh out the descriptions of the VDL tag library doc (note: the attribute listing is complete), and we need to vet the migration guide. This is a great way to get involved, should you want to contribute to the project!

Looking Forward

In a recent blog post, I laid out a strategy for the future of the RichFaces project, and extended an invitation to all who would like to have a say in future directions in our development forum. While RichFaces 4.1 undoubtedly provides some great fixes and features, we are excited about the future direction of the project, and what we can offer moving forward!

Tuesday, December 6, 2011

RichFaces 4.1.0.CR2 Release Announcement

We are announcing the release of RichFaces 4.1.0.CR2, a second release candidate for RichFaces 4.1. We had a couple of regressions that were introduced in the 4.1.0.CR1 release that we’ve addressed in the with this CR2 release. The expectation is that CR2 will be re-tagged and released as 4.1.0.Final, provided no blocking issues are found. Our QE team has done a great job running their test suite against this release, but I encourage as many community members as possible to download the CR2 release, and make sure it’s “up to snuff”!

To try out this release, you can download the distribution directly, or for maven users increment the RichFaces version in your pom.xml to 4.1.0.CR2. For more information on setting up a RichFaces 4 application, refer to our getting started guide.

Noteworthy changes

In addition to addressing the above regressions, our CR2 release has addressed a couple other noteworthy issues.

  • showcase tweaks: improving the user experience on both desktop and mobile
  • archetype improvements: including the addition of an option for creating a mobile project
  • skins: warning messages had an unreadable color on a white background – (warningColor) [RF-11673]
  • rich:inplaceInput: a fix for client side validation [RF-11633]
  • rich:dataTable: a fix for a regression effecting component decoding [RF-11675]
  • rich:calendar: a fix for a regression selecting dates in the popup [RF-11677]
  • rich:pickList: a bug converting java arrays when used as backing beans [RF-11680]
  • rich:fileUpload: A bug where the list of files in the event omitted the submitted files [RF-11744]
  • rich:extendedDataTable: removed cellpadding/cellspacing from EDT, replaced with appropriate CSS [RF-11759]

Please test drive this second release candidate, and give us your feedback in either the forums or with our issue tracker. We’ll soon have a 4.1.0.Final release we all can be proud of, for the work we put into it as a community!

Wednesday, November 23, 2011

RichFaces 4.1.0.CR1 Release Announcement

I’m excited to announce the availability of RichFaces 4.1.0.CR1, the first release candidate for RichFaces 4.1.0. Stability of the platform has been a strong focus for all the RichFaces 4.1.0 milestone releases, and has been even more so of a focus for our CR1 release.

We really appreciate the community feedback we’ve received throughout the 4.1 development cycle, with each of the milestone releases. The bugs found and the suggestions provided from the community have really helped us nail down this release. As such, we are encouraging everyone to download this release candidate, and help us flush out any regressions or other potential blocker issues. Let us not forget, “given enough eyeballs, all bugs are shallow”!

To try out this release, you can download the distribution directly, or for maven users, increment the RichFaces version in your pom.xml to For more information on setting up a RichFaces 4 application, refer to our getting started guide.

With that “call to arms” out of the way, let’s take a look at what’s changed in this release.

Mobile Compatibilityh3.

We have been working on the RichFaces mobile guide, and will have it available shortly – watch for it the RichFaces wiki. Refer to this guide to take advantage of the mobile compatibility of the RichFaces components in our mobile showcase as we presented at a recent JBoss webinar (video of the webinar is available). The CSS and javascript we used in our mobile showcase has been cleaned-up and refactored, and ready for public consumption, with details of how to do so in the mobile guide.

We’ve also improved the mobile compatibility of some individual components, such as the calendar component (specifically the time picker), and the rendering of the pickList buttons. Thanks to the community members who pointed these deficiencies out!


The Component Reference and Developer Guide have been updated for this release candidate, in preparation for the upcoming final release. In addition, a bug in the automatic generation of the VDL-DOC (tag library docs) has been addressed, once again providing a complete listing of all RichFaces components’ attributes. The latest javadoc has also been published.

Many of the attribute descriptions themselves in the VDL-DOC still need to be filled out (pull requests here would be very welcome!) – so be sure to refer to the Component Reference to supplement the VDL-DOC.

Framework upgrades

We upgraded our client-side bean validation extension to use Hibernate Validator 4.2, aligning with what is currently shipped in JBoss AS 7, and with what developers will be using with their applications. We also changed the project compiler compatibility to Java SE 6.0, reflecting in reality what has been true for the project for some time. We also started verification of the RichFaces platform against the upcoming JBoss AS 7.1 release, aiming for a smooth transition for RichFaces applications when AS 7.1 is released.

Individual improvements

Individual components have seen some improvements with this release. Ajax rendering of drag sources and drop targets has been improved, tab panel switching across the client/server has been cleaned up, and the tooltip was changed to better respect the value attribute for delivering the tooltip message. In addtion to these individual fixes, we addressed a number of IE8 compatibility issues.

Onward to Final

Unfortunately, we’ve have introduced some regressions with this release, namely with the calendar component and table sorting/filtering. These issues have already been addressed in our development branch, and will be ready for the upcoming final release.

Be sure to give this release a spin, and help us make 4.1.0.Final a top-notch release!

Wednesday, November 9, 2011

RichFaces 4.1.0.M4 Release Announcement

The RichFaces 4.1 Milestone 4 release is now available for download! With this M4 release we focused on stabilizing the features we introduced in the earlier 4.1 release-train milestones (M1, M2, M3). The release following M4 will be our 4.1 release candidate, so we want to make sure we achieve maximum stability with M4. Some of the key areas we touched are listed below.

If your keen and want to get started right away, you can download the distribution directly, or for maven users, increment the RichFaces version in your pom.xml to For more information on setting up a RichFaces 4 application, refer to our getting started guide.

Mobile showcase improvements

The CSS 3 overlay was improved to provide better mobile compatibility of the components. We also added an ajax status indicator to the mobile showcase. Since it is entirely an ajax driven application, the status indicator improves the user experience dramatically.

Resource mapping

The resource mapping feature introduced in M3 has been made more usable, adopting a consistent naming convention, with reasonable defaults. Additionally the ability to completely disable the feature was introduced, should you want to handle resources yourself in your applications.

Client Side validation

Improvements to the client-side validation (CSV) involved better aligning the client-side regexp with the Bean Validation specification. The CSV mechanism for discerning component values on the client (using javascript) was enhanced to improve the CSV interop with other JSF component providers.

Individual component fixes

The file upload component has some new attributes, allowing for more fine-grained control over what the user is able to upload to the server. The pickList saw the switchByClick and switchByDblClick functionality from RichFaces 3 ported to RichFaces 4, further improving the RF 3 to RF 4 migration story.

Misc. Fixes

Some additional issues resolved include a jQuery update (to version 1.6.4), and improvements to both the simpleapp and GAE RichFaces archetypes. Many more fixes and improvements were checked, feel free to browse the issues fixed to see what else has been improved.

Forward: CR1 & Further Stabilisation

The CR1 development is currently ongoing, with a focus on providing documentation for all the new 4.1 features, and further stabilisation. So give M4 a spin, and let us know what you think! Drop a note in the forums, or join us for our weekly community/team meetings in IRC.

Thursday, October 27, 2011

RichFaces 4.1.0.M3 Release Announcement

The RichFaces 4.1 Milestone 3 release is now available for download. Further building on the new components and framework improvements introduced in the M1 and M2 releases, M3 brings it all together with an improved showcase – featuring a demonstration of the mobile compatibility of the RichFaces 4 component set. Along-side improvements to resource handling, and enhancements to the push component, we’ve fixed a number of bugs and issues, as voted by you – our user community!

Showcase – Going Mobile

The showcase as seen on mobile devices (using device detection)

The showcase has received some attention in this release. First and foremost we’ve demonstrated the mobile compatibility of the existing component set with the addition of some simple css and javascript resources (using a well vetted approach).

The mobile showcase in RichFaces is a an initial mobile effort, focusing on making the existing RichFaces components work within mobile browsers. While not a full-blown set of mobile components, we’ve tweaked the framework as necessary and put forward the mobile showcase as an example of how you can make your existing RichFaces applications mobile-friendly with the current RichFaces component set. Stay tuned for an upcoming blog entry with details on how you can take advantage of this in your own applications. Or, if you’re feeling adventurous, have a look at the showcase code to see how we did it!

Showcase – On OpenShift

We’ve deployed the showcase application to OpenShift — the PaaS offering by Red Hat. The OpenShift Java EE 6 support provides a great platform to take your application all the way from development with Express (free!) to production with Flex (highly scalable!). Express is a shared multi-tenant environment made to be as simple as possible to get started quickly, while Flex gives you dedicated VMs and DevOps control over architecture along with monitoring. For the RichFaces project, this gives us the chance to showcase our components in a Java EE environment, where our framework really shines!

(Note, until 4.1 is released, the showcase at http://richfaces.org/showcase will continue to demonstrate the RichFaces 4.0 framework and components).

Showcase – New Component Samples

Additionally we’ve added some polish to the showcase with bug fixes and user experience tweaks, and we’ve included samples of the latest RichFaces components. You will now find showcase samples for the rich editor, notify, orderingList, and pickList components, complete with samples showing you how to put them to good effect in your applications.

Resource handling

Along-side these showcase improvements, we’ve introduced framework improvements to improve the mobile experience. With the new RichFaces 4.1 Resource Handling features, we are packaging and minifying the out of box JavaScript and CSS. This is in an effort to reduce HTTP requests made by the framework and to give mobile apps (or any app) a boost in performance. For those familiar with RichFaces 3, this also brings back the old LOAD_ALL configuration, albeit with a new name. We’ll have a blog post out shortly, with details on how you can try these features out with the Milestone 3 release.

Ajax Push

Last (and by no means least!) I’d like to mention that the AJAX push component has seen a lot of improvements with this release. We’ve introduced a CDI interface for firing push events. This is not intended to supercede the existing Push API, but is instead provided as a means to tie the powerful CDI event mechanism into the RichFaces push technology.

Coupled with earlier push improvements (removing the JMS requirement from the push component), the push component is shaping up to be much more accessible to developers working in either Java EE or Servlet container environments.

Forward: M4 & Stabilization

Work is already well underway with our M4 release, where we are improving on the compatibility of our components with mobile browsers, and adding a last round of small feature improvements. Give M3 a spin, and let us know what you think! Drop us a note in the forums, or join us for our weekly community/team meetings in IRC.

Wednesday, September 21, 2011

RichFaces 4.1.0.M2 Release Announcement

The Richfaces 4.1 milestone releases are trucking along. With M1, we had a focus on changes surrounding project infrastructure, and the introduction of some new components. Now with M2 we see updates to the core, and a stabilization of both the new components and the framework as a whole.

jQuery Upgrade

We built the RichFaces 4 components using jQuery for DOM manipulation. Given the degree to which the we rely on jQuery, upgrading it is a “big deal”. In order to ensure none of our components break during this milestone release, both our QE and Dev teams have been busy tending to our test infrastructure. The benefit of shipping with the latest jQuery is that it provides better compatibility to application developers wishing to leverage cutting edge jQuery plugins, or integrate with other component libraries.

IE9 support

As part of our extensive testing of our platform, we noticed a number of compatibility issues with Internet Explorer 9 running in strict or normal mode. We isolated this as an upstream issue, and will work with the Mojarra team to patch the underlying problem. In the mean-time, the issues can be worked-around if you run IE 9 in compatibility mode.

Stabilization of the new components

The new components introduced in M1 have benefited from further development, and constructive user feedback (thanks!).


The Editor has several new features, but the most valuable is the integration with the standard RichFaces styling scheme. Further details are available in Lukas’ blog post.


Notify Messages have been better integrated into the RichFaces ecosystem, allowing them to consume Client-Side Validation messages. The Notify Stack was also refactored – this is where one configures the location and orientation of messages.


The Pick List has picked up ordering capabilities in the target list, making it now a viable replacement for the older listShuttle from RichFaces 3. In addition, the Pick and Ordering Lists have exposed more events, allowing for applications to better hook into their behavior.


A fair chunk of time during the M2 sprint was spent by the team in a face-2-face meeting, where our world-wide development team came together to discuss the future of the project. Stay tuned for updates along these lines, as we distill our ideas and engage the community for feedback to collectively define our project vision and future.

Forward: M3 and mobile

As always, we’ve taken care of a number of bug fixes with the M2 milestone release. However, the upcoming M3 release is when we will buckle down and focus on taking care of stabilizing the platform as a whole, and fixing as many bugs as we can, particularly in the mobile space. To help us better identify where we would best be spending out attention, please get on Jira, and vote for the issues that are important to you.

Tuesday, August 16, 2011

RichFaces 4.1.0.M1 Release Announcement

The RichFaces team is proud to announce the first milestone release of RichFaces 4.1. This release includes some significant contributions from community members, adding to and building on top of the efforts of the RichFaces core developer team! You can find this development release on the project’s download page and check out our “getting started” resources.

First Milestone for 4.1

The 4.1.0 Milestone1 release includes several highly anticipated features and improvements in RichFaces 4.

We have new components:

  • Editor
  • Pick List
  • Ordering List
  • Notify

In addition, we’ve made some big improvements to the Push component. It is now more lightweight, decoupled from JMS, and support has been added for Comet – the websockets-like light alternative for long-poliing. A Push demo has also been added to the RichFaces Showcase, with support for JBoss AS 7 (although not yet visible in the public showcase, the code is available).

In addition, a new sample application Tweetstream has been developed. This application demonstrates the “mobile platform” directions and capabilities that can be expected from future releases of RichFaces.

New Components

Three of the new components, “Editor”, “Pick List”, and “Ordering List” are components that were available in RichFaces 3, but were not present in the initial RichFaces 4 release. With this first milestone release for RichFaces 4.1, we have remedied this and provided these missing components. The 4th new component, “Notify”, is a community contributed component, the first component contributed from Bernard Labno – a RichFaces community enthusiast. Let’s take a closer look at each of these components:

The Editor component has been rewritten from scratch, and is now based on the CKEditor implementation. It traditionally supports two modes of toolbar button configuration (basic and full) and nicely integrates to rest of the RichFaces AJAX framework. In the milestone 2 release, it will also get a new Look & Feel to be better aligned with the rest of the component suite. For further details, see Lukas’ blog post on the rich editor.

The Pick List and Ordering List are two other components that were sorely missed by the community since RichFaces 3, and they have now been re-introduced. The new Pick List in RichFaces 4 incorporates the functionality of both the List Shuttle and Pick List components from RichFaces 3. The API of this Pick List component has been specifically redesigned to follow the f:selectItems pattern and to allow a quick transition from the h:selectMany component.

Lastly, the Notify component provides interactive feedback from your applications complementary to standard messages. The look and behaviour of the Notify component was Inspired by Mac OS’s growl to provide your JSF applications with a more rich user experience

The components provided in this first milestone are functionally complete, so you can take them for a spin, and provide us with your feedback about any functionality or key API’s we might have missed (or where we got it right!)

Migration to Git

New features and functionality have not been our sole focus. In preparation for this release we’ve migrated our entire framework to GitHub and broken it up into several modules. The main goal we had in mind with this migration was to make contributing to the RichFaces framework easier, and help us extend the level of collaboration. I think we can say we’ve definitely achieved this goal, given the number of community contributions we’ve already seen.

With GitHub, it is now pretty easy to send patches to the project in form of pull requests. Thanks to git-flow it is now trivial process to develop new features in feature branches and, because of Git itself, it is easy to merge them back into the most recent development branch.

Next Milestone

Milestone 2 will be a great sprint for ironing out the details of the new components’ features as well as polish their look&feel. Most importantly however, we will focus on further stabilization of the framework by fixing bugs both reported by the community and those found by our QE team. A lot of work is also planned for mobile devices support, and as previously mentioned, we are working on initial versions of a Mobile Showcase.

Face to Face Meeting

After Milestone2, the globally distributed RichFaces team will get together with some other JBoss teams in Toronto, Canada, to discuss the future of the framework itself and it’s integration with other parts of Java EE. The goal of this meeting is to offer you, the developer, the best development experience possible. Should you be around Toronto in September and would like to join us for an evening beer, you are more than welcome. ;-)

Give it a spin!

Go ahead, and download this first Milestone release of RichFaces 4.1 (or add the dependency to your maven pom file), and give the new components a spin. Let us know what you think, either where we’ve missed something, or where we got it right, and help shape the component for the upcoming 4.1.0.Final release.