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 2020 Release Train is available today. You can find the release in the Spring Milestone repository. See the 2020 release notes for more information.
This release requires Spring Boot 2.4.0.
See the wiki for a list of all breaking changes in this release train.
See all of the included issues and pull requests at the Github project.
The Gradle plugin creates a separate classpath when executing tasks.
HealthcheckServiceInstanceListSupplier
(PRLoadBalancer
selecting same instance if available (PR)Spring Cloud Function introduces two new features: support for RSocket and Cloud Events. While we’re in the process of updating documentation with details on these features, you can check out samples and integration test cases to get additional information now. For Cloud Events support, you can look at the Cloud Events samples as well as a recently published blog post. For RSocket support, you can look at some of the test cases demonstrating how functions can be invoked via RSocket.
As OpenTelemetry continues to evolve, we have decided to move OpenTelemetry support from Spring Cloud Sleuth to an incubator project . To continue using OpenTelemetry with Spring Cloud Sleuth, you will need to add the Spring repositories, the spring-cloud-sleuth-otel-dependencies
BOM, and the spring-cloud-sleuth-otel-autoconfigure
dependency.
We have released a 1.0.0-M1
of Spring Cloud Sleuth OTel that is compatible with the 2020.0.0-RC1
release train. The following listings show how to use it in Maven and Gradle:
Maven
<properties>
<spring-cloud-sleuth-otel.version>1.0.0-M1</spring-cloud-sleuth-otel.version>
<spring-cloud.version>2020.0.0-RC1</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-otel-dependencies</artifactId>
<!-- Provide the version of the Spring Cloud Sleuth OpenTelemetry project -->
<version>${spring-cloud-sleuth-otel.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-brave</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-otel-autoconfigure</artifactId>
</dependency>
<repositories>
<repository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>https://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
Gradle
ext {
springCloudSleuthOtelVersion = "1.0.0-M1"
springCloudVersion = "2020.0.0-RC1"
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
mavenBom "org.springframework.cloud:spring-cloud-sleuth-otel-dependencies:${springCloudSleuthOtelVersion}"
}
}
dependencies {
implementation("org.springframework.cloud:spring-cloud-starter-sleuth") {
exclude group: 'org.springframework.cloud', module: 'spring-cloud-sleuth-brave'
}
implementation "org.springframework.cloud:spring-cloud-sleuth-otel-autoconfigure"
}
repositories {
mavenCentral()
maven {
url "https://repo.spring.io/snapshot"
}
maven {
url "https://repo.spring.io/milestone"
}
maven {
url "https://repo.spring.io/release"
}
}
JobApplicationRunner
The following modules were updated as part of 2020.0.0-RC1:
| Module | Version | Issues
|--- |--- |--- |---
| Spring Cloud Circuitbreaker | 2.0.0-RC1 | (issues)
| Spring Cloud Contract | 3.0.0-RC1 | (issues)
| Spring Cloud Kubernetes | 2.0.0-RC1 | (issues)
| Spring Cloud Commons | 3.0.0-RC1 |
| Spring Cloud Openfeign | 3.0.0-RC1 |
| Spring Cloud Cloudfoundry | 3.0.0-RC1 |
| Spring Cloud Security | 3.0.0-RC1 |
| Spring Cloud Bus | 3.0.0-RC1 |
| Spring Cloud Cli | 3.0.0-RC1 |
| Spring Cloud Zookeeper | 3.0.0-RC1 | (issues)
| Spring Cloud Sleuth | 3.0.0-RC1 | (issues)
| Spring Cloud Consul | 3.0.0-RC1 |
| Spring Cloud Gateway | 3.0.0-RC1 |
| Spring Cloud Netflix | 3.0.0-RC1 | (issues)
| Spring Cloud Vault | 3.0.0-RC1 | (issues)
| Spring Cloud Config | 3.0.0-RC1 | (issues)
| Spring Cloud Task | 2.3.0-RC1 | (issues)
As always, we welcome feedback on GitHub, on Gitter, on Stack Overflow, or on Twitter.
The following listings show how to get started with Maven with a BOM (dependency management only) or with Gradle:
Maven with BOM:
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.0-RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</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-netflix-eureka-client</artifactId>
</dependency>
...
</dependencies>
Gradle:
buildscript {
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.2.RELEASE"
}
}
repositories {
maven {
url 'https://repo.spring.io/milestone'
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2020.0.0-RC1'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
...
}