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