The Spring Blog

Engineering
Releases
News and Events

Spring Integration 5.0.2 Available

On behalf of the Spring Integration team I am pleased to announce that the 5.0.2.RELEASE maintenance version for the Spring Integration is available.

It can be downloaded from Maven Central, JCenter, and our release repository:

compile "org.springframework.integration:spring-integration-core:5.0.2.RELEASE"

As usual I would like to thank all community members for their ongoing active contributions to the framework!

Along with upgrades to the latest Spring Framework 5.0.4 and Reactor Bismuth-SR6 versions, this Spring Integration support version provides a number of bug fixes, especially for the @ServiceActivator with a collection method argument and LockRegistryLeaderInitiator. So, everybody is encouraged to upgrade.

Read more...

Spring Boot 2.0.0 RC2 available now

On behalf of the team, it is my great pleasure to announce that Spring Boot 2.0.0.RC2 has been released and is now available from our milestone repository.

This release closes 180 issues and pull requests. It is our second, and hopefully final, release candidate. All being well, 2.0.0 will be released next week. Thank you to everyone who tried RC1 and provided us with valuable feedback.

We’ve refined a number of items from RC1, including significant improvements to our Micrometer integration and numerous dependency upgrades. For a complete list of changes and upgrade instructions, please see the Spring Boot 2.0.0.RC2 Release Notes on the wiki.

Read more...

Spring Vault 2.0 GA released

On behalf of the community, I’m pleased to announce the general availability of Spring Vault 2.0. Since the first efforts for Spring Vault 2.0, it has been a 10 months ride until we reached this GA release. These are the most significant changes in Spring Vault 2.0:

  • Upgrade to Java 8 and Spring Framework 5.
  • Reactive Support.
  • Improved null-safety by providing JSR-305 annotated API.
  • Vault repository support through Spring Data KeyValue repositories.
  • Kubernetes, AWS ECS/IAM authentication.
  • RoleId/SecretId unwrapping for AppId authentication.
  • Spring Security integration with VaultBytesEncryptor and VaultRandomBytesKeyGenerator.
Read more...

Spring Data Kay SR4 released

On behalf of the Spring Data team, I’m pleased to announce the fourth service release of the Kay release train in prospect of Spring Boot 2.0 RC2.

This service release ships on top of the just-released Spring Framework 5.0.4 and Project Reactor 3.1.4, and provides the answer to persistence the code and everything. Kay SR4 will be picked up by Spring Boot 2.0 RC2 for your convenience and is a recommended upgrade to users of the Kay release train.

You can find all details within the linked changelogs.

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

Spring Cloud Task 2.0.0.M3 is now available

We are pleased to announce that Spring Cloud Task 2.0.0.M3 is now available on Github and the Pivotal download repository. Many thanks to all of those who contributed to this release.

What’s new?

This release includes upgrades to existing dependencies as well as some exciting new features for users of Spring Cloud Task. From a dependencies perspective, Spring Cloud Task 2.0.0.M3 has been upgraded to use the Spring Boot 2.0.0.RC1 stack as well as Spring Cloud’s Finchley M6 dependencies.

Beyond just a dependency upgrade, there are a number of new features within Spring Cloud Task 2.0.0.M3. Let’s take a look.

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