Atlassian Integration Guide : Plugin Development This page last changed on Oct 30, 2008 by smaddox. This page summarises the components of the Atlassian plugin development platform and provides links to more information. Unless otherwise stated, the information here refers to the latest version of the plugin framework. Please follow the links to find out about previous versions. On this page: Short Description Full Description Components Version Matrix Documentation ## Short Description Atlassian is moving towards wider and more intimate integration between the different applications we develop. Providing a common plugin framework is a key part of this initiative, because the plugin framework will help developers (both Atlassians and others) to write plugins that work on more than one of the products. It will also allow plugins on each product to have a consistent look and behaviour from a user's point of view, even when the plugin works on only one application. ## Full Description The Atlassian Plugin Framework 2 replaces the original Atlassian Plugins framework, described in the Developer Network. The new framework is based on OSGi, a dynamic module system for Java. A plugin is a bundle of code, resources and configuration files that can be dropped into an Atlassian product to add new functionality or change the behaviour of existing features. Every plugin is made up of one or more plugin modules. A single plugin may do many things, while a plugin module represents a single function of the plugin. There are two versions of plugins in the Atlassian Plugin Framework 2: Version 1 — These may be static (deployed in `WEB-INF/lib`) or dynamic (via the web UI, only in Confluence) and should work the same as they did in version 1 of the Atlassian Plugin Framework. The capabilities and features available to version 1 plugins vary significantly across products. Version 2 — These plugins are dynamically deployed on an internal OSGi container to provide a consistent set of features and behaviours, regardless of the application the plugin is running on. Version 2 plugins have to be specifically declared as such, using the `plugins-version="2"` attribute in `atlassian-plugin.xml`. ## Components There are three major components in the Atlassian plugin development platform: Plugin Framework - The framework that executes the plugins and manages the available plugin modules. Shared Access Layer (SAL) - The API for accessing common services, regardless of the underlying Atlassian application interfaces. Unified Plugin Manager - The UI for installing, managing, upgrading, and sharing Atlassian plugins (Not yet available.) ## Version Matrix Almost every Atlassian application has a version of the Atlassian Plugin Framework, however, they may not all have the same version. Eventually, each Atlassian application (Confluence, FishEye, Crucible, Crowd, etc) will be upgraded to version 2.x, but many are running version 1 today. If you are developing a plugin, you need to know what your version is capable of, and how it will interact with other versions.
| The Atlassian Plugin Framework 2 is available in some, but not all, Atlassian applications
The matrix below shows the applications which support version 2.x of the Plugin Framework. The applications are listed horizontally across the top and the Plugin Framework 2.x versions are listed vertically on the left. Version numbers next to a tick show the earliest release of the application which supports the relevant framework version. Version numbers in brackets show a future release expected to support the relevant framework version.
Plugin Framework | Bamboo | Confluence | Crowd | Crucible | FishEye | JIRA
--- | --- | --- | --- | --- | --- | ---
2.0 |  |  | Crowd 1.5 | Crucible 1.6 | FishEye 1.6 |
2.1 |  | Confluence 2.10 | Crowd 1.6 |  |  |
2.2 | Bamboo 2.3 | Confluence 3.0 | Crowd 2.0 | Crucible 2.0 | FishEye 2.0 |
2.3 |  |  |  |  |  | (JIRA 4.0)
## Documentation
###### Plugin Development Platform Please refer to the Developer Network: Overview of the Plugin Development Platform Compatibility of Older and Newer Plugins | ###### Plugin Framework — Latest Version Please refer to the Plugin Framework documentation: Writing Atlassian Plugins Creating your Plugin Descriptor Plugin Module Types Adding Plugin and Module Resources Supporting Minification of JavaScript and CSS Resources Adding a Configuration UI for your Plugin Ensuring Standard Page Decoration in your Plugin UI Using Packages and Components Exposed by an Application Running your Plugin in the Reference Implementation OSGi, Spring and the Plugin Framework Embedding the Plugin Framework Quick Start Guide to Embedding Exposing Host Components via Spring Using the Built-In Plugin Modules Writing a Plugin Module Descriptor License and Copyright for the Atlassian Plugin Framework Plugin Framework Release Notes Plugin Framework 2.3.1 Release Notes Plugin Framework 2.3 Release Notes Plugin Framework 2.2.4 Release Notes Plugin Framework 2.2.3 Release Notes Plugin Framework 2.2.2 Release Notes Plugin Framework 2.2.1 Release Notes Plugin Framework 2.2 Release Notes Plugin Framework 2.1.4 Release Notes Plugin Framework 2.1.2 Release Notes Plugin Framework 2.1.1 Release Notes Plugin Framework 2.1 Release Notes Plugin Framework 2.0.5 Release Notes Plugin Framework 2.0.4 Release Notes Plugin Framework 2.0.3 Release Notes Plugin Framework Version Matrix Plugin Framework Glossary Bundle (Glossary Entry) Complex Plugin (Glossary Entry) Cross-Product Plugin (Glossary Entry) Dynamic Plugin (Glossary Entry) Lifecycle (Glossary Entry) Plugin (Glossary Entry) Service (Glossary Entry) Service Registry (Glossary Entry) Simple Plugin (Glossary Entry) Static Plugin (Glossary Entry) Version 1 or Version 2 Plugin (Glossary Entry) Plugin Framework FAQ Development FAQ Platform FAQ Troubleshooting FAQ ###### Plugin Framework — All Versions Plugin Framework 2.3 Documentation Plugin Framework 2.2 Documentation Plugin Framework 2.1 Documentation Plugin Framework 2.0 Documentation

Document generated by Confluence on Oct 06, 2009 00:43