Spring Cloud Hoxton Released
On behalf of the community, I am pleased to announce that the General Availability (RELEASE) of the Spring Cloud Hoxton Release Train is available today. The release can be found in Maven Central. You can check out the Hoxton release notes for more information.
Notable Changes in the Hoxton Release Train
Spring Cloud Hoxton.RELEASE is based on Spring Boot 2.2.1.RELEASE.
Documentation Changes
The Hoxton.RELEASE docs have a new landing page, new theme and a single-page, multi-page and a pdf version.The landing page will link you to the documentation for the specific project you are interested in. We hope you find that the new documentation structure easier to consume.
New Load Balancer Implementations
Spring Cloud Hoxton.RELEASE is the first release containing both blocking and non-blocking load balancer client implementations as an alternative to Netflix Ribbon which has entered maintenance mode.
To use the new BlockingLoadBalancerClient
with a RestTemplate
you will need to include org.springframework.cloud:spring-cloud-loadbalancer
on your application’s classpath. The same dependency can be used in a reactive application when using @LoadBalanced WebClient.Builder
- the only difference is that Spring Cloud will auto-configure a ReactorLoadBalancerExchangeFilterFunction
instance. See the documentation for additional information. The new ReactorLoadBalancerExchangeFilterFunction
can also be autowired and passed directly to WebClient.Builder
(see the documentation). For all these features, Project Reactor-based RoundRobinLoadBalancer
is used underneath.
Spring Cloud Netflix
- Support was added for the new
ReactiveDiscoveryClient
and the new Spring Cloud Circuit Breaker API implementation for Hystrix. - Added property to disable Spring Cloud CircuitBreaker Hystrix auto-configuration
Spring Cloud Cloudfoundry
- Support was added for the new
ReactiveDiscoveryClient
.
Spring Cloud Bus
- Documentation updates
Spring Cloud Vault
- Applications running in the Pivotal Application Service (former PCF) can leverage container identity to authenticate using Vault’s PCF Authentication support.
- Support for Vault namespaces (Vault Enterprise feature) using the
X-Vault-Namespace
header.
Spring Cloud Kubernetes
- Support was added for the new
ReactiveDiscoveryClient
.
Spring Cloud Contract
- Full documentation rewrite
- Major test class generation refactoring
- A lot of rewrite from Groovy to Java
- Added support for writing contracts in Kotlin and Java
- Added
inProgress
flag to the contract DSL and runtime stub generation - Added TestNG support for generated tests
- Numerous library version increments (including Groovy, WireMock and Pact)
Spring Cloud Consul
- Support was added for the new
ReactiveDiscoveryClient
and for Consul’s consistency mode.
Spring Cloud Config
- An Environment Repository supporting AWS S3.
- Added the ability to decrypt properties in plain text
Spring Cloud Gcp
- BigQuery module added
- Created a separate starter for Cloud Foundry: spring-cloud-gcp-starter-cloudfoundry
- You can check out the changelog document for more information
Spring Cloud Stream
With this new Horsham.RELEASE (3.0.0) we begin our journey from annotation-driven to a significantly simpler functional approach. We have published a series of posts explaining and justifying this move:
- Spring Cloud Stream - demystified and simplified
- Spring Cloud Stream - functional and reactive
- Spring Cloud Stream - and Spring Integration
- Spring Cloud Stream - Event Routing
Spring Cloud Commons
- We have introduced new blocking and non-blocking load balancer implementations as an
alternative to Netflix Ribbon which has entered maintenance mode.
Spring Cloud Openfeign
- OpenFeign was updated to 10.4.0.
- Support for Spring Cloud LoadBalancer has been added
Spring Cloud Task
- Micrometer support
- Updated documentation with improved format
- Task apps launched when using Spring Batch partitioning now have external-execution-id populated
Spring Cloud Sleuth
- Added support for latest Brave (includes messaging sampling)
- Added an option for
onLastOperator
Reactor tracing for improved performance - Added Redis tracing
- Set default sampler to rate-limited sampler
- Added support for AWS SQS tracing
- Added support for Quartz tracing
- Added in-process propagation mechanism
- Defaults to Micrometer metrics for Zipkin reporting
Spring Cloud Aws
- Bug fixes
Spring Cloud Zookeeper
- Support was added for the new
ReactiveDiscoveryClient
.
Spring Cloud Security
- Bug fixes
Spring Cloud Circuitbreaker
We welcome Spring Cloud Circuit Breaker as a new project under the Spring Cloud release train. This project provides an abstraction API for adding circuit breakers to your application. At the time of this blog post, there are four supported implementations:
- Resilience4j
- Spring Retry
- Hystrix (in spring-cloud-netflix)
- Sentinel (in spring-cloud-alibaba)
See the annoucement blog post for more information.
- Added auto-configuration to collect circuit breaker metrics when using Resilience4J (#47)
- Upgrade to Resilience4J 1.1.0
- Added property to disable Resilience4J auto-configuration
Spring Cloud Function
Lots of new features such as:
- Transparent type conversion
- Function Routing
- Function arity
More details in our release announcement.
Spring Cloud Gateway
- Support was added for using the new
ReactiveLoadBalancer
. - RSocket modules were moved to their own project in the Spring Cloud Incubator organization
- Added a filter which uses the new Spring Cloud CircuitBreaker library to provide circuit breakers to routes
The following modules were updated as part of Hoxton.RELEASE:
Module | Version | Issues |
---|---|---|
Spring Cloud Netflix | 2.2.0.RELEASE | |
Spring Cloud Starter Parent | Hoxton.RELEASE | |
Spring Cloud Dependencies Parent | 2.2.0.RELEASE | |
Spring Cloud Dependencies | Hoxton.RELEASE | |
Spring Cloud Cloudfoundry | 2.2.0.RELEASE | |
Spring Cloud Cli | 2.2.0.RELEASE | (issues) |
Spring Cloud Bus | 2.2.0.RELEASE | |
Spring Cloud Vault | 2.2.0.RELEASE | (issues) |
Spring Cloud Kubernetes | 1.1.0.RELEASE | |
Spring Cloud Contract | 2.2.0.RELEASE | (issues) |
Spring Cloud Consul | 2.2.0.RELEASE | |
Spring Cloud Release | Hoxton.RELEASE | |
Spring Cloud Build | 2.2.0.RELEASE | (issues) |
Spring Cloud Config | 2.2.0.RELEASE | |
Spring Cloud | Hoxton.RELEASE | |
Spring Cloud Gcp | 1.2.0.RELEASE | |
Spring Cloud Stream | Horsham.RELEASE | (issues) |
Spring Cloud Commons | 2.2.0.RELEASE | (issues) |
Spring Cloud Starter | Hoxton.RELEASE | |
Spring Cloud Openfeign | 2.2.0.RELEASE | |
Spring Cloud Task | 2.2.1.RELEASE | |
Spring Cloud Sleuth | 2.2.0.RELEASE | (issues) |
Spring Cloud Aws | 2.2.0.RELEASE | |
Spring Cloud Zookeeper | 2.2.0.RELEASE | (issues) |
Spring Cloud Security | 2.2.0.RELEASE | |
Spring Cloud Circuitbreaker | 1.0.0.RELEASE | (issues) |
Spring Cloud Function | 3.0.0.RELEASE | (issues) |
Spring Cloud Gateway | 2.2.0.RELEASE | (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):
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.RELEASE</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.2.RELEASE"
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Hoxton.RELEASE'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
...
}