The Spring Blog

Engineering
Releases
News and Events

Spring Framework 5.0.3 and 4.3.14 available now

Dear Spring community,

I’m pleased to announce that Spring Framework 5.0.3 and 4.3.14 are available now, as another pair of refinement releases which are recommended as immediate upgrades for all users. Our 5.0.3 release is the foundation for the upcoming Spring Boot 2.0 RC1 release next week, and 4.3.14 will be picked up by Boot 1.5.10 around the same time.

Spring Framework 5.0.3 comes with fresh support for Kotlin 1.2.20, Reactor Core 3.1.3 and JUnit 5.0.3 and has been successfully tested on the latest JDK 10 early-access builds already.
It also includes fixes for a few recent regressions and selected refinements in the WebFlux APIs, just in time for moving 5.0.x into maintenance mode and preparing for the 5.1 line.

Read more...

This Week in Spring - January 23rd, 2018

Hi Spring fans! Welcome to another installment of This Week In Spring. This week I’m in Los Angeles (warm!) talking to customers and then it’s off to Chicago (not warm!). There’s so much good stuff to cover this week so let’s get to it!

Read more...

Spring Cloud Skipper 1.0 RC1 Released

On behalf of the team, I am pleased to announce the release of Spring Cloud Skipper 1.0 RC1.

Skipper is a lightweight tool that allows you to discover Spring Boot applications and manage their lifecycle on multiple Cloud Platforms. You can use Skipper standalone or integrate it with Continuous Integration pipelines to help implement the practice of Continuous Deployment.

The 1.0 RC1 release fixes several bugs and introduces a some new features.

  • OAuth Security support.
  • Release install, upgrade, and rollback workflow managed using the Spring StateMachine project.
  • REST API improvements.
  • Database Schemas managed using Flyway.
  • Package deletion, checking for active Releases.
  • Release deletion with optional package deletion.
  • Shell commands follow a consistent format, e.g. platform list, release status.
  • Add support for ResourceMetadata URIs in package template.
  • Support for interactive and non-interactive shell modes.
  • Improved conversion from java.util.Properties, to YAML in shell.
Read more...

This Week in Spring - January 16th, 2018

Aloha! This week I’m in sunny Honolulu for the first annual LavaOne conference. If you’re not here, you should be! The show is amazing, enjoys 50% female to male audience attendance, the speakers are world-class (well, except yours truly, but don’t tell them that..) and the location is pretty hard to beat!

That said, nothing gives me more pleasure than saddling up to a table with a laptop, some green tea, sunglasses and sunscreen lotion and checking in on the community. This week’s been a heckuva week indeed! Lot’s of great stuff so let’s get to it!

Read more...

Spring Cloud Edgware.SR1 Released

On behalf of the community, I am pleased to announce that the Service Release 1 (SR1) of the Spring Cloud Edgware Release Train is available today. The release can be found in Maven Central. You can check out the Edgware release notes for more information.

The following modules were updated as part of Edgware.SR1:

Module Version
Spring Cloud Gateway 1.0.1.RELEASE
Spring Cloud Stream Ditmars.SR3
Spring Cloud Config 1.4.1.RELEASE
Spring Cloud Netflix 1.4.2.RELEASE
Spring Cloud Commons 1.3.1.RELEASE
Spring Cloud Consul 1.3.1.RELEASE
Spring Cloud Sleuth 1.3.1.RELEASE
Spring Cloud Security 1.2.2.RELEASE
Spring Cloud Contract 1.2.2.RELEASE
Read more...

Sneak peek at Reactor-Core 3.2 with Milestone 1

Greetings Reactive Spring community!

While the team is still working heavily on the 3.1 line, we also wanted to give the community a chance to get a sneak peek at what’s coming for the future 3.2 line.

In particular, the big goodie slated for 3.2.0.RELEASE is the addition of what we’ve been calling "error mode", "continue mode" or lately more officially "error strategy".

The idea

It is simple, really: what if exceptions in user code that get executed within operators could be recovered from, allowing the sequence to continue?

Read more...

Spring Session 2.0.0 Released

This post was authored by Vedran Pavić

On behalf of the community I’m pleased to announce the release of Spring Session 2.0.0.RELEASE. This release evolved through 2.0.0.M1, 2.0.0.M2, 2.0.0.M3, 2.0.0.M4, 2.0.0.M5, 2.0.0.RC1, 2.0.0.RC2 and 2.0.0.RELEASE, closing over 130 issues and pull requests in total.

What’s New in Spring Session 2.0

You can find highlights of what’s new in the What’s New 2.0 section of the reference. For details refer to the changelog links above.

Requirements

This release moves to Java 8 and Spring Framework 5.0 as baseline requirements. Entire codebase is based on Java 8 source code level now.

Read more...

Building richer hypermedia with Spring HATEOAS

Greetings Spring community,

As previously announced, we have released a new Affordances API in 1.0.0.BUILD-SNAPSHOT. In this blog post, we’ll take a peek at exactly what this feature lets you do.

History of Affordances

For starters, what is an affordance? Doing a little archeology, Mike Admundsen, a REST advocate, has an article detailing the word’s origins, going back at least to 1986:

The affordances of the environment are what it offers …​ what it provides or furnishes, either for good or ill. The verb 'to afford' is found in the dictionary, but the noun 'affordance' is not. I have made it up (page 126).
— The Ecological Approach to Visual Perception (Gibson)

It then appeared in a psychology paper in 1988:

…​the term affordance refers to the perceived and actual properties of the thing, primarily those fundamental properties that determine just how the thing could possibly be used. (pg 9)
— The Design|Psychology of Everyday Things (Norman)

Finally, it can be found in none other than one of Roy Fielding’s presentations on hypermedia in 2008:

When I say Hypertext, I mean the simultaneous presentation of information and controls such that the information becomes the affordance through which the user obtains choices and selects actions (slide #50).
— Slide presention on REST (Fielding)

In all these situations, "affordance" refers to the available actions provided by the surrounding environment. In the context of REST, these are actions detailed by the hypermedia.

In the past, when people moved away from SOAP and its action-based tactics, they have struggled to document their APIs, many unaware that Roy Fielding built hypermedia into REST for this very purpose. By including data along with the controls to not just find related data, but to also use the data is key.

With a HAL document, clients are provided very simple affordances. The links are shown but nothing else about them. What you can do with the links and what it takes to interact with them is not detailed.

Read more...

This Week in Spring - January 9th, 2017

Hi Spring fans! Welcome to another installment of This Week in Spring! This week I’m off to Germany where I’ll be speaking at the Java User Group in Münster on Wednesday night. Then, it’s off to Solingen for a Cloud Native day on the 12th (this Friday) where I’ll be presenting all afternoon - register now! And, if you’re closer to the Pacific ocean than the Atlantic ocean, join me next Monday in Hawaii and we’ll talk about all things Spring at the very promising LavaOne conference.

As usual, we’ve got a lot to cover so let’s get to it.

Read more...

This Week in Spring (7th Anniversary Edition) - January 2nd, 2017

Hi Spring fans! Welcome to another installment of This Week in Spring! I hope you had a wonderful, safe and fruitful new year celebration.

This is the first roundup of the new year and so it is also the 7th year anniversary of my starting this column. Every Tuesday, without fail (come holiday, sick-day, flights or frights!), since the first week of January 2011, I’ve put together this roundup and it has been, and continues to be, an honor. As usual, I’m always happy to have feedback and suggestions from you, the most amazing community ever! Don’t hesitate to reach me on Twitter (@starbuxman) or by email.

Read more...