Spring Cloud 2020.0.0-RC1 (aka Ilford) Is Available

Releases | Ryan Baxter | December 15, 2020 | ...

On 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.

Notable Changes in the 2020 Release Train

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.

Spring Cloud Contract

The Gradle plugin creates a separate classpath when executing tasks.

Spring Cloud Kubernetes

Spring Cloud Commons

  • LoadBalancer - you can now use a custom health verification function and a RestTemplate-based mechanism with HealthcheckServiceInstanceListSupplier (PR
  • LoadBalancerProperties have been repackaged
  • Support has been added for LoadBalancer selecting same instance if available (PR)
  • Support has been added for `LoadBalancer selecting the instance specified by a cookie, if available (PR)

Spring Cloud Function

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.

Spring Cloud Sleuth

Moving OpenTelemetry support to incubator

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"
    }
}

Spring Cloud Task

Spring Cloud Gateway

  • LoadBalancer Lifecycle support has been added (PR)

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'
...
}

Get the Spring newsletter

Thank you!

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all