On Feb 27, 2005, at 3:38 PM, Jeremy Boynes wrote:

With the current implementation of Kernel, it has to have a name and on boot it automatically adds itself to a VM wide registry of known Kernels using that name.

Whilst this is convenient, it makes it difficult for applications to create and use anonymous kernels just to host a bunch of GBeans without risk of conflicting with other applications in the same VM. To allow this I plan to make the name and registration optional and to separate the registry from the Kernel implementation itself.

I will leave the existing registration methods (like getSingleKernel()) for now but deprecate them.

I have been wanting to do this for a while.

But, in the long term, I think we should go further. I think we should extract Kernel as an interface, and call the current implementation say DefaultKernel. This will make remoting the kernel much simpler, and will allow people to implement the kernel on top of other servers. For example, a Kernel interface on top of Spring or Pico (just an idea).

This change will also allow us to simplify the boot/shutdown lifecycle and allow the various kernel services (e.g. Config, Dependency and Proxy managers) to be injected rather than being located during boot. Again, the boot() method will be deprecated.

That sounds like a much bigger change, and I think it should be discussed before any changes are made.


Actually, I'd like to make the same argument I made with Jules when he requested changes for Spring. I think we should hold off on all Kernel change that are not *absolutely necessary*, until after we finish certification. I just don't think the team has the bandwidth to think about these big issues, while trying to focus on the important certification work.

-dain



Reply via email to