Preparing for Confluence 7.9
This documentation is intended for Confluence developers who want to ensure that their existing plugins and apps are compatible with Confluence 7.9.
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.
|05 November 2020|
Issues with this milestone?
Hit the Feedback button on the Confluence EAP header or raise an issue to tell us about it.
On this page:
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.
Status: ADVANCED NOTICE
We are currently working on upgrading the version of XStream bundled with Confluence. This is a major upgrade that breaks compatibility with the old format of stored data. To help with this, we are adding a layer of backward compatibility to support existing data in Bandana.
See XStream 1.4 upgrade for full details.
We are currently targeting Confluence 7.10 for this upgrade, and have cut a special EAP milestone so you can test your plugins ahead of time. Download the 7.10.0-xstream-14-m03 milestone.
OAuth 2.0 authentication
We're adding the ability to configure OAuth 2.0 authentication. Within Confluence this will mostly be used for mail server authentication (such as a POP3 incoming mail server), but will also be available to apps.
We're still working on the mail server configuration screens in Confluence, that will allow you to select OAuth 2.0 as the authentication method, so we've rolled back the OAuth 2.0 changes for now.
Create and reply by email
We've been improving the Create by email and Reply by email plugins. These plugins have always been disabled by default, and were quite difficult to use because there was no UI for configuring the feature.
We're making some improvements to the way the feature works, and adding a new admin screen which administrators can use to enable the features.
We're still working on this one, and will provide more information at a later date.
In Confluence 7.9 we plan to apply some security patches to jQuery 2.2.4, which is bundled with Confluence. This introduces a breaking change which affects any single tag HTML strings parsed via jQuery.
An example of this is:
The above code prior to the patch being applied would have translated into:
However after the patch, it will nest any single tags which are not closed explicitly:
<div> <span></span> </div>
This means that any single tag HTML will need to be converted to have the opening and closing explicitly like so:
The above change affects the
jQuery.htmlPrefilter, and all jQuery DOM manipulation methods (append, after, appendTo, before, html, insertAfter, insertBefore, prepend, prependTo, replaceWith, wrap, wrapAll, wrapInner).
This change will affect any plugins which utilise the jQuery bundled with Confluence.
Cases not affected
The following cases won't be affected by the changes.
Single tag HTML by itself such as:
As there are no additional HTML tags to nest it will just convert to:
Void elements don't require explicit opening and closing tags. For example:
Will correctly convert to:
Although we're not upgrading our jQuery library to version 3.5, we are cherry-picking and applying some patches from that version. See https://jquery.com/upgrade-guide/3.5/ for a good explanation on the breaking change.
Upcoming changes to the search index
From Confluence 7.9, content and change documents will live in separate indexes.
Changes and improvements to search:
- With fewer documents in each index, search is now faster. Implementations of
getSearchIndexes()and return the
SearchIndexthat the search should target. If
getSearchIndexes()is not overridden, the default behaviour is to perform the search against both indexes which maintains the existing behaviour but will be orders of magnitude slower than searching a single index.
ChangesSearchwill search only their respective indexes.
In order to split the index, we've had to make a number of breaking changes to the way search and indexing works in Confluence. These changes include:
- The semantics of
ConfluenceIndexTaskhave changed, because the
IndexWriteris coupled to a single index. Now that change and content documents are stored in separate indexes, each implementation of
ConfluenceIndexTaskmay only be performed on either the content or change index. The target index must be specified by overriding the new
getSearchIndex()method in the
ConfluenceIndexTaskinterface to return the correct
JournalIndexTaskQueuehas been made abstract and each index now has its own queue. Please use child classes
luceneConnectionbean will now only search the content index. A
@ComponentImport ILuceneConnectionwill no longer return any change documents.
ChangesSearchshould be used instead.
Personal access tokens
From Confluence 7.9, users can create personal access tokens for REST API authentication. See Using Personal Access Tokens for details and usage.
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.
Release Candidate - 05 November 2020
There's still some work to be done on the accessibility checker. For this reason we’ve decided to keep this feature dark for Confluence 7.9. We'll make it available in a future Confluence version.
Beta 1 - 26 October 2020
In this beta release:
- personal access tokens
- upgrade Confluence without downtime
- accessibility checker
See Confluence 7.9 beta release notes for full details.
EAP 3 – 18 October 2020
No significant changes in this milestone.
EAP 2 – 10 October 2020
No significant changes in this milestone.
EAP 1 – 6 October 2020
In this milestone:
- JQuery patches
- Search index has been split into a change index and content index. This change includes an upgrade task to split the index, which may take some time and disk space.