Preparing for Confluence 7.0
Confluence 7.0 is available now
Check out the Confluence 7.0 Release Notes and Confluence 7.0 Upgrade Notes to find out what's changed.
This documentation is intended for Confluence developers who want to ensure that their existing plugins and apps are compatible with Confluence 7.0.
Confluence 7.0 will be our next Confluence version. It's a platform release, so will contain breaking changes.
We plan to release regular EAP (Early Access Program) milestones over the next few months, in the lead up to Confluence 7.0. We’ve extended the development timeline, so expect some additional milestones before the final release.
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 milestone
2 September 2019 | 7.0.1-RC1 | Download |
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:
As we are about to release Confluence 7.0, we thought it would be a good time to share what goes on behind the scenes as a complement to the info provided on this page.
We've posted some info on Developer Community about the routine updates and best practices our teams follow to maintain and nurture our code-base. See Confluence 7.0 developer guide.
Planned changes
In this section we'll provide an overview of the changes we intend to make in Confluence 7.0, so you can start thinking how it might impact your app. We'll indicate when a change has been implemented, and in which milestone.
Java 11
Status: DELAYED
We had planned to provide Java 11 runtime support in Confluence 7.0. We still have a few outstanding issues, so have delayed this work to a later 7.x release.
Feature deprecations
Status: COMPLETE
We've deprecated or removed a small number of features in Confluence 7.0. Head to our End of Support announcements page for more details.
Removing deprecated code
Status: COMPLETE
We have now finished removing all code paths deprecated in Confluence 5.x and earlier. See Deprecated code paths removed in 7.0 for a full list of the classes and methods removed. If we happen to remove any additional deprecated code, we'll also call it out in the notes section below.
Changes like this help us maintain a healthy code-base, remove hurdles for developers, and simplify the code structure where possible.
Notes
- The
htmlUtil
class is exposed in the Velocity context, so you can use this as an alternative to deprecatedGeneralUtil
methods.
Removing deprecated javascript globals
Status: DELAYED
In Confluence 5.9 we deprecated all Confluence provided javascript globals. We are in the process of replacing these with frontend APIs. We didn't manage to complete this in time for 7.0, so will resume this work at a later date. We'll provide more information when we re-commence this work.
Direct access to Lucene API is deprecated
Status: COMPLETE
Direct access to Lucene API is deprecated from Confluence 7.0, and will be disallowed in a future release. We've decided to make this change to allow us to make changes to the underlying search engine without impacting your apps.
There is no substitution for some of the deprecated APIs that are rarely used, or those that when used incorrectly can cause significant problems for your app.
We've developed several new tutorials to help you use the Confluence search APIs instead of accessing the Lucene API directly:
- Using the v2 Search API
- Create a search decorator
- Add a field to CQL
- Create a search extractor
- Create an attachment text extractor
We've also added the following module docs:
The following modules have been deprecated, and should not be used:
- Attachment content extractor plugins
- Extractor module
- Index recoverer module
- Lucene boosting strategy module
Atlassian User Interface (AUI) upgrade
Status: COMPLETE
Confluence 7.0 will include a major upgrade of AUI (the Atlassian User Interface) to a current version of AUI 8 (AUI 8.3.1 or later). See the AUI upgrade guide to find out what's changing. We've also created a Confluence AUI upgrade with best practices for updating your apps.
We're still fixing a few bugs and issues, but this work is mostly complete.
jQuery upgrade
Status: COMPLETE
Confluence 7.0 will include an upgrade of jQuery from 1.7.2 to 2.2.4. We recommend looking at the jQuery 1.9 upgrade guide for an overview of the important changes. We'll provide updates of our progress on this page.
Spring upgrade
Status: COMPLETE
As part of our Platform 5 upgrade, we have upgraded Spring framework to 5.1.7. The main change that is likely to affect plugins is a change to the default Spring autowiring behaviour from "autodetect" to "constructor".
Setter wiring will stop working in:
- Components
- REST Resources
- Conditions
And should be replaced to constructor injection (or annotations). Setter injection will continue to work in macros (as of 7.0), but we expect to remove it in 8.0. Plugin developers should gradually start to use constructor injections in macros as well, to ease future migration to 8.0.
If Confluence is started in Dev Mode (-Dconfluence.devmode=true
), we now log a warning each time setter injection is used in deprecated way, for example:
2019-07-30 13:11:27,498 WARN [RMI TCP Connection(2)-127.0.0.1] [atlassian.confluence.plugin.LegacySpringContainerAccessor] checkAndWarnAboutSetterInjection The bean class com.atlassian.confluence.tinymceplugin.conditions.EditOrCreatePageCondition of plugin "Confluence Editor Plugin" has public no-arg constructor which causes Spring to use setter injection. This will be deprecated soon and only constructor injection will be available. The code should be refactored to use constructor injection and public no-arg constructor should be removed.
CDN for Confluence Data Center
Status: COMPLETE
Confluence 7.0 will have ability to serve static assets from a CDN in Confluence Data Center. This includes static resources that are served by plugins, so enabling this feature might affect your plugin.
If you're using a WRM library properly, you shouldn't encounter any problems, but we recommend that you check the plugin compatibility, as described below.
We also provide a health check on the CDN administration screen that will indicate if an app is using deprecated methods.
New confirmation prompt on editor page reload
Status: COMPLETE
From Confluence 7.0 onwards, the editor will ask users to confirm a page reload. This is to make sure we are able to sync changes back to the draft when someone leaves the editor unexpectedly.
If your app performs a page reload in the editor for any reason (for example if your app spawns its own editor) you can avoid this prompt by initiating the content save yourself as follows:
define('my-amd-module', [ 'confluence/legacy' ], function(Confluence) {
//...
reloadPage: function() {
// before page reload
Confluence.Editor.Drafts.save({
// Skip error handler
skipErrorHandler: true
});
// reload page here!
}
//...
})
You will also need to add a dependency on the editor in your atlassian-plugin.xml as in this example:
WRM.require('wr!<web-resource key="my-plugin-js" name="My Plugin Js Resources" i18n-name-key="my.plugin.js.resources">
<!-- defining resources here... -->
<dependency>com.atlassian.confluence.editor:page-editor-js</dependency>
</web-resource>', function() {
const Confluence = require('confluence/legacy');
// Use Confluence.Editor.Drafts as above
})
Velocity-htmlsafe upgrade
Status: COMPLETE
We've upgraded velocity-htmlsafe to 3.1.0. This release allows products to inspect templates and protect against template injection and remote code executions from velocity templates.
Velocity templates containing any restricted classes/packages will not be rendered in the server. The default set of restricted classes/packages can be found in the velocity.properties file.
You'll need to make sure your velocity context objects don't expose dangerous classes. Velocity Secure Uberspector will complain in those cases.
Mockito 2 upgrade
Status: COMPLETE
We've upgraded Mockito 2 to support testing with Java 11. Here's some things you might find useful when updating your plugins to be compatible with Mockito 2.
ArgumentMatcher and Hamcrest now are different things
ArgumentMatcher
used to be a hamcrest Matcher which extends BaseMatcher
, now it is a separate interface. You can still use hamcrest through org.mockito.hamcrest.MockitoHamcrest ensure there is hamcrest dependency on classpath.
any(Foo.class) matchers do not match null
any()
will match anything including null. This is the most significant change in the upgrade. You may find that nulls in your existing tests are uncovered when Mockito 2 makes matchers more strict.
Unnecessary stubbings
In Mockito 2, Mockito JUnitRunner can detect unused stubbings and detect stubbing argument mismatches to drive cleaner tests. If you're not able to fix all these errors just yet, you can use `@MockitoJUnitRunner.Silent.class`
to mute them.
Atlassian-mail upgrade
Status: COMPLETE
com.atlassian.mail.queue.MailQueueItem
no longer extends com.atlassian.core.task.Task
which will lead to compile errors around task managers used in email notifications.
You will need to wrap the MailQueueItem
in a lambda before passing it down to the task manager, for example:
taskManager.addTask(name, () -> item.send())
plugin-license-storage-lib library no longer supported
Status: COMPLETE
If your app bundles the deprecated plugin-license-storage-lib
library from the Universal Plugin Manager (UPM), your add-on will not work with Confluence 7.0.
You will need to use UPM's licensing-api
module, and remove references to the old plugin-license-storage-lib
library.
See Adding licensing support to your add-on for more information. Note: Use the versions provided by the application for the import packages; don't specify a version range for the import packages.
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.
Release Candidate - 2 September 2019
This release candidate contains a handful of final fixes and small changes.
Embedded database change
Remote connections to the embedded H2 database are now only allowed in dev mode.
Beta 2 - 26 August 2019
Minor bug fixes and improvements.
Beta 1 - 16 August 2019
The bulk of our work on Confluence 7.0 has now wrapped up. We'll continue to fix bugs and issues in the lead-up to the final release.
See Confluence 7.0 beta release notes for a full summary of all the changes in this release.
Mockito 2 upgrade
We've upgraded Confluence to use Mockito 2 to support testing with Java 11. See the info above for some tips that may help when making your tests compatible.
End of support for Webdav plugin
We have decided to end support for the WebDAV plugin in Confluence 7.0, and will remove the plugin completely in a future Confluence release. See End of Support Announcements for Confluence for more information.
Shortcut links
We've reversed our decision to end support for shortcut links.
EAP 20 - 12 August 2019
Milestone 7.0.1-m149
Atlassian libraries and plugins upgraded in this milestone:
- velocity-htmlsafe → 3.1.0 (see velocity-htmlsafe changes that may affect your plugin)
EAP 19 – 5 August 2019
Milestone 7.0.1-m140
We're beginning to wrap up all our changes for 7.0, and will be releasing a beta quite soon.
Atlassian libraries and plugins upgraded in this milestone:
- atlassian-sal → 4.0.0
EAP 18 – 29 July 2019
Milestone 7.0.1-m131
AUI 8 and jQuery upgrades
The upgrade of jQuery from 1.7.2 to 2.2.4 is now complete. The AUI 8 upgrade work is also nearly done – we're just working to resolve a few outstanding issues. If you notice a problem, raise an issue to let us know.
These upgrades may affect any custom CSS on your Confluence site. If you've made CSS customizations, it's a good idea to start testing these to check if you need to make any modifications.
Platform 5 upgrades
This milestone contains a number of platform related upgrades. The complete list of maven dependencies for Confluence 7 can be found in the confluence-project pom.
Atlassian libraries and plugins upgraded:
- atlassian-event → 4.0.0
- activeobjects → 3.1.6
- activeobjects-plugin → 3.1.6
- atlassian-rest → 6.0.2
- atlassian-scheduler → 3.0.0
- caesium → 3.0.0
- atlassian-trusted-apps → 5.0.0
- atlassian-cache → 5.0.0
- atlassian-soy-templates → 5.0.0
- atlassian-nav-links → 5.0.0
- atlassian-template-renderer → 4.0.0
- atlassian-plugins-webfragment → 5.0.0
- atlassian-plugins-webresource → 4.1.2
- atlassian-plugins-jquery → 2.2.4.7
- beehive → 2.0.0
- velocity-htmlsafe → 3.0.0
- application-links → 6.0.8
- atlassian-core → 7.0.1
- atlassian-util-concurrent → 4.0.1
- fugue → 4.7.2
- atlassian-httpclient → 2.0.0
- atlassian-http → 2.0.6
- atlassian-webhooks-plugin → 6.0.0
- atlassian-failure-cache → 2.0.0
- atlassian-annotations → 2.2.1
- atlassian-pretty-urls → 3.0.2
- atlassian-healthcheck → 6.0.0
- atlassian-tenancy → 3.0.1
- atlassian-instrumentation → 3.0.0
- atlassian-spring-scanner → 2.1.9
- functest-plugin 1.0.0
- atlassian-marshalling-api → 1.0.0
- atlassian-universal-plugin-manager → 4.0.4
Third party libraries upgraded:
- Spring framework → 5.1.7.RELEASE (see Spring changes that may affect your plugin)
- Guava → 26.0-jre
- commons-lang3 → 3.9
- Apache HttpCore → 4.4.11
- jQuery → 2.2.4 (see JQuery changes that may affect your plugin)
Alternatives to direct access to Lucene
We've just published a new set of search tutorials that provide guidance on how to perform common search or index related tasks without accessing the Lucene API directly.
- Using the v2 Search API
- Add a field to CQL
- Create a search decorator
- Create a search extractor
- Create an attachment text extractor
EAP 17 – 22 July 2019
Milestone 7.0.1-m122
No significant changes in this milestone.
EAP 16 – 15 July 2019
Milestone 7.0.1-m117
- In this milestone, we've removed platform-specific Mobile CSS helper classes, like
class="platform-android"
andclass="platform-ios".
- When accessing Confluence via mobile web, you can now add attachments to comments on any device. This was previously only available on iPhone devices.
EAP 15 – 8 July 2019
Milestone 7.0.1-m110
AUI and jQuery upgrade
We're continuing to work on upgrading AUI and jQuery. The AUI and jQuery changes will be in all EAP milestones from now on. We have a few known issues which we'll continue to work through over the next few releases.
Zepto replaced by jQuery in Confluence mobile
The Confluence Mobile UI now uses jQuery 2.2.4 instead of Zepto.js 0.8. This means the Confluence Mobile Web Plugin can pull in any dependencies from Confluence or the AUI plugin without the risk of polluting the global $ variable.
The Mobile Web view uses Backbone 0.9.2. The Backbone view extend method doesn't support jQuery object as an element property.
Backbone.View.extend({
// ...
el: $(".css-selector")[0] // native dom only for Backbone 0.9.2
// ...
}
As part of this work, we've also removed the following Zepto-specific functions:
$.cookie
has been replaced byAJS.cookie
$.visible()
has been removed. Use$.filter(":visible").length
instead.
If your app currently uses the Mobile Web Plugin, you may need to modify anything that's specific to Zepto.
Changes to file editing with custom SSO authenticators
We've changed the way Confluence handles the download and re-upload of files via the Companion app for instances with SSO (Single Sign On) authentication. If you manage or develop a custom SSO authenticator app, we recommend testing the Edit files experience to check your app is compatible with the changes.
EAP 14 – 1 July 2019
Milestone 7.0.1-m103
There are no significant changes in this milestone.
Please note, this milestone doesn't contain any changes related to the AUI 8 upgrade. You can continue using 7.0.1-m92 until we release our next AUI 8 milestone.
EAP 13 – 24 June 2019
Milestone 7.0.1-m92
This milestone contains our latest batch of changes related to the AUI 8 upgrade:
$.fn.enable()
and$.fn.disable()
are now deprecated. We recommend using the new methodsdisableElement
andenableElement
from AMD moduleconfluence/form-state-control
. The web-resource has the keycom.atlassian.confluence.plugins.confluence-frontend:form-state-control
As usual, we document these changes each week in our Confluence AUI upgrade guide. There are still a number of known issues, which we'll be fixing over the coming weeks. Some issues to be aware of:
- The date picker component may not work correctly in the editor.
- Some dropdown buttons have extra space between the title and chevron icon.
- There may be some minor visual glitches in messages on the UPM screen.
- Secondary tabs (for example, on the Space Details screen) render as bullet points instead of tabs.
- After uploading a new plugin, the 'Upload new plugin' button may not appear.
EAP 12 – 17 June 2019
Milestone 7.0.1-m88
In this milestone we've added two new scheduled jobs that can be used to evict Synchrony change logs.
Related to this work, the editor will now ask users to confirm a page reload. This is to make sure we are able to sync changes back to the draft when someone leaves the editor unexpectedly. If your app performs a page reload in the editor for any reason, you should initiate this save. Refer to the summary at the top of this page for details.
There's a known issue in this milestone which can prevent Confluence from starting up after upgrading. This issue will be resolved in an upcoming milestone.
EAP 11 – 11 June 2019
Milestone 7.0.1-m82
Our work continues on the AUI 8 upgrade. Here are the latest changes that may affect your app:
The AJS.indexOf method is no longer available. Use native array methods instead, such as
[].indexOf, [].includes.
We can no longer guarantee the legacy AUI message CSS classes, such as
warning
,error
, andsuccess
, will exist in Confluence 7.0. If your app needs to control the behaviour of the AUI message in Javascript, it should query the element with the new class (with theaui-message-
prefix).The AUI message now renders an icon automatically, and no longer hides the extra icon from the old template. To fix this, remove the extra icon html markup.
Head to our Confluence AUI upgrade guide for more details. We update this page each week to reflect our work in progress. Please note: EAP 9 (7.0.1-m60) is the only milestone that contains our AUI 8 changes.
EAP 10 – 3 June 2019
Milestone 7.0.1-m74
AUI and jQuery upgrade
We're continuing work on the upgrade to AUI 8.3.2 and jQuery 2.2.4, however these changes are not included in this week's milestone. We plan to release a more stable milestone with the AUI and jQuery changes in the coming weeks. In the meantime, use milestone 7.0.1-m60 to see some of our work in progress.
New post-upgrade landing page
We've added a new post-upgrade report to provide you with useful information about your upgrade. After upgrading Confluence, admins will be automatically directed to the page, and can access it from > General configuration > Latest upgrade report.
This feature is currently enabled by default as a system property dark feature. If you develop a third-party app, this may affect your builds. To disable the feature, use the system property -Datlassian.darkfeature.pulp.disable=true
CDN for Confluence Data Center
In this milestone we've added support for serving static assets from a CDN. This feature is only available with a Data Center license. There are some things you should check, to ensure your plugin is compatible. Refer to the summary at the top of this page for details.
EAP 9 – 20 May 2019
Milestone 7.0.1-m60
This milestone contains our first batch of changes related to the AUI 8 upgrade:
- AUI has been upgraded to 8.3.2.
- Confluence now only provides jQuery 2.2.4.
- The Backbone library in the AUI plugin has now been upgraded, however the Confluence codebase will continue using 1.0.0. It's important that you do not request a version of Backbone directly from the AUI plugin, as this would conflict with the global Backbone provided by Confluence. Head to our Confluence AUI upgrade guide for detailed guidance on these changes.
The AUI message style has now been updated.
EAP 8 – 13 May 2019
Milestone 7.0.1-m52
No significant changes in this milestone.
EAP 7 – 6 May 2019
Milestone 7.0.1-m38
No significant changes in this milestone.
EAP 6 – 29 April 2019
Milestone 7.0.1-m35
- This milestone contains our first batch of changes to support Java 11. We have a few known issues which we'll continue to work through over the next few releases.
- Upgraded Web Resource Manager from 3.5 to 4.1
- Upgraded Atlassian Scheduler from 2.0 to 3.0
- Upgraded Fugue from 4.5 to 4.7
- Upgraded Velocity HtmlSafe from 1.5 to 3.0
EAP 5 – 15 April 2019
Milestone 7.0.1-m18
- We've now removed the Trackback and Referrers feature completely, which included removing the TRACKBACKLINKS and EXTRNLNKS database tables.
EAP 4 – 10 April 2019
Milestone 7.0.1-m13
- The IM macro is now deprecated and will no longer appear in the macro browser.
- We have finished removing code deprecated in Confluence 5.x and earlier. See Deprecated code paths removed in 7.0 for the full list.
There was a problem with 7.0.1-m11. This is now resolved and we've released m13.
EAP 3 – 2 April 2019
Milestone 7.0.1-m05
- The Network macro and Space details macro are now deprecated, and will no longer appear in the macro browser.
The Hipchat integration has now been disabled by default for new Confluence installations. This will have no impact on existing installations.
EAP 2 – 25 March 2019
Milestone 7.0.1-m03
No significant changes in this milestone.
EAP 1 – 18 March 2019
Milestone 7.0.1-m02
- The Activity stream gadget, Page gadget and Quicknav gadget are now deprecated, and will no longer appear in the macro browser.
- The News gadget and Junit macro have now been removed completely.
- The Attachment storage page will now be hidden for customers who are storing attachments in the file system.
- We've removed the Orphaned pages view from the Space Tools page in the default theme. This means that listorphanedpages.action will stop working in any theme that used it.
- There was a problem with the Linux installer in m01 – this is now resolved and we've released m02.
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.