I've made a few changes today to simplify the lifecycle handling for component instances. Previously, responsibility for this was shared between the AtomicComponent implementation, the ScopeContainer implementation and the TargetInvoker implementation. I have change this to essentially remove the Component implementation from the loop so that the majority of the lifecycle is controlled purely by the ScopeContainer with a simple notification from the TargetInvoker that an invocation has completed (needed for STATELESS scoped components).

This has meant one change to the semantic of the conversational store in that it is now responsible for persisting InstanceWrapper's rather than pure instances.

It has also led to simplification of the AtomicComponent SPI with the removal of the init and destroy callbacks. We should also be able to remove the get*Instance methods and the flags for "optimizable" and "destroyable"

Once this is done then the Component will basically just be responsible for instance creation (via the InstanceFactory), creating a TargetInvoker (again probably via the InstanceFactory), and supporting ComponentContext. This should be generic to most component implementation types and so should mean that container extensions will not need to provide their own Component implementation.

--
Jeremy


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to