On Sep 22, 2010, at 10:05 AM, Gurkan Erdogdu wrote:
> Currently OpenEJB scans managed beans as normal EJBs. If a managed bean class 
> does not implement any interface, it treats as LocalBean otherwise it treats 
> as 
> Business Local interface. I think that one can always assumes managed beans 
> as 
> LocalBeans. It is easy to update current code for this happen:
> 
> In AnnotationDeployer # processSessionInterfaces
> 
> boolean isManagedBean = beanClass.isAnnotationPresent(ManagedBean.class);
> if(isManagedBean){
>   sessionBean.setLocalBean(new Empty()); 
> }else{
>   .....
> }
> 

Nice catch.  That's a good change.

> 
> One more thing is that Java EE 6 specification says that each lookup for 
> managed 
> beans must return a new instance. Currently, ManagedBeans are bound to JNDI 
> with 
> java:/module/BeanName and java:/app/module_name/bean_name and each lookup 
> gives 
> the same instance.

Not seeing that behavior.  I just augmented our test to verify one instance is 
created per lookup and it doesn't show any issues.  The test uses the 
OpenEJB-specific global JNDI name rather than java:comp or java:app, but it 
should be the same.

If there is a problem than it will affect @Stateful as well and we'd definitely 
need to fix that.

How are you verifying this behavior?

-David

Reply via email to