The Spring Blog

Engineering
Releases
News and Events

Spring Cloud Stream 2.0 - content-type negotiation and transformation

This is the first blog in a series of pre-release blogs in preparation for Spring Cloud Stream 2.0.0.RELEASE.

Preface

Spring Cloud Stream 2.0 includes a complete revamp of content-type negotiation for the channel-based binders to address performance, flexibility and most importantly consistency. The following blog touches on some of the key points around what has been done, what to expect and how it may help you.

Introduction

Data transformation is one of the core features of any message-driven microservice architecture. In Spring Cloud Stream, such data is represented as a Spring Message.

Read more...

Spring Cloud Stream Elmhurst.RC1 /2.0.0.RC1 Release Announcement

After a long and exciting journey we are pleased to announce the first Release Candidate of the Spring Cloud Stream Elmhurst release train - Elmhurst.RC1/2.0.0.RC1.

Spring Cloud Stream Elmhurst 2.0.0.RC1 is available for use in the Spring Milestone repository. The release notes include relevant information about version compatibility with Spring Boot, Spring Cloud, Spring AMQP, and Spring for Apache Kafka.

Given that this is a Release Candidate the following section provides a brief summary of features and improvements not just included in this release but for 2.0 in general, with details to follow in a form of upcoming blogs and documentation updates in preparation for 2.0.0.RELEASE.

Read more...

This Week in Spring - February 20th, 2018

Hi Spring fans! Welcome to another installment of This Week in Spring! This week I’m speaking at the San Diego JUG with Mario Gray on testing with Spring. Then I’m off to the IBM Index conference here in San Francisco where I’ll be talking about building reactive microservices, and then it’s off to Devnexus in Atlanta, GA, where I’ll be talking about Kotlin and testing. I hope you’ll join me and say hi if you’re nearby.

Read more...

This Week in Spring - February 13th, 2018

Hi Spring fans! Welcome to another installment of This Week in Spring! This week I’ve been in Munich and Frankfurt, Germany, and Minneapolis, Minnesota, and it looks like i’ll be in New York City and San Francisco for the balance of the week.

We’ve got a lot to cover so without further ado so let’s get started.

Read more...

Spring Cloud Contract in a polyglot world

This article contains a short reminder of what Contract Testing is, how Spring Cloud Contract implements it, and how Spring Cloud Contract can be used in a polyglot world.

What is Contract Testing

In order to increase the certainty that our systems behave properly, we write different types of tests. According to the test pyramid the main types of tests are unit, integration, and UI. The more complex the tests, the more time and effort they require and the more brittle they become.

In a distributed system, one of the most frequent problems is testing integrations between applications. Let’s assume that your service sends a REST request to another application. When using Spring Boot, you can write a @SpringBootTest in which you test that behavior. You set up a Spring context, you prepare a request to be sent…​ and where do you send it? You haven’t started the other application, so you get a Connection Refused exception. You can try mocking the real HTTP call and returning a fake response. However, if you do that, you do not test any real HTTP integration, serialization and deserialization mechanisms, and so on. You could also start a fake HTTP server (for example, WireMock) and simulate how it should behave. The problem here is that you, as a client of an API, define how the server behaves. In other words, if you tell the fake server to return text testText when a request is sent to endpoint /myEndpoint, it does just that, even if the real server does not have such an endpoint. In short, the problem is that the stubs might not be reliable.

Read more...

Spring Web Flow 2.5 RC1 is available

The first and only release candidate planned for Spring Web Flow 2.5 is now available from the Spring Milestones repository. The samples repository has been updated to use it.

This release provides an upgrade path to Spring Framework 5 along with Java 8, Servlet 3.1, Hibernate 5, Tiles 3, and JSF 2.2 as minimum requirements.

In this release “spring-js” has been merged with “spring-webflow” so there is no longer a separate “spring-js” module. As a result some configuration classes have changed packages. The “spring-js-resources” module is still available but as an optional module that must be included explicitly if needed.

Read more...

This Week in Spring - February 6th, 2018

Hi Spring fans! Welcome to another installment of This Week in Spring! This week I’m in Stockholm, Sweden, for the epic (and snowy) JFokus event, then it’s off to Frankfurt, Germany for the OOP show. If you’re at either event, don’t hesitate to reach out and say hi on Twitter (@starbuxman)!

Read more...

Spring Cloud Stream Elmhurst.M4 /2.0.0.M4 Release Announcement

We are pleased to announce the 2.0.0.M4 release of the Spring Cloud Stream Elmhurst release train.

Spring Cloud Stream Elmhurst 2.0.0.M4 is available for use in the Spring Milestone repository. The release notes include relevant information about version compatibility with Spring Boot, Spring Cloud, Spring AMQP, and Spring for Apache Kafka.

The following sections list the summary of features and improvements included in this release:

  • Continuing performance improvements around Content-type resolution
  • Introduction of Polling Source as an alternative to the event-driven message consumption
  • StreamListener Infrastructure enhancements to primarily deal with multiple destination (details to follow)
  • Continuing Documentation improvements
  • Various other enhancements and bug fixes
Read more...

This Week in Spring - January 30th, 2018

Hi Spring fans! Welcome to another installment of This Week in Spring! This week I was in Los Angeles and Chicago and now I’m in San Francisco, taking meetings with Pivotal ecosystem folks and customers. We’ve got an incredibly busy week’s worth of stuff ahead of us, so let’s get to it!

Read more...

Reactor Bismuth-SR5 is out!

Improvements, new features, and fixes have landed in a Maven Central mirror near you under Bismuth-SR5 Bill Of Material. This version is now used by Spring Framework 5.0.3 and the upcoming Spring Boot 2.0.RC1! Our site projectreactor.io has been updated with the latest versions.

Reactor-Core 3.1.3

release notes

A quality update including more than a dozen fixes and just a couple new features: new Flux#delaySequence and Signal#getContext access to the current flow Context.

reactor-test also welcomed new features including Context verification facilities and a StepVerifier#toString implementation.

Read more...