The RichFaces and Seam teams are nothing if not passionate about community, open source, and working with standard bodies like the Java Community Process (JCP). That is one of the reasons that Oracle/Sun's decision to disband the JSF expert group (JSR-314) with no successor JSR filed under which to develop future revisions of JSF is disappointing. Dan Allen summed up JBoss/Red Hat's position quite clearly in his letter to the JSR-314 public mailing list. While we want to continue supporting the JSF specification, not having an official JSF and EG, along with the intellectual property and governance guarantees this brings, makes this very difficult.
I want say something very clearly. I believe that the individual engineers are doing the best they can with their current priorities and constraints. They are still posting to the JSR-314 open mailing list, which you can view using the JBoss jsr-314-open-mirror), and asking for comments and patches. The RichFaces and Seam teams will also work within our current constraints and will work to resolve some of the core issues that will impact key features of JSF 2.0. While at the same time we will be pushing for a new JSR to be formed. Unfortunately, due to the above mentioned issues, JBoss's participation is limited, although we are fully prepared to contribute if the correct environment is present. When it isn't, we can only expect the spec leads to take on board our issues and push them.
As an example of the above, one of the major goals of the JSF specification is to enable component libraries to interoperate with each other within the same application, and ideally the same page. As component libraries develop to the new specification, and add features, we are finding areas where the specification needs to be updated. As there is no official JSR, and the specification priorities are driven by the RI priorities, some of these issues have been pushed to future versions of the specification ( with an unknown timeline ). Take for example #658 which deals with a problem with the PartialViewContext and how component libraries can extend it without breaking other component libraries. The RichFaces team has provided a draft patch to resolve this (thanks Nick) , however due to timing this will not be included in JSF 2.1.
With no known timeframe, JSR or expert group in place for JSF 2.2+ the Seam and RichFaces projects will continue to give our communities the features and functionality they expect, but in some cases this will need to be outside of the JSF specification. For example View Actions will be implemented by Seam Faces instead of being part of the specification for now. Richfaces has and will continue to reach out to other component libraries such as IceFaces, PrimeFaces, etc… to kick off discussions on how to address these issues outside of the specification. Hopefully we'll be able to deliver the interoperability that was promised, while prototyping updates for future versions of the specification.
Let's hope this situation can be resolved as soon as possible!
Lincoln Baxter and Mike Brock have been working away on our next generation RAD tooling for rapidly scaffolding applications. Seam Forge is different because it allows anyone to interact with the project via plugins written using CDI.
Lincoln gave a great overview of progress and architecture at the Seam development meeting today. We captured the presentation, so if you are interested in tooling for Seam 3, or looking to add a project generation for your framework (due to the extreme pluggability, Seam Forge can be adapted to generate projects for anything), then you should check out the recording!
Stuart released a couple of Seam 3 modules -- XML and Persistence over the weekend. Check out his blog.
Seam XML allows you to configure your CDI beans via XML - very useful and as it has pretty minimal dependencies (just the CDI API and the interceptors API) usable now. I know Stuart plans to move to an API complete beta very soon. You can check out the module page for more on the roadmap
This alpha of Seam Persistence brings JPA and JTA support to CDI outside of Java EE (Stuart has both working on Tomcat) as well as transactions for managed beans anywhere, conversation scoped persistence contexts, and Hibernate Search integration.
On Seam Persistence roadmap are tests for all containers, integration with Envers, easy manual flush mode control and more -- check out the module page
Weld Extensions is a portable library (licensed under the ASL 2) providing utilities and common functionality for CDI applications and libraries or frameworks based on CDI alike. We'll be using it as the base of Seam 3. It contains extensions to the core CDI programming model, typed logging (courtesy of JBoss Logging 3), managed resource loading and support for evaluating EL anywhere.
Finally, Weld Extensions has a number of CDI extensions to make configuration easier. Generic beans allow for groups of beans to be installed based on configurations, default beans allow you to automatically install a bean unless the user provides another, unwrapping producer methods allow you to manage the lifecycle of an object, and service handlers allow for automatically implemented beans.
This project wouldn't have been possible without Stuart Douglas, additionally thanks go to Shane Bryzak, Dan Allen and Nicklas Karlsson for their contributions.
The API in this release is considered stable (unless there are any critical issues) and there are no planned changes. Currently we are planning to tidy up some of the error handling for Beta2, and then move towards a Final release.
The third milestone release of RichFaces 4.0 is now available!! With this release we have added a few new components, GAE support, and more. As before you can download the distribution at our RichFaces download page. The RichFaces-4.0.0.M3 distribution has everything you need to get started. Check out the readme.txt files for any details, or dependencies. If you are a maven user you can follow the instructions here: How to add RichFaces 4.X to Maven Based Project.
As you may have seen several of the RichFaces team presented and attended JavaOne. During our talks we announced and discussed several items that are starting to emerge in milestone3. There was a lot of interest in the new client side validation support that will bring bean validation all the way to the browser. Imagine the scalability impact if you can avoid server hits for validation! We also discussed support of JSF 2.0 and RichFaces 4.0 on cloud based hosting like GAE. With more to come...
- Our new Resource Plugin is done, and enables support for Cloud deployments and serving dynamic resources statically.
- New Components tabPanel, inputNumberSpinner, collapsiblePanel, and progressBar
- Google App Engine (GAE) support via a new gae-archetype, and a gae profile for building the richfaces-showcase.
- Prototype and initial development on Client Side Validation
- Updated richfaces-showcase with new components
- Stabilization work for core, CDK, and migrated code. Automation tests with quint, junit.
The 4.0.0.M3 Release Notes contains all the details, and specific issues. We would be happy if you can give this release a try, and let us know how it goes. The good, the bad, and the bugs….
For Milestone 4 we will be working on more components like finalizing client side validation, calendar, tree, fileupload, and more. There are also going to be some updates to our Push components that should be exciting to see. We are looking at a November release for Milestone 4.
If we are missing your favorite component, or if you find an issue please let us know through our forums, or our project jira. You can also see our current plans by following the 4.0.0.Milestone4 project in jira, or dropping by one of our public IRC meetings. See our Project Calendar and the Meeting Information page for more details, agendas, and minutes.
Surprisingly enough this was my first JavaOne. I know there are a lot of alumni out there, but for me this was #1. I went into it with very few preconceived expectations. For the most part it lived up to my expectations, but I must say after seeing the IronMan display out front of the keynote I expected Larry Ellison to make an entrance like Tony Stark.
I heard from many people that previous JavaOnes were better. That's fine, but this was fun too. It was clear they wanted Oracle OpenWorld, and JavaOne separate, but I was even ok with that. The attendees, and speakers had lots of open conversations, and I thought that the technical content was really good. Sure we had to go between a few different hotels, but so what. The only really annoying part was the shifting of schedules, and rooms, and trying to keep track of it.
This year at JavaOne the RichFaces team had a very good, but busy time. We gave a couple of core presentations; A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4 with Alex Smirnov and myself. Max Katz also gave one call Hands-on with RichFaces. Both were heavily attended, and went well.
Alex and I also gave 3 mini-presentations at the JBoss booth. One of our mini-booth talks was a condensed version of our JavaOne talk, but the other was all about RichFaces in the Cloud and introduced our new Google App Engine archetype for getting JSF 2 and RichFaces on GAE in about 5 minutes. See below for more
As a side note, a particularly funny moment was when I promoted one of our RichFaces mini-booth presentations as
Come hear about RichFaces, your NoSQL solution for JSF. I can't credit this to myself though, I was talked into it by Manik Surtani of Infinispan fame. We thought it would draw a new, albeit confused, new crowd. I even had my comeback ready for the questions --
I can guarantee, there is not single line of SQL in our runtime ;-)
The RichFaces team is in the middle of getting the 4.0.0.Milestone3 release out, and working on some other details. One thing we are getting ready to announce is the RichFaces showcase demo hosted and available on Google App Engine. We're not quite ready on that one, but keep an eye here for more.
Thanks for everyone that attended and that we talked with!! It was a good time, and we hope to see you there next year :-)
Just a brief note to mention a couple of conferences where I'll be talking about Seam 3, and diving into how you can build rich apps taking advantage of some of the recent cloud technologies from JBoss (such as Infinispan and EC2 images). Next week you can catch me at JAXLondon on Tuesday at 11:45 AM.
I'll also be speaking at JUDCon in Berlin on Thursday 7th October at 16:30. The line up for JUDCon (Red Hat's developer orientated conference for developers) looks pretty good - of course, there are the obligatory Infinispan talks, an exposition of how to use CDI with GWT, an update on jBPM 5, and a chance to learn how use Arquillian to test apps in the cloud. It's one of the better value conferences out there at €132 for two full days - so go and register!
The RichFaces team has finished a review of the remaining components and features planned for the 4.0.0 release. In order to deliver the quality, and functionality we aspire to we have decided to revamp our release schedule. We are in the process of updating our wiki, and jira to reflect these changes.
We have added two more milestone releases, bringing our total to five. Since these are roughly monthly releases this pushes the release out to just past the new year. Each milestone release will bring a new set of components, features, and stability.
- October, 2010 : 4.0.0.Milestone3 In Development
- November, 2010 : 4.0.0.Milestone4
- December, 2010 : 4.0.0.Milestone5
- January, 2011 : 4.0.0.CR1
- January, 2011 : 4.0.0.CR2
- February, 2011 : 4.0.0.Final
We had hoped to get the final release of 4.0 out before the end of the year, but as mentioned previously we have run into various hurdles:
These include identifying issues in the JSF 2 specification, and implementations (JSF RI, MyFaces). We have worked with both groups to discuss, and help resolve these issues. As a result we are integrating the latest releases of both.
We also need to make sure that the components and features we are creating in the release live up to our standards of both functionality, and stability. RichFaces 4.0 is more than just a component library and we aim to provide these features to you ready for your project - be it personal, or enterprise. This includes having the proper tooling with IDE's such as JBoss Tools, cloud deployment options, migration resources, and working towards component library interoperability.
The short answer is right now! 4.0.0.Milestone2 has been released and contains everything needed to get going. At this point the build structure, and core functionality is stable. The list of components already available is long. As milestones are released they should be drop in replacements with added components, and features.
As the project is working hard to get releases out your, feedback is always welcome and will help the project get to where it is going even faster. If you find any issues or have an idea for the project please let us know! You can drop by our weekly meeting, post to the forums, create a jira, or even pick a jira or two ;-)