Getting List of active user plugins from custom content provider

Alexej Geldt
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 27, 2013

Hello dear friends.

I need to access a list of active user plugins from our own plugin. Is it actually possible?

Background:

We have two custom plugins.

Plugin A provides a web panel on issue view. Along with its primary features, it is supposed to render additional information under condition that another custom Plugin B is installed and active. But we dont want to have a dependency between A and B because B is completely optional and A should work without B.

Is there a possibility to find out wether plugin B is installed and active from plugin A content provider?

2 answers

1 accepted

0 votes
Answer accepted
Alexej Geldt
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 27, 2013

looks like i have found a solution.

public class APluginContentProvider extends AbstractJiraContextProvider {

	private final static String PLUGIN_B_KEY = "com.vendor.group.pluginB";
	private final PluginAccessor plugins;
	private boolean bPluginActive = false;	// false by default

	public APluginContentProvider(final PluginAccessor plugins) {
		// inject plugin accessor
		this.plugins = plugins;	
	}

	public Map getContextMap(final User user, final JiraHelper jiraHelper) {

		// check if plugin B is installed and enabled using plugin accessor
		final Plugin pluginB = plugins.getEnabledPlugin(PLUGIN_B_KEY);
		if (pluginB != null) {
			log.debug("found plugin B" + pluginB.getKey());
			bPluginActive = true;
		}
		contextMap.put("bPluginActive", bPluginActive);
		return contextMap;
	}
}

0 votes
Alexej Geldt
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 27, 2013

my first guess would be to use com.atlassian.plugin.manager.DefaultPluginManager

this seems to be the right component to control plugins. However it does not implement any interface and cannot be constructor injectted. Any ideas?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events