Help

Built with Seam

You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.

Weld Home

Weld is the reference implementation (RI) for JSR-299: Java Contexts and Dependency Injection for the Java EE platform (CDI). CDI is the Java standard for dependency injection and contextual lifecycle management, led by Gavin King for Red Hat, Inc. and is a Java Community Process (JCP) specification that integrates cleanly with the Java EE platform. Any Java EE 6-compliant application server provides support for JSR-299 (even the web profile).

Weld and the JSR-299 TCK (Technology Compatibility Kit) are developed here at seamframework.org. Both are licensed under the Apache License, Version 2.0.

Using Weld

Supported platforms

Weld has been tested on the following platforms:

Book

The latest book on Weld is now available:

Get Started Now


For Java EE 6 Application Servers:
<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.0-SP4</version>
    <scope>provided</scope>
</dependency>
For Servlet Containers (Tomcat/Jetty)
or Java EE 5 Application Servers:
<dependency>
    <groupId>org.jboss.weld.servlet</groupId>
    <artifactId>weld-servlet</artifactId>
    <version>1.1.10.Final</version>
</dependency>

For Java SE applications:
<dependency>
    <groupId>org.jboss.weld.se</groupId>
    <artifactId>weld-se</artifactId>
    <version>1.1.10.Final</version>
</dependency>

How do Seam, Weld and CDI relate to each other?

In short:

  • CDI is a JCP specification included in Java EE
  • Weld is the reference implementation of CDI
  • Seam 3 is a set of modules which extend CDI to provide functionality beyond that offered by Java EE 6

The two technologies share a common goal of providing a unified, contextual, programming model for Java Web Applications. Both provide integration of EJB and JSF.

However, Seam 3 is a superset of JSR-299. Think of JSR-299 as the core of Seam 3 - it's the basic programming model for your application components, and for the built-in components that make up the Seam framework. Weld is our implementation of this programming model. Based on this programming model, Seam provides a full framework for application development, including integration with various non-standard open source technologies. JSR-299 defines a very powerful framework for portable extensions. Seam 3 is implemented as a set of portable extensions, or modules, for JSR-299, that run in any environment which supports JSR-299 (including any Java EE 6 environment).

The following diagram illustrates the relationship between Seam 2, Seam 3 and JSR-299 (implemented by Weld):

Seam will continue to be the vehicle which delivers BPM integration, Seam Security, Drools integration, RESTeasy integration, PDF and email templates, Excel generation, etc. You can think of Seam as the goodies. Seam will also contain improvements for technologies in Java EE such as JSF fixes (yes, still) or Seam-managed persistence.

Keep in mind that CDI is the specification, of which Weld is a full implementation.

Project roadmap

The schedule for upcoming releases

Weld 1

Bug-fixing releases delivered as necessary.

Weld 2

Version Release date Focus
2.0.0.Alpha1 2011-01-19
  • Feature complete implementation of CDI 1.1 EDR1
2.0.0.Alpha2 End of March 2012
2.0.0.Alpha3 TBD
  • Separate Bean implementations from Producers (WELD-1050)
  • Other minor issues
2.0.0.Beta1 3.12.2012
  • Feature complete implementation of CDI 1.1-PRD
2.0.0.Final Early 2013
  • Full specification compliance

Reporting bugs in Weld

Weld is bundled in JBoss AS and GlassFish, as well as being available standalone, so working out where to report a bug, and when you'll get access to the fix can be complex. Let's start by looking at where to report a bug.

If you are using CDI in JBoss AS or GlassFish, and aren't sure if the bug is a JBoss AS/GlassFish bug or a Weld bug, then you should report the issue in either the JBoss AS issue tracker or the GlassFish issue tracker. The JBoss AS developers or the GlassFish developers will triage the issue, and either move the issue to the upstream (WELD) issue tracker, or ask you to report the issue there as well. If you know the issue is with WELD, you can report it there as well (it's important you always report it in the server issue tracker).

If it is determined that the issue is upstream in Weld, then the Weld development team will assess the issue and determine it's priority, and assign it to either a version in which it will be fixed or TBC if it is decided to leave it open for now. Having fixed the issue, the Weld team must then release the version (which can take a few weeks after fixing the issue). It is then up to the JBoss AS and GlassFish teams to integrate the version into their app server (normally this happens within days), and finally, release a new version of the app server. Because there are two releases which must take place for fix to make it into a released version of the app server, this can take quite some time.

Want to get involved?

We are always looking for community contributors to help with Weld development. Please check out the information on the Weld Development Page if you'd like to know more.

Maintainers and contributors

Name Organization Role Hometown (Time zone)
Pete Muir JBoss, by Red Hat Founder Edinburgh, UK (UTC)
Aleš Justin JBoss, by Red Hat Team Member Vrhnika, Slovenia (UTC+01)
Marius Bogoevici JBoss, by Red Hat Contributor Toronto, Canada (UTC-05)
David Allen - Contributor Germnay (UTC+01)
Nicklas Karlsson - Contributor Finland (UTC+02)
Dan Allen JBoss, by Red Hat Contributor Laurel, MD, USA (UTC-05)
Roger Kitain Oracle Corp Contributor -
Stuart Douglas JBoss, by Red Hat Contributor Sydney, Australia (UTC+10)
Shane Bryzak JBoss, by Red Hat Contributor Brisbane, Australia (UTC+10)
Aslak Knutsen JBoss, by Red Hat Contributor Oslo, Norway (UTC+01)
Kabir Khan JBoss, by Red Hat Contributor London, UK (UTC)
Pete Royle - Contributor Australia
Ondrej Skutka JBoss, by Red Hat Contributor Brno, Czech Republic (UTC+02)
Jozef Hartinger JBoss, by Red Hat Project Lead Brno, Czech Republic (UTC+02)
Martin Gencur JBoss, by Red Hat Contributor Brno, Czech Republic (UTC+02)
Karel Piwko JBoss, by Red Hat Contributor Brno, Czech Republic (UTC+02)
Peter Lenyi JBoss, by Red Hat Contributor Brno, Czech Republic (UTC+02)
Marko Lukša JBoss, by Red Hat Team Member Ljubljana, Slovenia (UTC+01)