Spring Team
Josh Long

Josh Long

Spring Developer Advocate

an aisle seat or San Francisco, CA

Josh Long is the Spring Developer Advocate. Josh is the lead author on Apress’ Spring Recipes, 2nd Edition, the O'Reilly "Pro Spring Roo" book, the Pearson "Livelessons for Spring" and a committer on several Spring projects and the Activiti BPMN framework. When he’s not hacking on code, he can be found at the local Java User Group or at the local coffee shop. Josh likes solutions that push the boundaries of the technologies that enable them. Josh's interests include big-data, mobile, REST, NoSQL and integration. He blogs on the Spring blog and [on his personal blog](http://joshlong.com).
Blog Posts by Josh Long

This Week in Spring (Spring XD Edition) - July 29th, 2014

Welcome to another installment of This Week in Spring! This week saw the release of the amazing Spring XD 1.0.0.RELEASE. The release announcement is a good place to start your big-data journey. There, you'll find links to other great posts, learning content, etc. This is a great opportunity to evaluate what you hope to get out of your data, and whether you're getting it. Spring XD is your big-data Swiss-army knife: it can support live, streaming workloads; batch-centric offline workloads; and general data integration solutions. If you digest but one post from this week's roundup, let it be the Spring XD release! (Then, write the data-integration solution to read and organize the rest of them using Spring XD!)


This Week in Spring - July 22nd, 2014

Welcome to another installment of This Week in Spring! This week we're at OSCON in beautiful Portland, OR! It's been a crazy busy week, and only figures to be busier! It's been nice visiting with colleagues and community members alike. The booth on the expo floor has been flooded with users. I love this show. :)

  1. First, the big news: the Spring framework 4.1 release candidate is now available! The new release features updated JSR-107 support, JMS 2.0 and annotation-centric JMS configuration, a SpEL compiler, and so much more.
  2. Spring XD co-lead Dr. Mark Pollack has just announced that Spring XD RC1 is now available. Installation is dead-simple. There are numerous new features, and this train's moving fast so check it out, download the bits, kick the tires, etc.
  3. Spring Data ninja Christoph Strobl put together a nice blog post introducing Spring Data MongoDB's full-text search
  4. The A Piece of My Code blog looks at how to use Spring's integration testing with mock services.
  5. Tousif Khan has put together a nice post on Spring's view controllers
  6. The Tech Zoo blog wrote up how to use Spring's Apache Tiles support
  7. The softwarecave blog introduces how to handle charts with jqPlot, Spring's REST support, AJAX and JQuery
  8. Theodora Fragkouli has written up a nice post on using Spring MVC's Errors tag
  9. I've just stumbled upon this JavaCodeGeeks academy trail on using Spring Data Redis - looks interesting.
  10. Want to use Spring, Hibernate 4, and Ehache together? Check out this tutorial.

This Week in Spring - July 15th, 2014

Welcome to another installment of This Week in Spring! It's been a crazy week and next week figures to be even crazier! Some of us on the Spring team - including Spring Boot co-lead Phill Webb, Spring Batch lead Michael Minella and myself, will be at OSCON next week, so if you're in the area and at the show come say hi! We'll be at the booth at various hours, too.

  1. Spring Batch lead Michael Minella has just announced Spring Batch 3.0.1, and a new Spring Batch extensions repository which itself houses new integrations with Spring Batch. The first contribution is an ItemReader and ItemWriter for Elasticsearch. Nice!
  2. Spring Data ninja Thomas Darimont has just announced support for SpEL in Spring Data JPA @Query annotations
  3. Spring and Groovy Tool Suite lead Martin Lippert has just announced Spring Tool Suite 3.6.0 and Groovy Tool Suite 3.6.0, based on Eclipse Luna 4.4, with support for Groovy 2.3, Grails 2.4, tc Server 2.9.6, and other minor improvements and bugfixes.
  4. Spring Data ninja Christoph Strobl has just announced Spring Data Evans m1, in which many new revisions are included.
  5. Speaking of the first milestone of Spring Data Evans, Spring Data REST ninja Greg Turnquist has just announced that Spring Data Evans M1 milestone comes with ALPS metadata support. FTA: ALPS provides a way to interrogate a RESTful service to find out about the data it serves. Let's look at a quick example. If you clone the TODO repo and run mvn spring-boot:run, you can surf it's values pretty easily. So.. check it out! I know many have been asking about simialar support.
  6. Check out this upcoming webinar by Michael Plod on why he recommends Spring - learn the technology (and a bit of the business) case! Michael is a great speaker and frequently appears at conferences. Register now for the event on July 22nd.
  7. On July 29th, Russ Danner from Crafter software will tell us about Conquering Content-enabled Web and Mobile Applications with Spring and Groovy.
  8. Andreas Eisele has put together a very nice introduction to the machinery behind using @Transactional in your Spring-managed unit-tests, with analysis of common scenarios, code, and more. Vert cool discussion, and a thoughtful post.
  9. The Cegega blog has a very cool look at handling exceptions using Spring Batch's RetryTemplate.
  10. This subject's near and dear to my hear this week, so I just wanted to share this oldie-but-a-goodie: how to use Atomikos with Spring's JTA support
  11. You are, of course, checking out Groovy-language lead Guillaume LaForge's This Week in Groovy, aren't you? :-)

This Week in Spring - July 8th, 2014

Welcome to another installment of This Week in Spring! I hope our American readers had a pleasant 4th of July, and I hope everybody else had a pleasant Friday!

There is, as usual, a lot to discuss this week so let's get to it!

  1. Sleepless Spring Security lead Rob Winch has just announced the first milestone of Spring Session. Spring Session makes it easy to access a session from any environment (i.e. web, messaging infrastructure, etc), support for clustering in a vendor neutral way, plug in strategies for determining the session ID, and easily keep the HttpSession alive when a WebSocket is active. This is really cool! And, in fact, it might solve an issue I faced just last week where I wanted to access the HTTP session from a Web Socket handler!
  2. Andy Wilkinson has just announced Spring Boot 1.1.4 release. The new release includes many bug-fixes and small new features, including support for the first stable preview release of Tomcat 8.
  3. Andy also just announced the first maintenance release to Spring IO which updates versions across the platform to include Spring AMQP 1.3.5, Spring Boot 1.1.4, Spring Batch 3.0.1, Spring for Apache Hadoop 2.0.1, and Spring Framework 4.0.6. Nice job, Andy!
  4. Thomas Risberg has just announced Spring for Apache Hadoop 2.0.1 which revs the dependency versions, including Hadoop 2.4.1, Spring framework 4.0.6.RELEASE, Spring Batch to 3.0.1.RELEASE, Spring Boot to 1.1.4.RELEASE.
  5. Stéphane Nicoll has just announced that Spring framework 4.0.6 is now available. This release includes about 50 bugfixes.
  6. Spring Social lead Craig Walls has just announced that Spring Social Facebook 2.0.0.M1 is now available. This release supports the new Facebook v2.0.0 Graph API, which introduces some breaking, obligatory, changes (thanks, Facebook!).
  7. Groovy project lead Guillaume LaForge has announced the beta of the new Groovy website and is soliciting feedback from the community at large.
  8. From the trenches: Join Casey Doolittle and Phil Dutson on July 15th for a webinar about a crazy project, and how they had to Build a Shopping Cart in 24 Hours using Spring.
  9. Check out this upcoming webinar by Michael Plod on why he recommends Spring - learn the technology (and a bit of the business) case! Michael is a great speaker and frequently appears at conferences. Register now for the event on July 22nd.
  10. On July 29th, Russ Danner from Crafter software will tell us about Conquering Content-enabled Web and Mobile Applications with Spring and Groovy.
  11. Last year, Spring tool ninjas Andy Clement and Martin Lippert did a great talk at SpringOne2GX 2013 introducing the latest and greatest tooling.
  12. Last year at SpringOne2GX 2013, Julien Dubois (you might recognise him from JHipster..) did a great talk looking at how to run and performance tune the classic Spring petclinic application.
  13. Dr. Dobb's had a nice post looking at the new Spring IO release.
  14. InfoQ's Matt Raible also put together a nice look at Spring IO. Check it out!
  15. The Literate Java blog has an interesting post on implicit (component-scan-centric) vs. explicit configuration (using XML) in Spring. I'd argue that Java configuration should really be considered as it offers the best of both explicit XML configuration (centralized, easy-to-reason about configuration) and implicit, but type-safe, Java annotation-and-component-scann-centric configuration. Either way, interesting post!
  16. Spring Boot is now in Thoughtwork's technology radar under assess.
  17. The Codeleak.pl site has a nice look at one of the smaller, but super powerful, features in Spring 4 - CGLIB proxies no longer require a default constructor!
  18. I've enjoyed this series of tutorials on using Spring and Angular.js. You might as well. Nice job, Christopher Henkel!
  19. The Apprenticeship Notes blog has a nice series of tutorials on how to use Spring MVC, Thymeleaf, and Bootstrap together.
  20. The Autoletics blog has a nice, numbers-filled, look at their experience profiling the Reactor project. Interesting stuff! Some of the points are interesting, too. As readers of this roundup know, Reactor is a highly concurrent event-driven IO-ready platform. And, it's ridiculously fast.
  21. I wanted to give a hat tip to Paul Snively, who has been using the 1-2 punch combo of the Spring (and Scala) and a third-party integration of Spring MVC for Alfresco to build Alfresco-powered solutions. Nice!
  22. Whether you like the new Groovy website or not (although, why wouldn't you?), you'll love the new Groovy 2.3.4 release which just dropped today and includes improvements on static compilation and AST transformations.
  23. HornetQ project-lead Clebert Suconic is inviting community feedback about a proposed contribution of HornetQ to the Apache ActiveMQ project. We know that developers in our community know and use both, so perhaps now's a prudent time to feedback if this proposed merger affects you! I personally like the idea. ActiveMQ.next (long codenamed "Apollo") seems like it could use the hug that a HornetQ-contribution could give it. And, of course, Spring Boot supports both ActiveMQ and HornetQ now, so either way, you're set!

This Week in Spring - July 1st, 2014

Welcome to another installment of This Week in Spring! It's already July, and Summer is here! Can you believe it? Time sure flies. We've got a lot to cover this week, as usual, so let's get to it.

  1. Last week, we announced the Spring IO platform. I won the lottery on this one, and they let me write the blog, but this effort reflects more than a year of internal discussion, planning, hard work, cooperation and coordination between all the Spring projects. I did my level-headed best to introduce the Spring IO platform in this blog. You should read it. If it doesn't sound awesome and very, very useful, than I've simply done a poor job explaining it! :D Don't hesitate to reach out. The Spring IO platform is a radically simpler way of dealing with dependencies across all the Spring portfolio projects. It's also a simpler logical model when using the Spring projects.
  2. Dr. Dave Syer just announced that Spring Boot 1.1.3 is now available. This is mainly a bugfix release affecting Windows users.
  3. Spring Data lead Oliver Gierke has announced Spring Data Dijkstra SR1. This includes 59 bugfixes across numerous modules.
  4. Want to use Spring Boot? So do a lot of people. And there are many ways to get started. I tried to document some of the common options - the Spring Initializr, STS, and others like JHipster - in this little blog
  5. There's a nice post on Zoltan's blog about Spring's flexible cache abstraction. The blog demonstrates how you might readily use a local cache like EHCache or a distributed cache like Hazelcast. Cool stuff! Also be sure to check out the great work coming in Spring 4.1's updates to the cache abstraction.
  6. As readers of this space will know, we (along with RedHat, Typesafe, Netflix, etc), are cooperating on the reactive streams project, which aims to provide a foundational layer for reactive applications. Our implementation is based on our Reactor project, which underpins Spring 4's very robust websocket support), for example. The Scalac.io blog has a nice example on how to use Typesafe's implementation of the collaboration along with RabbitMQ. The Reactor implementation shouldn't be too far along, and in the meantime, this is a nice look at one approach to working with RabbitMQ.
  7. Speaking of RabbitMQ, the Google Cloud Platform blog has a great post on how to setup a RabbitMQ cluster to handle over a million messages a second in a single click with Google's GCE (Google Compute Engine). That's super cool! It's nice to see RabbitMQ added to the staple of supported middleware on GCE. (I would be remiss if I didn't mention that Cloud Foundry and basically every other Platform-as-a-Service have simialarly painless setup for RabbitMQ, as well...)
  8. Helmet M. Juskewycz from Lingohub has just published a very cool blog on why Lingohub is moving from Ruby on Rails to Spring MVC. I should mention that even within Pivotal - a company with developers of all walks of life - we've seen some migration to Spring (and Spring Boot), as well!
  9. The Spring Security and Spring Data teams are cooking up some great stuff for us. Check out some of the work!
  10. I just found this post on how to add Spring framework to an Eclipse project. The steps provided aren't specific to Spring, though. I'd recommend you just use the Spring Tool Suite and go to File -> New -> Spring Starter Project. For more on how simple STS makes working with Spring, check out this introduction video.

Introducing the Spring IO Platform

We're pleased to announce the release of Spring IO 1.0!

Spring IO is first and foremost a logical description of what many of users will already know and use as a single, cohesive, harmonized platform, centered around Spring.

Big Things Come in Small (Java) Packages

The Spring IO platform includes Foundation Layer modules and Execution Layer domain-specific runtimes (DSRs). The Foundation Layer represents the core Spring modules and associated third-party dependencies that have been harmonized to ensure a smooth development experience. The DSRs provided by the Spring IO Execution Layer dramatically simplify building production-ready, JVM-based workloads. The first release of Spring IO includes two DSRs: Spring Boot and Grails. Spring XD will be added to the Spring IO platform later in 2014.


Spring IO Platform 1.0.0 Released

We're pleased to announce the release of Spring IO Platform 1.0.0 RELEASE, and represents some amazing engineering work. The highlights of this release are:

  • A Bill-of-Materials release (a Maven BOM dependency) that level sets the versions for you.
  • Spring IO represents curated and harmonized dependencies that just work together - tests cover all the Spring projects and lots of popular 3rd party open source
  • One platform, many workloads - build web (HTML-, websocket-, and REST-powered web apps), mobile, integration, batch, reactive or big data applications, or just great APIs
  • Radically simplified development experience with Spring Boot
  • Production-ready features provided out of the box (monitoring, metrics, etc)
  • Modular platform that allows developers to deploy only the parts they need
  • True portability across standalone JVM, embedded runtimes, full-blown Java EE application server, and PaaS deployments like Cloud Foundry
  • Depends only on Java SE, and supports Groovy, Grails and some Java EE
  • Works with your existing dependency management tools such as Maven and Gradle
  • The Spring IO Platform is certified to work on JDK 7 and 8 (though individual projects may support older JDKs on a project-by-project basis)
  • Ideal platform for building next generation, micro-service style architecture

This Week in Spring - June 24, 2014

Welcome to another installment of This Week in Spring - this week I'm working with the amazing Vaadin team on building some ridiculously fun applications. Be ready for more on that soon! Also, the SpringOne2GX 2014 early bird has been extended to June 30th, so register now! Without further ado, onward:


This Week in Spring - June 17, 2014

Welcome to another installation of This Week in Spring. This week I'm in Toronto, Canada, visiting the Pivotal Labs offices and talking to customers doing amazing things with different parts of the Spring platform.

There is some very exciting news coming tomorrow, so be sure to check this blog tomorrow!

  1. Spring for Hadoop 2.0 GA has been released! The new release adds support for Apache Hadoop (2.2, 2.4), Pivotal HD 2.0, Cloudera CDH 5, and Hortonworks HDP 2.1, supports YARN, new readers/writers for working with HDFS, new support for reading and writing POJO datasets using the Kite SDK, and a lot more.
  2. Spring YARN ninja Janne Valkealahti has put together some epic guides introducing Spring YARN. Related: there are Canadian banks interested in this stuff! BANKS - the most risk averse organizations in the world!
  3. Stéphane Nicoll talks about the improvements in our Spring Cache abstraction coming in Spring 4.1.
  4. Stéphane also debuts the new Getting Started guide that introduces the Spring Cache abstraction. Very cool!
  5. Join Greg Turnquist on July 8th for a webinar about Building your app management tools with Spring Boot. See how to monitor application logs using a little Spring Integration, Spring WebSocket+STOMP, and other technologies, all with some lightweight Boot+Groovy code.
  6. From the trenches: Join Casey Doolittle and Phil Dutson on July 15th for a webinar about a crazy prioject, and how they had to Build a Shopping Cart in 24 Hours using Spring.
  7. Check out this upcoming webinar by Michael Plod on why he recommends Spring - learn the business and technology case! Michael is a great speaker and frequently appears at conferences. Register now for the event on July 22nd.
  8. On July 29th, Russ Danner from Crafter software will tell us about Conquering Content-enabled Web and Mobile Applications with Spring and Groovy.
  9. SpringOne2GX 2013 replay from Splunk: Integrating Splunk into your Spring Applications
  10. SpringOne2GX 2013 replay from JFrog: Open/Closed Software - Developing freemium application using Spring Framework
  11. Kailashnath Kutti talks about scripting and and querying Hadoop at the Singapore Spring User Group. Nice talk, check it out!
  12. Speaking of Hadoop, check out this article on GigaOm about the state of the Hadoop ecosystem, and of Pivotal's contributions
  13. I liked Rafał Nowak's introduction to Spring Boot.
  14. There's a nice post on Dzone by Lubos Krnac on secure-by-default vs. secure-by-exception approaches to using Spring Security. I like it! The nice thing about Spring Security is that the choice is always yours.
  15. Sezin Karli put together a nice post on how to use Spring Boot's auto configuration support for Spring Social
  16. I loved Netflix engineer Tomas Lin's great post on reading and validating lists of properties with Spring Boot.
  17. Congrats to team Socrates on winning the Neo4j prize at HackSummit for most innovative use of a graph Database for social good. Does this have much to do with Spring? No, it's just that Neo4j's a very nice choice for many different types of data workloads. You might check out the webinar the amazing Michael Hunger and I did on the topic a little while ago!
  18. An oldie but a goodie: Keyhole software's Mark Adelsberger put together a nice post on how they use Spring's RabbitMQ support, following a tutorial on the same subject.

This Week in Spring - June 10th, 2014

Welcome to another installment of This Week in Spring. This week has been an amazing week! I started it in Krakow, Poland, talking to developers at the wonderful 33rd Degree conference, then headed to Warsaw, Poland, where I presented at the amazing local Spring Labs user group. Tomorrow, it's off to London for Devoxx UK where I'll be helping spread the Spring Boot awesome. Then, Friday, it's off to Toronto where I'll be meeting with 4 customers and teams using Spring next week. What's this mean for you? Well, for one, if you're in London and Toronto, say hi! It also means that conference season is on in full force. We try to be wherever we're needed. What conferences (besides SpringOne2GX 2014, of course!) are you going to this year? I'd love to know which conferences you're doing this year. Help us prioritize, please. Thanks! (Twitter hashtag #twiSpring)