-
Notifications
You must be signed in to change notification settings - Fork 182
Spring Cloud 2020.0 Release Notes
2022-06-30
- Spring Cloud Netflix
3.0.6
- Spring Cloud Config
3.0.7
- Spring Cloud Sleuth
3.0.6
(issues) - Spring Cloud Gateway
3.0.8
- Spring Cloud Cloudfoundry
3.0.3
- Spring Cloud Contract
3.0.6
(issues) - Spring Cloud Kubernetes
2.0.6
- Spring Cloud Zookeeper
3.0.5
- Spring Cloud Cli
3.0.4
- Spring Cloud Task
2.3.5
- Spring Cloud Starter Build
2020.0.6
- Spring Cloud Openfeign
3.0.7
- Spring Cloud Vault
3.0.5
- Spring Cloud Commons
3.0.6
2021-12-16
- Spring Cloud Netflix
3.0.5
(issues) - Spring Cloud Config
3.0.6
(issues) - Spring Cloud Sleuth
3.0.5
(issues) - Spring Cloud Gateway
3.0.6
(issues) - Spring Cloud Cloudfoundry
3.0.3
- Spring Cloud Contract
3.0.5
(issues) - Spring Cloud Kubernetes
2.0.5
(issues) - Spring Cloud Zookeeper
3.0.5
(issues) - Spring Cloud Cli
3.0.4
- Spring Cloud Task
2.3.5
- Spring Cloud Starter Build
2020.0.5
- Spring Cloud Openfeign
3.0.6
(issues) - Spring Cloud Vault
3.0.5
(issues) - Spring Cloud Commons
3.0.5
(issues)
2021-09-22
- Spring Cloud Cloudfoundry
3.0.2
- Spring Cloud Config
3.0.5
- Spring Cloud Contract
3.0.4
- Spring Cloud Consul
3.0.4
- Spring Cloud Gateway
3.0.4
- Spring Cloud Netflix
3.0.4
- Spring Cloud Vault
3.0.4
- Spring Cloud Kubernetes
2.0.4
- Spring Cloud Circuitbreaker
2.0.2
- Spring Cloud Bus
3.0.3
- Spring Cloud Cli
3.0.3
- Spring Cloud Zookeeper
3.0.4
- Spring Cloud Sleuth
3.0.4
- Spring Cloud Starter Build
2020.0.4
- Spring Cloud Task
2.3.2
- Spring Cloud Commons
3.0.4
- Spring Cloud Openfeign
3.0.4
Actuator is no longer a required dependency of config server 1742
2021-05-28
- Spring Cloud Cloudfoundry
3.0.2
- Spring Cloud Config
3.0.4
(issues) - Spring Cloud Contract
3.0.3
(issues) - Spring Cloud Consul
3.0.3
(issues) - Spring Cloud Gateway
3.0.3
(issues) - Spring Cloud Netflix
3.0.3
(issues) - Spring Cloud Vault
3.0.3
- Spring Cloud Kubernetes
2.0.3
(issues) - Spring Cloud Circuitbreaker
2.0.2
- Spring Cloud Bus
3.0.3
- Spring Cloud Cli
3.0.3
- Spring Cloud Zookeeper
3.0.3
(issues) - Spring Cloud Sleuth
3.0.3
(issues) - Spring Cloud Starter Build
2020.0.3
- Spring Cloud Task
2.3.2
- Spring Cloud Commons
3.0.3
(issues) - Spring Cloud Openfeign
3.0.3
(issues)
This release makes it possible for all projects except for Spring Cloud Contract to use Spring Boot 2.5. Spring Boot 2.5 includes a major update of Groovy that can lead to various issues while using Spring Cloud Contract.
Requires Spring Boot 2.4.3
2021-03-17
- Spring Cloud Cloudfoundry
3.0.1
(issues) - Spring Cloud Commons
3.0.2
(issues) - Spring Cloud Config
3.0.3
(issues) - Spring Cloud Contract
3.0.2
(issues) - Spring Cloud Consul
3.0.2
(issues) - Spring Cloud Gateway
3.0.2
(issues) - Spring Cloud Netflix
3.0.2
(issues) - Spring Cloud Circuitbreaker
2.0.1
(issues) - Spring Cloud Zookeeper
3.0.2
- Spring Cloud Kubernetes
2.0.2
(issues) - Spring Cloud Vault
3.0.2
(issues) - Spring Cloud Task
2.3.1
- Spring Cloud Sleuth
3.0.2
(issues) - Spring Cloud Bus
3.0.2
- Spring Cloud Cli
3.0.2
- Spring Cloud Starter Build
2020.0.2
- Spring Cloud Openfeign
3.0.2
(issues)
2021-01-27
- Spring Cloud Openfeign
3.0.1
(issues) - Spring Cloud Config
3.0.2
(issues) - Spring Cloud Commons
3.0.1
(issues) - Spring Cloud Contract
3.0.1
(issues) - Spring Cloud Consul
3.0.1
(issues) - Spring Cloud Gateway
3.0.1
(issues) - Spring Cloud Netflix
3.0.1
(issues) - Spring Cloud Zookeeper
3.0.1
(issues) - Spring Cloud Vault
3.0.1
(issues) - Spring Cloud Kubernetes
2.0.1
(issues) - Spring Cloud Sleuth
3.0.1
(issues) - Spring Cloud Bus
3.0.1
(issues) - Spring Cloud Cli
3.0.1
(issues) - Spring Cloud Starter Build
2020.0.1
- 2020.0.0 Spring Cloud Consul: Retry support has not been added yet using
spring.config.import=consul:
. Follow the issue here. The workaround is to use the old bootstrap style by includingspring-cloud-starter-bootstrap
.
Spring Cloud Config 3.0.1 has been released to fix the issues below. Please use version 2020.0.1 which includes all the fixes below.
- 2020.0.0 Spring Cloud Config: Retry support is missing for
spring.config.import=configserver:
. Follow the issue here. For a workaround, continue to usebootstrap.{yml|properties}
and add a dependency onspring-cloud-starter-bootstrap
to restore the old behavior. - 2020.0.0 Spring Cloud Config: spring-cloud-config-dependencies imports a milestone of spring-vault. Follow the issue here. See a workaround here
- 2020.0.0 Spring Cloud Config: using
spring.config.import
value ofspring.profiles.active
not being used. Follow the issue and see workarounds here. - 2020.0.0 Spring Cloud Config: Multi-document YAML and properties files from config server have the same property source name which leads to a missing property source. Follow the issue here.
-
As announced, the following modules have been removed from spring-cloud-netflix:
- spring-cloud-netflix-archaius
- spring-cloud-netflix-concurrency-limits
- spring-cloud-netflix-core
- spring-cloud-netflix-dependencies
- spring-cloud-netflix-hystrix
- spring-cloud-netflix-hystrix-contract
- spring-cloud-netflix-hystrix-dashboard
- spring-cloud-netflix-hystrix-stream
- spring-cloud-netflix-ribbon
- spring-cloud-netflix-sidecar
- spring-cloud-netflix-turbine
- spring-cloud-netflix-turbine-stream
- spring-cloud-netflix-zuul
- spring-cloud-starter-netflix-archaius
- spring-cloud-starter-netflix-hystrix
- spring-cloud-starter-netflix-hystrix-dashboard
- spring-cloud-starter-netflix-ribbon
- spring-cloud-starter-netflix-turbine
- spring-cloud-starter-netflix-turbine-stream
- spring-cloud-starter-netflix-zuul
- Support for ribbon, hystrix and zuul was removed across the release train projects.
-
Bootstrap, provided by spring-cloud-commons, 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 new
spring-cloud-starter-bootstrap
.
- To re-enable by properties set
-
Support has been added for the new Spring Boot
spring.config.import
syntax for Config Server, Consul, Zookeeper and Vault. The existing properties to configure the different services are still supported but need to be put inapplication.properties
orapplication.yml
.spring.config.import=configserver:
spring.config.import=consul:
spring.config.import=zookeeper:
spring.config.import=vault:
-
Spring Cloud Consul removed the old tags-as-metadata functionality issue
-
Previously the property to disable the Spring Cloud Config Client Health Indicator was
health.config.enabled=false
. It is nowmanagement.health.config.enabled=false
following the Spring Boot convention. -
Spring Cloud Security was removed and code was moved to the individual Spring Cloud projects.
-
The
spring-cloud-gateway-core
module was moved tospring-cloud-gateway-server
. If you are usingspring-cloud-gateway-starter
this will not be an issue. -
The implementation of spring-cloud-bus was migrated to use spring-cloud-function instead of the legacy annotation-driven model. This should have minimal effect on users.
-
spring-cloud-stream
is now an optional dependency ofspring-cloud-bus
. If you are using a binder other than rabbitmq or kafka you will need to inclue the newspring-cloud-starter-bus-stream
. -
Actuator endpoints with invalid characters (dashes) have been updated to remove them:
-
bus-env
is nowbusenv
-
bus-refresh
is nowbusrefresh
-
service-registry
is nowserviceregistry
-
-
In Spring Cloud Config, the endpoints from the resource API that used the
useDefaultLabel
query parameter have been removed. -
As announced Spring Cloud GCP is no longer part of the Spring Cloud release train
- Code that was not dependent on any Kubernetes client was moved into a module name
spring-cloud-kubernetes-commons
- Packages were renamed to be Fabric8 specific. Any package that began with
org.springframework.cloud.kubernetes
has been renamed tooorg.springframework.cloud.kubernetes.fabric8
- There are alternate implementations for much of the functionality in Spring Cloud Kubernetes using the Kubernetes Java Client.
Functionality | Starter |
---|---|
Kubernetes Detection | spring-cloud-kubernetes-client |
Configuration | spring-cloud-starter-kubernetes-client-config |
Loadbalancer | spring-cloud-starter-kubernetes-client-loadbalancer |
Discovery | spring-cloud-starter-kubernetes-client-all |
NOTE: When using the new Informer based DiscoveryClient you must give cluster wide permissions to the app due to a bug in the Kubernetes Java Client
- Classes related to event based and polling configuration change listeners have now been split up PR 644
Old Starter | Renamed Starter |
---|---|
spring-cloud-starter-kubernetes | spring-cloud-starter-kubernetes-fabric8 |
spring-cloud-starter-kubernetes-config | spring-cloud-starter-kubernetes-fabric8-config |
spring-cloud-starter-kubernetes-all | spring-cloud-starter-kubernetes-fabric8-all |
spring-cloud-starter-kubernetes-loadbalancer | spring-cloud-starter-kubernetes-fabric8-loadbalancer |
Most notable breaking changes:
OpenTelemetry was unable to provide a reliable GA date of their modules. We've decided to remove OpenTelemetry support from Spring Cloud Sleuth and move it to incubator https://github.com/spring-cloud-incubator/spring-cloud-sleuth-otel/ . If you want to continue using OpenTelemetry with Spring Cloud Sleuth you need to add the Spring repositories, the spring-cloud-sleuth-otel-dependencies
BOM and 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.
.Maven
<properties>
<spring-cloud-sleuth-otel.version>1.0.0-M1</spring-cloud-sleuth-otel.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<!-- Provide the latest stable Spring Cloud release train version (e.g. 2020.0.0) -->
<version>${release.train.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>
<!-- You 'll need those to add OTel support -->
<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"
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${releaseTrainVersion}"
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"
}
}
- New modules:
spring-cloud-sleuth-autoconfigure
,spring-cloud-sleuth-api
,spring-cloud-sleuth-instrumentation
spring-cloud-sleuth-core
removed and changed tospring-cloud-sleuth-instrumentation
&spring-cloud-sleuth-api
- Removed
spring-cloud-starter-sleuth-otel
To add OpenTelemetry support you need to addspring-cloud-starter-sleuth
(adds Brave by default), exclude Brave and addspring-cloud-sleuth-otel
dependency - Except for the tests,
spring-cloud-sleuth-autoconfigure
is the only module that can have access to@Configuration
,@ConfiguraationProperties
classes. Tests have been added to ensure such separation.
-
org.springframework.cloud.sleuth.api
->org.springframework.cloud.sleuth
-
org.springframework.cloud.sleuth.brave.autoconfig
->org.springframework.cloud.sleuth.autoconfig.brave
-
org.springframework.cloud.sleuth.otel.autoconfig
->org.springframework.cloud.sleuth.autoconfig.otel
-
org.springframework.cloud.sleuth
->org.springframework.cloud.sleuth
- Instrumentation:
org.springframework.cloud.sleuth.annotation
->org.springframework.cloud.sleuth.instrument.annotation
- All the autoconfiguration classes were moved under
org.springframework.cloud/sleuth.autoconfig
package
- Any class registered as a bean is now public
-
RateLimitingSampler
constructor changed - Merged a lot of auto configuration classes into one (e.g.
BraveAutoConfiguration
now imports various other configurations) - Renamed
TraceBraveAutoConfiguration
toBraveAutoConfiguration
- Renamed
TraceOtelAutoConfiguration
toOtelAutoConfiguration
- Removed all
NoOp
implementations of the API
To see the whole list check this Github page and search for 3.0.0
milestones.
You can also check the Sleuth 3.0.0 migration guide.
- Introduces abstraction over tracers PR 1757
- You can use Spring Cloud Sleuth's abstraction over Span's lifecycle Check the docs
- You can use Brave or OpenTelemetry directly
- Module change / removal
- Point of entry should be
spring-cloud-starter-sleuth
(Brave support) orspring-cloud-starter-otel
(OpenTelemetry support). - If you want to use Zipkin:
spring-cloud-starter-zipkin
is removed and you should replace is withspring-cloud-sleuth-zipkin
dependency.
- Point of entry should be
- Enable reactor manual instrumentation when in gateway breaking change enhancement Issue 1710
- Remove the legacy Sleuth keys, span naming breaking change Issue 1564
- Remove the legacy MDC entries and remain with the Brave MDC ones only breaking change enhancement Issue 1221
2020-12-11
- 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 Starter Build
2020.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)
2020-12-01
- Spring Cloud Sleuth
3.0.0-M6
(issues) - Spring Cloud Consul
3.0.0-M6
- Spring Cloud Gateway
3.0.0-M6
- Spring Cloud Zookeeper
3.0.0-M6
- Spring Cloud Config
3.0.0-M6
- Spring Cloud Cloudfoundry
3.0.0-M6
- Spring Cloud Netflix
3.0.0-M6
- Spring Cloud Kubernetes
2.0.0-M6
- Spring Cloud Circuitbreaker
2.0.0-M6
- Spring Cloud Contract
3.0.0-M6
(issues) - Spring Cloud Starter Build
2020.0.0-M6
- Spring Cloud Security
3.0.0-M6
- Spring Cloud Bus
3.0.0-M6
- Spring Cloud Cli
3.0.0-M6
- Spring Cloud Vault
3.0.0-M6
- Spring Cloud Openfeign
3.0.0-M6
- Spring Cloud Commons
3.0.0-M6
2020-11-17
- Spring Cloud Consul
3.0.0-M5
- Spring Cloud Gateway
3.0.0-M5
- Spring Cloud Zookeeper
3.0.0-M5
- Spring Cloud Sleuth
3.0.0-M5
(issues) - Spring Cloud Cloudfoundry
3.0.0-M5
- Spring Cloud Config
3.0.0-M5
(issues) - Spring Cloud Kubernetes
2.0.0-M5
(issues) - Spring Cloud Netflix
3.0.0-M5
(issues) - Spring Cloud Starter Build
2020.0.0-M5
- Spring Cloud Circuitbreaker
2.0.0-M5
(issues) - Spring Cloud Contract
3.0.0-M5
(issues) - Spring Cloud Security
3.0.0-M5
- Spring Cloud Bus
3.0.0-M5
(issues) - Spring Cloud Cli
3.0.0-M5
- Spring Cloud Openfeign
3.0.0-M5
(issues) - Spring Cloud Vault
3.0.0-M5
- Spring Cloud Commons
3.0.0-M5
(issues)
2020-10-05
- 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)
2020-07-23
- Spring Cloud Sleuth
3.0.0-M3
- Spring Cloud Kubernetes
2.0.0-M3
- Spring Cloud Consul
3.0.0-M3
- Spring Cloud Config
3.0.0-M3
(issues) - Spring Cloud Gateway
3.0.0-M3
- Spring Cloud Starter Build
2020.0.0-M3
- Spring Cloud Circuitbreaker
2.0.0-M3
- Spring Cloud Contract
3.0.0-M3
(issues) - Spring Cloud Cloudfoundry
3.0.0-M3
- Spring Cloud Security
3.0.0-M3
- Spring Cloud Netflix
3.0.0-M3
- Spring Cloud Cli
3.0.0-M3
- Spring Cloud Bus
3.0.0-M3
- Spring Cloud Zookeeper
3.0.0-M3
- Spring Cloud Commons
3.0.0-M3
- Spring Cloud Vault
3.0.0-M3
- Spring Cloud Openfeign
3.0.0-M3
2020-05-29
- Spring Cloud Netflix
3.0.0-M2
- Spring Cloud Sleuth
3.0.0-M2
- Spring Cloud Consul
3.0.0-M2
- Spring Cloud Kubernetes
2.0.0-M2
- Spring Cloud Gateway
3.0.0-M2
(issues) - Spring Cloud Circuitbreaker
2.0.0-M2
- Spring Cloud Contract
3.0.0-M2
(issues) - Spring Cloud Starter Build
2020.0.0-M2
- Spring Cloud Config
3.0.0-M2
- Spring Cloud Build
3.0.0-M2
- Spring Cloud Cloudfoundry
3.0.0-M2
- Spring Cloud Security
3.0.0-M2
- Spring Cloud Bus
3.0.0-M2
- Spring Cloud Cli
3.0.0-M2
- Spring Cloud Vault
3.0.0-M2
- Spring Cloud Zookeeper
3.0.0-M2
- Spring Cloud Commons
3.0.0-M2
- Spring Cloud Openfeign
3.0.0-M2
2020-04-16
- 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 Starter Build
2020.0.0-M1
- 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)