The Spring Blog

Engineering
Releases
News and Events

We have adopted a Contributor Code of Conduct!

We have an exciting announcement to make!

The Spring projects are about developing fast, flexible Java apps.

But there’s a driving force behind the technology—its people. We open-source our projects to welcome our community into making Spring the best it can be.

Now we are taking another step in that direction. Each of the active Spring projects has adopted a Contributor Code of Conduct! You can look at the contributor code of conduct right here, and you’ll find a copy in each of our repositories on Github.

Read more...

Spring Data Couchbase 2.0

This is a cross-post blog from Simon BASLÉ from Couchbase. You can find him on twitter (@simonbasle) or github. Learn more about Couchbase and the Couchbase Java SDK on the developer portal. Thanks again, Simon and great job to you and your team! -Josh

Spring Data Couchbase 2.0 is a rewrite of the original Spring Data Couchbase 1.4.x connector. It is based on the Couchbase Java 2.2 SDK and makes heavy use of the new query language N1QL (which was introduced in Couchbase Server 4.0) to offer more features for Spring Data users.

Read more...

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!

Read more...

SpringOne2GX 2015 replay: IoT Realized - The Connected Car v2

Recorded at SpringOne2GX
Presenters: Phil Berman, Michael Minella & Derrick Shields
Big Data Track
Slides: http://www.slideshare.net/SpringCentral/iot-realized-the-connected-car-53122510

For this session we will explore the power of Spring XD in the context of the Internet of Things (IoT). We will look at a solution developed with Spring XD to stream real time analytics from a moving car using open standards. Ingestion of the real time data (location, speed, engine diagnostics, etc) into HDFS, analyzing it to provide highly accurate MPG and vehicle range prediction, as well as providing real time dashboards will all be covered. Coming out of this session, you’ll understand how Spring XD can serve as “Legos®” for the IoT. We’ve made some very cool updates to the app (multi-car support, uses Hadoop and Spark, and more). We also are hoping to be running our app on Cloud Foundry by the conference!

Read more...

SpringOne2GX 2015 replay: Spring Data REST - Data Meets Hypermedia + Security

Recorded at SpringOne2GX 2015
Presenters: Greg Turnquist & Roy Clarkson
Data / Integration Track
Slides: http://www.slideshare.net/SpringCentral/spring-data-rest-data-meets-hypermedia-security

Check out Spring Data REST, a library than can rapidly bridge your data access layer to a RESTful interface using hypermedia. See how you can build the backend for your startup rapidly using top notch practices. We will then look at Spring-A-Gram, a sample application built with Spring Data REST and secured by Spring Security. Snap pictures from your laptop or smartphone and upload them to the server with little effort.

Read more...

SpringOne2GX 2015 replay: HTTP/2 for the Web developer

Recorded at SpringOne2GX 2015
Presenter: Brian Clozel
Web / Javascript Track
Slides: http://www.slideshare.net/SpringCentral/http2-for-the-web-developer

The HTTP/2 spec is here - clients are servers are racing to implement it, while browser support is increasing everyday… The JVM world is already working on it in the Servlet 4.0 and JDK9 specs. But we developers, are still trying to understand the implications of it.

Should we reconsider the way we build JavaScript applications and optimize them for front-end performance? Will our server application have new roles and abilities?

Read more...

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.

Read more...

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:

Read more...

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.

Read more...

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!

Read more...