com.atlassian.jira.service.services.file
Class AbstractMessageHandlingService.HandlerDisablementListener
java.lang.Object
com.atlassian.jira.service.services.file.AbstractMessageHandlingService.HandlerDisablementListener
- Enclosing class:
- AbstractMessageHandlingService
@Internal
public static class AbstractMessageHandlingService.HandlerDisablementListener
- extends Object
This class only purpose is to respond quickly to possible disablement of a plugin module which defines
the handler used by descendants of AbstractMessageHandlingService class.
In such case, to avoid resource leaks and classes from disabled (or even uninstalled) plugins, we want to
clear the reference to such handler as soon as possible.
Because destroy() is not called on services as it should (but really only when whole JIRA goes down),
we have to also handle situations where services are edited which means old instances are just thrown away
(are not strongly accessible anymore) and a new service instance is created.
This is how JIRA works and I don't dare change it between 5.0 RC2 and 5.0 final.
This class is made public only because of one thing: SAL (nor any Java code without further tricks) is not able
to call methods "exposed" with @EventListener (and not via regular interface => polymorphism) when whole class
is not public.
If we had normal interfaces for SAL notifications, we could do with a private class (as in vast majority of other cases)
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
onPluginModuleDisabled
@EventListener
public void onPluginModuleDisabled(com.atlassian.plugin.event.events.PluginModuleDisabledEvent event)
Copyright © 2002-2013 Atlassian. All Rights Reserved.