Engineering
Releases
News and Events

Spring Cloud Greenwich.RC1 available now

On behalf of the community, I am pleased to announce that the Release Candidate 1 (RC1) of the Spring Cloud Greenwich Release Train is available today. The release can be found in Spring Milestone repository. You can check out the Greenwich release notes for more information.

End of Life (EOL) Reminder

The Dalston release train will reach EOL status at the end of 2018.

Notable Changes in the Greenwich Release Train

This milestone is compatible with Spring Boot 2.1.1.RELEASE. Updates were made across the projects for Java 11 compatibility.

Go to the Greenwich.RC1 github project to see all issues assigned to this release.

Spring Cloud Netflix Projects Entering Maintenance Mode

Recently, Netflix announced that Hystrix is entering maintenance mode. Ribbon has been in a similar state since 2016. Although Hystrix and Ribbon are now in maintenance mode, they are still deployed at scale at Netflix.

The Hystrix Dashboard and Turbine have been superseded by Atlas. The last commits to these project are 2 years and 4 years ago respectively. Zuul 1 and Archaius 1 have both been superseded by later versions that are not backward compatible.

The following Spring Cloud Netflix modules and corresponding starters will be placed into maintenance mode:

  1. spring-cloud-netflix-archaius
  2. spring-cloud-netflix-hystrix-contract
  3. spring-cloud-netflix-hystrix-dashboard
  4. spring-cloud-netflix-hystrix-stream
  5. spring-cloud-netflix-hystrix
  6. spring-cloud-netflix-ribbon
  7. spring-cloud-netflix-turbine-stream
  8. spring-cloud-netflix-turbine
  9. spring-cloud-netflix-zuul

This does not include the Eureka or concurrency-limits modules.

What is Maintenance Mode?

Placing a module in maintenance mode means that the Spring Cloud team will no longer be adding new features to the module. We will fix blocker bugs and security issues, and we will also consider and review small pull requests from the community.

We intend to continue to support these modules for a period of at least a year from the general availability of the Greenwich release train.

Replacements

We recommend the following as replacements for the functionality provided by these modules.

Current Replacement
Hystrix Resilience4j
Hystrix Dashboard / Turbine Micrometer + Monitoring System
Ribbon Spring Cloud Loadbalancer
Zuul 1 Spring Cloud Gateway
Archaius 1 Spring Boot external config + Spring Cloud Config

Look for a future blog post on Spring Cloud Loadbalancer and integration with a new Netflix project Concurrency Limits.

Spring Cloud Kubernetes

Enhancements were made to use the KubernetesDiscoveryClient during bootstrap as well as many documentation updates.

Spring Cloud Commons

A change was made to how BootstrapConfiguration classes are loaded to accomodate behavior in Java 11.

Spring Cloud Contract

Bug fixes.

Spring Cloud Openfeign

Support was added for @QueryMap annotation.

Spring Cloud Zookeeper

Support was added for the new ServiceInstance.instanceId field.

Spring Cloud Stream

See Fishtown.RC2 blog post.

Spring Cloud Sleuth

Support for instrumenting gRPC.

Spring Cloud Bus

Fixed a critical bug that prevented Bus from functioning properly with latest version of Spring Cloud Stream.

Spring Cloud GCP

Documentation updates and bug fixes.

Spring Cloud Function

Support for Kotlin lambdas and other enhancements and bug fixes.

Spring Cloud Consul

Support was added for the new ServiceInstance.instanceId field and bug fixes.

Spring Cloud Config

Fixes for webhooks and Spring Cloud Bus.

Spring Cloud Gateway

Support was added for multiple paths and hosts in their respective route predicates and to customize the HTTP status code returned in certain situations, as well as bug fixes.

Spring Cloud Module Versions

The following modules were updated as part of Greenwich.RC1:

Module Version Issues
Spring Cloud Kubernetes 1.0.0.RC1 (issues)
Spring Cloud Commons 2.1.0.RC2 (issues)
Spring Cloud Contract 2.1.0.RC2 (issues)
Spring Cloud Openfeign 2.1.0.RC2 (issues)
Spring Cloud Zookeeper 2.1.0.RC2 (issues)
Spring Cloud Stream Fishtown.RC2 (blog)
Spring Cloud Sleuth 2.1.0.RC2 (issues)
Spring Cloud Bus 2.1.0.RC2 (issues)
Spring Cloud Netflix 2.1.0.RC2 (issues)
Spring Cloud Gcp 1.1.0.RC1 (issues)
Spring Cloud Cloudfoundry 2.1.0.RC2  
Spring Cloud Function 2.0.0.RC2 (issues)
Spring Cloud Task 2.1.0.M1 (issues)
Spring Cloud Consul 2.1.0.RC2 (issues)
Spring Cloud Config 2.1.0.RC2 (issues)
Spring Cloud Gateway 2.1.0.RC2 (issues)

As always, we welcome feedback on GitHub, Gitter, Stack Overflow, or 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>Greenwich.RC1</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.6.RELEASE"
    }
}

repositories {
    maven {
        url 'http://repo.spring.io/milestone'
    }
}

apply plugin: "io.spring.dependency-management"

dependencyManagement {
    imports {
        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Greenwich.RC1'
    }
}

dependencies {
    compile 'org.springframework.cloud:spring-cloud-starter-config'
    compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
    ...
}
comments powered by Disqus