Preparing for Confluence 6.10

This documentation is intended for Confluence developers who want to ensure that their existing plugins and add-ons are compatible with Confluence 6.10.

We plan to release weekly milestones during the development of Confluence 6.10. 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
20 June 6.10.0-rc1 Download
Issues with this milestone?

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

Changes in Confluence 6.10

Release Candidate 1 - 20 June 2018

Confluence 6.10 is preparing for takeoff! There are no significant changes in this release candidate.

For read-only mode, we've made one small change - ErrorHandler is now MessageController, which is used to make sure the front-end code handles the error response properly.

Beta 1 -13 June 2018

In this beta we've:

  • Upgraded Apache Tomcat from version 8 to 9
  • Added a new method for document conversions (Data Center only)

For the full run-down on features in this release, head to Confluence 6.10.0-beta release notes

Milestone 61 - 4 June 2018

Supported platforms changes

We've added support for Microsoft SQL Server 2016. 

We also plan to upgrade Apache Tomcat to version 9. This should be available in the next milestone.  

Data Center license required for Read-only mode 

The read-only mode feature has been developed specifically for Confluence Data Center. 

Previously to test read-only mode, you needed to enable a dark feature. Now, the dark feature has been removed and the Maintenance screen appears in the admin console if your site has a Data Center license. 

See Starting a confluence cluster on a single machine to find out how to test your add-on with Data Center. This page also has a 72 hour Data Center license that you can use for testing. 

Backwards compatibility for read-only mode

Thanks for all your feedback on read-only mode so far. We now have a compatibility library that makes it simpler for add-ons to be compatible with read-only mode, while not breaking backwards compatibility with earlier Confluence versions. We're in the process of making the library open source, so stay tuned for updates on that shortly.

To use the compatibility library in you add-on:

  1. Add a new dependency with the compile scope to your plugin’s pom.xml file as follows:

    <dependency>
        <groupId>com.atlassian.confluence.compat</groupId>
        <artifactId>confluence-compat-lib</artifactId>
        <version>1.2.1</version>
    </dependency> 
  2. Import the following OSGi package if you're using amps to build the plugin:

    <Import-Package>
    ...
    com.atlassian.confluence.api.service.accessmode;resolution:="optional",
    ...
    *;resolution:=optional
    </Import-Package>

    Note: you must import it as an optional package with resolution:="optional", or the add-on won't work in older Confluence versions. 

The library provides you the following classes/services to make your add-on work with read-only mode:

Using the ReadWriteAccessModeCondition in a web-item or web-panel descriptor

This ReadWriteAccessModeCondition can be used to make a web-item or web-panel definition visible when the access mode is READ_WRITE (when Confluence is not in read-only mode). For example:

<web-item key="awesomeWebItem" name="AwesomeWebItem" section="system.content.button" weight="150">
    <label key="i18n.label.key"/>
    <tooltip key="i18n.tooltip.key"/>
    <condition class="com.atlassian.confluence.plugin.descriptor.web.conditions.ReadWriteAccessModeCondition"/>
    <condition class="com.atlassian.confluence.plugin.descriptor.web.conditions.PagePermissionCondition">
        <param name="permission">view</param>
    </condition>
    <styleClass>customCssStyle</styleClass>
    <param name="iconClass">customIconClass</param>
</web-item>

In the example above, the awesomeWebItem is only visible if the user has VIEW permission on the page and Confluence is not in read-only mode.

Using the ReadWriteAccessModeUrlReadingCondition in a web-resource descriptor

The ReadWriteAccessModeUrlReadingCondition can be used to make a web-resource definition available for download when the access mode is READ_WRITE (when Confluence is not in read-only mode). For example:

<web-resource key="awesome-resources" name="Awesome Resources">
    <condition class="com.atlassian.confluence.plugin.descriptor.web.urlreadingconditions.ReadWriteAccessModeUrlReadingCondition">
    </condition>
    <resource name="awesome-view.js" type="download" location="awesome-view.js"/>
</web-resource>

In the example above, the awesome-resources is only visible if Confluence is not in read-only mode.

Using the AccessModeCompatService

If your add-on needs to check the access mode in its logic, you can declare a Spring bean and inject this AccessModeCompatService component into a class (preferably in a Service component, XWork action or REST resource) as follows:

<beans:bean id="accessModeCompatService" class="com.atlassian.confluence.compat.api.service.accessmode.impl.DefaultAccessModeCompatService"/>

Another option is to use the Atlassian Spring Scanner library to look up this class at compile time and inject it to the caller service with the @ClasspathComponent annotation.

@Component
public class AwesomeContentService {
    final AccessModeCompatService accessModeCompatService;
    
    @Autowired
    public AwesomeContentService(final AccessModeCompatService accessModeCompatService) {
        // your awesome business logic
    }
}


