[cdi-dev] [JBoss JIRA] (CDI-438) Fix type parameters ordering in ProcessProducerMethod and ProcessProducerField events

Martin Kouba (JIRA) issues at jboss.org
Mon Feb 23 03:42:49 EST 2015


     [ https://issues.jboss.org/browse/CDI-438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Kouba updated CDI-438:
-----------------------------
    Description: 
Since CDI 1.0 there is an inconsistency in the description of {{ProcessProducerMethod}} event...

The text:
{quote}
For a producer method with method *return type X* of a bean with *bean class T*, the container must raise an event of type ProcessProducerMethod<T, X>.
{quote}

API:
{code:java}
/**
 * @param <T> The return type of the producer method
 * @param <X> The class of the bean declaring the producer method
 */
public interface ProcessProducerMethod<T, X> extends ProcessBean<X> {
}
{code}

The same applies to {{ProcessProducerField}}. 

TCK and RI (Weld) follow the API. As one of the consequences an {{ProcessProducerMethod<Foo,Producer>}} event is not delivered to an observer with the event parameter {{ProcessBean<Foo>}} - which is required by the spec but does not make sense at the same time.

It's obvious that JCP compatibility rules required to keep the wrong ordering for CDI 1.x (see also the comments in {{javax.enterprise.inject.spi.ProcessProducerMethod}}). I believe this should be fixed in CDI 2.0.

  was:
Since CDI 1.0 there is an inconsistency in the description of {{ProcessProducerMethod}} event...

The text:
{quote}
For a producer method with method **return type X** of a bean with **bean class T**, the container must raise an event of type ProcessProducerMethod<T, X>.
{quote}

API:
{code:java}
/**
 * @param <T> The return type of the producer method
 * @param <X> The class of the bean declaring the producer method
 */
public interface ProcessProducerMethod<T, X> extends ProcessBean<X> {
}
{code}

The same applies to {{ProcessProducerField}}. 

TCK and RI (Weld) follow the API. As one of the consequences an {{ProcessProducerMethod<Foo,Producer>}} event is not delivered to an observer with the event parameter {{ProcessBean<Foo>}} - which is required by the spec but does not make sense at the same time.

It's obvious that JCP compatibility rules required to keep the wrong ordering for CDI 1.x (see also the comments in {{javax.enterprise.inject.spi.ProcessProducerMethod}}). I believe this should be fixed in CDI 2.0.



> Fix type parameters ordering in ProcessProducerMethod and ProcessProducerField events
> -------------------------------------------------------------------------------------
>
>                 Key: CDI-438
>                 URL: https://issues.jboss.org/browse/CDI-438
>             Project: CDI Specification Issues
>          Issue Type: Bug
>    Affects Versions: 1.2.Final
>            Reporter: Martin Kouba
>
> Since CDI 1.0 there is an inconsistency in the description of {{ProcessProducerMethod}} event...
> The text:
> {quote}
> For a producer method with method *return type X* of a bean with *bean class T*, the container must raise an event of type ProcessProducerMethod<T, X>.
> {quote}
> API:
> {code:java}
> /**
>  * @param <T> The return type of the producer method
>  * @param <X> The class of the bean declaring the producer method
>  */
> public interface ProcessProducerMethod<T, X> extends ProcessBean<X> {
> }
> {code}
> The same applies to {{ProcessProducerField}}. 
> TCK and RI (Weld) follow the API. As one of the consequences an {{ProcessProducerMethod<Foo,Producer>}} event is not delivered to an observer with the event parameter {{ProcessBean<Foo>}} - which is required by the spec but does not make sense at the same time.
> It's obvious that JCP compatibility rules required to keep the wrong ordering for CDI 1.x (see also the comments in {{javax.enterprise.inject.spi.ProcessProducerMethod}}). I believe this should be fixed in CDI 2.0.



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)


More information about the cdi-dev mailing list