Spring for Apache Hadoop 2.0 RC3 released

Releases | Thomas Risberg | May 05, 2014 | ...

We are happy to announce that Spring for Apache Hadoop version 2.0 RC3 has just been released.

Now includes support for the latest Hadoop distributions - Pivotal HD 2.0, Cloudera CDH5 and Hortonworks HDP 2.1

Other than version upgrades, the changes in this version revolve around partitioning support for writing datasets SHDP-327.

The main focus for Spring for Apache Hadoop 2.0 is to add YARN application development support in addition to continue to provide improvements in the HDFS and MapReduce support. You can see many of these new YARN features in use in the YARN samples and in the new Spring IO Guides

Spring Data release train Dijkstra RC1 released

Releases | Oliver Drotbohm | May 02, 2014 | ...

I am happy to announce the first release candidate of the next Spring Data release train named Dijkstra. The full list of participating modules looks as follows:

Spring Framework 4.0.4 released

Releases | Juergen Hoeller | May 01, 2014 | ...

Dear Spring community,

It's my pleasure to announce that Spring Framework 4.0.4 is now available. This is a straightforward maintenance release after 4.0.3, primarily fixing regressions and other recent bugs. It also comes with a range of minor dependency updates (including ASM 5.0.2).


Aside from working towards our 4.1 release in July, we intend to do a 4.0.5 & 3.2.9 pair of releases in late May. Both of the latter are the last planned releases in the respective line. So if you have any critical bug reports to consider for those branches still…

Spring Integration 4.0 Released

Engineering | Gary Russell | April 30, 2014 | ...

We are pleased to announce the 4.0.0.RELEASE version of Spring Integration is now available.

The artifacts are available in the Spring repository (repo.spring.io/release) and Maven Central now.

The new features have been covered in some depth in the Milestone 4 and Release Candidate announcements (including Spring Boot examples) but, to summarize:

  • Requires Spring Framework 4.0.3 or above
  • Greatly expanded annotation support for configuring integration flows, laying the groundwork for the Java DSL which is in progress in the extensions repo
  • New endpoints, and more...

For changes since the release candidate, see the GA release notes

Spring 4.1's Upcoming JMS Improvements

Engineering | Stéphane Nicoll | April 30, 2014 | ...

Spring Framework 4.0 introduced a new spring-messaging module, adding a selection of Spring Integration types such as the core Message abstraction. Spring 4.1 aligns its JMS support to allow you to benefit from that abstraction. But before diving into that, I'd like to show you in details how we further improved the infrastructure for listener endpoints.

Annotation-driven listener endpoints

You are probably used to the <xyz:annotation-driven> element or the @Enable* counterpart and perhaps you were looking for something similar for JMS. Look no further: the next major release of the Spring…

This Week in Spring - April 29th, 2014

Engineering | Josh Long | April 29, 2014 | ...

Welcome to another installment of This Week in Spring! Last week I finished an absolutely lovely time in Bangalore, India, and yesterday I popped into Leuven, Belgium at the insanely poplar Devoxx conference founder Stephan Janssen's invitation for a quick visit to the Belgium Java User Group where I got to hang out with some absolutely amazingly enthusiastic locals and, of course, my pal and Spring framework committer Stéphane Nicoll. Naturally, the video of the whole thing should be up on Parleys at some point soon, too!

Let's dive right into it!

  1. Spring Social co-founder and lead Craig Walls has just announced the long awaited Spring Social 1.1.0 release! This new release is fantastic! If you've been following the pre-release cuts over the last year and a half, then you'll know there's been some deep rethinking on how to easily expose Spring Social's Java configuration. The final release is both concise and general purpose. I am super excited to see this and will begin updating my various Spring Social-powered OAuth clients accordingly! VERY nice job, Craig!
  2. Did you see the new "minor" Spring Boot release, 1.0.2? I use quotes because, with Spring Boot, even the minor releases pack a punch! Dr. Syer announced the release and pointed out - among other things - the fancy new @IntegrationTest annotation. Awesome! (now excuse me while I go update my Boot projects...)
  3. Join me and Ashley Puls from New Relic tomorrow April 30th as we track and trace our way through a Javascript (frontend) and Java/Spring (backend) application.
  4. Spring Integration is looking at an incredible new release -- full support for Annotations and Java Configuration + some Spring Boot support! With 4.0, you'll be able to make XML - free integration applications. Project lead Gary Russell taking you through all the new hotness in the webinar, Spring Integration 4.0, the new frontier, on May 13.
  5. Spring Data Neo4j lead Michael Hunger and I will be giving a webinar on the new awesome in Spring Data Neo4j 3.0 and Neo4j 2.0 on May 20th.
  6. Continuing the series on Project Sagan, Spring framework ninja Brian Clozel has just written up a very nice look at how Project Sagan does client-side JavaScript. This is a great look at what modern, client-side applications look like with npm, grunt, and gulp. Best part? The content is delivered as a video! Perfect!
  7. Spring Roo has a major contributor in DISID! Check out this great post from my pal Pieter Humphrey on the future of Spring Roo.
  8. Get 90 minutes with Chris Richardson at SpringOne2GX 2013 as he discusses futures in Java, Scala and Javascript. And no, we don't mean product roadmaps. Check out his session titled: Futures and Rx Observables: powerful abstractions for consuming web services asynchronously.
  9. You you still think that Spring is just for dependency injection? Join Mark Secrist for an amazing and revealing look at fundamental concepts like the underlying design patterns, and building blocks of the framework - highly reusable insights. Watch the replay of his SpringOne2GX 2013 session: Going beyond Dependency Injection.
  10. Xavier Padró put together a nice post on how to use Spring Integration to configure a timeout when acting as a web-service client
  11. IntelliJ ninja Andrey Cheptsov has put together a lovely post on how to use the Jetbrains-originated language Kotlin, the NoSQL database MongoDB, Spring Boot, and the PaaS Heroku together. Nice!
  12. Petri Kainulainen is back at it again, this time with a great post on using jOOQ - which makes working with SQL easier - along with Spring to handle paging and sorting.
  13. Roger Hughes has a cool post on tracking exceptions with Spring's Quartz scheduling support.
  14. There are some nice posts on the Time is running out, don't lose it. blog. The first one of note is this post on a weird ClassNotFoundException that presents itself on older versions of Spring Integration on JBoss EAP 6.2
  15. The second, slightly older, post is on using the Spring Integration MQTT adapter to communicate with MQTT-powered services. MQTT is a lightweight messaging protocol that is at the heart of many internet-of-things based solutions today. Who knows? Your refrigerator might be using it! :)
  16. Want to run a more production-like Hadoop instance on your local machine? Don't want to run a full virtual machine? Check out this post on deploying Pivotal's HD Hadoop distro using Docker! (and then, check out Spring for Hadoop and Spring XD!)

