-
1. Re: Injection of EJB's implementing an abstract class
mkouba Feb 10, 2016 3:39 AM (in response to cfinerty)Hi Christopher,
I think the behavior of WildFly10/Weld2.3 is correct per the specs. The CDI spec: "The unrestricted set of bean types for a session bean contains all local interfaces of the bean and their superinterfaces. If the session bean has a no-interface view, the unrestricted set of bean types contains the bean class and all superclasses." (see also 3.2.2. Bean types of a session bean). In your case
C
has no-interface view because the client views exposed byB
are not inherited by a subclass (C
) - see also EJB spec "4.9.2.1 Session Bean Superclasses" and "4.9.7 Session Bean’s Business Interface". Scenarios 2, 3 and 4 look fine (A
is explicitly declared). -
2. Re: Injection of EJB's implementing an abstract class
cfinerty Feb 10, 2016 4:42 AM (in response to mkouba)Thanks Martin,
That line in the spec certainly seems to disallows our current usage. I guess something got tightened up in the implementations between the old and new versions which enforces this. Guess ill start migrating our code base as the fix is very simple and I understand the issue now.
Thanks again.
-
3. Re: Injection of EJB's implementing an abstract class
mkouba Feb 10, 2016 4:50 AM (in response to cfinerty)Yes, it could also be a Weld bug - it seems there was no TCK test for CDI 1.0, 1.1 and 1.2 (see also CDITCK-483).