Preparing for Confluence 10.0
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 |
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:
- Jakarta Servlet 6.0
- Jakarta RESTful Web Services 3.1
- Jakarta Dependency Injection 2.0
- Jakarta Annotations 2.1
- Jakarta Activation 2.1
- Jakarta Mail 2.1
- Jakarta XML Binding 4.0
- Jakarta Bean Validation 3.0
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.ParameterSafe
→org.apache.struts2.interceptor.parameter.StrutsParameter
com.atlassian.xwork.PermittedMethods
→com.atlassian.struts.httpmethod.PermittedMethods
com.atlassian.xwork.RequireSecurityToken
→com.atlassian.annotations.security.XsrfProtectionExcluded
orcom.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
(andText
)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.ConfluenceXStreamManage
r 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:
- Dropdown 1 - replaced by Dropdown 2
- Toolbar 1 - replaced by Toolbar 2
- Dialog 1 - replaced by Dialog 2
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.