close

Spring Cloud 2020.0.0-RC1 (aka Ilford) Is Available

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'
...
}
comments powered by Disqus