This documentation is intended for developers integrating with JIRA who want to start getting ready for JIRA 5.0.
JIRA 5.0 introduces several changes that may break existing plugins which are not bundled with JIRA. If you are using or have been involved in the development of such a plugin, it may need to be updated to work with JIRA 5.0. Please read through the information below to see if any of this content is relevant to your plugin.
If you are using a plugin developed by a third party, please check with the plugin's author to see if the plugin has been tested with JIRA 5.0.
The JIRA REST API takes a major step forward in JIRA 5.0, with the addition of REST API methods to create, edit and update issues. Check out a quick example of creating an issue, and a guide to issues and fields in the JIRA 5.0 REST API Overview. For the full details, see the REST API documentation.
Please provide feedback on the REST API on this issue.
In JIRA 5.0, we're clearly defining what the JIRA API is. Before JIRA 5.0, the JIRA API was any public interface or class within the JIRA source that seemed useful to add-on developers. While some parts of the source are built to be more stable, there was no clear indication in JIRA of what was or wasn't stable.
We are now creating an explicit "stable" API for JIRA which lives in a separate Maven module called "jira-api". See the Java API Policy for JIRA 5.0 onwards.
Please provide feedback on the Java API on this issue.
As part of clearly defining the public, supported Java API for JIRA, several third-party libraries have been upgraded, previously deprecated classes have been removed and several existing plugin points have changed behaviour and/or interface. See Java API Changes in JIRA 5.0.
JIRA 5.0 includes significant changes to markup, CSS and decorators. We're moving towards a common markup pattern for all our applications. See Changes to markup, CSS and Decorators in JIRA 5.0.
JIRA 5.0 can load issue tabs using an AJAX request, without having to reload the rest of the view issue page. All built-in issue tab panels support this new mechanism, and we encourage plugin developers to update their issue-tabpanel modules in order to provide a consistent and improved user experience.
In most cases it's simply a matter of enabling the feature in your . See Loading Issue Tab Panels with AJAX for more details.
JIRA 5.0 introduces a new feature called Remote Issue Links. Similar to the existing links that associate one JIRA issue with another, Remote Issue Links associate a JIRA issue with a remote object such as a help desk ticket or a test case. See Guide - JIRA Remote Issue Links.
A new Activity Streams API is available in JIRA 5.0 for creating activities via a simple REST API call or Java Method.
Thank you for all of your help, testing, and feedback on the Active Objects (AO) data storage layer over the last few months. As a result of all this hard work, we have done a significant refactoring of the AO library in order to make it a rock solid addition to the Atlassian developers platform. Active Objects 0.18.4 is the first AO version in this series that you should use. Previous versions had bugs that will cause problems.
Plugins may run into two problems with the way the Jackson JSON library is included in JIRA 5.0.
The solution to the first problem is to ensure your OSGi import for Jackson is at 1.4.4. Due to REST-181, the rest-module was exporting into OSGi Jackson version 1.4.4 under an incorrect version number (2.5.0). Plugins that were attempting to import Jackson 1.6.x were successfully wired to the wrong version of Jackson. In JIRA 5.0, the only version of Jackson available in OSGi is 1.4.4.
The second problem is caused when plugins have a test dependency on JIRA's func-tests, in order to write their own functional tests. JIRA's func-tests require Jackson 1.6.1, but maven will create the test classpath with 1.4.4. The solution is to add a test dependency on Jackson 1.6.1.
In JIRA 5.0, the RPC plugin was converted from a version 1 to a version 2 plugin framework plugin. Developers whose plugins depended on components provided by JIRA's RPC plugin in a version of JIRA prior to 5.0 will need to update their plugins to make them compatible with the version 2 plugin framework. This is likely to involve adding declaration elements for components that need to be constructor-injected. See Converting from Version 1 to Version 2 (OSGi) Plugins and the Component Import Plugin Module type documentation for more information.
If you are interested in the implementation of the RPC plugin, you can obtain the source code for this plugin from https://svn.atlassian.com/svn/public/atlassian/rpc-jira-plugin.
We have had to make a breaking change to MultiMap in order to prepare for JDK 7.
The method will conflict with Map.put() after generics erasure when attempting to compile under JDK 7.
In order to fix this we have renamed the method to .
boolean putSingle(K key, V value);
Do you have a plugin that runs in version 4.x of JIRA, and you want to convert it to run in version 5.0 of JIRA? See How to migrate a plugin from JIRA 4.x to JIRA 5.0.