Several of us from JBoss will be presenting at JSFSummit in Orlando Florida between December 1st and 4th. We'll be covering lots of different content from general RichFaces
how-to sessions, advanced component demos, JSFUnit, Seam, CDI, and other JSF related topics.
- RichFaces Component Toolbox: Today and Tomorrow by Jay Balunas
- The Best Kept Secrets of Seam, RichFaces, JSF and Facelets by Jay Balunas
- CDI (JSR-299), Weld and the future of Seam by Dan Allen
- JSF 2: Keeping Progress Coming by Dan Allen and Andy Schwartz
- Seam & RESTeasy: You haven't seen REST yet by Dan Allen and Lincoln Baxter III
- Maturing your application's security with Seam Security by Dan Allen
- Dumping JSF by Stan Silvert
- Holistic testing of JSF applications by Stan Silvert
Also don't forget to register if you have not already!!
Gavin pointed out to me that my script to build the Weld distribution was broken, so I've create Weld 1.0.0 SP1 (Service Pack 1) which remedies this. You can now find Weld's sources and binaries in artifacts/weld and the CDI API source, javadoc and binary in artifacts/cdi. Download it from here.
At the same time, Shane and I realized that the signature test definition for the TCK had been generated against a slightly out of date API. So I've posted 1.0.0 SP1 of the TCK here.
You can find some quick download links below or you can pull the artifacts from the maven central repository.
Weld is used in GlassFish V3 and the upcoming JBoss AS EE 6 Preview release release (watch Jason's blog for more!). We also have support for Servlet containers such as Tomcat and Jetty. JSF support is built in, but with Weld you could use Wicket as your view layer, and Swing, or even JavaFX is supported via the Java SE support. If you are an OSGi fan, there's a bundle.
If you are just getting started, there are a few examples in the distribution to guide you (look for instructions in the reference guide, and each example has a readme.txt). If you are looking for help, try our forums, or perhaps join us on IRC.
I intend to do regular releases of Weld from now on (around 8-10 weeks apart), and for 1.0.1 we'll be concentrating on running an indepth performance and scalability analysis (as well as fixing those bugs you report!). Those of you who follow us closely will know that we've been concentrating on Weld/JSR-299 recently, but with 1.0.0 out, you can expect to see our attention swing back to Seam 3 - so watch this space, as soon as we have nightly builds to try out, I'll post instructions :-)
One omission from the CR1 release was the reference documentation -- since then a lot of effort has been put into the reference guide and the JavaDoc for the CDI API - make sure you check it out!
When I sat down a year ago to start writing Weld, the thought of having more than 850 tests, which will run on any Java EE app was pretty daunting! But of course we made it :-) Around 820 tests pass on JBoss AS, the GlassFish team are hard at work getting GlassFish to pass, and the OpenWebBeans team seem to be making progress.
If you want to see in more detail how we mapped the spec to tests, you can take a look at the audit report.
I take my hat off to David Allen and Jozef Hartinger who spent weeks and months plugging away, writing tests - both of them showed a remarkable level of attention to detail. Shane concentrated on the infrastructure, writing the audit tool (you see the output above) and keeping the audit up to date with the spec. Finally, Dan and Norman pitched in when the deadlines were looming to lend a hand. Great work all!
Of course, we needed a good way to run the tests in any container, and 3 weeks work I did back in the winter ended up being used in both the JSR-299 and JSR-303 TCK, and is one of the inspirations for a couple of projects we are working on to make testing easier - Shrinkwrap and Arquillian (more on this one soon!).
Today, Red Hat submitted the final draft of JSR-299, which now goes under the moniker CDI (Contexts and Dependency Injection), along with the Reference Implementation and TCK. Check out the spec and Javadoc.
This specification defines a powerful set of complementary services that help improve the structure of application code.
- A well-defined lifecycle for stateful objects bound to lifecycle contexts, where the set of contexts is extensible
- A sophisticated, typesafe dependency injection mechanism, including the ability to select dependencies at either development or deployment time, without verbose configuration
- Support for Java EE modularity and the Java EE component architecture - the modular structure of a Java EE application is taken into account when resolving dependencies between Java EE components
- Integration with the Unified Expression Language (EL), allowing any contextual object to be used directly within a JSF or JSP page
- The ability to decorate injected objects
- The ability to associate interceptors to objects via typesafe interceptor bindings
- An event notification model
- A web conversation context in addition to the three standard web contexts defined by the Java Servlets specification
- An SPI allowing portable extensions to integrate cleanly with the container
I would like to take this opportunity to thank the Expert Group and everyone else who contributed ideas and criticism to this specification. Folks outside the JCP probably can't really imagine the incredible investment of time and emotional energy that it takes to create a spec like this. I would really, really like to single out a couple of individual members of the EG for their great ideas and totally uncompensated work, but I guess there's no way to do that without leaving someone feeling unrecognized.
On a more personal note, I believe (and hope) that we've done right by the community, and created something beautiful.
Tomorrow we'll be releasing Weld 1.0.
I put a whole bunch of work into the Javadoc for CDI recently. You can see it here. There's a good overview of the spec in the package doc for javax.enterprise.inject.
Oh, I also did the Javadoc for javax.interceptor, but that's not available anywhere yet.
Nick Belaevski is the RichFaces dev lead in Minsk and has officially joined the JSF 2.0 Expert Group (JSR-314) along with Alex Smirnov to represent RichFaces and Exadel. As many of you know Dan Allen and Pete Muir are also on the JSF 2.0 Expert Group representing Red Hat & JBoss. Together these 4 people along with the rest of the EG will continue to help advance JSF as a standard and a technology.
Anyone who has worked with RichFaces at all is likely familiar with Nick (usually known as nbelaevski), either in the forums, Jira, or SVN. He has been an invaluable member of the RichFaces project for years, and brings a great level of insight into the EG.
Again, congratulations Nick!!