Thursday, May 16, 2013

RichFaces 4.3.2.Final Release Announcement

RichFaces

I am excited to announce the release of RichFaces 4.3.2.Final. This 2nd minor release of the RichFaces 4.3 release series provides a number of bug fixes further increasing the stability of the 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.3.2.Final. For more information on setting up a RichFaces 4 application, refer to our getting started guide.

Release Highlights

This release of the RichFaces framework is not accompanied by a release of the CDK. The 4.3.2.Final release of RichFaces was created with the 4.3.1.Final version of the RichFaces CDK. Future RichFaces 4 releases will only be accompanied by a RichFaces CDK release when a CDK fix was required to enable the framework release.

With fixes to the extendedDataTable, tab panel, autocomplete, fileuplaod and popup panel, as well as some fixes addressing compatibility with the latest Mojarra release, you’ll definitely want to move your applications to this release and take advantage of these improvements. Refer to the release notes below for a complete listing of what has been fixed in this release.

Release Notes

Bug

  • [RF-12193] – rich:extendedDataTable is blank on show
  • [RF-12765] – Rich:tabPanel not possible to switch tabs when only dynamic tabs are present
  • [RF-12812] – Autocomplete does not hide popup on tabbing to the next field
  • [RF-12827] – Showcase – switching among dynamically created panels, tabs cease to function
  • [RF-12839] – Toggle panels: ajax-related attributes do not work
  • [RF-12846] – a4j:commandLink accesskey attribute missing
  • [RF-12847] – Fix quickstart license and white space issues exposed by qstool report
  • [RF-12848] – Error "source is not defined" after richfaces-jsf-event.js merge
  • [RF-12850] – Popup panel: button's label is invisible in IE10
  • [RF-12851] – The RichFaces kitchensink-rf quickstart/archetype incorrectly depend on the AS google guava module
  • [RF-12858] – rich:calendar dateselect event is fired twice
  • [RF-12868] – Update the Summary of the RichFaces kitchensink quickstart
  • [RF-12893] – Partial response not ended correctly on exception
  • [RF-12928] – ExtendedDataTable: columnsOrder doesnt work after changing order
  • [RF-12931] – rich:fileupload broken with jsf.js changes in Mojarra 2.1.21
  • [RF-12933] – rich:tooltip replace 'defaultContent' facet in docs and examples with 'loading'
  • [RF-12958] – Popup panel opened from inside popup panel doesn't work
  • [RF-12969] – rich:tabPanel: Click on already selected rich:tab causes JavaScript error
  • [RF-12975] – rich:extendedDataTable – can not change order of columns

Component Upgrade

  • [RF-12688] – Upgrade Guava from 11.02 to 13.0.1
  • [RF-12780] – Upgrade to Mojarra 2.1.19
  • [RF-12898] – Tie RichFaces 4.3 to CDK 4.3.1.Final

Enhancement

  • [RF-12784] – Showcase readme – update deployment from eclipse part
  • [RF-12786] – Showcase – rewrite readme to markdown
  • [RF-12964] – Create appropriate push timeouts for the showcase

Feature Request

  • [RF-12810] – Introduce profiles for verification of fundamental tests on Tomcat 6 and 7, TomEE 1.5 and GlassFish 3.1
  • [RF-12849] – Showcase – update readme – remove obsolete, add new
  • [RF-12935] – Fix resolution of framework tests' artifacts with version enforced
  • [RF-12937] – Introduce a profile for running framework tests against JBoss EAP
  • [RF-12938] – Update Shrinkwrap
  • [RF-12940] – Showcase: fix path to outputPanel – compositeMessages sample source
  • [RF-12941] – Showcase: ProgressBar demo – remove obsolete attribute and make the progress smoother

Task

  • [RF-12843] – Apply unix style line-endings to the entire codebase

Moving forward

We’ve finished development of RichFaces 5.0.0.Alpha1, and our QA team is currently working on stabilizing for a release. So stay tuned for an exciting announcement of the availability of our first RichFaces 5 Alpha!


Wednesday, May 1, 2013

RichFaces 4.3.2.CR1 Release Announcement

RichFaces

