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

Gurkan Erdogdu (JIRA) jira-events at lists.jboss.org
Thu Jun 23 02:02:23 EDT 2011


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