Last updatedDec 8, 2017
Improve this page

JIRA 7.0 - General changes

This page covers the general developer changes for JIRA 7.0, that are not covered in the API changes or plugin framework changes.

The changes are part of a larger set of developer changes to JIRA for 7.0. You should also read Preparing for JIRA 7.0 for an overview of the release, as well as JIRA 7.0 - API changes and JIRA 7.0 - Platform changes.

Summary of changes

The risk level indicates the level of certainty we have that things will break if you are in the "Affected" column and you don't make the necessary changes.

Change (click to view more details)Affected

JIRA importer plugin can be extended to include data from plugins, using the JIRA Project Importer SPI
(see the Guide - Extending the JIRA Import plugin) 

Add-ons that want to include their data in project imports

When: 7.0

Risk level: N/A

Project type key required for project templates

Add-ons that provide project templates for the 'Create project' dialog will be affected.

When: 7.0

Risk level: medium

project-template module not supported for the creation of project templates

Add-ons that define project templates using a web-item + project-template tags.

When: 7.0

Risk level: medium

Software plugins no longer bundled (a number of plugins that offer features supporting software teams will no longer be bundled with JIRA)

Add-ons that depend on any of those plugins to be present.

When: 7.0

Risk level: medium

Quartz scheduler removed

Add-ons that import any org.quartz classes.

When: 7.0

Risk level: medium

Most Lucene classes removed from API

Add-ons that use Lucene directly.

When: 7.0

Risk level: medium

Project tab panels deprecated

Any add-on implementing pluggable project tab panels.

When: 7.0

Risk level: medium

ComponentTabPanelModuleDescriptor and VersionTabPanelModuleDescriptor removed

Very few add-ons were providing these tab panels, so the impact should be limited.

When: 7.0

Risk level: medium

Project keys allow numbers by default

Add-ons that make assumptions about project key syntax, and assume that it is only uppercase letters.

When: 7.0

Risk level: low

DOM changes

Add-ons that make assumptions about JIRA's DOM structure.

When: 7.0

Risk level: low

Support ending for HSQLDB (see end of support announcement in the JIRA documentation)

Add-ons testing against JIRA's built-in HSQLDB database.
Note, this built-in database is only used for evaluation purposes.

When: 7.0

Risk level: low

Support ending for Oracle JDK 1.7 (see end of support announcement in the JIRA documentation)

JIRA Server installations on Oracle JDK 1.7.

When: 7.0

Risk level: low

Support ending for Oracle 11g (see end of support announcement in the JIRA documentation)

JIRA Server installations on Oracle 11g databases.

When: 7.0

Risk level: low

Support ending for Internet Explorer 9 (see end of support announcement in the JIRA documentation)

JIRA installations on Internet Explorer 9.

When: 7.0

Risk level: low

Dangermode removed
(this functionality was only used in Atlassian's functional tests, and therefore shouldn't affect any plugins) 

Nobody should be affected.

When: 7.0

Risk level: low

Details

Project type key required for project templates

In JIRA 7.0, all the project templates must provide the key for the type of the projects created with the template. If your add-on is defining a project template, it will need to be modified to include the project type key:

  • If your template is defined via a web-item that is placed on the jira.project.templates section, it needs to specify a param with a name of "projectTypeKey" and the value of the project type key. For example:
1
2
3
4
5
<web-item key="jira-test-item" i18n-name-key="jira-wfb-item.title" section="jira.project.templates">
  <label key="jira-test-item.title"/>
  <param name="projectTypeKey" value="business"/>
  ...
</web-item>
  • If your template is defined via a project-blueprint tag on your atlassian-plugin.xml, it needs to specify a projectTypeKey tag with the project type key as its content. For example:
1
2
3
4
5
<project-blueprint key="jira-issuetracking" weight="30">
  <label key="jira.issuetracking.project.item"/>
  <projectTypeKey>business</projectTypeKey>
  ...
</project-blueprint>

The project type key is mandatory in both cases. If a template doesn't provide a project type, it will not appear on the 'Create project' dialog within JIRA.

 project-template module not supported for the creation for project templates

