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) When Risk level 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) 

7.0 N/A Add-ons that want to include their data in project imports
Project type key required for project templates 7.0 medium Add-ons that provide project templates for the 'Create project' dialog will be affected.
project-template module not supported for the creation of project templates 7.0 medium Add-ons that define project templates using a web-item + project-template tags.
Software plugins no longer bundled (a number of plugins that offer features supporting software teams will no longer be bundled with JIRA) 7.0 medium Add-ons that depend on any of those plugins to be present.
Quartz scheduler removed 7.0 medium Add-ons that import any org.quartz classes.
Most Lucene classes removed from API 7.0 medium Add-ons that use Lucene directly.
Project tab panels deprecated 7.0 medium Any add-on implementing pluggable project tab panels.
ComponentTabPanelModuleDescriptor and VersionTabPanelModuleDescriptor removed 7.0 medium Very few add-ons were providing these tab panels, so the impact should be limited.

Project keys allow numbers by default

7.0 low Add-ons that make assumptions about project key syntax, and assume that it is only uppercase letters.
JIRA DOM changes 7.0 low Add-ons that make assumptions about JIRA's DOM structure.
Support ending for HSQLDB (see end of support announcement in the JIRA documentation) 7.0 low Add-ons testing against JIRA's built-in HSQLDB database.
Note, this built-in database is only used for evaluation purposes.
Support ending for Oracle JDK 1.7 (see end of support announcement in the JIRA documentation) 7.0 low JIRA Server installations on Oracle JDK 1.7.
Support ending for Oracle 11g (see end of support announcement in the JIRA documentation) 7.0 low JIRA Server installations on Oracle 11g databases.
Support ending for Internet Explorer 9 (see end of support announcement in the JIRA documentation) 7.0 low JIRA installations on Internet Explorer 9.
Dangermode removed
(this functionality was only used in Atlassian's functional tests, and therefore shouldn't affect any plugins) 
7.0 low Nobody should be affected.

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:
<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:
<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-dmz to 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-api and is now jira-core — the new jira-api class 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.

Was this page helpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport