On behalf of the community, I am pleased to announce that the General Availability (RELEASE) of the Spring Cloud Finchley Release Train is available today. The release can be found in Maven Central. You can check out the Finchley release notes for more information.

Lifecycle Announcements for Release Train Versions

The Camden release train has reached end-of-life status. The Dalston release train will reach end-of-life status in December 2018. The Edgware release train will follow the end-of-life cycle of the Spring Boot 1.5.x line.

Notable Changes in the Finchley Release Train

Spring Cloud Function and Spring Cloud Gateway are new additions to the Spring Cloud portfolio. The portfolio was also made compatible with Spring Boot 2.0.x which was a significant effort. Spring Cloud now has a minimum version of Java 8.

Spring Cloud Gateway

Spring Cloud Gateway is an API Gateway built on top of Spring Webflux and Reactor Netty. It is a next generation gateway and can be viewed as a replacement for Spring Cloud Netflix Zuul. It provides dynamic routing based on easy to define predicates. It also provides filters that are scoped to each route, examples include: path rewriting, circuit breaker, adding or removing headers, rate limiting and security. Routes can be defined using properties or using included support for DiscoveryClient (Eureka, Consul & Zookeeper).

Spring Cloud Function

Spring Cloud Function is a project with the following high-level goals:

Promote the implementation of business logic via functions.

Decouple the development lifecycle of business logic from any specific runtime target so that the same code can run as a web endpoint, a stream processor, or a task.

Support a uniform programming model across serverless providers, as well as the ability to run standalone (locally or in a PaaS).

Enable Spring Boot features (auto-configuration, dependency injection, metrics) on serverless providers.

Spring Cloud Sleuth

Rewritten using Brave #829, migration guide https://github.com/spring-cloud/spring-cloud-sleuth/wiki/Spring-Cloud-Sleuth-2.0-Migration-Guide

Removed the sleuth-stream #555 and zipkin-stream #727 dependencies. Spans via messaging can be only sent to Zipkin via native Zipkin dependencies.

#555 and #727 dependencies. Spans via messaging can be only sent to Zipkin via native Zipkin dependencies. spring.zipkin.sender.type=kafka needs to explicitly be set to send spans over Kafka #985, #1013

needs to explicitly be set to send spans over Kafka #985, #1013 Added WebClient.Builder support #779

Trace tags account for parametrized URL #802

Added support for NettyClient instrumentation - allows instrumentation of Spring Cloud Gateway #806

Fixed all early bean initialization issues #870

Added spring-kafka support #896

Added spring-rabbitmq support #883

Added support for Apache HttpClient #685

Added OpenTracing support #599

Added support for AWS X-Ray #459

TraceKeys are hidden from the user and are deprecated #940

are hidden from the user and are deprecated #940 Added support for Dubbo #934

Examples: https://github.com/spring-cloud-samples/sleuth-documentation-apps, https://github.com/openzipkin/sleuth-webmvc-example

Spring Cloud Config

Allow the ability to skip SSL validation for both Git and Vault backends

Git backend now has a refresh rate property #749

Add support for Gitee webhooks #898

Spring Cloud Netflix

Starters deprecated in Edgware have been removed

spring-cloud-netflix-hystrix-amqp has been removed

has been removed ZuulFallbackProvider has been removed and replaced with FallbackProvider #2262

has been removed and replaced with #2262 /hystrix.stream now uses WebFlux #2629

now uses WebFlux #2629 Turbine now has a /clusters endpoint that can be used to discover configured clusters #2223

endpoint that can be used to discover configured clusters #2223 Spring Cloud OpenFeign has been moved to its own project

Zuul metrics now use Micrometer

Turbine Stream support was rewritten to use Spring Webflux.

Spring Cloud Task

Please see the release blog post.

Spring Cloud Commons

You can now use the @LoadBalanced annotation on WebClient s

annotation on s Retry functionality has been simplified #331

Spring Cloud Contract

Added support for RestAssured with RestDocs #334

Removed Camel support #386

Introduced explicit mode of stubs fetching via stubsMode and contractsMode #287

and #287 Made @AutoConfigureStubRunner a test slice #473

a test slice #473 Allows starting multiple versions of the same stub artifact #474

Made collection assertion methods more verbose #441

Added @StubRunnerPort convenience mechanism of finding stubs #573

convenience mechanism of finding stubs #573 Allows storing downloaded artifacts after the test got executed #512

Added helper methods for HTTP statuses #575

Refreshed the documentation #570 and added a 3 seconds & 3 minutes tour #549

Bumped WireMock to 2.18.0 #659

#659 Support for Pact v3 #406 and Pact Broker #191

Option to upload and fetch stubs from a Git Repository #596

Examples: https://github.com/spring-cloud-samples/spring-cloud-contract-samples/

Spring Cloud Stream

Please see the release blog post.

Spring Cloud Vault

Upgrade to Spring Vault 2.0 #203.

Auto-configuration for ReactiveVaultOperations to provide a reactive API on top of WebClient #133.

to provide a reactive API on top of #133. Added Reactive Health Indicator #221.

Pull, wrapped, and provided modes for AppRole’s RoleId and SecretId authentication identifiers #174.

Support for Vault’s generic database backend #169.

Retain JSON data types in the backing property source #189.

Support for Vault’s versioned Key/Value backend #209.

Upgraded Spring Cloud Vault Connectors 2.0.0.RELEASE to Spring Cloud Vault 2.0.0.RELEASE.

Examples: https://github.com/mp911de/spring-cloud-vault-config-samples/

Spring Cloud Bus

Actuator endpoints were updated to use the new actuator framework.

Spring Cloud Openfeign

Support encoder, decoder and contract in Feign configuration properties #2687

Spring Cloud Cloudfoundry

The new reactive Cloud Foundry Java Client is used.

Spring Cloud Consul

Added support for HTTPS instances and ACLs. @Scheduled is no longer used for Consul watches.

Spring Cloud Zookeeper

Updated to use Curator 4.0.1.

Spring Cloud Aws

Adds support for PropertySourceLocator that uses AWS Parameter Store. Micrometer support for CloudWatch metrics.

The following modules were updated as part of Finchley.RELEASE:

Module Version Spring Cloud Consul 2.0.0.RELEASE Spring Cloud Gateway 2.0.0.RELEASE Spring Cloud Function 1.0.0.RELEASE Spring Cloud Zookeeper 2.0.0.RELEASE Spring Cloud Sleuth 2.0.0.RELEASE Spring Cloud Aws 2.0.0.RELEASE Spring Cloud Config 2.0.0.RELEASE Spring Cloud Cloudfoundry 2.0.0.RELEASE Spring Cloud Security 2.0.0.RELEASE Spring Cloud Netflix 2.0.0.RELEASE Spring Cloud Task 2.0.0.RELEASE Spring Cloud Commons 2.0.0.RELEASE Spring Cloud Contract 2.0.0.RELEASE Spring Cloud Stream Elmhurst.RELEASE Spring Cloud Vault 2.0.0.RELEASE Spring Cloud Bus 2.0.0.RELEASE Spring Cloud Openfeign 2.0.0.RELEASE

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>Finchley.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: