Wednesday, April 4, 2012

RichFaces 4.2.1.CR1 Release Announcement

We've released RichFaces 4.2.1.CR1 - the first candidate release for the first 4.2 micro release. This release comes with initial support for rapid component development with the CDK and jRebel, and a new archetype demonstrating (among other things) a mobile RichFaces application,. For the most part however, this release focuses on bug-fixes and stability of the components and framework.

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.2.1.CR1. For more information on setting up a RichFaces 4 application, refer to our getting started guide.

Kitchensink Example
Since the 4.2.0.Final release, we've included a new sample application: the RichFaces kitchensink quickstart (also available as an archetype). This is example application demonstrates key pieces of the Java EE stack, with a JSF/RichFaces frontend. We have it currently deployed to openshift if you want to see it in action. Be sure to check out this example with your mobile phone, to see the kind of mobile application you can build with RichFaces (complete with client side validation, and ajax push!)

Rapid component Development
Another new initiative that made its way into this release is the work we've been doing to support rapid component development with the CDK and jRebel. We've included the necessary jRebel configuration in our component projects (RF-12090) to enable jRebel to hot reload the classes generated by the CDK. See Lukas' blog post for details on how you can get this working seamlessly within eclipse with JBoss tools.

Highlighted release notes
Specific components addressed include the rich:extendedDataTable, rich:contextMenu, and a4j:push:
  • ExtendedDataTable
    • [RF-10754] - extendedDataTable: two or more components placed on the page causes horizontal scroll to disappear
    • [RF-11948] - rich:extendedDataTable create an onready event to trigger javascript interactions after the EDT has been initialized
  • a4j:push
    • [RF-12013] - Deadlock in push component
    • [RF-12072] - Push: add onsubscribed event
  • rich:contextMenu
    • [RF-11936] - rich:contextMenu activation is possible outside of tree nodes
    • [RF-11971] - rich:menuItem onclick return value ignored
    • [RF-12042] - Metamer: rich:contextMenu doesn't disappear after clicking out of the menu in IE9 and Google Chrome
    • [RF-12043] - rich:contextMenu isn't rendered correctly in IE 9 compatibility mode
    • [RF-11996] - rich:contextMenu on several rows in extendedDataTable


Overall, areas such as event handling, validation, messages, and browser compatibility were addressed:
  • Events
    • [RF-10941] - a4j:command* components misses default behavior event
    • [RF-12091] - rich:dataScroller scrollListener not documented
    • [RF-10968] - Tree: treeSelectionChangeListener and treeToggleListener do not work
    • [RF-12007] - AbstractPanelMenuGroup.getChangeExpandListener is not used
  • Validation/messages
    • [RF-7351] - Regression: "messages: globalOnly does not work properly"
    • [RF-11978] - Graph Validator - does not mark context to fail validation
  • Browser compatibility
    • [RF-12026] - Javascript error in AjaxRequests on FireFox "invalid 'in' operand event"
    • [RF-11884] - Multiple Errors with IE8/9

The RichFaces showcase saw some improvements, including some mobile specific fixes:
  • Showcase
    • [RF-11872] - Mobile Showcase and a4j:region demo: submit button doesn't respond on the first click
    • [RF-11905] - shutdown of the JBoss AS with showcase deployed throws DB error
    • [RF-12048] - Showcase: Change the password for JMS guest connection
    • [RF-12051] - Showcase: simplified Push CDI sample which wouldn't use subtopics

Lastly, a few fixes I couldn't fit into any of the above categories:
  • Miscellaneous fixes
    • [RF-11977] - Multiple fileUpload controls on the same page do not work
    • [RF-12093] - ResourceServlet can't handle resources outside of specific libraries
    • [RF-12052] - rich:TabPanel - HTML comments should be supported inside the tabPanel


Next steps
Our crack-QE team has uncovered some regression in the CR1 release with their extensive test suite. We'll address these issues with the 4.2.1.Final release, but be sure to give the CR1 release a spin to check for any issues we may have overlooked. Of course, concurrent to this micro release, we're hard at work on some brand new stuff for RichFaces 4.3 (see the relevant planning discussion for details).