Bamboo 7.0 EAP 02 Release Notes

This documentation is intended for Bamboo developers who want to ensure that their existing add-ons are compatible with Bamboo 7.0 as Bamboo 7.0 will contain breaking changes.


Summary of changes

In this section we're summing up changes we intend to make in Bamboo 7.0, and which are already part of Bamboo 7.0 EAP,  so you can start thinking how it might impact your apps.

Divergent branches

Bamboo 7.0 will allow for branch divergence. You'll be able to introduce different configurations on different branches in your Bamboo Specs regardless of the master branch configuration. For now, Bamboo will allow branch divergence for Bamboo Specs stored only in Bitbucket Server.

Changes to what Bamboo supports

  • Introduce support for Oracle 19

  • Introduce support for MsSQL2017
  • 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

Known issues with existing plugins

Setters require annotations

It’s required to use constructor injection or @Inject/@Autowired annotation.

See code samples...

The following piece of code will not work anymore in Bamboo 7.0:

private BambooUserManager bambooUserManager;

public void setBambooUserManager(BambooUserManager bambooUserManager) {
   this.bambooUserManager = bambooUserManager;
}

Use the following code instead:

@Autowired
public void setBambooUserManager(BambooUserManager bambooUserManager) {
   this.bambooUserManager = bambooUserManager;
}
public OwnerValidator(BambooUserManager bambooUserManager) {
   this.bambooUserManager = bambooUserManager;
}

Don’t use @Component annotation for classes defined at atlassian-plugin.xml

See code samples...

The following piece of code will not work anymore in Bamboo 7.0:

@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>

Here's the exception in logs this generates:

[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




Last modified on Feb 13, 2020

Was this helpful?

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