Last updated Feb 8, 2024

Prepare your Data Center app for Platform 7

As announced on the Developer Community, we are making several changes to the Java API of shared components that are used across the different Atlassian Data Center products. We expect all of these changes to land into the following product versions:

  • Confluence 9.0
  • Jira 10.0
  • Bitbucket 9.0
  • Bamboo 10.0
  • Crowd 6.0

Upgrade guide

In the table below we include links to the upgrade guides for each individual component outlining the exact changes and how to adopt them.

ComponentUpgrade guideAffected Maven packagesPlatform 6.5 versionPlatform 7.0 version
Active ObjectsGuidenet.java.dev.activeobjects:activeobjects-core com.atlassian.activeobjects:activeobjects-plugin5.3.16.0.0-m03
Application LinksGuidecom.atlassian.applinks:applinks-common9.2.010.0.0-m01
Atlassian ApplicationGuidecom.atlassian.application:atlassian-application-api2.0.13.0.0
Atlassian ConfigGuidecom.atlassian.config:atlassian-config1.2.02.0.0-m01
Atlassian CoreGuidecom.atlassian.core:atlassian-core8.1.09.0.0-m07
Atlassian EventGuidecom.atlassian.event:atlassian-event3.1.06.0.0-m02
Atlassian Failure CacheGuidecom.atlassian:atlassian-failure-cache com.atlassian:atlassian-failure-cache-plugin3.1.04.0.0-m02
​Atlassian Nav LinksGuidecom.atlassian.plugins:atlassian-nav-links-api com.atlassian.plugins:atlassian-nav-links-plugin8.2.09.0.0
Atlassian PluginsGuide (7.5.0) Guide (8.0.0)com.atlassian.plugins:atlassian-plugins-api com.atlassian.plugins:atlassian-plugins-core com.atlassian.plugins:atlassian-plugins-osgi com.atlassian.plugins:atlassian-plugins-schema com.atlassian.plugins:atlassian-plugins-validation7.5.28.0.0-m03
Atlassian RESTGuidecom.atlassian.plugins.rest7.2.0
​Atlassian SALGuidecom.atlassian.sal:sal-api com.atlassian.sal:sal-core com.atlassian.sal:sal-spi com.atlassian.sal:sal-spring5.2.06.0.0-m01
​Atlassian SchedulerGuidecom.atlassian.scheduler:atlassian-scheduler-caesium com.atlassian.scheduler:atlassian-scheduler-quartz24.2.05.0.0-m01
Atlassian SecurityGuidecom.atlassian.security:atlassian-secure-xml4.1.06.0.0-m02
Atlassian StreamsGuidecom.atlassian.streams:streams-api com.atlassian.streams:streams-spi com.atlassian.streams:streams-thirdparty-api9.2.010.0.0-m02
Marketplace ClientGuidecom.atlassian.marketplace:marketplace-client-java3.1.104.0.0
​Remote Links AggregatorGuidecom.atlassian.plugins:remote-link-aggregator-api3.1.04.0.0-m02
UPM ServerGuidecom.atlassian.upm:upm-api6.5.07.0.0-m02
atlassian-plugins-webfragmentGuidecom.atlassian.plugins:atlassian-plugins-webfragment-api com.atlassian.plugins:atlassian-plugins-webfragment6.1.0
atlassian-plugins-webresourceGuidecom.atlassian.plugins:atlassian-plugins-webresource-api com.atlassian.plugins:atlassian-plugins-webresource6.3.1
Embedded CrowdGuidecom.atlassian.crowd:embedded-crowd-api com.atlassian.crowd:crowd-integration-api com.atlassian.crowd:crowd-api com.atlassian.crowd:crowd-events com.atlassian.crowd:crowd-server-api com.atlassian.crowd:crowd-persistence com.atlassian.crowd:crowd-common com.atlassian.crowd:embedded-crowd-spi5.3.06.0.0-rc2

The Platform 6.5 version typically contains the vast majority of the alternative API that is proposed in the upgrade guides. You can use these versions to gradually start migrating to the new APIs, while maintaining compatibility with existing product versions. We expect these versions of the components to be available in the following product versions:

  • Confluence 8.8
  • Bitbucket 8.18
  • Bamboo 9.6
  • Crowd 5.3
  • We have no confirmed versions for Jira and Bamboo, and will update this page once we have them

The Platform 7.0 version refers to the earliest version we have released that contains the changes from the upgrade guides. If the column is empty, we have yet to release such a version. We will update this page once these versions become available. We expect the next milestone releases of the products to include the stable versions of these components.

We recommend checking out our community post for some hints that may help with testing these changes ahead of the EAPs for the Atlassian Data Center products.

As a courtesy, we have also made our openrewrite recipes available in case you want to automate some of the migrations.

What is changing

Removed dependencies

The primary change to the components is the removal of third-party dependency types from our public Java APIs. This is achieved through either replacing the API with an alternative, or - in some cases - removing the API altogether. In particular, for the components above, we have targeted the following dependencies for removal:

  • com.google.guava:guava
  • com.google.inject:inject
  • org.dom4j:dom4j
  • joda-time:joda-time
  • commons-digester:commons-digester
  • opensymphony:oscore
  • opensymphony:propertyset
  • opensymphony:sitemesh
  • com.fasterxml.jackson.core:jackson-annotations
  • com.sun.jersey
  • org.tuckey:urlrewritefilter
  • org.jdom:jdom
  • log4j:log4j
  • commons-pool:commons-pool
  • commons-lang:commons-lang1

In addition to the API changes, these dependencies will no longer be exported to the OSGi context. You will need to include your own dependencies and bundle them with your app if you wish to continue using them.

API changes

To make the Java APIs more future-proof, we have restructured the Java packages in Atlassian Plugins, atlassian-plugins-webfragment, and atlassian-plugins-webresource. Check the migration guides linked above for more details.

Moved to Jakarta dependencies

Platform 7 depends on Jakarta 8 API. We unified Maven dependencies and moved from javax ones to jakarta. That change has no effect on the code. However, if you are using Platform POMs to control the version of dependency, you should migrate to the new coordinates.

Jakarta 8 components exported for every plugin are:

  • jakarta.servlet:jakarta.servlet-api
  • jakarta.inject:jakarta.inject-api
  • jakarta.annotation:jakarta.annotation-api
  • jakarta.activation:jakarta.activation-api
  • jakarta.mail:jakarta.mail-api
  • jakarta.xml.bind:jakarta.xml.bind-api
  • jakarta.validation:jakarta.validation-api
  • jakarta.ws.rs:jakarta.ws.rs-api - introduced as part of REST v2

Java 17

The components in Platform 7 will be compiled with Java 17, meaning that apps will also need to be compiled with Java 17 (or newer) to continue working.

Velocity template allowlists

With Jira 10.0 and Confluence 9.0, new allowlists will be added to bolster security. This is not currently coming to any other product. Learn more about file allowlist and method allowlist.

Secure endpoint defaults

We've made access changes to improve default endpoint security. It's important to understand these changes and plan your annotations accordingly to ensure your endpoints remain secure and accessible to the intended users. Learn more about preparing your app to comply with secure endpoint defaults.

Product-specific changes

The changes listed on this page apply to common components shared across multiple Atlassian Data Center products, in particular the components listed in the table above. Each product's feature release may in turn have additional changes. Refer to the product-specific announcements for more information on those changes.

Footnotes

  1. commons-lang:commons-lang3 will continue to remain available in the OSGi context.

Rate this page: