On Thu, Feb 5, 2009 at 12:33 AM, Raymond Feng <[email protected]> wrote:
> Some comments inline. > > Thanks, > Raymond > > *From:* Vamsavardhana Reddy <[email protected]> > *Sent:* Wednesday, February 04, 2009 9:41 AM > *To:* [email protected] > *Subject:* Does callback support for EJB3 session beans make sense? > > As part of the Tuscany plugin for Geronimo, I was looking at providing SCA > services from session beans, and then started wondering if callback support > for session beans makes sense. Here are some questions and comments I have: > > 1. If an EJB 3 business interface has an @Callback annotation on it, what > does it mean when this EJB is invoked as a regular EJB, say from a Servlet. > Does it mean that the Servlet will have to implement the callback interface? > What happens when the Servlet invokes the EJB as an SCA service? > <rfeng>I think the callback is an interaction pattern between the client > and the component. The client has to be an SCA component that implements the > callback interface. Since implementation.web doesn't support SCA services, I > think it cannot support callback (which is actually a service too). <rfeng> > > 2. If there is no callback is injected when the EJB is invoked as an EJB, > does the EJB implementation need to distinguish it is an EJB call and > service the request or throw an error since no callback is available? > > <rfeng>If the implementaiton.ejb component is not invoked from another SCA > component, there won't be context for the request which guides how the > callback can be made. I think it would be an error if an operation is > invoked from non-SCA client that requires to make an SCA callback.</rfeng> > > > 3. Even though the SCA JEE spec restricts that each EJB can be used as a > component implementation at most once, when there are more than one > component that has this EJB component as SCA reference target, the callbacks > will have to be injected differently based on the component that is invoking > the service. > > <rfeng>The idea is that there is context from the caller SCA component > which helps the runtime to decide how to callback. The same case can happen > for POJOs, for example PO1 and PO2 call PO3 and PO3 can call back to PO1 or > PO2 depending on which caller is making the call.</rfeng> > This is the situation I referred to in the other post about callback problem with COMPOSITE scoped implementations > > -- > Vamsi > -- Vamsi
