Over a million developers have joined DZone.

Spring Cloud Finchley.RELEASE Is Available

DZone's Guide to

Spring Cloud Finchley.RELEASE Is Available

Spring Cloud Finchley is GA! Check out its features and how you can put the latest release to use in your projects!

· Java Zone ·
Free Resource

Java-based (JDBC) data connectivity to SaaS, NoSQL, and Big Data. Download Now.

On behalf of the community, I am pleased to announce that the General Availability (RELEASE) of the Spring Cloud Finchley Release Train is now available. 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.
  • spring.zipkin.sender.type=kafka 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
  • 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
  • ZuulFallbackProvider has been removed and replaced with FallbackProvider#2262
  • /hystrix.stream now uses WebFlux #2629
  • Turbine now has a /clusters 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 WebClients
  • 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
  • Made @AutoConfigureStubRunner 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
  • 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
  • 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.
  • 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:

    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


    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):


    or with Gradle:

    buildscript {
        dependencies {
            classpath "io.spring.gradle:dependency-management-plugin:1.0.5.RELEASE"
    apply plugin: "io.spring.dependency-management"
    dependencyManagement {
        imports {
            mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Finchley.RELEASE'
    dependencies {
        compile 'org.springframework.cloud:spring-cloud-starter-config'
        compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'

    Connect any Java based application to your SaaS data.  Over 100+ Java-based data source connectors.

    java ,spring ,spring cloud ,spring cloud finchley ,pivotal ,spring framework

    Published at DZone with permission of

    Opinions expressed by DZone contributors are their own.

    {{ parent.title || parent.header.title}}

    {{ parent.tldr }}

    {{ parent.urlSource.name }}