Using the @ReadOnlyAccessAllowed annotation

The @ReadOnlyAccessAllowed annotation is to bypass the read-only check when a request is served by an XWork action or a REST resource. You can add the annotation to a method, a class, or a package.

For example, an action executed by a sysadmin should be bypassed in read-only mode as follows:

    @ReadOnlyAccessAllowed
@WebSudoRequired
public  class ReIndexAwesomeContentAction extends ConfluenceActionSupport {
    @Override
     public String execute () throws Exception {
       return SUCCESS;
    }
}

WARNING: This annotation must be used for admin actions only or user usage tracking services, for example, recently viewed and analytics. 

Using the @ReadOnlyAccessBlocked annotation

Normally, an action that serves a POST/PUT/DELETE request is blocked in read-only mode by default. However, it can be also blocked while serving a GET request if the action is annotated with @ReadOnlyAccessBlocked as follows:

    @ReadOnlyAccessBlocked
public  class ViewAwesomeContentAction extends ConfluenceActionSupport {
    @Override
     public String execute () throws Exception {
       return SUCCESS;
    }
}


Milestone 52 - 29 May 2018

No significant changes in this milestone.

Milestone 44 - 22 May 2018

No significant changes in this milestone. 

Milestone 32 - 15 May 2018

This is our first public milestone for Confluence 6.10.  

Read-only mode is coming

As previously mentioned, we're currently working on a great new feature to help Data Center customers perform routine maintenance, recover from unexpected problems, or prepare to migrate content to a new site.

Admins will be able to temporarily put their site in "read-only mode" to limit the actions that end users can do.  Users will be able to view pages and their history, but not create, edit, comment, copy or move content .  Administration actions such as changing site configuration are not restricted.

In order to limit the actions that end users can do, we need add-ons to make sure they they also do not allow users to create or update content, while the site is in read-only mode. 

See How to make your add-on compatible with read-only mode in our developer documentation to find out what you need to do. 

Editor TinyMCE upgrade is coming

As previously mentioned, we're currently working on upgrading the Confluence editor from TinyMCE version 3 to version 4. 

We don't expect this upgrade to land in Confluence 6.10, but do encourage you to start testing your add-ons now. See How to test your add-on with the upgraded TinyMCE 4 editor in our developer documentation to find out what you need to do. 


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.

This documentation is intended for Confluence developers who want to ensure that their existing plugins and add-ons are compatible with Confluence 6.10.

We plan to release weekly milestones during the development of Confluence 6.10. 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
20 June 6.10.0-rc1 Download
Issues with this milestone?

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

Changes in Confluence 6.10

Release Candidate 1 - 20 June 2018

Confluence 6.10 is preparing for takeoff! There are no significant changes in this release candidate.

For read-only mode, we've made one small change - ErrorHandler is now MessageController 

Make sure the front-end code handles the error response properly

Beta 1 -13 June 2018

In this beta we've:

  • Upgraded Apache Tomcat from version 8 to 9
  • Added a new method for document conversions (Data Center only)

For the full run-down on features in this release, head to Confluence 6.10.0-beta release notes

Milestone 61 - 4 June 2018

Supported platforms changes

We've added support for Microsoft SQL Server 2016. 

We also plan to upgrade Apache Tomcat to version 9. This should be available in the next milestone.  

Data Center license required for Read-only mode 

The read-only mode feature has been developed specifically for Confluence Data Center. 

Previously to test read-only mode, you needed to enable a dark feature. Now, the dark feature has been removed and the Maintenance screen appears in the admin console if your site has a Data Center license. 

See Starting a confluence cluster on a single machine to find out how to test your add-on with Data Center. This page also has a 72 hour Data Center license that you can use for testing. 

Backwards compatibility for read-only mode

Thanks for all your feedback on read-only mode so far. We now have a compatibility library that makes it simpler for add-ons to be compatible with read-only mode, while not breaking backwards compatibility with earlier Confluence versions. We're in the process of making the library open source, so stay tuned for updates on that shortly.

To use the compatibility library in you add-on:

  1. Add a new dependency with the compile scope to your plugin’s pom.xml file as follows:

    <dependency>
        <groupId>com.atlassian.confluence.compat</groupId>
        <artifactId>confluence-compat-lib</artifactId>
        <version>1.2.1</version>
    </dependency> 
  2. Import the following OSGi package if you're using amps to build the plugin:

    <Import-Package>
    ...
    com.atlassian.confluence.api.service.accessmode;resolution:="optional",
    ...
    *;resolution:=optional
    </Import-Package>

    Note: you must import it as an optional package with resolution:="optional", or the add-on won't work in older Confluence versions. 

