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.
- Plugin Module Index
- Component Import Plugin Module
- Component Plugin Module
- Module Type Plugin Module
- Servlet Context Listener Plugin Module
- Servlet Context Parameter Plugin Module
- Servlet Filter Plugin Module
- Servlet Plugin Module
- Template Context Item Plugin Module
- Web Item Plugin Module
- Web Panel Plugin Module
- Web Panel Renderer Plugin Module
- Web Resource Plugin Module
- Web Resource Transformer Plugin Module
- Web Section Plugin Module
- 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