[cdi-dev] [JBoss JIRA] Commented: (CDI-137) Changing ProcessManagedBean getBean Method Signature

Pete Muir (JIRA) jira-events at lists.jboss.org
Thu Jun 23 08:05:23 EDT 2011


    [ https://issues.jboss.org/browse/CDI-137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12610639#comment-12610639 ] 

Pete Muir commented on CDI-137:
-------------------------------

I would suggest introducing a new Process event than changing this one. We need to keep backwards incompatible changes to an absolute minimum. There is nothing wrong with ProcessSessionBean today, it simply doesn't do what *you* want ;-)

> Changing ProcessManagedBean getBean Method Signature
> ----------------------------------------------------
>
>                 Key: CDI-137
>                 URL: https://issues.jboss.org/browse/CDI-137
>             Project: CDI Specification Issues
>          Issue Type: Bug
>          Components: Portable Extensions
>    Affects Versions: 1.0
>            Reporter: Gurkan Erdogdu
>             Fix For: 1.1 (Confirmed)
>
>
> Currently ProcessSessionBean class signature is
> public class ProcessSessionBean<T> extends ProcessManagedBean<Object>{}
> Therefore, observers work as
> Example: 
> @Stateless
> public class Elephant{}
> public void observe(ProcessBean<Elephant>) --> Not allowed
> public void observe(ProcessSessionBean<Elephant>) --> Allowed
> Pete said that main reason of using ProcessManagedBean<Object> is that 
> "ProcessBean<X> offers a method getBean() which returns Bean<X>. Bean<X> has a method of type create() which returns an X. If we were to have ProcessSessionBean<X> extend ProcessManagedBean<X> then this would imply that you can create something of type, which in the case of a session bean is the bean class (which can't be created for EJBs with local or remote business interfaces). So ProcessSessionBean is correct as is."
> Main reason of using the ProcessSessionBean event is to observe "Session Bean Class" registration, not the observe for the session bean local interface/s.
> Moreover, other methods in the interface hierarchy of "ProcessSessionBean" gets <X> into the account, for example
> AnnotatedType<X> getAnnotatedBeanClass()
>           Returns the AnnotatedType representing the bean class.
> Therefore, it is more convenient to change "ProcessManagedBean getBean"  method  decleration as
> public <T> Bean<T> getBean(); where T is the local/local view interface of the session bean.
> And change the ProcessSessionBean signature as
> public class ProcessSessionBean<X> extends ProcessManagedBean<X>{}
> Also See https://issues.jboss.org/browse/CDITCK-215

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the cdi-dev mailing list