@Internal public static class

AbstractMessageHandlingService.HandlerDisablementListener

extends Object
java.lang.Object
   ↳ com.atlassian.jira.service.services.file.AbstractMessageHandlingService.HandlerDisablementListener

@Internal

This class is an internal implementation detail and will change without notice.

Clients that depend on @Internal classes and interfaces can not expect to be compatible with any version other than the version they were compiled against (even minor version and milestone releases may break binary compatibility with respect to @Internal elements).

Class Overview

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)

Summary

Public Methods
@EventListener void onPluginModuleDisabled(PluginModuleDisabledEvent event)
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

@EventListener public void onPluginModuleDisabled (PluginModuleDisabledEvent event)