I am leading the CDI 1.1 specification, and work on JBoss Developer Framework, a set of tutorials and examples for all JBoss users. Previously, I've worked on Infinispan and I led the Seam and Weld projects, and am a founder of the Arquillian project. I've worked on a number of specifications including JSF 2.0, AtInject and Java EE 7. I am a regular speaker at JUGs and conferences such as JavaOne, Devoxx, JAX, JavaBlend, JSFDays, JBoss World, Red Hat Developer Day and JUDCon. I am currently employed by Red Hat Inc. working on JBoss open source projects. Before working for Red Hat, I used and contributed to Seam whilst working at a UK based staffing agency as IT Development Manager.
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!).
Hot on the heels of the renaming of the Weld, I'm pleased to announce the 1.0.0.CR1 release. This is a major milestone; for the project and for Java EE 6, as it represents a feature complete implementation of the JSR-299 Proposed Final Draft 2 specification; the specification, implementation and TCK will be submitted to the JCP for the Final Draft ballot.
You can find some quick download links below or you can pull the artifacts from the Maven central repository.
The reference implementation is used in GlassFish V3 and the upcoming JBoss AS 5.2.0.Beta1 release (watch Jason's blog for details!). Our implementation also adds support for Servlet containers such as Tomcat and Jetty. Furthermore you could choose to use Wicket as your view layer, or perhaps Swing via the Java SE support. If you are using an OSGi container, there's a bundle for that too! If you are getting started, there are a few examples in the distribution to guide you. If you are looking for help, try our forums, or perhaps join us on IRC.
Looking ahead, we'll be releasing a second release candidate in early November, so please let us know about any bugs you find! If you are interested in contributing to Weld, check out the development guidelines. Being an open source contributor can really expand your horizons - plus you get to meet some great people;-)
I want to take this opportunity to thank the numerous people who have helped out with the Web Beans/Weld project over the last year. In no particular order we have: David Allen, Dan Allen (they swear they are no relation!), Nicklas Karlsson, Gavin King, Ales Justin, Andrew Rubinger, Ken Saks, Roger Kitain, Shelly McGowan, Kabir Kahn, Carlo de Wolf, Takeshi Kondo, Shane Bryzak, Jozef Hartinger, Ondrej Skutka, Karel Pwiko, Marius Bogoevici, Sahoo, Norman Richards, Pete Royle, Clint Popetz, Daniel Roth and Rodney Russ.
You'll notice one omission from this release is the reference documentation -- so much has changed recently (support for JSR-330, the rename of both the specification and reference implementation, the metamodel API), that I decided to remove this from this distribution. The first target for the docs will likely be the getting started guide - once we have that up to date, we'll make sure to publish a snapshot!
I wanted to give those of you coming to Devoxx a heads up - the Seam team will be holding their annual face to face meeting in Antwerp around Devoxx this year. Taking advantage of this, we are we are planning a community event for Friday, after the main conference finishes. The location is still TBD (I'll post again when it is confirmed -- it will be somewhere in the center of Antwerp).
Please come join us for a combined community event for both Seam and Infinispan. At this event will be presentations from both teams, opportunities to meet and ask questions of core developers, and food to sustain yourself. Beverages may (or may not!) be the responsibility of the attendee and buying a core developer a cold one may increase your chances of getting your question answered. :) The event will be held on Friday, 20 November, at ViaVia Antwerp - (http://www.viaviacafe.com/) - Wolstraat 43, Antwerp with the doors opening at 16:30. The first talk will begin at 17:00 with the second one ending by 19:30. Pizza to follow. We look forward to seeing you all there.
If you are interested in coming, please fill in this simple form, which will allow us to track numbers, and contact people in case we have a last minute change of plans. We won't use your details for any nefarious purposes, I promise!
And of course, there are a few must see talks at Devoxx ;-) First up, myself, Dan Allen and Andy Schwartz are presenting a University talk on JSF2, and that evening we have a BOF on JSF2. Finally, I'll be showing off our new testing tools, Shrinkwrap and Arquillian in a Quickie on Thursday.
I'm pleased to announce that the Web Beans project has a new name -- Weld
As keen readers of in.relation.to will know, this is just the latest in a series of name changes for JSR-299. This time around, one of the Java EE vendors had strong objections to the previous name of the reference implementation, and asked us to change it.
After consulting with the committers on the project (those employed by Red Hat, and those in the community), we decided on Weld.
We'll be updating the project (artifact names, package names, documentation, website, JIRA, SVN etc.) over the next week in time for our release which is feature-complete to the Proposed Final Draft 2 (PFD2) of the JSR-299: Contexts and Dependency Injection Specification. We'll send regular updates to the webbeans-dev mailing list (which of course, will need a rename!).
I'll blog again once the rename is done with new URLs, mailing list addresses etc.
I'll be talking about JSR-299: Contexts and Dependency Injection For Java EE at the Riviera JUG this week, on Friday 2nd October at 14:00. Next week, I'm off to Ljubljana, Slovenia and Belgrade, Serbia for JavaBlend; my slot is 09:00 on Wednesday 7th October in Ljubljana, and 11:00 on Friday 9th October in Belgrade.
See you there!
Back from JBoss World, I discovered a I had a few links I should share with the community :-)
First up is the talk on CDI (or Web Beans as it was then known) I gave at Devoxx last year. It's now up on parleys.com. Whilst the material is slightly outdated due to the introduction of JSR-330, the description of the programming model is still accurate if you make a few replacements (replace deployment types with alternatives, binding types with qualifiers and initializer methods with
Next, Roger Kitain (who is working on integrating Web Beans with GlassFish V3), has written a blog introducing a number guess example running on GlassFish (based on the
numberguess example from the Web Beans distribution. It shows off JSF integration, producer methods, qualifiers and more - a great starting point!
CDI also allows you to inject into Java EE component classes (such as servlets, filters, JSF managed beans, WS endpoints etc.), and Roger's second blog deals with how you can perform injection into servlets.
Next, for those of you in Europe wanting to learn more about CDI, I've got a few talks coming up - on Friday, 2nd October, I'm speaking at Sophia fait sa Java in Nice - on Wednesday, 7th October at JavaBlend in Ljubljana and again on Friday, 9th October in Belgrade.
Or, if you want to learn a bit more about JSF2, how about coming to the talk Dan, Andy and I are doing at Devoxx (Monday, 16th November)? There will be a very strong emphasis on involving the audience - so come prepared with your favourite issues - and your solutions to them!
Finally, I wanted to point those of you who were at JBoss World to the slides for the CDI talk I did with Gavin.
Oh, and watch this space, shortly we'll be getting into much more depth on what is coming in Seam 3!Photo credits to Bruno Georges
One of the medium priority targets for Seam 3 is to provide better support for JBoss Identity Management out of the box.