Jules Gosnell wrote:

The intent behind GBeans is that they are long running services - for example, running for the lifetime of an application. Is that how Spring would be using them or are you trying to create/delete instances frequently (say on each web request)?


long running services - the SpringGBean will do a kernel load and a kernel start on each one at the start-time of the module and a kernel stop and unload on each one at module stop-time.


This is exactly what a Configuration does to the GBean it contains - do you think there is a way we can package a set of Spring components into a Configuration?


The state portion of a Configuration comprises of:
* GBeanInfo describing classes of GBeans
* GBeanData describing instances of GBeans, with the values of their
  persistent attributes

When a Configuration starts, it loads GBeans into the kernel for each GBeanData present which:
1) instantiates the target instances,
2) initializes them with their persistent attributes via CDI or SDI, and
3) leaves them in the STOPPED state;


If startRecursive is used then the kernel will also attempt to start them.

In an closely integrated world, a Spring builder would be able to convert all Spring components into persistent GBeans that can be placed into a Configuration. That Configuration could then run in any server containing just the runtime components it needed and you would not need to handle the runtime load,start,stop,unload,fail operations for every component.

--
Jeremy

Reply via email to