Preparing for Confluence 10.0

Confluence Development Releases

Still need help?

The Atlassian Community is here for you.

Ask the community

This documentation is intended for Confluence developers who want to ensure that their existing plugins and apps are compatible with Confluence 10.0.

Watch this page to find out when a new milestone is available and what’s changed. We will publish formal release notes once we release a beta.

Latest milestones

24 February 2025

10.0.0-m21

Download

Issues with this milestone?

Hit the Feedback button on the Confluence EAP header or raise an issue to tell us about it.

Planned changes

In this section we'll provide an overview of the changes we intend to make, so you can start thinking how it might impact your app. We'll indicate when a change has been implemented, and in which milestone. 

This release only supports Data Center licenses. If you have a Server license, check out your options for upgrading.

Spring and Jakarta upgrade

Status: IN PROGRESS 

To maintain high security standards and keep dependencies supported and up to date, we’re updating Spring to the 6.x line. Spring 6 is no longer compatible with the currently used Jakarta 8, requiring us to also update the Jakarta version to EE Platform 10, specifically:

We’re also updating all the other libraries that depend on Spring and Jakarta.

We won’t be making any changes to the Atlassian API unless they’re necessary because of the updates to the Jakarta API. There are also several API changes in Jakarta that may impact apps.

Struts 7.0 upgrade

Status:  DONE

The Struts MVC framework has been upgraded to version 7.0.

In addition to the Servlet API changes mentioned earlier, the primary change is the renaming of the com.opensymphony.xwork2 package to org.apache.struts2. Developers should take care to replace all such imports.

The multipart upload handling utility class com.atlassian.xwork.FileUploadUtils has been replaced with the OSGi service com.atlassian.confluence.struts.StrutsHelper, which is also accessible via the protected field strutsHelper on classes extending ConfluenceActionSupport.

Additionally, the following Atlassian annotations have been replaced:

  • com.atlassian.xwork.ParameterSafeorg.apache.struts2.interceptor.parameter.StrutsParameter
  • com.atlassian.xwork.PermittedMethodscom.atlassian.struts.httpmethod.PermittedMethods
  • com.atlassian.xwork.RequireSecurityTokencom.atlassian.annotations.security.XsrfProtectionExcluded or com.atlassian.struts.xsrf.XsrfProtectionRequired

Removal of OpenSymphony PropertySet

Status: DONE

All APIs that leverage PropertySet are now read-only. These APIs will be permanently removed in Confluence 11.0.

This change affects the following APIs based on PropertySet for Users:

  • (Deleted) com.atlassian.confluence.user.UserAccessor#getConfluenceUserPreferences
  • (Read-only) com.atlassian.confluence.user.ConfluenceUserPropertySetFactory
  • (Read-only) com.atlassian.confluence.user.UserAccessor#getPropertySet

Migrate to use the replacement API:

  • com.atlassian.confluence.user.UserAccessor#getUserPreferences(ConfluenceUser)

The following PropertySet data types will remain accessible at the replacement API:

  • Boolean
  • String (and Text)
  • Long
  • Integer

Migrate all other data types to a suitable replacement as soon as possible because they will become completely inaccessible from Confluence 11.0.

The following APIs based on PropertySet for Content are also affected:

  • (Read-only) com.atlassian.confluence.core.ConfluencePropertySetManager

Migrate any required data in your apps to one of the following alternatives as soon as possible because they will become completely inaccessible from Confluence 11.0.

  • (Spaces) com.atlassian.confluence.api.service.content.SpacePropertyService
  • (Content) com.atlassian.confluence.api.service.content.ContentPropertyService

To migrate data, you may choose to implement the com.atlassian.sal.api.upgrade.PluginUpgradeTask API in your apps and export it as an OSGi service. For details, see Writing a plugin upgrade task to migrate user data to new user keys.

Removal of Bandana

Status: IN PROGRESS 

The com.atlassian.bandana.BandanaManager API is now read-only, and the APIs will be deleted entirely in Confluence 11.0.

Migrate any required data in your apps as soon as possible to one of the following alternatives.

  • com.atlassian.sal.api.pluginsettings.PluginSettingsFactory
  • com.atlassian.confluence.api.service.content.SpacePropertyService
  • com.atlassian.activeobjects.external.ActiveObjects (For details, see Active objects)

