From 21c7757e23a6f4ae2daa42b74e53e1f693c9aa0e Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Fri, 5 Oct 2012 12:31:11 +0000 Subject: [PATCH] Updates sysactivity handling QUERY_ENDSESSION and ENDSESSION events. Adds bundle that listens for the new events to handle clean shutdown. --- .../windows-64/sysactivitynotifications.dll | Bin 56320 -> 58880 bytes .../windows/sysactivitynotifications.dll | Bin 48640 -> 50688 bytes resources/install/build.xml | 6 + ...ysactivity_SystemActivityNotifications.cpp | 12 + ..._sysactivity_SystemActivityNotifications.h | 5 +- .../impl/shutdowntimeout/ShutdownTimeout.java | 34 ++- .../SystemActivityEventDispatcher.java | 19 ++ .../SystemActivityNotifications.java | 12 + ...ystemActivityNotificationsServiceImpl.java | 24 ++ .../CleanShutdownActivator.java | 224 ++++++++++++++++++ .../cleanshutdown.manifest.mf | 12 + .../event/SystemActivityEvent.java | 13 + 12 files changed, 356 insertions(+), 5 deletions(-) create mode 100644 src/net/java/sip/communicator/plugin/windowscleanshutdown/CleanShutdownActivator.java create mode 100644 src/net/java/sip/communicator/plugin/windowscleanshutdown/cleanshutdown.manifest.mf diff --git a/lib/native/windows-64/sysactivitynotifications.dll b/lib/native/windows-64/sysactivitynotifications.dll index 1a301e6dbe4621aec42b729375dc19a8d1247477..160c21bb28fdf543b2c1df8b840725589ad69dab 100644 GIT binary patch literal 58880 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 literal 56320 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 MbK#r?{=qEpe<(fL*8l(j diff --git a/lib/native/windows/sysactivitynotifications.dll b/lib/native/windows/sysactivitynotifications.dll index be2376660c99eb89408e6c554e136053a02cf4f6..64a526ec7b7517dd8e61f699c6a6b63aeb48795f 100644 GIT binary patch literal 50688 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 literal 48640 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 + + + felix.auto.start.14= reference:file:sc-bundles/windows-clean-shutdown.jar + + diff --git a/src/native/sysactivity/net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications.cpp b/src/native/sysactivity/net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications.cpp index 67658e643..e4a2b80dc 100644 --- a/src/native/sysactivity/net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications.cpp +++ b/src/native/sysactivity/net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications.cpp @@ -396,6 +396,18 @@ HRESULT callback(UINT Msg, WPARAM wParam, LPARAM lParam) return TRUE; } } + else if (Msg == WM_QUERYENDSESSION) + { + notify(net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_QUERY_ENDSESSION); + return TRUE; + } + else if (Msg == WM_ENDSESSION && wParam == TRUE) + { + // we fire the message only if we are really ending the session + // is wParam is False means someone has canceled the shutdown/logoff + notify(net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_ENDSESSION); + return TRUE; + } jvm->DetachCurrentThread(); diff --git a/src/native/sysactivity/net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications.h b/src/native/sysactivity/net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications.h index 885035eae..7c5d55a79 100644 --- a/src/native/sysactivity/net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications.h +++ b/src/native/sysactivity/net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications.h @@ -29,7 +29,10 @@ extern "C" { #define net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_NETWORK_CHANGE 9L #undef net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_DNS_CHANGE #define net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_DNS_CHANGE 10L - +#undef net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_QUERY_ENDSESSION +#define net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_QUERY_ENDSESSION 11L +#undef net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_ENDSESSION +#define net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications_NOTIFY_ENDSESSION 12L /* * Class: net_java_sip_communicator_impl_sysactivity_SystemActivityNotifications * Method: allocAndInit diff --git a/src/net/java/sip/communicator/impl/shutdowntimeout/ShutdownTimeout.java b/src/net/java/sip/communicator/impl/shutdowntimeout/ShutdownTimeout.java index e97cfb4ce..ea8cac8e1 100644 --- a/src/net/java/sip/communicator/impl/shutdowntimeout/ShutdownTimeout.java +++ b/src/net/java/sip/communicator/impl/shutdowntimeout/ShutdownTimeout.java @@ -29,10 +29,16 @@ public class ShutdownTimeout private static final Logger logger = Logger.getLogger(ShutdownTimeout.class); + /** + * The system property which can be used to set custom timeout. + */ + public static String SHUTDOWN_TIMEOUT_PROP = + "org.jitsi.shutdown.SHUTDOWN_TIMEOUT"; + /** * The number of miliseconds that we wait before we force a shutdown. */ - public static final long SHUTDOWN_TIMEOUT = 15000;//ms + public static final long SHUTDOWN_TIMEOUT_DEFAULT = 3000;//ms /** * The code that we exit with if the application is not down in 15 seconds. @@ -72,11 +78,31 @@ public void run() { synchronized(this) { - try{ + try + { + + long shutDownTimeout = SHUTDOWN_TIMEOUT_DEFAULT; + + // check for custom value available through system + // property + try + { + String shutdownCustomValue = + System.getProperty(SHUTDOWN_TIMEOUT_PROP); + + if(shutdownCustomValue != null + && shutdownCustomValue.length() > 0) + { + shutDownTimeout = + Long.valueOf(shutdownCustomValue); + } + } + catch(Throwable t){} + if (logger.isTraceEnabled()) logger.trace("Starting shutdown countdown of " - + SHUTDOWN_TIMEOUT + "ms."); - wait(SHUTDOWN_TIMEOUT); + + shutDownTimeout + "ms."); + wait(shutDownTimeout); logger.error("Failed to gently shutdown. Forcing exit."); System.exit(SYSTEM_EXIT_CODE); }catch (InterruptedException ex){ diff --git a/src/net/java/sip/communicator/impl/sysactivity/SystemActivityEventDispatcher.java b/src/net/java/sip/communicator/impl/sysactivity/SystemActivityEventDispatcher.java index 8e091a541..4255eb7a1 100644 --- a/src/net/java/sip/communicator/impl/sysactivity/SystemActivityEventDispatcher.java +++ b/src/net/java/sip/communicator/impl/sysactivity/SystemActivityEventDispatcher.java @@ -116,6 +116,25 @@ protected void fireSystemActivityEvent(SystemActivityEvent evt) fireSystemActivityEvent(evt, 0); } + /** + * Delivers the specified event to all registered listeners. Without + * using the thread, but delivering them in the calling thread. + * + * @param evt the SystemActivityEvent that we'd like delivered to + * all registered message listeners. + */ + protected void fireSystemActivityEventCurrentThread(SystemActivityEvent evt) + { + List listenersCopy = new ArrayList + (listeners); + for (int i = 0; i < listenersCopy.size(); i++) + { + fireSystemActivityEvent( + evt, + listenersCopy.get(i)); + } + } + /** * Delivers the specified event to all registered listeners. * diff --git a/src/net/java/sip/communicator/impl/sysactivity/SystemActivityNotifications.java b/src/net/java/sip/communicator/impl/sysactivity/SystemActivityNotifications.java index b7682c564..4f207e6de 100644 --- a/src/net/java/sip/communicator/impl/sysactivity/SystemActivityNotifications.java +++ b/src/net/java/sip/communicator/impl/sysactivity/SystemActivityNotifications.java @@ -68,6 +68,18 @@ public class SystemActivityNotifications */ public static final int NOTIFY_DNS_CHANGE = 10; + /** + * Notifies for start of process of ending desktop session, + * logoff or shutdown. + */ + public static final int NOTIFY_QUERY_ENDSESSION = 11; + + /** + * All processes have been informed about ending session, now notify for + * the actual end session. + */ + public static final int NOTIFY_ENDSESSION = 12; + /** * The logger. */ diff --git a/src/net/java/sip/communicator/impl/sysactivity/SystemActivityNotificationsServiceImpl.java b/src/net/java/sip/communicator/impl/sysactivity/SystemActivityNotificationsServiceImpl.java index e8891addd..67ec0987a 100644 --- a/src/net/java/sip/communicator/impl/sysactivity/SystemActivityNotificationsServiceImpl.java +++ b/src/net/java/sip/communicator/impl/sysactivity/SystemActivityNotificationsServiceImpl.java @@ -278,6 +278,30 @@ public void notify(int type) SystemActivityEvent.EVENT_DNS_CHANGE); break; } + case SystemActivityNotifications.NOTIFY_QUERY_ENDSESSION : + { + // both events QUERY_ENDSESSION and ENDSESSION + // depend on the result one after another + // we don't put them in new thread in order to give control + // in the bundles using this events. + evt = new SystemActivityEvent(this, + SystemActivityEvent.EVENT_QUERY_ENDSESSION); + eventDispatcher.fireSystemActivityEventCurrentThread(evt); + + return; + } + case SystemActivityNotifications.NOTIFY_ENDSESSION : + { + // both events QUERY_ENDSESSION and ENDSESSION + // depend on the result one after another + // we don't put them in new thread in order to give control + // in the bundles using this events. + evt = new SystemActivityEvent(this, + SystemActivityEvent.EVENT_ENDSESSION); + eventDispatcher.fireSystemActivityEventCurrentThread(evt); + + return; + } } if (evt != null) diff --git a/src/net/java/sip/communicator/plugin/windowscleanshutdown/CleanShutdownActivator.java b/src/net/java/sip/communicator/plugin/windowscleanshutdown/CleanShutdownActivator.java new file mode 100644 index 000000000..7c64243a4 --- /dev/null +++ b/src/net/java/sip/communicator/plugin/windowscleanshutdown/CleanShutdownActivator.java @@ -0,0 +1,224 @@ +/* + * Jitsi, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.plugin.windowscleanshutdown; + +import net.java.sip.communicator.service.shutdown.*; +import net.java.sip.communicator.service.sysactivity.*; +import net.java.sip.communicator.service.sysactivity.event.*; +import net.java.sip.communicator.util.*; +import org.osgi.framework.*; + +import java.util.concurrent.*; + +/** + * Tries to cleanly close the application on shutdown/logoff. The events used + * here are only available on windows. + * + * If the application is still running once end session event is received + * and we have give it time (currently 3 sec.) we System.exit() the application. + * + * @author Emil Ivov + */ +public class CleanShutdownActivator + implements BundleActivator, ServiceListener +{ + private static final Logger logger + = Logger.getLogger(CleanShutdownActivator.class); + + /** + * Used to wait for stop. + */ + final CountDownLatch synchShutdown = new CountDownLatch(1); + + /** + * Our context. + */ + private BundleContext context; + + /** + * The system activity service. + */ + SystemActivityNotificationsService sysActivityService = null; + + /** + * Bundle activator start method. + * + * @throws Exception If this method throws an exception + * (which won't happen). + */ + public void start(final BundleContext context) + throws Exception + { + this.context = context; + + logger.info("Starting the CleanShutdown service."); + + handleNewSystemActivityNotificationsService( + getSystemActivityNotificationsService(context)); + + // if missing will wait for it + if(sysActivityService == null) + context.addServiceListener(this); + } + + /** + * Called when this bundle is stopped so the Framework can perform the + * bundle-specific activities necessary to stop the bundle. + * + * @param context The execution context of the bundle being stopped. + * @throws Exception If this method throws an exception, the bundle is + * still marked as stopped, and the Framework will remove the bundle's + * listeners, unregister all services registered by the bundle, and + * release all services used by the bundle. + */ + public void stop(BundleContext context) + throws Exception + { + // stop received. + synchShutdown.countDown(); + } + + /** + * Gets a reference to a ShutdownService implementation + * currently registered in the bundle context of the active + * OsDependentActivator instance. + *

