Weld 2.2 is a CDI 1.2 implementation (see also What is the relation between Weld, CDI and Java EE versions?) and as such depends on Java EE 7 APIs. However, it does not make use of any EL 3.0 feature and it should not be affected by new coercion rules (the only backward incompatible change I've found in the EL spec). So it should be safe to use EL 2.2 instead. WRT the usage - a CDI implementation must provide an
ELResolverthat resolves bean names (see also 12.5. Integration with Unified EL) and there are some rules for using dependent pseudo-scope in expressions (see also 6.4.3. Dependent pseudo-scope and Unified EL).
PS. Weld 2.1 should depend on EL 3.0 as well (the target is also Java EE 7).
Hi Martin, thanks for the reply.
I assumed that WELD 2.1.x required EL 2.2 because WELD 2.1.x supported CDI 1.1. And one of the Maven dependencies for javax.enterprise:cdi-api:1.1 is listed as javax.el:el-api:2.2. However, I'm not using JSP or JSF, and haven't used @javax.inject.Named anywhere either. So I'm greatly relieved to learn that I'm not going to have to shove something like org.glassfish:javax.el:3.0.0 into my application after all .