On 11/30/2012 01:56 AM, Jean-Baptiste Onofré wrote:
> On 11/30/2012 05:15 AM, Raman Gupta wrote:
>> I sent this to the users mailing list, but it probably belongs more on
>> dev. I'd like to hook into the Karaf shutdown process at a higher
>> level than the OSGi bundle shutdown. The bundle shutdown starts
>> prematurely shutting down services and such that are necessary for
>> work in progress to complete.
>
> it's more or less already available. I'm not against enhancement
> around that, but, maybe it's redundant with the following.
>
> You can more or less already do something like this using a
> SynchronousBundleListener (you will received the STOPPING event on
> bundleId 0, so the framework), or a FrameworkListener (to hook on
> the framework).
I think there might still be some room for improvement here...
The problem I'm having is that Spring-DM also hooks a
SynchronousBundleListener into the OSGi framework. Because Spring-DM's
listener is registered first, and executes first, it goes ahead and
shuts down all my bundles *before* my listener gets a chance to do
anything useful.
(As an aside, for a STOPPING/STOPPED event, IMO it would make sense to
execute listeners in reverse order i.e. the higher level listeners
registered later should be executed first, rather than last. However,
I guess this wasn't specified in the OSGi spec so nothing can be done
there. There also appears to be no way specified to control the order
explicitly.)
So... I still think it would be useful if Karaf provided an event or
hook for just before a shutdown begins. Thoughts?
Regards,
Raman
|