Section 5.4.1 of the CDI spec states that otherwise valid beans are unproxyable (and thus cannot be injected) if declared final
. The spec gives no rationale and I can not think of a reason for this decision.
I am trying to stick by design rules saying that classes not explicitly designed for inheritance should forbid it. So the CDI spec seems to enforce bad design (and makes CheckStyle cry).
Why is it so and what can be done about it?
Thank you.