We’ve taken a break from our RichFaces 5 development to deliver a micro release of RichFaces 4.3. Today we are announcing that the first candidate release of this micro release is now available: RichFaces 4.3.2.CR1.

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

Release Notes

The issues addressed in this CR release are detailed in the 4.3.2 Release notes. The issues address bug fixes, library upgrades, and improvements to our testing infrastructure.

Please take the release for a spin, and let us know how it works for your application. Our extensive QA test suite is currently underway, we’ll release the final release shortly provided no blocking issues are uncovered.

Onwards

With this 4.3 micro release nearly complete, we’ll be shifting focus back to RichFaces 5. We hope to get the first Alpha release of RichFaces 5 out within a week or so – so stay tuned!


Thursday, March 7, 2013

RichFaces 4.3.1.Final Release Announcement

RichFaces

The final release of RichFaces 4.3.1 (4.3.1.Final) has been released. This micro release addresses some bugs present in the 4.3.0.Final release, and offers some improvements on the new features introduced in that same release. Have a look at the 4.3.1.Final Release Notes for a complete listing if what was included in this release.

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

Release Highlights

Perhaps the most significant change introduced in this release is in issue RF-12803, where we’ve included the <a4j:ajax> JavaScript service extension in <f:ajax> execution. This service allows RichFaces components to serve and execute JavaScript after the page content is loaded, leading to improved page performance. As we’ve continued to use this service more extensively throughout our components, we realized we had to integrate the extension with the JSF 2 <f:ajax> behaviour, or we would forever be reminding people to use <a4j:ajax> instead (which you should be using anyway for all sorts of additional reasons).

The RichFaces push component has been upgraded to use the latest release of the Atmosphere library, with the resolution of RF-12689. If you haven’t yet started using the easy-to-use RichFaces push component in your application (with optional CDI and JMS integration) be sure to follow these 4 simple steps for RichFaces Push.

Moving forward

With RichFaces 4.3.1 out, we will next shift gears back into RichFaces 5 development, working on the new consolidated RichFaces 5 repository. Stay tuned for a first RichFaces 5 milestone release!


Tuesday, March 5, 2013

Speaking on Polyglot Widgets at JAXConf 2013

JAXConf 2013

I will be returning to speak at JAXConf again this year. I’ll be speaking on the topic of Poly-framework Web applications with Java EE. The session will further explore the ideas I presented in my Polyglot Widgets blog, where I demoed a sample application written using three different web frameworks, demonstrating both a consistent look & feel, and uniform server-side programming model.

This topic will be particularly useful for those JAX attendees that have existing applications in production, yet like what they see with new web technologies and frameworks that they will learn about while attending JAXConf. Attendees may be curious how they can take advantage of the latest and greatest without re-writing already working software.

My JAXConf session will explore both client-side and server side techniques to allow disparate web frameworks to used side by side in a single application while providing users a consistent look & feel. We’ll look at sharing state between web frameworks, responding to server-side events with asynchronous http communication, and framework interop within a single page.

So if you are in the area from June 3-5 (or even if you are not!), come and check out my session at JAXConf. JAXConf has put together yet another roster of fantastic speakers and an excellent selection of topics. I look forward to attending many of the sessions myself, and am sure I will learn a lot!


Thursday, February 28, 2013

RichFaces 4.3.1.CR1 Release Announcement

RichFaces

The first candidate release of RichFaces 4.3.1 (4.3.1.CR1) has been released. This micro release addresses some bugs present in the RichFaces 4.3.0.Final release, and offers some improvements on the new features introduced in that same release. Have a look at the 4.3.1.CR1 Release Notes for a complete listing of what has been included in this release.

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

Concurrent testing efforts

Normally we leave RichFaces releases in our Nexus staging server until the RichFaces QE team has fully verified the release. With this release however, we are trying something new.

We have promoted the RichFaces 4.3.1.CR1 artifacts out of staging having only undergone a smoke test. In this way we are enabling the community to try out the latest fixes concurrent to our execution of our extensive automated test suite, and the remainder of our QA process.

So please do take this candidate release out for a spin, and report any issues you uncover so we can address them before the 4.3.0.Final release.

Friday, February 1, 2013

RichFaces 4.3.0.Final Release Announcement

RichFaces

