I'm pleased to say that we have completed the 1.0.1 release of Weld, the reference implementation of JSR-299: Contexts and Dependency Injection for Java EE. It's based on the CDI 1.0 API. So go get it!. You can find direct download links at the bottom of this post or you can pull the artifacts from the Maven Central Repository.
With that out of the way, let's look at what's new and noteworthy in this release.
In this release we've focused on bug fixing, as well as scalability improvements. Extensive profiling of memory usage has resulted in some good improvements (more to come), and we've added clustering tests to the project for JBoss AS 6.
Thanks go to the whole Weld team!
If you're a fan of Google App Engine (GAE), or just looking to experiment with it (using CDI, of course!), we have really exciting news for you! Weld now has basic support for running on Google's scalable infrastructure. And just to prove it to you, we gave the Weld numberguess example its own appspot, where it's currently running the latest version of Weld.
If you want to get your own CDI + JSF 2 application running on Google App Engine, Shane Bryzak has done a fantastic job of showing you how to navigate the minefield to arrive at a successful GAE deployment. He takes you through App Engine signup, installation of the App Engine SDK plugin in Eclipse, the required CDI and JSF configurations and libraries and, finally, deployment.
Weld 1.0.1 brings improvements to the Java SE support, most notably allowing programmatic instantiation of the container (i.e., new Weld()). I'll let the following code do the talking:
Weld weld = new Weld().initialize(); weld.instance().select(Foo.class).get(); weld.event().select(Bar.class).fire(new Bar()); weld.shutdown();
In the 1.0.2 release you can expect more work on memory usage, performance profiling as well as bug fixes. We'll also be working on improving support for Jetty and Tomcat. You can expect to see 1.0.2 in around 3 months time.
However our main focus is now on developing Seam 3, a collection of portable extensions for CDI and Java EE 6!
It's important for you to know that this version of Weld is not in JBoss AS 6 Milestone 2. To use Weld 1.0.1 with JBoss AS, you can update JBoss AS 6 M2:
JBOSS_HOME=/path/to/jboss-as-6 mvn -f jboss-as/pom.xml
Weld is used in GlassFish V3 and the JBoss AS 6 series. Weld also has support for Servlet containers such as Tomcat and Jetty. While JSF support is built in, you also have the option to use Wicket as your view layer or even Swing and JavaFX through the Java SE support. If you are an OSGi fan, there's a bundle for that too.
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 user forums, or perhaps join us on IRC.