JIRA will not support the definition of project templates using the old project-template module. In 7.0, all project templates provided by add-ons must be defined using the newer project-blueprint module.

Software plugins no longer bundled

A number of plugins that offer features supporting software teams, namely the jira-software-plugin, jira-development-integration-plugin, jira-fisheye-plugin, jira-bamboo-plugin, and jira-dvcs-connector-plugin will no longer be bundled with JIRA from 7.0. If your add-on depends on any of these plugins being installed, you can do either of the following:

  • modify your add-on to work correctly in the absence of any of the above plugins, or 
  • transition your add-on to be a JIRA Software plugin, instead of a JIRA Core plugin. 

To test your add-on against JIRA Software, use the new AMPS version that adds support for applications through the new applications element. See Configure AMPS to run JIRA Core with additional applications installed for more details.

Quartz scheduler removed

Direct access to Quartz was deprecated with the introduction of the atlassian-scheduler API in JIRA 6.3. In JIRA 7.0, the Quartz Scheduler is no longer used by JIRA, so none of its classes are available, even to those add-ons that depend on jira-core. Although the SAL PluginScheduler remains available, we encourage you to migrate to the atlassian-scheduler API. Add-ons that allowed the user entry of cron expressions and used Quartz's CronTrigger class to validate the syntax will no longer be able to do so; however, the atlassian-scheduler API provides a CronExpressionValidator service that may be used as a replacement for this.

Most Lucene classes removed from API

Direct access to Lucene classes is discouraged, and a number of classes which use Lucene directly have been moved to the jira-lucene-dmz maven artifact.

Add-ons can use jira-lucene-dmzto assist migration, but these classes are not covered by the API guarantee. While they are maintained in the short term, they may become deprecated or broken in future minor releases, as improved search and statistics alternatives are rolled out. The intent is that improved alternative APIs, for genuine add-on use cases, will be made available before the Lucene-dependent versions are fully removed.

The affected classes are:

  • The SearchProvider interface -- the methods searchOverrideSecurity and searchCountOverrideSecurity are now now available on SearchService class.
  • Some StatisticsMappersubclasses -- add-ons needing this functionality must rely on jira-lucene-dmz.
  • Various implementations of the lucene Collector interface -- add-ons needing this functionality must rely on jira-lucene-dmz.
  • The SearchProviderFactory for obtaining IndexSearcher implementations for direct Lucene access -- add-ons needing this functionality must rely on jira-lucene-dmz.
  • Minor Lucene related utility classes -- currently, no replacement is available.

The IssueIndexManager has been removed from jira-apiand is now jira-core -- the new jira-apiclass IssueIndexingService exposes reIndex... and deIndex... methods suitable for add-on use. Additionally, other Lucene0related utility classes have been moved to jira-core.

Project tab panels deprecated

Pluggable project tab panels have been deprecated in JIRA 7.0. They will still continue to work, but will no longer render in the top level sidebar navigation and will instead be grouped into a 'Add-ons' top level section. Add-on vendors should migrate their add-ons to the new web-item based approach of integrating with JIRA's new project centric view, described in Design guide - JIRA project-centric view. Project tab panel support will be removed in a future major release of JIRA.

ComponentTabPanelModuleDescriptor and VersionTabPanelModuleDescriptor removed

The new project-centric view no longer provides an individual version or component view that supports these pluggable tab panels. The usage of these was very low, so these plugin points have been removed.

Project keys allow numbers by default

Prior to JIRA 7.0, the default configuration for project keys permitted only uppercase alphabetical characters, i.e. [A-Z][A-Z]+. In JIRA 7.0, the default regular expression for project keys will be changed to allow numbers (but only after an initial uppercase letter), i.e. [A-Z][A-Z0-9]+.

The reason for this change is that the default configuration could only be modified by system administrators. This meant that customers using JIRA Cloud (where the system administrator permissions are not exposed) were forced to stay with the default configuration.

DOM changes

The jira-ajax-menu class will no longer be on application header menu triggers.