Hello, Atlassian Developer Community!
Back in September of 2023, Atlassian set out on a mission to bolster the Data Center platform by enhancing the security of our Data Center products.
Before we go any further, let me introduce the Data Center platform team who oversees a diverse range of cross-product elements serving as the foundation for Data Center products, including Jira, Confluence, Bitbucket, Bamboo, and Crowd. The team’s primary aim is to minimize maintenance costs while offering development tools and recommendations for a more unified Data Center platform experience.
In 2024, our goal is to meet the security standards for vulnerability solutions and ensure that Marketplace apps remain unaffected by the necessary library upgrades required for patching vulnerabilities.
To achieve this, we’ve centralized dependency management. We’re actively working on Data Center Platform 7.0 that has been slated for adoption in major product releases scheduled for 2024.It’s important to note that this Data Center platform release is primarily internal and will be available as part of the product releases. Nevertheless, marketplace partners can access the platform components through repositories like https://packages.atlassian.com/.
What’s new in Data Center Platform 7.0?
The changes in Data Center Platform 7.0 include:
- Upgrading numerous Atlassian and third-party components so that they benefit from the latest security patches and bug fixes.
- Eliminating Gray APIs (old and unsupported third-party and cross-product libraries with dependencies) from our Data Center products. This will reduce the scope of third-party libraries and improve dependency management. It will also allow us to enhance our Data Center products more frequently in the future without causing disruptions to your apps or requiring extensive testing and rework. If you wish to keep using these libraries, you’ll need to bundle them in your app .
- Other notable updates:
- Revamped Atlassian Rest (we removed Jackson/Jersey and updated JAX-RS to v2)
- Reduced public JAVA API in Atlassian Plugins, WRM, Web Fragments, and LESS
Component and library changes
We’re removing the following third-party dependencies from Data Center Platform 7.0. If you wish to continue using these dependencies, make sure to include them in your app.
Third-party dependency |
---|
com.google.guava:guava
com.google.inject:inject
org.dom4j:dom4j
joda-time:joda-time
commons-digester:commons-digester
opensymphony:oscore
opensymphony:propertyset
opensymphony:sitemesh
com.fasterxml.jackson.core:jackson-annotations
com.sun.jersey
org.tuckey:urlrewritefilter
org.jdom:jdom
log4j:log4j
commons-pool:commons-pool
commons-lang:commons-lang
To enable the removal of the third-party dependencies listed above, we had to ensure they were no longer used in the public API. This means we’ve made changes to the public API of many Atlassian components to decouple them from these third-party dependencies. In some cases, we’ve used the opportunity to consolidate or further restrict the public API where we believe viable alternatives exist. Here’s the full list:
Component | Status |
---|---|
net.java.dev.activeobjects:activeobjects-core |
CHANGED |
com.atlassian.activeobjects:activeobjects-plugin |
CHANGED |
com.atlassian.plugins.authentication:atlassian-authentication-plugin |
REMOVED |
com.atlassian.plugins.authentication:atlassian-authentication-plugin-api |
CHANGED |
com.atlassian.config:atlassian-config |
CHANGED |
com.atlassian.core:atlassian-core |
CHANGED |
com.atlassian:atlassian-failure-cache |
CHANGED |
com.atlassian:atlassian-failure-cache-plugin |
CHANGED |
com.atlassian.plugins:atlassian-nav-links-api |
CHANGED |
com.atlassian.plugins:atlassian-nav-links-plugin |
CHANGED |
com.atlassian.plugins:atlassian-plugins-api |
CHANGED |
com.atlassian.plugins:atlassian-plugins-core |
CHANGED |
com.atlassian.plugins:atlassian-plugins-osgi |
CHANGED |
com.atlassian.plugins:atlassian-plugins-schema |
CHANGED |
com.atlassian.plugins.rest |
REPLACED |
com.atlassian.sal:sal-api |
CHANGED |
com.atlassian.sal:sal-core |
REMOVED |
com.atlassian.sal:sal-spi |
REMOVED |
com.atlassian.sal:sal-spring |
REMOVED |
com.atlassian.scheduler:atlassian-scheduler-caesium |
CHANGED |
com.atlassian.scheduler:atlassian-scheduler-quartz2 |
CHANGED |
com.atlassian.security:atlassian-secure-xml |
CHANGED |
com.atlassian.streams:streams-api |
CHANGED |
com.atlassian.streams:streams-spi |
CHANGED |
com.atlassian.streams:streams-thirdparty-api |
CHANGED |
com.atlassian.upm:upm-api |
CHANGED |
com.atlassian.plugins:atlassian-plugins-webfragment-api |
CHANGED |
com.atlassian.plugins:atlassian-plugins-webfragment |
CHANGED |
com.atlassian.plugins:atlassian-plugins-webresource-api |
CHANGED |
com.atlassian.plugins:atlassian-plugins-webresource |
CHANGED |
com.atlassian.plugins:remote-link-aggregator-api |
CHANGED |
How to prepare for Data Center Platform 7.0?
For a more seamless transition, we’re going to deprecate the Gray APIs. Although they’re already labeled as deprecated, they’re still currently accessible in our ongoing product releases (Jira 9.15, Confluence 8.8, Bitbucket 8.18, and Bamboo 9.6). The majority of these will eventually be phased out in our major product releases. Keep an eye out for updates from the product teams regarding their plans for these releases.
If you wish to check the deprecations, removals, and dependencies not available through the product, you can override the versions of the Maven modules listed above to a newer version. In most cases, the latest versions of the modules include the deprecations planned for Data Center Platform 7.0. Over time, we’ll release milestone versions of these modules that include the changes from Data Center Platform 7.0. You can use these milestone versions to estimate the impact on your apps.
What’s next?
We aim to share updates through community posts as we make progress. Feel free to respond to this post with your feedback or questions. In our upcoming update, we’ll delve into specifics on migrating away from the deprecated API and any additional insights we gather along the way.