Engineering
Releases
News and Events

Spring Cloud Brixton.RELEASE is available

On behalf of the team, I am pleased to announce that the Spring Cloud Brixton Release Train has reached General Availability. The release is available today and can be found in our Spring Release repository and Maven Central.

We would like to thank many community contributors and testers for their help. There have been many pull requests, issues and conversations that have made Spring Cloud Brixton better.

Highlights

Some of the highlights of the Brixton Release Train are:

  • Spring Boot 1.3.x and Spring Framework 4.2.x support
  • Hashicorp Consul support for service registration/discovery & configuration via Spring Cloud Consul
  • Apache Zookeeper support for service registration/discovery, configuration via Spring Cloud Zookeeper and leader election in Spring Cloud Cluster
  • Distributed tracing through the Spring Cloud Sleuth abstraction with two out of the box implementations: one supporting logging (ideal for log collectors and multiplexers like Logstash and Loggregator) and one supporting Twitter’s Zipkin
  • Netflix Atlas Telemetry System, the next generation Spectator Metrics library and recent versions of Eureka, Ribbon, Hystrix and Feign are available in Spring Cloud Netflix
  • Spring Cloud Bus is now powered by the recently released Spring Cloud Stream
  • Cluster Leadership election and locks via Spring Cloud Cluster
  • Export of Spring Boot metrics to Amazon Cloudwatch, and native support for Amazon RDS

The following modules are part of Brixton.RELEASE:

And, as always, we welcome feedback: either in GitHub, on Stack Overflow, or on Twitter.

Roadmap

The next Spring Cloud Release Train will be called Camden and will follow as soon as possible after Spring Boot 1.4.

Notes:

A @LoadBalanced RestTemplate is no longer created by default. See the updated documentation for details. You need to create it in your application’s configuration. For example:

@Configuration
public class MyConfiguration {

    @LoadBalanced
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

Please note the correct BOM to use is spring-cloud-dependencies not spring-cloud-starter-parent (see Getting Started below).

Migrating Spring Cloud Hystrix, Turbine and Bus with AMQP

The Bus, Hystrix and Turbine support that used to be implemented on top of Spring AMQP have all been migrated to use Spring Cloud Stream. The old artifacts still exist, but are deprecated and will be removed at some point. Instead of the spring-cloud-*-amqp artifacts you should use whatever raw feature you need, plus a stream binder of your choice, e.g. spring-cloud-netflix-hystrix-stream and spring-cloud-starter-stream-rabbit instead of spring-cloud-netflix-hystrix-amqp.

Angel Brixton (with AMQP) Brixton (with Kafka)
spring-cloud-starter-bus-amqp spring-cloud-starter-bus-amqp spring-cloud-starter-bus-kafka
spring-cloud-netflix-hystrix-amqp spring-cloud-netflix-hystrix-stream spring-cloud-starter-stream-rabbit spring-cloud-netflix-hystrix-stream spring-cloud-starter-stream-kafka
spring-cloud-starter-turbine-amqp spring-cloud-starter-turbine-stream spring-cloud-starter-stream-rabbit spring-cloud-starter-turbine-stream spring-cloud-starter-stream-kafka

NOTE: There is still a spring-cloud-netflix-hystrix-amqp in the Brixton release, but it was (mistakenly) omitted from the BOM, so you will need to provide a version explicitly if you are upgrading and don’t want to change the artifacts.

Getting Started

The easiest way to get started with Brixton.RELEASE is to head to http://start.spring.io. If you want to write your build file by hand with Maven with a BOM (dependency management only):


<dependencyManagement> <dependencies> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.RELEASE</version> <type>pom</type> <scope>import</scope> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> ... </dependencies>

or with Gradle:

buildscript {
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE")
  }
}
repositories {
  maven {
    mavenCentral()
  }
}
apply plugin: 'spring-boot'

dependencyManagement {
  imports {
    mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Brixton.RELEASE'
  }
}

dependencies {
    compile 'org.springframework.cloud:spring-cloud-starter-config'
    compile 'org.springframework.cloud:spring-cloud-starter-eureka'
    //...
}

If you are attending the Spring I/O conference next week there will be various presentations on Spring Cloud from myself, Josh Long, Dave Syer and others.

This is also a reminder that Spring One Platform will be taking place in Las Vegas between August 1-4 this year, and you should consider getting your ticket if you haven’t done so already.

comments powered by Disqus