The Spring Blog

News and Events

This Week in Spring - February 9th, 2016

Welcome to another installation of This Week in Spring! This week I’m in beautiful Stockholm, Sweden at the amazing JFokus conference. It’s also Shrove Tuesday here in Sweden and the custom is to over-indulge, so as I type this I am eating a Semla. I hope you too enjoy over-indulging on this week’s epic roundup!


Reactive Spring

At SpringOne2GX 2015, Juergen announced plans for Spring Framework 5 with a major focus on reactive architectures. Concrete efforts are already underway and a lot has happened since!

At the most basic level, reactive programming models allow for writing non-blocking services and applications. This requires a fundamental shift from writing imperative logic to async, non-blocking, functional-style code, in particular when interacting with external resources.

Reactive Web Applications

Most Java web applications are built on the Servlet API which was originally created with synchronous and blocking semantics. Over the years, support for asynchronous requests (Servlet 3.0) and non-blocking I/O (Servlet 3.1) was added. In Spring MVC, we’ve found that it is feasible to add selective async HTTP request handling to existing applications. However, we’ve also found that it is very hard to introduce non-blocking I/O within an existing ecosystem of web frameworks and applications. Doing so requires very deep change all the way to the core contracts which need to switch from blocking to async semantics.


Orchestrating Work with Activiti and Spring Integration

I received an email recently that asked about how to forward control from a wait-state in an Activiti (which is an open-source BPMN2 workflow engine from Alfresco) to a Spring Integration flow and then resume execution of the Activiti workflow process upon completion of some work in Spring Integration.

To really appreciate why this is useful goal, we need some background.

What is Activiti

Activiti is a business process engine. It’s basically a directed graph of nodes (states) that model the states of a complex business process. It keeps track of the progression of work described in a business process. It describe automatic- and human-based actors in a system. It also supports interrogating the business process engine to ask questions about the process instances underway: how many of them are there, which ones are stalled, etc. Business Process Management Systems (BPMS) offer many advantages, some of which are:


Spring Cloud Stream 1.0.0.M4 is now available

On behalf of the team, I am pleased to announce the release of Spring Cloud Stream 1.0.0.M4. The new release comes with a few major changes and enhancements, and it defines core abstractions and primitives that we believe to be essential for the development of distributed real-time data processing applications. To name some of them:

Default publish-subscribe semantics

The most important change in Spring Cloud Stream 1.0.0.M4 is the way in which applications interact with each other. We have opted for a default publish-subscribe model, in which each application that receives messages from a given destination will receive a copy of the message. This is a better fit for the processing model of stream applications, where intermediate topics act as data hubs for the various intersecting data streams, also making scenarios such as tapping easier and more efficient. This feature goes hand in hand with the next, which is consumer groups.


This Week in Spring - February 2nd, 2016

Welcome to another installment of This Week in Spring!

This week I’m off to the Microxchg conference in Berlin, Germany, to generally bring the Spring and talk about microservices. Then, it’s off to Stockholm, Sweden for JFokus! As usual, if you’re in either of those places, hit me up!

This week we’ve got a lot to cover so let’s get to it!


SpringOne2GX 2015 replay: Implementing a Highly Scalable Stock Prediction System with R, Apache Geode and Spring XD

Recorded at SpringOne2GX 2015.
Presenters: Fred Melo & William Markito Oliveira
Big Data Track

Finance market prediction has always been one of the hottest topics in Data Science and Machine Learning. However, the prediction algorithm is just a small piece of the puzzle. Building a data stream pipeline that is constantly combining the latest price info with high volume historical data is extremely challenging using traditional platforms, requiring a lot of code and thinking about how to scale or move into the cloud. This session is going to walk-through the architecture and implementation details of an application built on top of open-source tools that demonstrate how to easily build a stock prediction solution with no source code - except a few lines of R and the web interface that will consume data through a RESTful endpoint, real-time. The solution leverages in-memory data grid technology for high-speed ingestion, combining streaming of real-time data and distributed processing for stock indicator algorithms.


SpringOne2GX 2015 replay: Spring Boot is made for tooling

Recorded at SpringOne2GX 2015.
Presenters:Yann Cébron - JetBrains, Stéphane Nicoll, Pivotal
Core Spring Track
Slides: no slides all demo

For many years, IntelliJ IDEA has been widely used in projects employing the Spring Framework. The latest version of the IDE (14.1) now ships with dedicated Spring Boot support. In this practical presentation we’re going to look at some features from IntelliJ IDEA that will help you not only get started with Spring Boot but also guide you along the way, helping with coding and configuration management for your application. As a bonus, we’ll also discover some nice hidden tips and tricks you might not know yet. This talk is all about being more efficient when writing code.


SpringOne2GX 2015 replay: Building Highly-Scalable Spring Applications with In-Memory, Distributed Data

Recorded at SpringOne2GX 2015.
Speakers: John Blum & Luke Shannon
Data/Integration Track

Building highly scalable, low latency applications while simultaneously preserving consistency, high availability and resiliency requires a new breed of technology. In this presentation we introduce Pivotal GemFire along with the open source offering, Apache Geode. Apache Geode is a proven, distributed, in-memory database with ACID properties that can handle large volumes of transactional data under heavy load. Apache Geode gives Spring-based applications the edge they require as demand changes without sacrificing integrity or the end-user’s experience.


SpringOne2GX 2015 replay: Introduction to Reactive Programming

Recorded at SpringOne2GX 2015
Presenters: Stephane Maldini & Rossen Stoyanchev
Web / Javascript Track

This is your one stop shop introduction to get oriented to the world of reactive programming. There are lots of such intros out there even manifestos. We hope this is the one where you don’t get lost and it makes sense. Get a definition of what “reactive” means and why it matters. Learn about Reactive Streams and Reactive Extensions and the emerging ecosystem around them. Get a sense for what going reactive means for the programming model. See lots of hands-on demos introducing the basic concepts in composition libraries using RxJava and Reactor.


Spring Statemachine 1.1.0.M1 Released

We’re pleased to announce a first milestone release of Spring Statemachine 1.1.0.M1.

We released 1.0.0.M1 April 2015 and 1.0.0.RELEASE October 2015. We’ve also done 2 maintenance releases for 1.0.x series and now it’s time to look in a future with a 1.1.x serie. 1.0.x enters into a maintenance mode while main development will focus on 1.1.x. This doesn’t mean that we’ll stop with 1.0.x, maintenance fixes for it will be done until we’re succesfully transitioned beyond 1.1.x release. It is important in Spring projects to not drop maintenance until users are ready to move on into next minor/major release. We expect 1.0.x and 1.1.x live side by side until we fire out 1.2.x or 2.x serie in foreseeable future.