-
Notifications
You must be signed in to change notification settings - Fork 188
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-bootstrapto 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.importvalue ofspring.profiles.activenot 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=trueorspring.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.importsyntax for Config Server, Consul, Zookeeper and Vault. The existing properties to configure the different services are still supported but need to be put inapplication.propertiesorapplication.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=falsefollowing the Spring Boot convention. -
Spring Cloud Security was removed and code was moved to the individual Spring Cloud projects.
-
The
spring-cloud-gateway-coremodule was moved tospring-cloud-gateway-server. If you are usingspring-cloud-gateway-starterthis 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-streamis 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-envis nowbusenv -
bus-refreshis nowbusrefresh -
service-registryis nowserviceregistry
-
-
In Spring Cloud Config, the endpoints from the resource API that used the
useDefaultLabelquery 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.kuberneteshas 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-instrumentationspring-cloud-sleuth-coreremoved and changed tospring-cloud-sleuth-instrumentation&spring-cloud-sleuth-api - Removed
spring-cloud-starter-sleuth-otelTo add OpenTelemetry support you need to addspring-cloud-starter-sleuth(adds Brave by default), exclude Brave and addspring-cloud-sleuth-oteldependency - Except for the tests,
spring-cloud-sleuth-autoconfigureis the only module that can have access to@Configuration,@ConfiguraationPropertiesclasses. 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.autoconfigpackage
- Any class registered as a bean is now public
-
RateLimitingSamplerconstructor changed - Merged a lot of auto configuration classes into one (e.g.
BraveAutoConfigurationnow imports various other configurations) - Renamed
TraceBraveAutoConfigurationtoBraveAutoConfiguration - Renamed
TraceOtelAutoConfigurationtoOtelAutoConfiguration - Removed all
NoOpimplementations 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-zipkinis removed and you should replace is withspring-cloud-sleuth-zipkindependency.
- 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)