karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Tran <dant...@gmail.com>
Subject Re: RFC on proposal to allow hooks into Karaf shutdown
Date Fri, 30 Nov 2012 04:35:11 GMT
In the same line i also like to see this
https://issues.apache.org/jira/browse/KARAF-1180  but not sure how to
implement it


On Thu, Nov 29, 2012 at 8:24 PM, Andreas Pieber <anpieber@gmail.com> wrote:
> Short answer: why not :-)
> Longer answer: I've though about it for some time now (since you
> provided this proposal on the user list) but I cannot really come up
> with a counter argument speaking against this.
> So, from my point of view it's definitely worth giving this a shot!
> Kind regards,
> Andreas
> On Fri, Nov 30, 2012 at 5:15 AM, Raman Gupta <rocketraman@gmail.com> 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.
>> For now, I've implemented this with a custom Karaf command that
>> executes my application shutdown, and then delegates to the Karaf
>> StopCommand to shutdown Karaf itself. However, this is not an ideal
>> solution as it requires my custom command to be explicitly executed.
>> For example, it will not run when a user does a normal kill or Ctrl-D
>> in the console.
>> Ideally, Karaf would have a "ShutdownHook" interface/service I could
>> implement in my bundles -- for each one of these registered, Karaf
>> would execute them before stopping the framework bundles. Based on an
>> initial look at the Karaf source, I'm thinking the best place to do
>> this is:
>> ./main/src/main/java/org/apache/karaf/main/Main.java
>> Just before the call to framework.stop(), we use the BundleContext to
>> obtain and execute a shutdown method on all services that implement a
>> new "FrameworkShutdownHook" interface.
>> Then, proceed to framework.stop().
>> Thoughts on this approach? If the devs are OK with it, I can
>> implement  this.
>> Regards,
>> Raman Gupta
>> Principal
>> VIVO Systems

View raw message