[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-development
Subject:    Re: EJB reference computed as Remote reference even though the business interface has no @Remote ann
From:       David Blevins <david.blevins () visi ! com>
Date:       2008-08-07 19:09:04
Message-ID: D0297B2C-96A6-46E7-B63A-A0CCF1FFD22A () visi ! com
[Download RAW message or body]

]On Aug 7, 2008, at 8:00 AM, Vamsavardhana Reddy wrote:

> I am using DeploymentLoader to process an EJB3 annotated ejb jar and  
> obtain
> meta-data complete descriptors.  I am using @EJB annotation to  
> inject a
> session bean.  I am noticing that even though the business interface  
> has no
> @Remote annotation on it is resulting in an EjbRef rather than  
> EjbLocalRef.
> (I am examining the org.apache.openejb.jee.SessionBean object  
> created).
> Isn't EjbRef used for remote references?  If I specify @Local on the
> business interface explicitly then it is resulting in EjbLocalRef.   
> Doesn't
> absence of @Remote on the interface mean the interface is local?

The deployment descriptor is the ultimate authority so truthfully  
we're not exactly safe assuming that we should use EjbLocalRef when  
the interface is annotated with @Local.  For all intense purposes we  
don't know what kind of ref an @EJB to a 3.0 business interface will  
end up being until we resolve it and see how the referee classified  
that business interfaces.

> If not, what is the idea behind the way it is working now?

Right, so the way we have it now is that when in doubt we use the  
EjbRef.  We added a little non-xml field that allows us to flag it as  
ambiguous:

     @XmlTransient
     protected Type refType = Type.REMOTE;

     public Type getRefType() {
         return refType;
     }

So leaving the AnnotationDeployer, that method will return Type.REMOTE  
or Type.UNKNOWN.  Later on in the deployment chain when we resolve the  
reference to the target bean we potentially update that yet again to  
be Type.LOCAL.

-David

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic