Announcement: Bamboo 7.0 Early Access Program (EAP) release

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
4 Likes

Thanks for the detailed heads up Martyna, much appreciated!

There have already been Bamboo Early Access Program Downloads in the (distant) past btw., so it’s great that your team is picking this practice up again - maybe you could also adopt those existing pages so that the Bamboo DX better aligns with the other Atlassian EAP programs for Bitbucket Server, Confluence, Crowd, and Jira?

We are glad to hear that you find it useful!

Thank you for pointing this out! We will definitely look into it. As the previous Bamboo EAPs have been done in a distant past we need a bit of practice to make the process perfect but we should get there with time :slight_smile:

3 Likes

https://www.atlassian.com/software/bamboo/download-eap - fixed :slight_smile:

2 Likes

Thanks for heads up! :slight_smile:

1 Like