Spring Cloud 2020.0.0-M4 (aka Ilford) Is Available
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
orspring.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 newspring-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.
Spring Cloud Sleuth
-
Further updates of Reactor based manual instrumentation
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
- Integration for Spring Boot’s Config Data API allows import from config server (
spring.config.import=configserver:
). - Allows composite Config Server to log failures and continue processing.
- Support for Config Client TLS certificates.
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 tospring-cloud-gateway-server
. - Properties to disable filters and predicates.
- Add actuator endpoint to list RouteDefinition(s).
Spring Cloud Contract
- Updated various libraries
- Added
Custom Mode
of test generation - Added GraphQL support
- Added Messaging Polyglot support
- Lowered the size of Stub Runner Boot and added messaging options to it
- Added meta-data to contract definition
- Added simple GRPC support
- Described how to run your polyglot tests against running messaging middleware
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
tobusenv
andbus-refresh
tobusrefresh
.
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
- Added LoadBalancer hint support
- Exposed
Targetter
andFeignClientFactoryBean
- Added customizer for
FeignClientBuilder
Spring Cloud Vault
- Integration for Spring Boot’s Config Data API allows import of default vault secret backends (
spring.config.import=vault://
) or individual secret backend paths (spring.config.import=vault://secret/my-app,vault://secret/other-context-path
) - Support for
ReactiveDiscoveryClient
andReactiveVaultEndpointProvider
WebClientFactory
andRestTemplateFactory
available as beans- Configurable keystory type including PEM support
- Transform Secrets Engine support (Vault Enterprise feature)
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'
//...
}