Bamboo 5.10 EAP developer notes

Atlassian is proud to present Bamboo 5.10 EAP. This public development release is part of our Early Access Program (EAP) leading up to the official Bamboo 5.10 release. We are making these EAP milestones publicly available so that developers can start assessing the impact of the changes that we are making.

It is our intention to notify you, our plugin developers, as far in advance as possible of everything we know that could possibly affect your plugins. We will update this page as the release progresses, so please watch this page or check back regularly to keep on top of the changes.

Important

Development releases are snapshots of the ongoing Bamboo development process. For that reason:

  • While we try to keep these releases stable, they have not undergone the same degree of testing as a full release.
  • Features in development releases may be incomplete, or may change or be removed before the next full release.

Atlassian doesn't support any upgrade or downgrade path for EAP releases

Development releases represent work in progress and we cannot provide a supported upgrade path between development releases, or from any development release to the eventual final release.

EAP releases should not be used in production environments as they are not officially supported. For all production use and testing of Bamboo, please use the latest official release instead.


Summary of changes

We're introducing the following changes:

Change
Comment
JDK8 as a minimum runtime and compile requirement

Bamboo 5.10.x doesn't run or compile on JDK less than 8.

Plugin developers can now use all new shiny Java 8 goodies including streams and lambdas.

Bamboo runs on Tomcat 8

Bamboo 5.10.x runs on Tomcat 8.

For more information about upgrading your project configuration, see Starting Bamboo and running integration tests.

Servlet API upgrade (3.0.1)

Bamboo 5.10.x runs on Tomcat 8 and therefore provides servlet API 3.0. Make sure that your plugin is compatible with the servlet API 3.0.

For more information, see Building plugins against custom versions of Bamboo.

Plugins framework (4.0.4)

This is an upgrade of the way in which Bamboo transforms and loads plugins.

SAL upgrade (3.0.2)

For more information, see SAL 3.0 Upgrade Guide.

Soy Renderer upgrade

The new soy compiler used by Bamboo is more restrictive when it comes to the template syntax. Make sure that your templates are properly compiling in runtime.

REST 3.0 upgrade We've upgraded REST to 3.0.2.

For more information about API changes in the Bamboo 5.10 EAP, see API changes for Bamboo 5.10 EAP.

Bamboo 5.10 EAP upgrade guidelines

Follow the guidelines below and see the Known issues section to prepare for the upgrade.

Building plugins against custom versions of Bamboo 

To simplify testing against new Bamboo and maintain backwards compatibility, make sure that the plugin POM imports the component versions from com.atlassian.platform:platform and com.atlassian.platform:third-party.

<properties>
    <bamboo.version>5.9.3<bamboo.version>
    <platform.version>2.21.3</platform.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.atlassian.platform</groupId>
            <artifactId>platform</artifactId>
            <version>${platform.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.platform</groupId>
            <artifactId>third-party</artifactId>
            <version>${platform.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Your dependencies shouldn't override the artifacts versions defined by Java Platform and should use the bamboo.version property to specify the version of Bamboo to compile against.

<dependencies>
    <dependency>
        <groupId>com.atlassian.bamboo</groupId>
        <artifactId>bamboo-api</artifactId>
        <version>${bamboo.version}</bamboo.version>
        <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.sal</groupId>
        <artifactId>sal-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-library</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Testing compile-time compatibility with Bamboo is as simple as:

mvn clean test -Dbamboo.version=5.10.0-beta01 -Dplatform.version=3.0.4

Starting Bamboo and running integration tests 

To start Bamboo and run integration tests against Bamboo 5.10, AMPS needs to be instructed to run Tomcat 8 as a container with the containerId configuration parameter:

  <build>
    <plugins>
      <plugin>
        <groupId>com.atlassian.maven.plugins</groupId>
        <artifactId>maven-bamboo-plugin</artifactId>
        <version>${amps.version}</version>
        <extensions>true</extensions>
        <configuration>
          <productVersion>${bamboo.version}</productVersion>
          <productDataVersion>${bamboo.data.version}</productDataVersion>
          <containerId>tomcat8x</containerId>
        </configuration>
      </plugin>
    </plugins>
  </build>

 

Then running integration tests is as simple as:

mvn clean integration-test -Dbamboo.version=5.10.0-beta01 -Dplatform.version=3.0.4

In case of more complicated POMs, you might consider using POM profiles to separate dependencies and AMPS configuration. 

Specific test dependencies

If your plugin tests contain WebDriver or wired tests, it should use the following dependencies:

<!-- Atlassian Webdriver dependencies -->
<dependency>
  <groupId>com.atlassian.browsers</groupId>
  <artifactId>atlassian-browsers-auto</artifactId>
  <version>2.6</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>com.atlassian.selenium</groupId>
  <artifactId>atlassian-webdriver-core</artifactId>
  <version>2.3-m8</version>
  <scope>test</scope>
</dependency>

<!-- wired test runner dependencies -->
<dependency>
  <groupId>com.atlassian.plugins</groupId>
  <artifactId>atlassian-plugins-osgi-testrunner</artifactId>
  <version>1.2.3-bamboo-5</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>javax.ws.rs</groupId>
  <artifactId>jsr311-api</artifactId>
  <version>1.1.1</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.2.2-atlassian-1</version>
  <scope>provided</scope>
</dependency>

Manual plugin tests

If the plugin has no integration test or if you just want to run Bamboo with the plugin loaded, use:

atlas-debug -Dbamboo.version=5.10.0-beta01 -Dplatform.version=3.0.4

Features

The features won't cause any breakages and will be announced with the official Bamboo 5.10 release.

Known issues 

Issue Comment

BAM-16446

If you change repository details (including authentication) in the plan, the information is not propagated to all plan branches.

You shouldn't revoke the existing keys in Bitbucket Server and use Bamboo to create new ones or your existing plan branches will stop working.

Was this page helpful?

Have a question about this article?

See questions about this article

Powered by Confluence and Scroll Viewport