The following Bandana value types will be automatically migrated to PluginSettingsFactory where possible:

  • String
  • Properties
  • List<String>
  • Map<String, String>

Note that com.atlassian.confluence.setup.xstream.ConfluenceXStreamManager will remain available for manual serialization and deserialization if needed.

To migrate data, you may choose to implement the com.atlassian.sal.api.upgrade.PluginUpgradeTask API in your apps and export it as an OSGi service. For details, see Writing a plugin upgrade task to migrate user data to new user keys.

LESS transformer removal

Status: IN PROGRESS 

To enhance the security, performance, and overall developer experience, we’re deprecating both the LESS web-resource transformer and the LESS Maven plugin.

We’ve updated Look and Feel to use CSS variables in Confluence 8.9 and 9.0, and all styles will either be CSS or compiled to CSS at build-time. We’re also removing LESS compilation from Java build and runtime. You can continue to use LESS or any other CSS pre-processor at build-time.

We recommend you replace the runtime transformation of LESS files with build-time compilation or move to native CSS files using Design tokens.

For more details and further guidance, check Less transformer removal.

Supported platforms updates

Status: IN PROGRESS 

We’re adding support for the following databases:

  • PostgreSQL 17

We’re also removing support for:

  • PostgreSQL 15
  • Java 17

Beyond 10.0 planned changes

Removal of deprecated components in AUI 10

Status: ADVANCE NOTICE

We’re deprecating and planning the removal of some outdated AUI 10 components with design and accessibility issues. Make sure to move to their new versions or migrate to Atlaskit:

We’ll be upgrading some outdated dependencies:

  • npm: select2 upgrading from 3.5.4 to 4.0.13+. This upgrade will ensure better jQuery 3 compatibility.
  • npm: dompurify upgrading from 2.5.7 to 3.1.6+. This dependency is used internally on the tooltip titles. Don’t reuse the version under the hood.
  • npm: jquery-form upgrading from 2.67 to 4.3.0+. This upgrade will ensure better jQuery 3 compatibility.

We’ll be deprecating or removing the following:

  • Template - AUI Documentation - we’re moving to Soy or the I18n system as appropriate. This is so we can better support fewer languages with tools and prevent security issues from arising from a homebrewed templating language.
  • Dark mode (old) - AUI Documentation - we’re removing the old unused dark theme since we’ve introduced a new one. If you’ve followed our recent guide (Prepare your Data Center app for the dark theme) to prepare for dark theme by using design tokens, you should be all set.
  • Original theme - since the “light” theme is replacing it, all the fallback values will be gone.
  • Redundant polyfills that are now natively supported in browsers, for example, npm: css.escape, custom events, and the <input> placeholder.
  • npm: @atlassian/tipsy - this is no longer maintained and the AUI library stopped using it internally from version 9.3. You can bundle it if you wish, but we recommend moving to Floating UI or using Atlaskit or AUI components where possible.
  • npm: trim-extra-html-whitespace - this is no longer maintained and is only used internally in our public documentation. This shouldn’t be needed in the browser. You can bundle it if you wish, but we recommend finding a maintained HTML minifier.
  • Low-usage and renamed Soy templates, web-resources, and CSS classes.

Other changes include the Node 22 engine requirement. This will only affect using AUI via NPM, not through the running product. 

Removal of Trusted apps

Status: ADVANCE NOTICE

We’re working on removing Trusted apps to reduce the number of insecure entry points into the products. We’ll replace this way of exchanging information between Atlassian products with more secure solutions that follow industry best practices, like the OAuth 2.0 protocol.

Implemented changes

In this section we'll provide details of changes we have implemented, organised by the milestone they are first available in. This will help you decide which milestone to use when testing.

EAP 3 – 24 February 2025

Milestone 10.0.0-m21

Contains:

  • Minor bug fixes

EAP 2 – 17 February 2025

Milestone 10.0.0-m20

Contains:

  • Minor bug fixes

EAP 1 – 10 February 2025

Milestone 10.0.0-m16

Contains:

  • Struts 7.0 upgrade

  • Removal of OpenSymphony PropertySet

  • Minor bug fixes

Looking for updated documentation? Check out the Confluence EAP space for the latest docs.

Did you know we’ve got a new developer community? Head to community.developer.atlassian.com/ to check it out! We’ll be posting in the announcements category if when new EAP releases are available.

Last modified on Feb 24, 2025

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.