Errai: The browser as a platform

Wednesday, May 9, 2012

Errai 2.0 is Ready

After months of lead-up, a few necessary breaking API changes, and a pile of feedback from our user community, the Errai Team is proud to announce the release of Errai 2.0.0.Final.

In case you haven't heard, the Errai framework builds on the Google Web Toolkit (GWT). We've previously covered what GWT is and what it is not. But how does Errai build on GWT?

  • Errai eliminates the need for boilerplate code and configuration in several areas, including entry points, remote services, UiBinder, and more.
  • Errai brings some of parts of Java EE 6 to the browser: CDI (standardized IoC and eventing) and a typesafe JAX-RS client. A JPA 2.0 implementation is on the way in 2.1!
  • Errai includes a simpler-to-use and more flexible marshalling and RPC system
  • Errai provides a client-server message bus with bidirectional push messaging (much of the above is based on Errai's Bus, and you can choose to use the bus API directly in your code).
  • Errai is guided by the belief not only that a uniform programming model across client and server is a big advantage, but that it's also advantageous to share significant parts of your code base between the client tier and the server tier

For the specifics, complete with code examples, be sure to check out our comprehensive walkthrough of the features in Errai 2.0 from back when we released 2.0.Beta1.


On behalf of the Errai team, I'd like to thank everyone who tried the Errai 2.0 snapshots, betas, and release candidates. We received tons of valuable feedback in the form of bug reports, feature requests, use cases we'd never have thought of ourselves, and even a few patches. Thanks to everyone who communicated their experiences with us. Errai 2.0 would not have been the same without you!

Apologies to those who gave us some excellent feature requests that we didn't have time to implement before the 2.0 cutoff. We haven't forgotten you. And remember, we do gladly accept pull requests! :-)

Thanks also the the JBoss Tools team, who worked closely with us throughout the 2.0 beta cycle to ensure the tooling was up to snuff. These guys enhanced the Eclipse WTP Maven configurator (m2e-wtp) to ensure Errai projects deploy cleanly from within Eclipse, and even created a new GWT Maven configurator that configures the Eclipse GWT Tooling based on the maven-gwt-plugin configuration. This is huge. Thanks, guys!

Thanks also to Red Hat and JBoss for believing in the value of open source community projects, and giving us the latitude to shape Errai in the way our community sees fit. This is a great way to build software, and we're all proud to be participants in this way of doing business.

The Future

As we (finally!) cycle out of cleanup mode and back into R&D mode, we've already started on a number of exciting features for 2.1. Watch for blog posts on the following:
  • Support for parts of JPA 2.0, plus a data synchronization system that takes the drudgery of data sync out of your project's codebase.
  • A data binding module that eliminates even more boilerplate from the MVP pattern by enabling bidirectional property updates between model objects and UI components. This forms a solid foundation for some exciting UiBinder integration.
  • A Jackson-compatible marshalling mode in Errai Marshalling when used with the JAX-RS client.
  • Mobile support. We've already got a demo that shows how to turn HTML 5 DeviceOrientation events into CDI events (supports iOS/Chrome/Android 4.0); we plan to flesh this out into a broader-reaching mobile support module. Let us know what kind of mobile support you're looking for!
Until next time,

The Errai Team

Mike Brock
Christian Sadilek
Jonathan Fuerth