In OmniFaces we're using a producer method with the following signature:
Injection then takes place into a bean as follows:
@Param is a qualifier with only non-binding attributes.
This works in all versions of Weld that we tested on and in OpenWebBeans 1.1.8 (TomEE 1.5.2.). Unfortunately it does not work with OpenWebBeans 1.2.1-SNAPSHOT (TomEE 1.6.0-SNAPSHOT).
The problem seems to be that 1.2.1 has added an additional check in org.apache.webbeans.util.GenericsUtil.satisfiesDependency that wasn't there before:
The problem is with isAssignableFrom, because the producer is always seen as producing a ParamValue<Object. The actual values at the point of evaluation with the above given injection example where:
Those are not directly assignable so the injection fails.
Is OmniFaces doing something wrong here, is this check to strict, or should the producer type not be seen as ParamValue<Object>?