News

Weld 2.1.0.Final

2013-10-22   Jozef Hartinger

I am pleased to announce that Weld 2.1.0.Final has just been released. Weld is the reference implementation of Contexts and Dependency Injection for Java EE (CDI). Here is the highlight of what’s new in Weld 2.1.0:

  • OSGi support with Pax CDI

  • Improved runtime performance and memory consumption

  • Better integration with various Servlet dispatch types

  • SLF4j was replaced with jboss-logging

  • 30 fixed bugs

The future of Weld-OSGi

Weld-osgi is a framework that allows the CDI programming model to be used in the OSGi environment. The framework was developed entirely by the Weld community and became a part of Weld since version 1.2.0

The framework provides three main features:

  1. The CDI programming model can be used within OSGi bundles.

  2. The OSGi service layer and utility facilities are accessible through CDI injection

  3. The CDI event bus can be used for both inter-bundle communication and delivering OSGi events.

The weld-osgi framework served as an inspiration for a standardization effort, known as RFC-193 (formerly RFP-146). The proposal is now part of the OSGi early draft

Due to the tight schedule of CDI 1.1, weld-osgi did never make it to Weld 2.0 and was therefore left behind, stuck in the gradually abandoned 1.2 branch.

In the meantime, work on the reference implementation of RFC-193 begun. The reference implementation is known as Pax CDI and it is an open-source project hosted on GitHub. Pax CDI aims to be portable across OSGi implementations as well as CDI implementations.

We always wanted to bring OSGi support back in Weld 2.1. However, we decided not to revive the weld-osgi framework nor align it to the new RFC-193 specification. Therefore, weld-osgi will not be merged into Weld 2.x code base. Instead, we decided to shift our focus towards Pax CDI and make sure it works well with Weld. This was done and Weld 2.1.0 is now one of the CDI runtimes supported by Pax CDI. You can play with the current Pax CDI SNAPSHOT or wait for the upcoming 0.5 release.

EDIT 2013-10-30: Pax CDI 0.5.0 was released. See the release announcement for more details.

Performance

The CDI specification requires the request, conversation and application contexts to be active during every HTTP request. Obviously, the CDI contexts are not necessary for every HTTP request. Fetching a static resource is an example of one such request.

In Weld 2.1.0 we optimized the component that handles context activation/deactivation and cut down the overhead. In addition, it is now possible to completely suppress CDI context activation on certain types of HTTP requests should this minimized overhead still be undesired. See Martin’s blog post or the reference documentation for more details.

Acknowledgement

We greatly appreciate your contributions to this release. Big thanks go to: Martin Kouba, Matúš Abaffy, Matej Briškár, Marko Lukša, Stuart Douglas, Marek Schmidt, Ron Šmeral, Tomáš Remeš, Max Pimm, Jesse McConnell, Harald Wellmann and Dirk Strauss.


Weld 2.1.0.Beta2 tip

2013-9-20   Martin Kouba

A tip how to configure a new feature introduced in Weld 2.1.0.Beta2 which allows to skip CDI context activation for some HTTP requests: http://goo.gl/PAiwBS


Weld has a new web site!

2013-6-20   Martin Kouba

Weld has a new web site and it’s built with Awestruct!


Weld 2.0.1.Final

2013-6-6   Jozef Hartinger

Weld 2.0.1.Final has been released. This is mainly a bug-fixing release with 20 issues fixed since the previous one. For details, see the release notes.

Our focus is now shifting towards WildFly and its Weld integration in order to provide a CDI 1.1 compliant container. For details about CDI 1.1, see Pete’s blog post. Furthermore, we plan frequent releases of Weld to continue, so expect another release in early July at the latest!


Weld 2.0.0.Final released

2013-4-25   Jozef Hartinger

I am pleased to announce the release of Weld 2.0.0.Final, the reference implementation of Contexts and Dependency Injection for Java EE 1.1 (JSR 346). For a list of major changes in CDI 1.1 see the specification.

The reference implementation will soon be available in GlassFish 4 and WildFly (formerly JBoss Application Server). In the meantime you can check snapshots of the application servers.

As always, Weld artifacts can be obtained from maven or you can use a distribution bundle.

Along with the Weld release comes the final release of the Technology Compatibility Kit (TCK) for CDI 1.1. Martin Kouba did an excellent job writing new tests and keeping the TCK in sync with the almost never-ending stream of specification changes. The TCK splits the specification into 1550 testable assertions out of which 96.71% is covered by TCK tests.

I would like to thank to everyone who lent a hand and helped delivering these releases, especially: Martin Kouba, Pete Muir, Marko Lukša, Stuart Douglas, Marek Schmidt, Ron Šmeral, Tomáš Remeš, JJ Snyder, Phil Zampino, Tomaž Cerar, Hardy Ferentschik, Lincoln Baxter III, Matúš Abaffy and others.

[ Distribution (Weld, CDITCK) ] [ Documentation (Weld, CDITCK) ] [ Javadoc (CDI 1.1, Weld SPI) ] [ Issue tracker ]