Spring Cloud Hoxton.M2 Released
On behalf of the community, I am pleased to announce that the Milestone 2 (M2) of the Spring Cloud Hoxton Release Train is available today. The release can be found in Spring Milestone repository. You can check out the Hoxton release notes for more information. In addition you can view the GitHub Project For Hoxton.M2.
Notable Changes in the Hoxton Release Train
Spring Cloud Hoxton.M2 builds upon Spring Boot 2.2.0.M5.
Documentation Changes
The Hoxton.M2 docs have a new landing page as well as a new theme. The landing page will link you to the documentation for the specific project you are interested in.
Our documentation has a new theme. We hope you find that the new theme make the documentation easier to consume.
New Load Balancer Implementations
Spring Cloud Hoxton.M2 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 Config
Spring Cloud Gateway
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. - Issues
Spring Cloud Contract
- Java DSL
- Kotlin DSL
- Added incremental build option for Gradle
- In-progress mode for contract development and API prototypeing
- Complete documentation rewrite
- Added a switch to fail if no contracts were defined
- Added option to generate stubs on the consumer side. When the producer hasn’t written the implementation, the consumer can still benefit from the stubs generated at runtime
- Added an option to fetch contracts and stubs directly from a folder without unpacking them
- Added TestNG support
- Bumped libraries
- Migrated a lot of code to Java
- Issues
Spring Cloud Openfeign
Spring Cloud Stream
Spring Cloud Bus
Spring Cloud Sleuth
- Sets Rate Limiting Sampler as the default
- Cleares any MDC entries that match a whitelist entry for baggage or propagation key even if the ExtraPropagation API wasn’t called
- Can send spans to Zipkin over ActiveMQ
Spring Cloud Function
The following modules were updated as part of Hoxton.M2:
Module | Version | Issues |
---|---|---|
Spring Cloud Config | 2.2.0.M2 | (issues) |
Spring Cloud Cloudfoundry | 2.2.0.M2 | |
Spring Cloud Cli | 2.2.0.M1 | |
Spring Cloud Dependencies | Hoxton.M2 | |
Spring Cloud Zookeeper | 2.2.0.M2 | |
Spring Cloud Aws | 2.2.0.M2 | |
Spring Cloud Gateway | 2.2.0.M2 | (issues) |
Spring Cloud Netflix | 2.2.0.M2 | |
Spring Cloud Starter | Hoxton.M2 | |
Spring Cloud Kubernetes | 1.1.0.M2 | |
Spring Cloud Task | 2.2.0.M2 | (issues) |
Spring Cloud Commons | 2.2.0.M2 | (issues) |
Spring Cloud Build | 2.2.0.M4 | |
Spring Cloud Contract | 2.2.0.M2 | (issues) |
Spring Cloud Security | 2.2.0.M2 | |
Spring Cloud Openfeign | 2.2.0.M2 | (issues) |
Spring Cloud Stream | Horsham.M3 | (issues) |
Spring Cloud Bus | 2.2.0.M2 | (issues) |
Spring Cloud Sleuth | 2.2.0.M2 | (issues) |
Spring Cloud Consul | 2.2.0.M2 | |
Spring Cloud | Hoxton.M2 | |
Spring Cloud Gcp | 1.2.0.M2 | |
Spring Cloud Function | 3.0.0.M2 | (issues) |
Spring Cloud Release | Hoxton.M2 | |
Spring Cloud Vault | 2.2.0.M2 |
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>Hoxton.M2</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"
}
}
repositories {
maven {
url 'https://repo.spring.io/milestone'
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Hoxton.M2'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
...
}