close

Spring Cloud 2020.0.0-M1 Released

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

Notable Changes in the 2020 Release Train

We have changed our release train versioning scheme. We now follow Calendar Versioning or calver for short. We will follow the YYYY.MINOR.MICRO scheme where MINOR is an incrementing number that starts at zero each year. The MICRO segment corresponds to suffixes previously used: .0 is analogous to .RELEASE and .2 is analogous to .SR2. Pre-release suffixes will also change from using a . to a - for the separator, for example 2020.0.0-M1 and 2020.0.0-RC2. We will also stop prefixing snapshots with BUILD- – for example 2020.0.0-SNAPSHOT.

We will continue to use London Tube Station names for code names. The current codename is Ilford. These names will no longer be used in versions published to maven repositories.

Spring Cloud AWS and Spring Cloud GCP are no longer part of the release train. They will continue to be part of Hoxton as long as it is supported – at least thru June of 2021. Spring Cloud GCP will continue on as a separate project in https://github.com/GoogleCloudPlatform.

Initial milestones are based on Spring Boot 2.3.x but will shift to 2.4.x once that line has started.

The 2020.0 Release Train will be available on https://start.spring.io once development has started on the next feature release of Spring Boot (2.4.0). Please see Getting Started, below, for instructions on including this release in your project.

In all, a total of 183 issues, enhancements, bugs and pull requests were included in this release. See the GitHub project for details.

Spring Cloud Netflix

  • All of the maintence mode projects have been removed and all dependent projects were updated accordingly.
  • Added zoned loadBalancer implementation support #3720
  • Removed deprecated EurekaDiscoveryClient.EurekaServiceInstance #3742

Spring Cloud Sleuth

Updated to support the latest version of Brave.

Spring Cloud Consul

Support was added for Consul Service Metadata rather than using tags as metadata.

Spring Cloud Gateway

Service Instance metadata is now added to Route metadata. Support was added for modifying request or response bodies even if the body was empty. An option to ignore route definition errors was added.

Spring Cloud CircuitBreaker

  • Upgraded Resilience4J to 1.3.1

Spring Cloud Contract

Support was added for incremental test generation in the Maven plugin. Support was added for Spring Cloud Loadbalancer in stubrunner.

Spring Cloud Zookeeper

  • Switch Ribbon-based functionalities were added to Spring Cloud LoadBalancer #240

Spring Cloud Commons

  • Added a property source that produces a random value that is cached #719
  • Removed Spring Cloud LoadBalancer Ribbon integration #691

Spring Cloud Openfeign

  • Adjusted to LoadBalancer implementation changes #300

Included Modules

The following modules were updated as part of 2020.0.0-M1:

Module Version Issues
Spring Cloud Netflix 3.0.0.M1 (issues)
Spring Cloud Function 3.1.0.M1  
Spring Cloud Sleuth 3.0.0.M1 (issues)
Spring Cloud Consul 3.0.0.M1 (issues)
Spring Cloud Kubernetes 2.0.0.M1  
Spring Cloud Gateway 3.0.0.M1 (issues)
Spring Cloud Circuitbreaker 2.0.0.M1  
Spring Cloud Contract 3.0.0.M1 (issues)
Spring Cloud Config 3.0.0.M1  
Spring Cloud Build 3.0.0.M1  
Spring Cloud Cloudfoundry 3.0.0.M1  
Spring Cloud Security 3.0.0.M1  
Spring Cloud Bus 3.0.0.M1  
Spring Cloud Vault 3.0.0.M1  
Spring Cloud Zookeeper 3.0.0.M1 (issues)
Spring Cloud Commons 3.0.0.M1 (issues)
Spring Cloud Openfeign 3.0.0.M1 (issues)

As always, we welcome feedback on GitHub, on Gitter, on Stack Overflow, and on Twitter.

Getting Started

To get started with Maven with a BOM (dependency management only):
<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-M1</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>

To get started with Gradle:

plugins {
  id 'org.springframework.boot' version '2.3.0.M4'
  id 'io.spring.dependency-management' version '1.0.9.RELEASE'
  id 'java'
}

repositories {
  mavenCentral()
  maven { url 'https://repo.spring.io/milestone' }
}

ext {
  set('springCloudVersion', "2020.0.0-M1")
}

dependencyManagement {
  imports {
    mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
  }
}

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