We’re preparing for our Bamboo 7.0 release, which will bring a number of breaking changes . To make sure our app vendors and customers who have written in-house apps are prepared for that release, we’re launching the first Bamboo 7.0 Early Access Program (EAP). This way app developers can update their apps in advance to ensure they will work with the public release of Bamboo 7.0.
We want to give you a heads up that a second EAP will be released around 2 weeks before the release of Bamboo 7.0.
Your feedback is of great value!
Please share any feedback or questions you might have by commenting under this post and our developer team will get back to you.
Important things to note about this EAP release
- This release includes Atlassian Platform 5 upgrade.
- This release should not be used in a production environment .
- This release does not include new features that will be part of the final 7.0 release.
Installing the Bamboo 7.0 EAP release
Links to download installers and archives:
Release notes
Summary of changes
In this section we’re summing up changes we intend to make in Bamboo 7.0, so you can start thinking how it might impact your apps.
Changes to what Bamboo supports
- Introduce support for Oracle 19
- Drop support for Oracle 12R1
- Drop support for PostgreSQL 9.2, 9.3, 9.4
- Deprecate PostgreSQL 9.5
- Deprecate MSSql2012, MSSql2014
- Deprecate CVS
- Deprecate JGit 7.0
- Deprecate Jenkins importer (Bamboo internal plugin)
Spring upgrade
As part of our Platform 5 upgrade, we have upgraded Spring framework to 5.1.8. The main difference that can affect plugins is a change to the default Spring autowiring behaviour from “autodetect” to “constructor”. Apps developers should start to use “constructor” injections.
Summary of version upgrades
Bamboo 7.0 is based on Atlassian Platform 5
Change | Details |
---|---|
Migrated to Spring 5 | *spring-core |
* spring-context | |
* spring-expression | |
* spring-beans | |
* spring-tx | |
* spring-orm | |
* spring-aop | |
* spring-web | |
* spring-context-support | |
* spring-jdbc, spring webmvc | |
→ 5.1.8.RELEASE | |
Updated third-party libraries for Atlassian Platform 5.0.0 compatibility | * servlet-api → 3.1.0 |
* jaxb → 2.3.0 | |
* javax.activation → 1.1.1 | |
* guava → 26.0-jre | |
* commons-lang3 → 3.8 | |
Updated all the platform components for Atlassian Platform 5.0.0 compatibility | * atlassian-plugins → 5.3.6 |
* atlassian-event → 4.0.0 | |
* atlassian-rest → 6.0.5 | |
* atlassian-scheduler → 3.0.0 | |
* caesium → 3.0.0 | |
* parent-poms → 5.0.21 | |
* atlassian-annotations → 2.1.0 | |
* atlassian-trusted-apps → 5.0.0 | |
* atlassian-sal → 4.0.0 | |
* atlassian-soy-templates → 5.0.0 | |
* atlassian-template-renderer → 4.0.0 | |
* atlassian-plugins-webfragment → 5.0.0 | |
* atlassian-failure-cache → 2.0.0 | |
* atlassian-pretty-urls → 3.0.0 | |
* atlassian-spring-scanner → 2.1.7 | |
* atlassian-vcache → 1.12.0 | |
* atlassian-plugins-webresource → 4.0.0 | |
* application-links → 6.0.11 | |
* atlassian-healthcheck →6.0.0 | |
* atlassian-httpclient → 2.0.0 | |
* io.atlassian.fugue → 4.7.1 | |
* amps → 8.0.2 | |
* atlassian-cache → 4.0.0 | |
* atlassian-oauth → 4.0.2 | |
* upm-server → 4.0.11 |
Known issues with existing plugins
Setters require annotations
It’s required to use constructor injection or @Inject/@Autowired annotation
Doesn’t work
private BambooUserManager bambooUserManager;
public void setBambooUserManager(BambooUserManager bambooUserManager) {
this.bambooUserManager = bambooUserManager;
}
Fixed code with @Autowired
annotation
@Autowired
public void setBambooUserManager(BambooUserManager bambooUserManager) {
this.bambooUserManager = bambooUserManager;
}
Or with constructor Injection
public OwnerValidator(BambooUserManager bambooUserManager) {
this.bambooUserManager = bambooUserManager;
}
Don’t use @Component annotation for classes defined at atlassian-plugin.xml
Doesn’t work
@Component
public class TestPlanConfiguration extends BaseConfigurablePlugin implements MiscellaneousPlanConfigurationPlugin {}
atlassian-plugin.xml
<additionalBuildConfigurationPlugin key="testPlanConfiguration" name="Test Plan Configuration"
class="com.atlassian.bamboo.config.TestPlanConfiguration">
<resource type="freemarker" name="edit" location="/templates/planEdit.ftl"/>
</additionalBuildConfigurationPlugin>
Exception in logs
[DependencyWaiterApplicationContextExecutor] Unable to create application
context for [com.atlassian.bamboo-test-plugin],
unsatisfied dependencies: none[INFO] [talledLocalContainer]
org.springframework.beans.factory.BeanDefinitionStoreException:
Failed to parse configuration class
[com.atlassian.bamboo.config.TestPlanConfiguration];
nested exception is java.io.FileNotFoundException:
OSGi resource[classpath:com/atlassian/bamboo/v2/build/configuration/MiscellaneousBuildConfigurationPlugin.class
|bnd.id=125|bnd.sym=com.atlassian.bamboo-test-plugin]
cannot be resolved to URL because it does not exist