On Jul 5, 2011, at 12:53 AM, Shawn Jiang wrote: > Hi David, > > Some of existing geornimo ejb samples that depend on auto local business > interface grouping stop to work after this commit. > > > *URL: http://svn.apache.org/viewvc?rev=989853&view=rev > Log: > > Removed automatic grouping of non-annotated interfaces as business local > interfaces -- if you want everything you can now use @LocalBean so this is > less important* > > > I remembered many articles on EJB30 mentioned that If you don't specify > an interface (local or remote) in the bean class, the EJB server > automatically generates a local business interface by default. > > Maybe to keep the local interface automatic grouping is a good idea for > backward-compatibility purpose ?
It was the TCK that forced this change. I can't recall the details because it was a while ago now. I did a write-up on it: http://openejb.979440.n4.nabble.com/LocalBean-and-implied-local-interface-change-td2400892.html I wish I had documented somewhere what the TCK issue was -- better yet I wish I had added a test case to document this. I seem to recall David Jencks brought it to my attention when he was implementing Global JNDI and originally the first TCK fix involved a "for use by geronimo" flag that turned on different interface processing that was even more backward incompatible. That email above reminds me that there's still one very desirable change to make which is somehow improve the EjbResolver to support using interfaces of the @LocalBean when doing @EJB resolution; e.g. '@EJB Color colorBean' where Color is an interface that is implemented by an @LocalBean. So even though Color isn't technically a business interface we could still make referencing that way work. That might fix the Geronimo examples and provide more backward compatibility. -David