[cdi-dev] [JBoss JIRA] (CDI-670) Clarify InterceptionFactory.ignoreFinalMethods() purpose and functioning
Martin Kouba (JIRA)
issues at jboss.org
Thu Dec 15 03:44:00 EST 2016
Martin Kouba created CDI-670:
--------------------------------
Summary: Clarify InterceptionFactory.ignoreFinalMethods() purpose and functioning
Key: CDI-670
URL: https://issues.jboss.org/browse/CDI-670
Project: CDI Specification Issues
Issue Type: Clarification
Reporter: Martin Kouba
Fix For: 2.0 .Final
It should be clear that {{InterceptionFactory.ignoreFinalMethods()}} only affects the generation of the "proxy" which enables interception. E.g. the following example would FAIL during validation of {{myFoo}} injection point (bootstrap):
{code:java}
@Inject
Foo myFoo;
@Produces
@RequestScoped // -> Requires a client proxy
public Foo produce(InterceptionFactory<Foo> interceptionFactory) {
// Suppose Foo has a final method
return interceptionFactory.ignoreFinalMethods().createInterceptedInstance(new FinalProduct());
}
{code}
The reason is that the CDI container must treat the producer as a deployment problem (unless {{javax.enterprise.inject.spi.ProcessBeanAttributes.ignoreFinalMethods()}} is used for the producer method).
I understand that it's not very intuitive. On the other hand, these are two different concepts. I.e. the *injection point validation happens during bootstrap* while the {{InterceptionFactory}} *is used at runtime*.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the cdi-dev
mailing list