Cloud Native 11 min read

Spring Cloud Greenwich Release – New Features, EOL Alerts, and Migration Tips

Spring Cloud Greenwich.RELEASE is now available via Maven Central, introducing Java 11 compatibility, new projects like Spring Cloud GCP and Kubernetes, while announcing EOL for Edgware and Finchley, moving many Netflix modules into maintenance mode, and providing extensive updates across Sleuth, Config, Vault, OpenFeign, and other components with migration guidance.

Programmer DD
Programmer DD
Programmer DD
Spring Cloud Greenwich Release – New Features, EOL Alerts, and Migration Tips

Spring Cloud Greenwich.RELEASE is officially released and can be obtained from Spring Milestone and Maven Central. See the Greenwich release notes for more information.

EOL Reminder

Edgware version will reach end‑of‑life on 1 August 2019. See the Spring Cloud Edgware EOL announcement for details.

Spring Cloud Finchley is the current main release aligned with Spring Boot 2.0.x; it will reach EOL when the corresponding Spring Boot version does, with a blog post to announce the exact date.

Spring Cloud Greenwich is a minor release that will be supported until the Spring Boot 2.x branch ends.

Notable Updates in Greenwich

All related projects are now compatible with Java 11.

New Projects

Greenwich includes two new projects: Spring Cloud GCP and Spring Cloud Kubernetes. The former provides integration support for Google Cloud Platform (GCP) services, and the latter offers Kubernetes integration.

Spring Cloud Netflix projects enter maintenance mode

Recently, Netflix announced that Hystrix is entering maintenance mode. Since 2016, Ribbon has also been in a similar state. Although Hystrix and Ribbon are now in maintenance mode, they are still widely deployed on Netflix.

Hystrix Dashboard and Turbine have been replaced by Atlas. The last commits to these projects were 2 and 4 years ago respectively. Zuul 1 and Archaius 1 have been superseded by later incompatible versions.

The following Spring Cloud Netflix modules and their starter dependencies will enter maintenance mode:

spring-cloud-netflix-archaius

spring-cloud-netflix-hystrix-contract

spring-cloud-netflix-hystrix-dashboard

spring-cloud-netflix-hystrix-stream

spring-cloud-netflix-hystrix

spring-cloud-netflix-ribbon

spring-cloud-netflix-turbine-stream

spring-cloud-netflix-turbine

spring-cloud-netflix-zuul

What is maintenance mode?

Placing a module in maintenance mode means the Spring Cloud team will no longer add new features to it. Critical bugs and security issues will still be fixed, and small community pull requests will be reviewed.

We intend to continue supporting these modules for at least one year from the official Greenwich release.

Alternative projects

We recommend replacing the functionality of these modules with alternative solutions.

See the follow‑up blog post on Spring Cloud Loadbalancer and its integration with the new Netflix Concurrency Limits project.

Spring Cloud Sleuth

Upgrade to the latest Brave library

Performance improvements for WebFlux and Reactor integration

Support for gRPC instrumentation

Added support for multiple span reporting

Added rate‑limiting sampler support

Spring Cloud GCP

See the Google products and services documentation for details.

Spring Cloud Netflix

Upgrade Ribbon and Eureka versions

Add new field

ServiceInstance.instanceId

Spring Cloud Consul

Add new field

ServiceInstance.instanceId

Spring Cloud Gateway

Add filter that can rewrite response headers

Support for multiple paths and hosts in route predicates and customizable HTTP status codes in certain cases

Spring Cloud Function

Support for Kotlin

New programming model for Azure Functions

Optional automatic export of Supplier when the Web adapter starts

Functional Bean registration

More introductions

Spring Cloud Stream

See the release notes

Spring Cloud Zookeeper

Add new field

ServiceInstance.instanceId

Spring Cloud Task

See the release notes

Spring Cloud Kubernetes

ServiceInstance metadata can now be configured from Kubernetes Labels, Annotations, and Ports

KubernetesDiscoveryClient enhanced during bootstrap

Added module to detect Istio presence

Spring Cloud Contract

Added support for XML payloads

Allow contracts to be dumped as a generic representation

Added WebTestClient support for testing contracts with WebFlux

Improved Pact integration

Added Camel support

Added JUnit 5 support

Upgraded WireMock to the latest version

Added support for binary payloads

Added support for the latest version in Git repositories

Allowed explicit type generation for regular expressions

Spring Cloud Security

Spring Cloud Gateway filters now support OAuth2. A simple demo program is provided.

Spring Cloud Config

Added EnvironmentRepository to support CredHub backend service

Spring Cloud Vault

Added support for Google Cloud and Azure authentication

Upgraded to Spring Vault 2.1.1

Spring Cloud Openfeign

Support for new annotation @QueryMap Upgraded to OpenFeign 10.1.0

Spring Cloud Commons

ServiceInstance interface added instanceId Added ReactiveLoadBalancer interface, implemented with Reactor

The following modules were updated as part of the Greenwich.RELEASE:

To use the BOM with Maven (dependency management only):

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>Greenwich.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>

If using 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:Greenwich.RELEASE'
  }
}

dependencies {
  compile 'org.springframework.cloud:spring-cloud-starter-config'
  compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
  ...
}
Source: https://spring.io/blog/2019/01/23/spring-cloud-greenwich-release-is-now-available Author: Ryan Baxter Compiled by: 春之雨
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Cloud NativeMicroservicesGradlemavenSpring CloudJava 11Greenwich Release
Programmer DD
Written by

Programmer DD

A tinkering programmer and author of "Spring Cloud Microservices in Action"

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.