The Spring Blog

Engineering
Releases
News and Events

Reactor Debugging Experience

In the Project Reactor team, we believe that the debugging experience of the libraries you rely upon is as important as, let’s say, the feature set or performance.

Today, we’re excited to announce two new experimental projects in the Reactor family!

BlockHound - a new kid on the block

One of the most common rookie mistakes is to block Java threads that are supposed to run only non-blocking code (e.g., Schedulers.parallel()).
It is one of the most harmful issues because you may block unrelated processing or even create a deadlock!

Read more...

This Week in Spring (Happy 15th Birthday Spring!) - March 26, 2019

Hi Spring fans! Welcome to another installment of This Week in Spring! I’m in Pleasanton, CA, visiting one of Pivotal’s large customers, and then tomorrow it’s off to New York City for my talk there at the Kafka Summit with the excellent Tim Berglund and James Watters. Join us! Then, next week it’s off to South Africa (for the SpringOne Tour shows in Capetown and Johannesburg) and then it’s off to Mauritius for the DevConf - if you’re in any of those places, don’t hesitate to say hi!.

Also, totally worth including that on Sunday Spring Framework marked the 15th anniversary of its release on the 25th of March, 2004! Happy 15th birthday, Spring!

Read more...

Spring Cloud Stream Germantown.M1 /2.2.0.M1 Release Announcement

We are pleased to announce the first Milestone of the Spring Cloud Stream Germantown release train - Germantown.M1/2.2.0.M1.

Spring Cloud Stream Germantown 2.2.0.M1 is available for use in the Spring Milestone repository.

Some of the highlights:

Improved Home page and User Documentation

Please check out our new home page and user guide

Further functional programming enhancements

We’ve added additional functional programming enhancements and simplifications where you no longer required to provide @EnableBinding annotation and in some cases you may not need spring.cloud.stream.definition` property. Consider the following:

Read more...

Spring Initializr updates

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Initializr has been updated and is now available on start.spring.io.

UI changes - listening to your feedback

Following the last revision, the main feedback we received was about the missing list of dependencies. Some community members seemed to be looking at this list for information purposes (not necessarily using the website to generate a new app), while others would just like to see what’s available.

While start.spring.io seems like a very simple service, generating applications with a simple HTML form, there’s much more to it - this round of feedback taught us that we need to double-down on product discovery and user centered design.

Read more...

A Bootiful Podcast: CQRS with AxonIQ's Steven van Beelen and Pivotal's Ben Wilcock

Hi Spring fans! In this week’s installment Josh Long talks to AxonIQ’s Steven van Beelen, lead of the Axon project, and Pivotal’s Ben Wilcock, on CQRS, event-sourcing, event-storming, microservices, Spring Boot and the long camaraderie shared by Axon and Spring.

Read more...

Announcing the first milestone of Spring Cloud Function - 2.1.0.M1

We are pleased to announce first milestone of the Spring Cloud Function - 2.1.0.M1.

Individual modules of Spring Cloud Function 2.1.0.M1 are available for use in the Spring Milestone repository.
This release encompasses the following:

  • Some of the features that has always been available in bean factory based function catalog are now part of the functional form (see Dave Syer’s blog for more details on functional form) :
    • Multiple endpoint support - ability to map multiple HTTP endpoints the same way one would expect in conventional context configuration.
    • Function composition - ability to compose function (e.g., foo|bar or foo,bar).
  • Ability to communicate and retain meta-information via Message headers for cases where Message function is composed with non-Message (e.g., Function<Message<?>>, Message<?>> is composed with Function<?, ?>).
  • Support for implicit function composition where catalog.lookup(""), catalog.lookup("|"), catalog.lookup("foo|") or catalog.lookup("|bar") are all valid lookups providing container with enough information to determine your intentions. For example, empty string simply implies there is only one Function in catalog and no explicit name should be provided.
  • Creating Supplier from remote HTTP endpoint where one can define the sink url (destination) and the source url (source) and use the app as a pipeline for events from/to HTTP.
  • AWS Custom Runtime feature.
  • Other minor enhancements and bug-fixes.
Read more...

This Week in Spring - March 19th, 2019

Hi Spring fans! Welcome to another installment of This Week in Spring! What a wild and wonderful week of Spring it’s been! This week I’m in London, UK for the epic SpringOne Tour event and customer visits, then I’m off to Vienna, Austria and then I’m off to Amsterdam, NL for the SpringOne Tour event there. If you’re in any of these places please say hi!

Read more...

A Bootiful Podcast: Spring Security engineer and OAuth slayer Joe Grandja

Hi Spring fans! Welcome to another installment of a Bootiful Podcast! This week Josh Long (@starbuxman) talks to Joe Grandja (@joegrandja) who, not coincidentally, just celebrated his third anniversary working on the Spring team! Joe has been instrumental in building Spring Security 5.x and its OAuth client and resource-server support.

Joe’s team page
Joe on Twitter
Joe just celebrated his third year on the team!

Read more...