Been looking at support for the java ee 6 @ManagedBean. Essentially, this is a stateful bean without the ability to have @Remove, @TransactionManagement, @RolesAllowed, @ConcurrencyManagement, @Schedule, @Asynchronous etc. But it can use @Resource and related EE injection annotations, @PostConstruct/@PreDestroy, and interceptors. It's created on lookup or injection just like a Stateful bean and its lifecycle is the same.

Creating a container for it would basically entail copying the stateful container and making a few additions to the deployment system. Pretty much identical to when we made the singleton container which is a copy of the stateless container.

All that is really fairly easy. The innovative part comes in finding clean ways to add back in the @TransactionManagement, @RolesAllowed, @ConcurrencyManagement, @Schedule, @Asynchronous etc should a user want any of them. By default they would *not* be there, but we have all the code to do those functionalities (except some of the new ejb 3.1 stuff) and it really is just a matter of finding a clean way to design it internally.

-David

Reply via email to