Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreOn behalf of the community, I am pleased to announce that the Milestone 3 (M3) of the Spring Cloud Finchley Release Train is available today. The release can be found in Spring Milestone repository. You can check out the Finchley release notes for more information.
A common theme among many of the projects included in the Finchley release train is adding support for WebFlux, WebClient, Micrometer or other integrations within the Spring Reactive theme.
WebFlux and Reactor are supported again. OAuth support is not included. The spring-cloud-sleuth-zipkin-stream
module has been removed.
A new GatewayFilter
interface was introduced to reduce any confusion with the existing WebFilter
from Spring Framework. Any custom implementations will now need to implement GatewayFilterFactory
rather than WebFilterFactory
. Also references to WebFilterFactories
will need to be replaced with GatewayFilterFactories
for the Java DSL.
The Java DSL has changed slightly as well. The uri()
method is now the terminating operator rather than and()
.
What used to be written as:
@Bean
public RouteLocator wsRouteLocator() {
return Routes.locator()
.route("testws")
.uri("ws://localhost:"+this.wsPort)
.predicate(alwaysTrue())
.and()
.build();
}
would now be written like:
@Bean
public RouteLocator wsRouteLocator() {
return Routes.locator()
.route("testws")
.predicate(alwaysTrue())
.uri("ws://localhost:"+this.wsPort)
.build();
}
Support for the gateway is available on http://start.spring.io.
Some packages were refactored to modules, but this shouldn't affect anyone using the starters.
The detailed /routes
actuator is now accessed via /routes/details
rather than /routes?format=details
.
Eureka was updated to version 1.8.4
Support was added for Rest Assured tests with Spring RestDocs.
Bus endpoints were remapped from /bus/*
to /bus-*
. (This might change again with feedback from the community)
Old | New |
---|---|
/bus/env |
/bus-env |
/bus/refresh |
/bus-refresh |
Spring Cloud AWS is not yet compatible with the Finchley release train.
A new Task milestone will be included in the next Finchley milestone.
Added support for Vault's database backend.
Internals were upgrade to be compatible with Spring Boot 2. Any feedback on RefreshScope
or @ConfigurationProperties
rebinding would be appreciated.
A number of starters that did not follow normal Spring Cloud naming conventions were renamed in Edgware. Below is a table of the removed starters and their replacements:
Removed | Finchley Starter |
---|---|
spring-cloud-starter-archaius | spring-cloud-starter-netflix-archaius |
spring-cloud-starter-atlas | spring-cloud-starter-netflix-atlas |
spring-cloud-starter-eureka | spring-cloud-starter-netflix-eureka-client |
spring-cloud-starter-eureka-server | spring-cloud-starter-netflix-eureka-server |
spring-cloud-starter-feign | spring-cloud-starter-openfeign |
spring-cloud-starter-hystrix | spring-cloud-starter-netflix-hystrix |
spring-cloud-starter-hystrix-dashboard | spring-cloud-starter-netflix-hystrix-dashboard |
spring-cloud-starter-ribbon | spring-cloud-starter-netflix-ribbon |
spring-cloud-starter-spectator | spring-cloud-starter-netflix-spectator |
spring-cloud-starter-turbine | spring-cloud-starter-netflix-turbine |
spring-cloud-starter-turbine-stream | spring-cloud-starter-netflix-turbine-stream |
spring-cloud-starter-zuul | spring-cloud-starter-netflix-zuul |
The following modules were updated as part of Finchley.M3:
Module | Version |
---|---|
Spring Cloud Dependencies | 2.0.0.M4 |
Spring Cloud Sleuth | 2.0.0.M3 |
Spring Cloud Gateway | 2.0.0.M3 |
Spring Cloud Config | 2.0.0.M3 |
Spring Cloud Cloudfoundry | 2.0.0.M1 |
Spring Cloud Build | 2.0.0.M4 |
Spring Cloud Consul | 2.0.0.M2 |
Spring Cloud Netflix | 2.0.0.M3 |
Spring Cloud Security | 2.0.0.M1 |
Spring Cloud Contract | 2.0.0.M3 |
Spring Cloud Bus | 2.0.0.M2 |
Spring Boot Starter | 2.0.0.M5 |
Spring Cloud Aws | 2.0.0.M1 |
Spring Boot Dependencies | 2.0.0.M5 |
Spring Cloud Stream | Elmhurst.M2 |
Spring Cloud Task | 2.0.0.M1 |
Spring Cloud Vault | 2.0.0.M3 |
Spring Cloud Zookeeper | 2.0.0.M2 |
Spring Boot | 2.0.0.M5 |
Spring Cloud Commons | 2.0.0.M3 |
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>http://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>Finchley.M3</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.3.RELEASE"
}
}
repositories {
maven {
url 'http://repo.spring.io/milestone'
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Finchley.M3'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
...
}