Plugin Modules

An Atlassian plugin can implement one or more plugin modules to affect the underlying Atlassian application. You can add modules to a plugin project using the Atlassian Plugin SDK. The atlas-create-<app>-plugin-module command lets you generate the initial plugin module code through a series of prompts. The module types you can create vary by target application. The modules listed below comprise the common module types; they apply across application types.  

Below is detailed information of each plugin module type.

Plugin Module Types in the Atlassian Platform

Plugin module types, as defined in this guide, are generally available in all Atlassian applications. But in some cases, an application may exclude support for a specific module type — the plugin module descriptor is not loaded into the application and the module type is therefore not available. Please refer to the application's plugin guide for more information about which module types are supported.

  • REST Plugin Module
  • Gadget plugin module type
  • Product-specific plugin modules — Product-specific plugin types are not documented here as they are usually unique to an Atlassian application. See the application's developer documentation for more information.

Application-specific plugin modules within a cross-product plugin

While developing a cross-product plugin, you may find yourself needing different implementations/components to be running in the various applications. This can be accomplished with the application attribute. The application attribute works on all plugin module descriptors.

For example, let's say we have a plugin that works in both JIRA and Confluence, but we want application-specific implementations to be used as components. We can declare the following in our application-plugin.xml:

<component key="jiraPluginComponent" class="com.example.JiraPluginComponent" 
           interface="com.example.PluginComponent" application="jira" />
<component key="confluencePluginComponent" class="com.example.ConfluencePluginComponent"  
           interface="com.example.PluginComponent" application="confluence" />
Was this page helpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport