Project Sagan: zero-downtime deployments

Engineering | Chris Beams | April 04, 2014 | ...

Last week, I began this series by announcing that the Sagan reference app is now open source and showed how to get up and running with it on your own machine.

In this post, I want to walk through how we push Sagan into production at spring.io multiple times a day with zero downtime using blue-green deployments. You may have heard of this technique before; Martin Fowler gave it a write-up a few years ago, and there is a section on it in the highly-recommended book Continuous Delivery. In a nutshell, it goes like this:

  1. maintain two copies of your production environment ("blue" and "green");
  2. route all traffic to the the blue environment by mapping production URLs to it;
  3. deploy and test any changes to the application in the green environment;
  4. "flip the switch" by mapping URLs onto green and unmapping them from blue.

Spring Shell 1.1 RC1 Released

Releases | Mark Pollack | April 03, 2014 | ...

We are pleased to announce the release of Spring Shell 1.1 RC1. The Spring Shell is an interactive shell that can be easily extended with commands using a Spring based programming model.

This is a small bug fix release but includes an important improvement, the upgrade to use the JLine2 library and rewrite of the command parser. Check the release notes for more information. Special thanks to Eric Bottard and to those who submitted pull-requests.

Downloads | JavaDocs | Reference Documentation | Changelog

Spring Tool Suite and Groovy/Grails Tool Suite 3.5.0 released

Releases | Martin Lippert | April 02, 2014 | ...

Dear Spring Community,

we are happy to announce the next major release of our Eclipse-based tooling today: The Spring Tool Suite (STS) 3.5.0 and the Groovy/Grails Tool Suite (GGTS) 3.5.0.

Highlights from this release include:

  • ready-to-use full Java8 support (STS as well as GGTS)
  • updated to Eclipse Kepler SR2 (4.3.2)
  • new advanced content-assist for Spring Boot projects
  • Usability enhancements to live Beans Graph for Spring Boot
  • Cloud Foundry integration now supports Spring Boot
  • Major improvements in the Gradle Integration for Eclipse (including major performance improvements)
  • initial support for Spring Boot CLI apps
  • Grails updated to 2.3.7
  • tc Server updated to 2.9.5.SR1
  • Dashboard improvements (including feeds, shortcuts, and notifications)

Both tool suites ship on top of the latest Eclipse Kepler SR2 release.

To download the distributions, please go visit:

Detailed new and noteworthy notes can be found here: STS/GGTS 3.5.0 New & Noteworthy.

The next version 3.6.0 is scheduled to arrive in July 2014, shortly after the Eclipse Luna (4.4) release. The first milestone build is scheduled to arrive in mid May 2014.

Enjoy!

Spring Web Flow 2.4 RC1 Released

Releases | Rossen Stoyanchev | April 02, 2014 | ...

Spring Web Flow 2.4 release candidate 1 is now available. Please use the http://repo.springsource.org/milestone repository, download a distribution archive, or visit the project home page.

The release includes Java based configuration for Spring Web Flow and Spring Faces. To demonstrate it the booking-mvc and the booking-faces samples have been switched to all Java configuration. See their respective configuration classes here and here.

For more details see the updated documentation and samples repository. Please give this release a try and provide feedback in JIRA towards the final release at…

Spring for Apache Hadoop 2.0 RC2 released

Releases | Thomas Risberg | April 02, 2014 | ...

We are pleased to announce that Spring for Apache Hadoop version 2.0 has reached the Release Candidate stage. The latest release is 2.0.0.RC2. We are moving closer to the GA release, so this is a good time to give this new 2.0 version a try.


The spring-yarn framework makes it easier for you to develop Spring based applications that can be deployed to run on Hadoop v2 using YARN


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 we will be publishing new Spring IO Guides

Spring Boot 1.0 GA Released

Releases | Phil Webb | April 01, 2014 | ...

On behalf of the entire Spring Boot team, I am very pleased to announce the general availability of Spring Boot 1.0! You can download the 1.0.1 with an important security fix here.

You'll find everything you need to get going at projects.spring.io/spring-boot, and from our ever-growing collection of "Getting Started" guides (most of which use Spring Boot).

It's been 18 months since the original request to "improve containerless web application architectures", that gave birth to Spring Boot, was raised. Since then we have seen 1720 commits by 54 different contributors, we've closed 549 issues, and have had the code forked 398 times. Thanks!

Why containerless? Today’s PaaS environments provide much of the management, scale out, and reliability features already, so we focus on making spring boot an ultralight container, great for application or service deployment in the cloud. If you've not yet seen Spring Boot in action, here is a canonical "Hello World!" web application that you can actually run using the CLI tool.

groovy @RestController class Example { @RequestMapping("/") String helloWorld() { "Hello World!" } }

The CLI uses the superb Groovy language to compile your code. You are of course also free to use the Spring Boot libraries directly with Java, or any other JVM based language, to write your applications. Be sure to check out the extensive reference documentation for a full feature breakdown.

If you're interested in looking at a slightly larger example of an application that was built using Spring Boot, try spring.io itself. We recently open-sourced the entire site as a Spring reference application.

For a smaller example, like a service, try the "Building a RESTful Web Service" guide. It shows how writing a service in < 100 LoC is pretty easy, you can even fit executable programs in a single tweet (140 characters)! You can read more about micro-services and boot in Dan Woods’s excellent article on InfoQ.

Thanks to the Java Buildpack team, you'll also find that Spring Boot applications deploy seamlessly to Cloud Foundry; and, of course, you can also use Boot applications with other cloud providers or directly in your own data center.

Finally, if you're an STS user, take a look at the latest v3.5 release which includes integrated support for Spring Boot (see the video below). If you prefer some other IDE (or you're more a Vim/Emacs kind of person) you can use start.spring.io to initialize your project.

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


Thanks again to all the early adopters that have tested, written about and submitted pull-requests for Spring Boot. Your feedback is invaluable to us so please keep it coming!

Project Page | GitHub | Issues | Documentation

First Milestone of Spring Data Release Train Dijkstra Available

Releases | Oliver Drotbohm | April 01, 2014 | ...

I am excited to announce the availability of the first milestone of the Dijkstra release train of the Spring Data umbrella project. This train iteration is a very special one as we have 5 new modules joining the release train: Spring Data Couchbase, Cassandra, Elasticsearch, Gemfire and Redis. I am even more excited about that as the majority of them are community lead projects. These are the modules included:

Comments are back!

Engineering | Chris Beams | April 01, 2014 | ...

When we launched the new spring.io, we left comments off the blog. On one hand this was because we were time-constrained, and leaving them off was the simplest thing to do. On the other hand, it was an experiment in minimalism. We thought we'd see if we could reduce the number of channels for feedback, and in doing so improve the quality all around. We asked everyone to route their questions and feedback on our blog posts to the @springcentral Twitter handle, and many of you did that—thanks!

So how did it go? Well, we heard some feedback from the community that they miss comments on the blog…

This Week in Spring (Spring Boot edition!) - April 1st, 2014

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

Welcome everybody to a momentous This Week in Spring - Boot edition!

Today is, of course, April Fools day. There is a lot of great stuff out there as April 1st jokes go! We didn't prepare any practical jokes this year, but I always like to point people to this still-epic video of Spring co-founder Rod Johnson announcing the sale of SpringSource (as the company where Spring originated was named) to Microsoft! (in 2008, on April Fools)

That out of the way, there's far more interesting stuff to talk about today (with no bearing whatsoever on April Fools): Spring Boot which - just this morning - finally went GA! Congratulations to Phillip Webb and Dr. Dave Syer (and the scores of people who've helped them) on this amazing release.

I don't know what it looks like from the outside, looking in, but we on the Spring team have been watching Philip and Dave drive Boot from concept, to polished prototype where it made a huge splash at SpringOne2GX 2013, to GA over the last year and some change. Boot has informed many of the other Spring projects, including Spring Framework 4.0. A truly game-changing technology, and not just for the JVM, either.

If you haven't tried it yet, then now is the time. There'a a video on using Spring Boot from STS 3.5 (which is due soon as well). STS isn't required at all, but it does have some handy tools! Check it out.

  1. The big news: Spring Boot 1.0.0 has reached it's first major release!
  2. Spring Integration ninja Artem Bilan has just announced Spring Integration 3.0.2 and Spring Integration 4.0 M4. The new stuff in Spring Integration 3.0.2 is awesome, but scroll down for the Spring Integration, Boot & Java configuration demo! I'm tickled pink to see this release. #boot
  3. Spring lead Juergen Hoeller has announced the Spring 4.0.3 release, with Java 8 support and much improved websocket support.
  4. Spring Data legend Thomas Darimont has announced that Spring Data Redis 1.2.1 is now available. The new release includes bugfixes for RedisCacheManager and RedisTemplate.
  5. Spring Data lead Oliver Gierke has just released the first milestone of Spring Data Dijkstra. Check it out!
  6. On April 9, I'll be doing a vJUG presentation, live and worldwide, introducing Spring Boot. My hope is to - in the short space alloted - demonstrate what building an application with Spring Boot looks like. I'd love to see you there, and please feel free to also ask questions on the IRC channel. #boot
  7. Our pal Chris Richardson has chimed in with a blog that describes an approach to building Microservices with Spring Boot. The example is in Scala. Check it out! #boot
  8. Spring Boot's been nominated for Most Innovative Java technology. I'm not sure how the voting process works, but as soon as I find out, I'll post here. Either way, I hope we can count on your help to drive votes through! #boot
  9. Marco Vermeulen put together a very nice talk introducing how to use Spring Boot to build microservices, as well. This example is in Groovy. #boot
  10. Jim Drannbauer has put together a GitHub repository demonstrating how to use the recently released Spring MVC Test HtmlUnit and Cucumber together. With this in place, your unit tests almost read like human sentences! #boot
  11. Our pal Matt Raible is back at it again, this time with not one, but two posts on using Spring Boot! The first post demonstrates how to add Swagger integration to a Spring Boot application, and the second demonstrates what its like to build an iOS client to a Boot backend application using the Ionic framework. #boot
  12. The all and sundry blog is back, this time with a post on using Spring Boot and Scala together. Nice! Boot's a win no matter what language you're using! #boot
  13. Sergi Almar is back this week with a post on how to monitor your websocket threadpools using JMX. This is a fine followup to his last post on detecting websocket connection and disconnection in Spring 4. #boot
  14. The team behind our website has installed Disqus for comments on our blogs. I wish I could show you the emails, but the turnaround from "idea" to "comments are live!" in this instance was insanely quick. Agile, even.
  15. Adam Shook gave a talk SpringOne2GX 2013 Replay: Hadoop - Just the Basics for Big Data Rookies at SpringOne2GX 2013 whose replay is now available online. Don't miss it!
  16. Also available online is David Turanski and Luke Taylor's talk from SpringOne2GX 2013, Real Time Analytics with Spring. Check it out!
  17. The replay of the talk that Spring LDAP lead Mattias Arthursson gave at SpringOne2GX 2013 last year introducing Spring LDAP 2.0 is now live
  18. Did you miss Spring lead Juergen Hoeller's webinar introducing Spring 4 on Java 8? It's available now and definitely worth a watch!

Spring Integration 3.0.2 and 4.0 Milestone 4 Released

Releases | Artem Bilan | March 31, 2014 | ...

We are pleased to announce the final milestone release towards Spring Integration 4.0 and the next maintenance release for the 3.0.x stream. The 3.0.2.RELEASE contains a small number of important fixes for the 3.0 release. Spring Integration 3.0 users are encouraged to upgrade to this release as soon as possible. Please see the 3.0.2 release notes and project page for more information.

Spring Integration 4.0 is the next generation of the framework, which is now based on the new Spring Framework 4.0 Messaging Module. See the Migration Guide for information about migrating applications from…

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

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

Learn more

Get support

Tanzu Spring 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