Abdullah Shaikh
Abdullah Shaikh

Reputation: 2604

Using CDI in JSF, Weld or Solder

Hmm I starting with a jsf webapplication, will be using CDI, but am a bit confused between Weld & Solder, or is it that Solder use's Weld under the hood.

Also was Weld called WebBeans before ?

Like incase of Apache MyFaces it clear that the CDI implementation is CODI

Upvotes: 3

Views: 1225

Answers (1)

Stefano Travelli
Stefano Travelli

Reputation: 1927

JBoss Weld is an implementation (the reference one) of the CDI specification.

Before being final the CDI specification was called WebBeans, that could lead to some confusion.

Apache CODI is not a CDI implementation. It's a set of CDI extensions that facilitate the use of CDI in several scenarios.

The same is for Solder and Seam3. Solder is a set of low level extensions, while Seam3 is a set of libraries that relies on Solder to provide higher level extensions. There are proposals to include some of the Solder features in a future version of the CDI specification.

CODI, Solder and Seam3 need a CDI implementation. Weld is the reference one and other valuable implementations are OpenWebBeans (from Apache) and CanDI (from Caucho Resin).

While CDI implementations should be interchangeable, from a practical point of view you should choose if you like more CODI or Seam3 and then go for a CODI/OpenWebBeans stack or a Seam3/Solder/Weld one.

Update: things are moving fast on this topic. It is now recommended to read this Seam.Next announcement as Seam, Solder and CODI will eventually merge in unique project named DeltaSpike under the Apache umbrella.

Upvotes: 11

Related Questions