Summary

Before you start reading the summary we would like to mention that we observe a quite good progress and over time CDI implementations are getting better.
We are aware that implementing a CDI container is not an easy task (esp. concerning real portability) and we have high respect for all committers who are working on a CDI implementation (currently: Weld, OpenWebBeans and CanDI). This page does not intend to blame a group of committers - it's just a summary of what was experienced/reported (by different users) so far.

We test all features with Apache OpenWebBeans which is very solid and currently offers a better performance than Weld.
However, we also have some tests and examples for Glassfish3/Weld as well as JBoss AS 7. The problem is: so far every Weld release fixed some issues but also introduced at least one new major issue (at least up to v1.1.1 - some of them might be specific to a specific application server).
We already implemented a lot of workarounds for Weld. However, there are different Weld issue (in different versions) we can't bypass. We already filed several bug reports.
If you are facing a problem in combination with CODI, please contact our mailing-list. Since we know most of the issues the answer will be "Please use/try ..." or "Please file a bug report for Weld" or "We are aware of it and we already filed a bug report" or "You can try the manual workaround: ...". However, please contact us in any case because you might have found a new problem.

Recommendations

We recommend Apache OpenWebBeans (and no - not because it's the CDI implementation hosted at Apache (wink) ). OpenWebBeans in combination with CODI is successfully used for several ! real world ! applications which serve millions requests a day and allows to use e.g. advanced plug-ins like the CODI Boost Add-on. In case of JBoss Weld we recommend version 1.1.4+ (and v1.1.1 as an absolute minimum).

Tested environments

see Intro and Compatibility

Glassfish v3 and new versions of Weld

Usually it's possible to upgrade Glassfish with the newest version of Weld. That's not the case with Weld v1.1.2 due to a cache which broke the integration with Glassfish at least up to v3.1.1. Since CODI will resolve the first bean you will see e.g. something like: Critical error during deployment: java.lang.NoClassDefFoundError: org/jboss/weld/context/cache/RequestScopedBeanCache at org.apache.myfaces.extensions.cdi.core.api.config.CodiCoreConfig$Proxy$$$_WeldClientProxy.isAdvancedQualifierRequiredForDependencyInjection(CodiCoreConfig$Proxy$$$_WeldClientProxy.java). However, that isn't a CODI bug. If you use the version of weld which is supported by Glassfish officially, you won't have such problems.