SpringOne2GX 2013 Replay: Going Beyond Dependency Injection

News | Pieter Humphrey | April 29, 2014 | ...

Recorded at SpringOne2GX 2013 in Santa Clara, CA

Speaker: Mark Secrist

Many developers who are learning the Spring Framework think of it as simply another mechanism for centralized dependency injection. While the framework does handle that responsibility quite well, the framework is so much more. In this session, we'll explore some of the building blocks and patterns used by the core framework as well as many of the other Spring projects. The result is that attendees will gain a better understanding of how to use the Spring Framework and learn how to build their own components that can leverage these same patterns. Topics we'll explore:

  • What is the benefit of centralized lifecycle management
  • Programming to interfaces
  • Leveraging the power of proxies
  • Using annotations
  • Understanding the template pattern

Dependency injection is one very important part of what the Spring Framework does. However, it is also a collection of very key patterns that we'll explore.

  • Centralized lifecycle management
  • Examining the BeanFactoryPostProcessor
  • Examining the BeanPostProcessor
  • How to write your own BeanPostProcessor
  • Programming to interfaces
  • Benefits of programming to interfaces
  • Loose coupling
  • Examples of how Spring leverages this mechanism
  • How to leverage in your own Spring applications
  • Leveraging the power of proxies
  • How proxies work in Spring
  • How Spring uses them
  • Writing your own proxy-based solution
  • Using annotations
  • Examples of how Spring uses annotations
  • Using your own annotations
  • Understanding the template pattern
  • Purpose of template pattern
  • How Spring uses templates
  • Creating your own template

Learn more about Spring Framework at http://projects.spring.io/spring-framework

!{iframe width="560" height="315" src="//www.youtube.com/embed/JfgP566BHW0" frameborder="0" allowfullscreen}{/iframe}

SpringOne2GX 2013 Replay: Futures and Rx Observables: powerful abstractions for consuming web services asynchronously

News | Pieter Humphrey | April 29, 2014 | ...

Recorded at SpringOne2GX 2013 in Santa Clara, CA

Speaker: Chris Richardson

A modular, polyglot architecture has many advantages but it also adds complexity since each incoming request typically fans out to multiple distributed services. For example, in an online store application the information on a product details page - description, price, recommendations, etc - comes from numerous services. To minimize response time and improve scalability, these services must be invoked concurrently. However, traditional concurrency mechanisms are low-level, painful to use and error-prone. In this talk you will learn about some powerful yet easy to use abstractions for consuming web services asynchronously. We will compare the various implementations of futures that are available in Java, Scala and JavaScript. You will learn how to use reactive observables, which are asynchronous data streams, to access web services from both Java and JavaScript. We will describe how these mechanisms let you write asynchronous code in a very straightforward, declarative fashion.

!{iframe width="560" height="315" src="//www.youtube.com/embed/aZkwIA4k2xU" frameborder="0" allowfullscreen}{/iframe}

Project Sagan: client-side architecture

Engineering | Brian Clozel | April 28, 2014 | ...

Now that we know a bit more about JavaScript modules, we're ready to dive into the client-side architecture of the Sagan application.

Note: If you haven't read previous blog posts on the Sagan project, you should know that this is the Spring reference application that powers this blog and everything else at spring.io. Previous posts showed out to run this application, how we do zero downtime deployments and also how we upgraded Sagan to use the latest JDK8 features.

In this post, I want to walk through the basics of the client-side architecture in the Sagan application:

  1. Why is the client application in a separate sagan-client project module?
  2. How is it linked with the sagan-site module?
  3. What are npm, bower and gulp?
  4. How do those tools work together to make the client application?

Get the Spring newsletter

Thank you!

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all