The library provides you the following classes/services to make your add-on work with read-only mode:

Using the ReadWriteAccessModeCondition in a web-item or web-panel descriptor

This ReadWriteAccessModeCondition can be used to make a web-item or web-panel definition visible when the access mode is READ_WRITE (when Confluence is not in read-only mode). For example:

<web-item key="awesomeWebItem" name="AwesomeWebItem" section="system.content.button" weight="150">
    <label key="i18n.label.key"/>
    <tooltip key="i18n.tooltip.key"/>
    <condition class="com.atlassian.confluence.plugin.descriptor.web.conditions.ReadWriteAccessModeCondition"/>
    <condition class="com.atlassian.confluence.plugin.descriptor.web.conditions.PagePermissionCondition">
        <param name="permission">view</param>
    </condition>
    <styleClass>customCssStyle</styleClass>
    <param name="iconClass">customIconClass</param>
</web-item>

In the example above, the awesomeWebItem is only visible if the user has VIEW permission on the page and Confluence is not in read-only mode.

Using the ReadWriteAccessModeUrlReadingCondition in a web-resource descriptor

The ReadWriteAccessModeUrlReadingCondition can be used to make a web-resource definition available for download when the access mode is READ_WRITE (when Confluence is not in read-only mode). For example:

<web-resource key="awesome-resources" name="Awesome Resources">
    <condition class="com.atlassian.confluence.plugin.descriptor.web.urlreadingconditions.ReadWriteAccessModeUrlReadingCondition">
    </condition>
    <resource name="awesome-view.js" type="download" location="awesome-view.js"/>
</web-resource>

In the example above, the awesome-resources is only visible if Confluence is not in read-only mode.

Using the AccessModeCompatService

If your add-on needs to check the access mode in its logic, you can declare a Spring bean and inject this AccessModeCompatService component into a class (preferably in a Service component, XWork action or REST resource) as follows:

<beans:bean id="accessModeCompatService" class="com.atlassian.confluence.compat.api.service.accessmode.impl.DefaultAccessModeCompatService"/>

Another option is to use the Atlassian Spring Scanner library to look up this class at compile time and inject it to the caller service with the @ClasspathComponent annotation.

@Component
public class AwesomeContentService {
    final AccessModeCompatService accessModeCompatService;
    
    @Autowired
    public AwesomeContentService(final AccessModeCompatService accessModeCompatService) {
        // your awesome business logic
    }
}


Using the @ReadOnlyAccessAllowed annotation

The @ReadOnlyAccessAllowed annotation is to bypass the read-only check when a request is served by an XWork action or a REST resource. You can add the annotation to a method, a class, or a package.

For example, an action executed by a sysadmin should be bypassed in read-only mode as follows:

    @ReadOnlyAccessAllowed
@WebSudoRequired
public  class ReIndexAwesomeContentAction extends ConfluenceActionSupport {
    @Override
     public String execute () throws Exception {
       return SUCCESS;
    }
}

WARNING: This annotation must be used for admin actions only or user usage tracking services, for example, recently viewed and analytics. 

Using the @ReadOnlyAccessBlocked annotation

Normally, an action that serves a POST/PUT/DELETE request is blocked in read-only mode by default. However, it can be also blocked while serving a GET request if the action is annotated with @ReadOnlyAccessBlocked as follows:

    @ReadOnlyAccessBlocked
public  class ViewAwesomeContentAction extends ConfluenceActionSupport {
    @Override
     public String execute () throws Exception {
       return SUCCESS;
    }
}


Milestone 52 - 29 May 2018

No significant changes in this milestone.

Milestone 44 - 22 May 2018

No significant changes in this milestone. 

Milestone 32 - 15 May 2018

This is our first public milestone for Confluence 6.10.  

Read-only mode is coming

As previously mentioned, we're currently working on a great new feature to help Data Center customers perform routine maintenance, recover from unexpected problems, or prepare to migrate content to a new site.

Admins will be able to temporarily put their site in "read-only mode" to limit the actions that end users can do.  Users will be able to view pages and their history, but not create, edit, comment, copy or move content .  Administration actions such as changing site configuration are not restricted.

In order to limit the actions that end users can do, we need add-ons to make sure they they also do not allow users to create or update content, while the site is in read-only mode. 

See How to make your add-on compatible with read-only mode in our developer documentation to find out what you need to do. 

Editor TinyMCE upgrade is coming

As previously mentioned, we're currently working on upgrading the Confluence editor from TinyMCE version 3 to version 4. 

We don't expect this upgrade to land in Confluence 6.10, but do encourage you to start testing your add-ons now. See How to test your add-on with the upgraded TinyMCE 4 editor in our developer documentation to find out what you need to do. 


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 Jun 20, 2018

Was this helpful?

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