+ * The returned reference to ShutdownService is not being + * cached. + *

+ * + * @return reference to a ShutdownService implementation + * currently registered in the bundle context of the active + * OsDependentActivator instance + */ + private ShutdownService getShutdownService() + { + return(ShutdownService)context.getService( + context.getServiceReference(ShutdownService.class.getName())); + } + + /** + * Gets a reference to a SystemActivityNotificationsService + * implementation currently registered in the bundle context. + *

+ * The returned reference to SystemActivityNotificationsService + * is not being cached. + *

+ * + * @param context the bundle context. + * @return reference to a SystemActivityNotificationsService + * implementation currently registered in the bundle context. + */ + public static SystemActivityNotificationsService + getSystemActivityNotificationsService(BundleContext context) + { + ServiceReference ref = + context.getServiceReference( + SystemActivityNotificationsService.class.getName()); + + if(ref == null) + return null; + else + return + (SystemActivityNotificationsService) + context.getService(ref); + } + + + /** + * Saves the reference for the service and + * add a listener if the desired events are supported. Or start + * the checking thread otherwise. + * @param newService the service + */ + private void handleNewSystemActivityNotificationsService + (SystemActivityNotificationsService newService) + { + sysActivityService = newService; + + if(newService != null) + newService.addSystemActivityChangeListener( + new SystemActivityChangeListener() + { + public void activityChanged(SystemActivityEvent event) + { + if(event.getEventID() + == SystemActivityEvent.EVENT_QUERY_ENDSESSION) + { + // instruct the shutdown timeout to + // wait only 3 secs. + System.setProperty( + "org.jitsi.shutdown.SHUTDOWN_TIMEOUT", + "3000"); + + getShutdownService().beginShutdown(); + + // just wait a moment, or till we are stopped + try + { + synchronized(this) + { + synchShutdown.await(1500, + TimeUnit.MILLISECONDS); + } + } + catch(Throwable t) + {} + } + else if(event.getEventID() + == SystemActivityEvent.EVENT_ENDSESSION) + { + try + { + // wait till we are stopped or forced stopped + synchShutdown.await(); + } + catch(Throwable t) + {} + } + } + }); + } + + /** + * When new SystemActivityNotificationsService + * is registered we add needed listeners. + * + * @param serviceEvent ServiceEvent + */ + public void serviceChanged(ServiceEvent serviceEvent) + { + ServiceReference serviceRef = serviceEvent.getServiceReference(); + + // if the event is caused by a bundle being stopped, we don't want to + // know we are shutting down + if (serviceRef.getBundle().getState() == Bundle.STOPPING) + { + return; + } + + Object sService = context + .getService(serviceRef); + + if(sService instanceof SystemActivityNotificationsService) + { + switch (serviceEvent.getType()) + { + case ServiceEvent.REGISTERED: + handleNewSystemActivityNotificationsService( + (SystemActivityNotificationsService)sService); + break; + case ServiceEvent.UNREGISTERING: + //((SystemActivityNotificationsService)sService) + // .removeSystemActivityChangeListener(this); + break; + } + + return; + } + } +} diff --git a/src/net/java/sip/communicator/plugin/windowscleanshutdown/cleanshutdown.manifest.mf b/src/net/java/sip/communicator/plugin/windowscleanshutdown/cleanshutdown.manifest.mf new file mode 100644 index 000000000..25db59ff8 --- /dev/null +++ b/src/net/java/sip/communicator/plugin/windowscleanshutdown/cleanshutdown.manifest.mf @@ -0,0 +1,12 @@ +Bundle-Activator: net.java.sip.communicator.plugin.windowscleanshutdown.CleanShutdownActivator +Bundle-Name: CleanShutdownBundle +Bundle-Description: A bundle that makes sure that when closed Jitsi will exit cleanly. +Bundle-Vendor: jitsi.org +Bundle-Version: 0.0.1 +System-Bundle: yes +Import-Package: org.osgi.framework, + org.jitsi.service.configuration, + net.java.sip.communicator.service.shutdown, + net.java.sip.communicator.service.sysactivity, + net.java.sip.communicator.service.sysactivity.event, + net.java.sip.communicator.util diff --git a/src/net/java/sip/communicator/service/sysactivity/event/SystemActivityEvent.java b/src/net/java/sip/communicator/service/sysactivity/event/SystemActivityEvent.java index 49494b047..36f85b9b0 100644 --- a/src/net/java/sip/communicator/service/sysactivity/event/SystemActivityEvent.java +++ b/src/net/java/sip/communicator/service/sysactivity/event/SystemActivityEvent.java @@ -86,6 +86,19 @@ public class SystemActivityEvent */ public static final int EVENT_DNS_CHANGE = 12; + /** + * Informing that the machine is logging of or shutting down. + */ + public static final int EVENT_QUERY_ENDSESSION = 13; + + /** + * The log off or shutdown is in process for us, no matter + * what other process has replied, whether one of them has canceled + * or not the current end of session. It's like that cause we have answered + * that we will shutdown. + */ + public static final int EVENT_ENDSESSION = 14; + /** * The type of the event. */