Spring Cloud 2020.0.0-M4 (aka Ilford) Is Available

Releases | Ryan Baxter | October 07, 2020 | ...

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

Notable Changes in the 2020 Release Train

This release requires Spring Boot 2.4.0-M3.

Please 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 Commons

  • The bootstrap phase is no longer enabled by default. If your project requires it, it can be re-enabled by properties or by a new starter. To re-enable by properties set spring.cloud.bootstrap.enabled=true or spring.config.use-legacy-processing=true. These need to be set as an environment variable, java system property or a command line argument. The other option is to include the new spring-cloud-starter-bootstrap. Bootstrap is mostly used to import configuration from remote sources. To do this without boostrap see the new features in Config, Consul, Vault and Zookeeper.

  • Added a mechanism to avoid retrying on the same instance

Spring Cloud Sleuth

Spring Cloud Consul

  • Integration for Spring Boot's Config Data API allows import of default consul paths (spring.config.import=consul:) or individual paths (spring.config.import=consul:myhost:8500/my-app,myprofile;other-context-path).
  • Testcontainers is now used for integration tests.

Spring Cloud Config

Spring Cloud Kubernetes

  • Common interfaces from spring-cloud-kubernetes-core have been moved to a new module (#649)

  • Refactor ConfigurationChangeListener (#643)

  • Add support for Spring Cloud LoadBalancer (#562)

Spring Cloud Gateway

  • Moved from spring-cloud-gateway-core module to spring-cloud-gateway-server.
  • Properties to disable filters and predicates.
  • Add actuator endpoint to list RouteDefinition(s).

Spring Cloud Contract

Spring Cloud Bus

  • Migrated to use Spring Cloud Function as the Spring Cloud Stream programming interface rather than legacy annotations.\
  • Actuator endpoints moved from bus-env to busenv and bus-refresh to busrefresh.

Spring Cloud Zookeeper

  • Integration for Spring Boot's Config Data API allows import of default zookeeper paths (spring.config.import=zookeeper:) or individual paths (spring.config.import=zookeeper:myhost:2181/my-app,myprofile;other-context-path).

Spring Cloud Openfeign

Spring Cloud Vault

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

| Module | Version | Issues |--- |--- |--- |--- | Spring Cloud Sleuth | 3.0.0-M4 | (issues) | Spring Cloud Consul | 3.0.0-M4 | (issues) | Spring Cloud Config | 3.0.0-M4 | (issues) | Spring Cloud Kubernetes | 2.0.0-M4 | (issues) | Spring Cloud Gateway | 3.0.0-M4 |
| Spring Cloud Circuitbreaker | 2.0.0-M4 |
| Spring Cloud Contract | 3.0.0-M4 | (issues) | Spring Cloud Starter Build | 2020.0.0-M4 |
| Spring Cloud Netflix | 3.0.0-M4 | (issues) | Spring Cloud Cloudfoundry | 3.0.0-M4 |
| Spring Cloud Security | 3.0.0-M4 |
| Spring Cloud Cli | 3.0.0-M4 |
| Spring Cloud Bus | 3.0.0-M4 | (issues) | Spring Cloud Zookeeper | 3.0.0-M4 | (issues) | Spring Cloud Commons | 3.0.0-M4 | (issues) | Spring Cloud Openfeign | 3.0.0-M4 | (issues) | Spring Cloud Vault | 3.0.0-M4 | (issues)

As always, we welcome feedback 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>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-M4</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>

or with Gradle:

buildscript {
  dependencies {
    classpath "io.spring.gradle:dependency-management-plugin:1.0.9.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-M4'
  }
}

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 for your interest. Someone will get back to you shortly.

Get ahead

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

Learn more

Get support

Tanzu 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