Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreOn behalf of the community, I am pleased to announce that Release Candidate 1 (RC1) 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.
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 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. In the previous (Camden) release, Hashicorp Vault was already added as a backend to Config Server to go along with the VCS based backends.
Since the beginning of the core Spring Cloud 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.
Support for a general-purpose context propagation system has been added to Sleuth. It is called "baggage" and allows for arbitrary attributes to be passed through boundaries, such as HTTP or messaging, using Sleuth's already built instrumentation.
Another feature is the annotation based Span creation and adding of logs and tags. This not only generates less boilerplate code but is also useful when working with frameworks that generate implementations at runtime (such as Spring Data).
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.
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).
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.RC1:
Module | Version |
---|---|
Spring Cloud AWS | 1.2.0.RC1 |
Spring Cloud Build | 1.3.1.RELEASE |
Spring Cloud Bus | 1.3.0.M1 |
Spring Cloud Cloudfoundry | 1.1.0.M1 |
Spring Cloud Commons | 1.2.0.RC1 |
Spring Cloud Config | 1.3.0.RC1 |
Spring Cloud Consul | 1.2.0.RC1 |
Spring Cloud Contract | 1.1.0.RC1 |
Spring Cloud Netflix | 1.3.0.RC1 |
Spring Cloud Security | 1.2.0.RC1 |
Spring Cloud Sleuth | 1.2.0.RC1 |
Spring Cloud Stream | Chelsea.RC1 |
Spring Cloud Task | 1.1.1.RELEASE |
Spring Cloud Vault Config | 1.0.0.RC1 |
Spring Cloud Zookeeper | 1.1.0.RC1 |
Spring Cloud Thin Launcher | 1.1.0.RC1 |
Spring Cloud CLI | 1.3.0.RC1 |
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.RC1</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.RC1'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-eureka'
...
}