karaf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Pieber <anpie...@gmail.com>
Subject Re: RFC on proposal to allow hooks into Karaf shutdown
Date Fri, 30 Nov 2012 05:36:32 GMT
OK, I think this  is a completely different problem I would rather
like to discuss on a different thread. But my short analyses here: if
you give main a shot, you'll notice that there's already some
exit-code/restart logic... a new var cold_restart which will set a
fixed exit code (e.g. 99) would do the job. WDYT?

Kind regards,
Andreas

On Fri, Nov 30, 2012 at 5:35 AM, Dan Tran <dantran@gmail.com> wrote:
> 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
>
> -D
>
> 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

Mime
View raw message