I’m very excited to announce the availability of the final release of RichFaces 4.3 (4.3.0.Final). This release is minor in version increment only, as it packs quite a significant number of features and improvements. We’ve covered many of these features in blogs already, we’ll summarize them again here, and provide links to where you can find additional details.

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

New components

We’ve delivered some new components with this release. These are components that were originally contributed by Bernard Labno via the RichFaces Sandbox. The new components we shipped are:

  • <rich:focus> – used to manipulate the cursor focus on a page. The component is integrated with the JSF life-cycle to enable validation-aware focus capabilities.
    Blog Read the rich:focus component blog post for more details.
  • <rich:placeholder> – pre-fills form inputs with text, similar to the HTML 5 placeholder attribute.
    Blog Learn more about it in the rich:placeholder component blog post.

New Features

Aside from the new components, a number of existing components have seen some significant feature additions. The <rich:extendedDataTable> for instance has added support for built-in sorting and filtering, and table-state saving.
Blog We have a blog dedicated to the EDT improvements in RichFaces 4.3.

New with RichFaces 4.3 is the ability to define child toggle panels with the <a4j:repeat> tag. This offers developers additional flexibility when defining child toggle panels when <c:forEach> is insufficient.
Blog Check out the Dynamic Panels with a4j:repeat blog for more details.

Testing

Automated testing has always been central to RichFaces. We have a great QE team behind the framework that works hard to help us deliver solid releases. But with RichFaces 4.3 we’ve taken our automated tests to the next level.

We’ve developed the Arquillian extensions Warp and Graphene to enable us to author real tests, running in real containers, with real browsers. Through the magic of Arquillian and Shrinkwrap, these tests are still fast both to author and to execute.
Blog Read more about it in this deep dive to testing in RichFaces 4.3.

CDK improvements

Early on in our RichFaces 4.3 efforts we delivered a number of improvements to our Component Development Kit (CDK) which we used throughout this release to reduce our developer turnaround time in creating new components and features. In addition to enriching the CDK templating language, we introduced an incremental build feature in the CDK. This incremental build has proven to be so beneficial that is one of the primary drivers behind the RichFaces 5 build redesign.

Blog Refer back to this blog for further details on Incremental build with the RichFaces CDK

Bug fixes

With so many shiny new features to look at, it would be easy to overlook the number of bugs fixed in the release. In total 242 issues were addressed in this release. An epic effort for an epic release!

Path forward

As I just hinted, our steps forward are on the path to RichFaces 5. We’ve already started working on the new consolidated RichFaces 5 repository. Feel free to comment with where you’d like to see the project head in RichFaces 5 in the RichFaces developer forum thread.


Monday, January 28, 2013

Dynamic Panels with a4j:repeat

RichFaces

With the imminent 4.3.0.Final release of RichFaces, we will be providing developers with the ability to dynamically create <rich:togglePanel>, <rich:accordion>, and <rich:tabPanel> panel items dynamically with the <a4j:repeat> tag.

<a4j:repeat> vs. <c:forEach>

Creating the above panels from a backing bean list has always been possible with RichFaces 4 using the JSTL <c:forEach> tag, so why have we bothered adding support for creating such panels with the <a4j:repeat> tag? The answer to that requires an understanding of when the JSTL tags are evaluated during the creation of the JSF component tree, and subsequent page render:

TL;DR: JSTL tags are evaluated during the compilation of the Facelet, during the construction of the component tree, whereas <a4j:repeat> is evaluated during the render phase of the JSF life-cycle.

For a great/detailed explanation of the JSTL tag / Life-cycle interaction, I’ll refer you to this blog post.

So if you are currently using the <c:forEach> tag to define dynamic child toggle panel items, and are noticing an issue on post-back when the list backing the panel items may have changed, be sure to try using the tag instead.

Using the <a4j:repeat>

Refer to the showcase snapshot for examples of using the <a4j:repeat> tag with the above listed family of toggle panel items:

The 4.3 release

RichFaces 4.3.0.CR2 is currently available, and RichFaces 4.3.0.Final will be available shortly. Please take the time to take try out the <a4j:repeat> tag to define relating toggle panel items, and give us your feedback for the new features and bug fixes via the RichFaces forum or issue tracker.