close

Spring Cloud Dalston M1 Released

On behalf of the community, I am pleased to announce that Milestone 1 (M1) of the Spring Cloud Dalston Release Train is available today. The release can be found in our Spring Milestone repository. You can check out the Dalston release notes for more information.

Notable Changes in the Dalston Release Train

Spring Cloud Vault Config is a new project that provides client-side support for externalized secret management in a distributed system via Hashicorp Vault.

Config Server

Hashicorp Vault was previously added as a backend to Config Server to go along with the VCS based backends. Config Server now has support for multiple backends via a Composite pattern. This allows for combinations of backend types that was not possible before, such as: Vault and git or multiple git backends. Authentication to git repositories hosted by AWS Codecommit is now supported.

Spring Cloud Commons

Since the beginning of these Spring Cloud Core modules (Commons, Config, Netflix, Bus), implementations of DiscoveryClient have automatically registered the running client with the discovery server. This was a side effect of the initial Netflix Eureka implementation. Now service registration and discovery of registered services are separate concerns. There is now a ServiceRegistry interface that Spring Cloud Netflix, Consul and Zookeeper all implement. By default, the client is still auto-registered, but this can be disabled via the autoRegister attribute of @EnableDiscoveryClient or dynamically via a property. This also allows multiple services per JVM to be registered programatically. Look for a future blog post for further details.

Support for @LoadBalanced AsyncRestTemplate was contributed by the community.

Sleuth

Support for a general-purpose context propagation system has been added to Sleuth. It is called baggage and allows for arbitray attributes to be passed through boundaries, such as HTTP or messaging, using Sleuth’s already built instrumentation.

Contract

Contract was enhanced to support more flexibility for contract inputs and outputs. Pact support was added for reading contracts as opposed to the Groovy DSL. Contract was made more pluggable allowing custom DSL formats, Test & Stub generation, and Stub Runner implementations.

Consul

Besides support for the new ServiceRegistry API, Spring Cloud Consul supports the Consul feature to deregister zombie services (ie services that fail health checks for a configurable amount of time will be removed from Consul).

Other

Dalston is based on Spring Boot 1.5.x and that is the minimum required version. Other changes include upgrades to various libraries, bug fixes, documentation, and polishing. Many thanks to all the community contributions of pull requests and issues.

The following modules were updated as part of Dalston.M1:

Module Version
Spring Cloud AWS 1.2.0.M1
Spring Cloud Build 1.3.1.M1
Spring Cloud Bus 1.3.0.M1
Spring Cloud Cloudfoundry 1.1.0.M1
Spring Cloud Commons 1.2.0.M1
Spring Cloud Config 1.3.0.M2
Spring Cloud Consul 1.2.0.M1
Spring Cloud Contract 1.1.0.M1
Spring Cloud Netflix 1.3.0.M1
Spring Cloud Security 1.2.0.M1
Spring Cloud Sleuth 1.2.0.M1
Spring Cloud Stream Chelsea.M1
Spring Cloud Task 1.1.2.RELEASE
Spring Cloud Vault Config 1.0.0.M2
Spring Cloud Zookeeper 1.1.0.M1

NOTE: Spring Cloud CLI 1.2.0.M1 will be released later.

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

To get started with Maven with a BOM (dependency management only)

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>http://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<dependencyManagement>
  <dependencies>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Dalston.M1</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 "io.spring.gradle:dependency-management-plugin:1.0.0.RELEASE"
  }
}
repositories {
    maven {
        url 'http://repo.spring.io/milestone'
    }
}
apply plugin: "io.spring.dependency-management"

dependencyManagement {
  imports {
    mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Dalston.M1'
  }
}

dependencies {
    compile 'org.springframework.cloud:spring-cloud-starter-config'
    compile 'org.springframework.cloud:spring-cloud-starter-eureka'
    ...
}
comments powered by Disqus