public interface

PluginsTracker

com.atlassian.jira.plugin.util.PluginsTracker
Known Indirect Subclasses

Class Overview

This is a glorified list of plugin keys that code can use to track what plugins are involved in it's caches

On plugin events it can then ask if the event related to one of the tracked plugins

This uses a java.util.concurrent.CopyOnWriteArraySet under the covers to ensure that the list is as safe as possible. The assumption is that the reads and writes will be of low volume and the total number of plugins tracked will be smallish. In other words its anticipated that it will just work!

Summary

Nested Classes
class PluginsTracker.PluginInfo A simple class that contains plugin key and pluginVersion. 
Public Methods
String getStateHashCode()
Return a hash that represents all the plugins in this tracker.
boolean isPluginInvolved(ModuleDescriptor moduleDescriptor)
Returns true if the plugin that this ModuleDescriptor belongs to is being tracked
boolean isPluginInvolved(Plugin plugin)
Returns true if the plugin is being tracked

Public Methods

public String getStateHashCode ()

Return a hash that represents all the plugins in this tracker. This hash should change if the list of plugins being tracked changes.

It is used to help generate a cache busting WebResource URL prefix. That is, if this hash changes then it is likely that the URLs to all of JIRA's WebResources will change which will force all browsers to request all resources again.

Returns
  • Return a hash that represents all the plugins in this tracker.

public boolean isPluginInvolved (ModuleDescriptor moduleDescriptor)

Returns true if the plugin that this ModuleDescriptor belongs to is being tracked

Parameters
moduleDescriptor the ModuleDescriptor of the plugin in play
Returns
  • true if the underlying plugin is being tracked

public boolean isPluginInvolved (Plugin plugin)

Returns true if the plugin is being tracked

Parameters
plugin the plugin in play
Returns
  • true if the underlying plugin is being tracked