This Week in Spring - May 21, 2013

This Week in Spring

Welcome to another installment of This Week in Spring! We are finally running out of SpringOne2GX video recordings.. this is the last week in Spring that you'll see them, so refer back to the replays page for an index. As usual, we've got a lot to cover so let's get to it!

  1. Spring lead Juergen Hoeller just announced the release of Spring Framework 4.0 M1 and 3.2.3.RELEASE The 3.2.3 update mainly includes updates and fixes related to Java 8 support. The 4.0 milestone, on the other hand, is a look ahead to the many awesome features in Spring 4.0 including support for web sockets, Java EE 7, the @Conditional annotation (in the same vein as the @Profile annotation) and much more, so be sure to check it out!
  2. TcServer 2.9.2 is now available! The release contains security fixes and updates, for more details check out the release notes.
  3. Jennifer Hickey's talk -- Thinking outside the container - Standalone Applications on CloudFoundry has been released in HD on YouTube.
  4. Stephen Bohlen's talk --An Introduction to Spring.NET for Java developers, has been released in HD on YouTube.
  5. InfoQ has done a nice writeup of Spring HATEOAS
  6. Johnathan Mark Smith has put together a nice post on how to use Spring's Java configuration style.
  7. Xavier Padró has put together a nice post on how to communicate within a Spring Web Flow flow
  8. Static.com has announced their Hadoop and Cloud Foundry-powered service. Frankly, it looks really cool and cost-effective as a public platform on which to host applications that need a backoffice Hadoop solution.
  9. I can't believe I missed this! RabbitMQ 3.1.0 is out (slightly old news) and, to introduce it, you should check out this amazing RabbitMQ 3.1.0 in pictures.
  10. The HMKCode blog has a nice post on doing the not-so-well-documented, but common, things with a MyBatis, Spring and jUnit integration.
  11. The Java Code Geeks have put together a nice tutorial on how to process radio buttons in a form in Spring MVC.
  12. Gerry Tan has put together a nice blog on how to bind form date values with Spring MVC.

SpringOne2GX 2012 Replays: Standlone Apps in CloudFoundry, Intro to Spring.NET for Java Developers

Thinking Outside the Container: Running Standalone Apps on Cloud Foundry

Some applications simply cannot be contained. Perhaps you want to write a worker that periodically polls for updates or performs a maintenance task. Perhaps you would like to use a new lightweight web framework. You don't necessarily want to build a WAR for these types of apps. With Cloud Foundry, you don't have to! In this session, we will build and deploy several types of standalone applications, from distributed workers built with Spring Integration and Akka, to container-less web applications built with vert.x and spray, to bring-your-own-container apps that embed Jetty. If you're a Java or Scala developer who likes to "think outside the container", this talk is for you!

About the speaker Jennifer Hickey

Jennifer Hickey is a Sr. Software Engineer with SpringSource/VMware, with over a decade of experience in software engineering. Jennifer is a member of the Cloud Foundry team, specializing in developer experience and support of frameworks such as Spring, Grails, Rails, and Sinatra. She is passionate about increasing developer productivity in the cloud. Jennifer has led or contributed to a number of SpringSource projects, including Hyperic and tc Server. She has been involved in converting multiple large EJB/legacy codebases to Spring. Prior to joining SpringSource, Jennifer was a principal architect of a large-scale network management system.

More About Jennifer »


An introduction to Spring.NET for Java developers

In this session you will learn the basics of getting started using Spring on .NET. All your friendly features will be there to great you: dependency injection, AOP, declarative transaction management, web framework, ORM, and messaging middleware integration, but with a .NET twist. Come and see how you can use your existing Spring Java skills to develop easily testable POCO based .NET applications

  About the speaker

Stephen Bohlen

Stephen Bohlen Currently a Senior Software Engineer for SpringSource where he is the Technical Lead and Community Evangelist for the Spring.NET Framework, Stephen brings his varied 18-year-plus experience in software and technology to the design and delivery of Software Engineering Solutions and Frameworks for other Software Engineers. In addition to his work on Spring.NET, Stephen is also an active contributor to several other .NET Open-Source Software projects including NHibernate, NDbUnit, and others as well having developed a number of Visual Studio productivity add-ins. Active in the software development community, Stephen speaks publicly, blogs (semi-)regularly, and is the author of several popular screencast series focused on Agile and ALT.NET concepts and technologies including the widely-praised 15-part Summer of NHibernate video series introducing viewers to the popular open-source O/RM tool. Stephen is also a founding/organizing member of the NYC ALT.NET user group which meets monthly to discuss Agile-focused techniques and technologies in the world of Microsoft software development and beyond

More About Stephen »

Spring Framework 4.0 M1 & 3.2.3 available

Dear Spring community, It's my pleasure to announce the first milestone towards Spring Framework 4.0, delivering a first cut of our work on several key themes: the first wave of Java SE 8 / OpenJDK 8 support (some details following below) initial support for JMS 2.0, JPA 2.1, Bean Validation 1.1, and JSR-236 concurrency (from Read more...

This Week in Spring - May 14, 2013

Welcome to another installment of This Week in Spring! Some rather exciting projects have been announced this week, and if you can believe it, we're almost out of SpringOne 2012 replay content! Good thing the SpringOne 2013 agenda grid is going live very soon, so we'll be able to look ahead. As usual, we've got a lot to cover so let's get to it!

In preparation for the agenda grid going live, a lot of new SpringOne 2013 sessions have been accepted:

  1. Jon Brisbin announced the Reactor project. The Reactor project aims to provide a solid foundation for asynchronous IO-based applications, on top of which it is natural to provide integrations for technologies like Grails and Spring. Reactor already features a good multi-language story with support for Groovy and Java (and, particularly, the upcoming Java 8 release!) Be sure to check this out, especially the comments section if you have questions about how this compares to other asynch technology!
  2. Spring Security lead Rob Winch has been busily enhancing the Spring Security and Spring Security OAuth Java Configuration story. He's got a first cut of the Spring Security OAuth Java Configuration API available, and I'm sure he'd appreciate any feedback on the new DSL, so definitely be sure to check it out! Nice work, Rob!
  3. Webinar on Thursday May 16th with Chris Richardson, author of POJOs in Action, on Decomposing Application for Deployability and Scalabilty. Register Now!
  4. Join Broadleaf Commerce's Andre Azzolini for a Webinar on Tuesday, May 28th as they discuss their Lessons Learned Moving from GWT to SpringMVC.
  5. Paul Chapman introduces some of the diverse support for content negotiation in Spring MVC on the SpringSource blog.
  6. Chris Harris's talk, the Spring Data MongoDB Project, from SpringOne2GX 2012 is now available in HD on YouTube!
  7. Lee Faus's talk, Extreme Makeover - Application Edition, from SpringOne2GX 2012 is now available HD on YouTube!
  8. The JIWHIZ blog, and blogger Yuan Ji, has put together a nice post introducing Spring's Java configuration support.
  9. This post - from blogger Chris Wong in a January post called "JmsTemplate is not evil" - explains some of the subtleties of using Spring's CachingConnectionFactory with a raw ConnectionFactory and then, for extra points, introduces one approach to dramatically speeding up ActiveMQ, in particular.
  10. The HMKcode blog has a nice, exhaustive post introducing how to use the jQuery-file-upload plugin with Spring MVC.
  11. Have you taken a look at HATEOAS yet? HATEOAS is a design pattern, an approach, for building better RESTful web services. Spring HATEOAS makes doing so dead simple atop Spring MVC, and this blog by Geraint Jones introduces Spring HATEAOS very nicely
  12. Blogger Alexey Zvolinskiy answers a common question: how do I bind checkboxes to the model object that's sent back and forth to the server in Spring MVC?
  13. Our friend @baeldung maintains a daily Twitter feed of awesome posts about Spring on StackOverflow, and I think he's dug up some absolutely amazing content. One post answers a question I am frequently asked: how do I enumerate all the Spring MVC @Controller-annotated beans at runtime?
  14. Another great post that I found while trawling through the @SpringAtSO handle was this post, explaining how to propagate request-scoped attributes beyond the thread of the current request. This post applies generally to any situation where a request-scoped attribute needs to propagate beyond its original thread and request.

SpringOne2GX 2012 Replays: Spring Data MongoDB Project, Extreme Makeover: JEE Application Edition

The Spring Data MongoDB Project

This talk will introduce the Spring Data MongoDB project. Spring Data MongoDB provides a feature rich library for writing MongoDB applications in Java. It builds upon the Spring Framework and as such promotes a POJO programming model with a strong emphasis on productivity.

The Spring MongoDB Project provides a rich object mapper, a MongoTemplate helper class to simplify common document access operations using query, criteria, and update DSLs, automatic repository interface implementations, QueryDSL integration, and cross-store persistence.

About the speaker Chris Harris

Chris Harris is a European Solution Architect at 10gen. Prior to 10gen, Chris was EMEA Architect at SpringSource responsible for evangelising vFabric products and defining architectural solutions for customers across EMEA. With the acquisition of SpringSource by VMware, Chris focused on how virtualization and cloud computing can be used to address the complexity within the Enterprise. Before joining SpringSource, Chris spent his time at RedHat/JBoss providing consultancy to major clients across EMEA.

More About Chris »


Extreme Makeover - Application Edition

In this episode we look at an old worn out application that has migrated from 3 different teams and 15 team lead changes. The poor application is now showing its years and doesn't perform like it did when it was first architected. Now through the help of a new platform, this application has an opportunity to shine again. Taking a look at past projects that have gone through similar transformations we will look at patterns and processes that can be leveraged to redesign traditional JEE applications into lightweight applications using Spring, CXF, SpringMVC, and SOA. Finally, we will walk through code examples to show how quickly applications can be developed using this new stack.

  Lee Faus

My career began with a need to teach and mentor. I found these skills to be invaluable in the field of information technology. I started doing basic cabling and network infrastructure although I always had a propensity for coding and software architecture. My specialty in information technology is the integration of multiple technologies to assemble them into business applications with a keen focus on open source frameworks and products. I have consulted for some of the largest corporations in the world with my primary focus in the last 7 years around cloud computing.

More About Lee »

Reactor – a foundation for asynchronous applications on the JVM

We’re pleased to announce that, after a long period of internal incubation, we’re releasing a foundational framework for asynchronous applications on the JVM which we’re calling Reactor. It provides abstractions for Java, Groovy and other JVM languages to make building event and data-driven applications easier. It’s also really fast. On modest hardware, it's possible to Read more...

Content Negotiation using Spring MVC

There are two ways to generate output using Spring MVC: You can use the RESTful @ResponseBody approach and HTTP message converters, typically to return data-formats like JSON or XML. Programmatic clients, mobile apps and AJAX enabled browsers are the usual clients. Alternatively you may use view resolution. Although views are perfectly capable of generating JSON Read more...

Lessons Learned Moving from GWT to Spring MVC

Start: 2013-05-28 10:00 End: 2013-05-28 11:00 Timezone: US/Pacific Start: 2013-05-28 10:00 End: 2013-05-28 11:00 Timezone: US/Pacific .event-nodeapi, .submitted {display:none}

Broadleaf Commerce is an eCommerce framework largely based on Spring. In the latest version 3.0, Broadleaf migrated its admin console from GWT to a Spring / Spring MVC / Thymeleaf application and updated the framework to Spring 3.2. This session will begin by discussing reasons for moving to Spring MVC as well as why Thymeleaf was chosen as the templating engine. We will also cover some of the more interesting Spring extension points we utilized to provide extensibility for users of Broadleaf.

Europe: Tuesday, May 28
3:00pm GMT Summer Time (London, GMT+01:00)

North America: Tuesday, May 28
10:00am Pacific Daylight (San Francisco, GMT-07:00)

Decomposing Applications for Deployability and Scalability

Start: 2013-05-16 10:00 End: 2013-05-16 11:00 Timezone: US/Pacific Start: 2013-05-16 10:00 End: 2013-05-16 11:00 Timezone: US/Pacific .event-nodeapi, .submitted {display:none}

Today, there are several trends that are forcing application architectures to evolve. Users expect a rich, interactive and dynamic user experience on a wide variety of clients including mobile devices. Applications must be highly scalable, highly available and run on cloud environments. Organizations often want to frequently roll out updates, even multiple times a day. Consequently, it’s no longer adequate to develop simple, monolithic web applications that serve up HTML to desktop browsers.

In this talk we describe the limitations of a monolithic architecture. You will learn how to use the scale cube to decompose your application into a set of narrowly focused, independently deployable back-end services and an HTML 5 client. We will also discuss the role of technologies such as Spring and AMQP brokers. You will learn how a modern PaaS such as Cloud Foundry simplifies the development and deployment of this style of application.

Europe: Thursday, May 16
3:00pm GMT Summer Time (London, GMT+01:00)
Register Now

North America: Thursday, May 16
10:00am Pacific Daylight (San Francisco, GMT-07:00)
Register Now

This Week in Spring - 7 May, 2013

This Week in Spring - 7 May, 2013

Welcome to An Epic Week in Spring! Lots of new sessions have been posted to SpringOne Conference, so head over to the site and check out the featured sessions! We'll have the agenda grid online before the end of May.

Featured SpringOne2GX 2013 sessions accepted!

Many other new sessions accepted as well:

And now, back to our regularly scheduled week in Spring... as usual, we've got a lot to cover, so let's get to it!

  1. Juergen Hoeller and Marius Bogoevici's talk, Java EE services for Spring applications, from SpringOne2GX 2012 is now available in HD on YouTube!
  2. John Davies's talk, Spring Integration in the Wild, from SpringOne2GX 2012 is now available HD on YouTube!
  3. Kim Saabye Pedersen has written a small example on using @Transactional on an interface with Spring's transaction management infrastructure. Nice job, Kim!
  4. Would it be possible to take Spring Petclinic as it is now and scale it up to 1000 requests per second on a single server instance? Julien Dubois from Ippon Technologies has written a great series of five blog entries on that topic. If you missed them from the previous roundups, check out the whole series, starting here!
  5. Petri Kainulainen has written a great post introducing how to sort data using Spring Data SOLR.
  6. By the by, I know I've mentioned this before, but it really is handy. Have you checked out Alvaro Videla's RabbitMQ simulator?
  7. Spring Data ninja Oliver Gierke has written a great response to the question, How do I use Spring Data MongoDB in a multi-tenant fashion? Be sure to check it out. Generally, his advice is applicable to many such scenarios.
  8. Serkan ÖZAL has put together an awesome, bytecode-based RowMapper that can be used with Spring's JDBC infrastructure (like JdbcTemplate) and that can handle relationships like an ORM might. Because it's bytecode-based, it's very fast and not given to the same reflection-based performance limitations of Spring's own BeanPropertyRowMapper. I haven't tried this out yet, but it looks very promising!
  9. Our friend Roger Hughes is back with a tutorial (of two posts, thus far). The first, RESTful Ajax with Spring MVC, establishes an application (without REST and Ajax) and the second then introduces serializing data objects using Jackson, a JSON serializer.
  10. Bharat Sharma also wrote a nice post on serializing to JSON with Spring MVC this week!
  11. Blogger Kal wrote up a nice post on how Spring MVC simplifies file-uploads with Spring MVC and commons-fileupload.

SpringOne2GX 2012 Replays: Spring Integration in the Wild, Java EE Services for Spring Applications

Spring Integration in the Wild

Few companies have been quite at the forefront of implementing Spring Integration (Batch & Data etc.) as Incept5, this year's VMWare EMEA cloud partner. John will cover a few of the more interesting implementations from an architectural point of view, looking at the choices, the reasoning, design and some of the issues behind the implementations. From projects with no SI skills ramping up to teams of several dozen programmers to experienced teams just looking for training, best practices and better data services integration.

A number of large banks are already in production with Scala-based SI workflows, is this still leading edge or have it moved into main-stream? What next for spring Integration and the tooling, what are the clients using and asking for? John will be joined by some of the Spring Integration team so an excellent opportunity to look at the present and future of Spring Integration and tooling.

About the speaker John Davies

John Davies is co-founder and CTO of Incept5. Incept5 have been intimately involved in implementing Visa's new capabilities and initiatives around the payments world. John's past includes global chief architect at JP Morgan and BNP Paribas, co-founder and CTO of C24 later sold to Iona and then Progress Software where he was technical director. John specialises in high performance, low latency enterprise architectures, Incept5 have products ranging form top selling iPhone/iPad apps to a high performance matching and reconciliation engine and consult to a number of large clients on IT strategy. John has co-authored several enterprise Java and architecture books and is a frequent speaker at banking and technology conferences.


Java EE Services for Spring Applications

The continuous evolution of both the Spring Framework and the Java EE platform presents us with new challenges and opportunities for collaboration. Several recent EE services are very commonly used with Spring, e.g. Servlet 3.0, JPA 2.0 and Bean Validation. This session presents an up-to-date analysis: How do recent Spring versions (3.1/3.2) integrate with Java EE 6? How is this going to be affected by Java EE 7 in a year's time?

What kind of services may a Spring application expect from a modern Java EE server, beyond the pre-packaging of common Java APIs? How much effort does it take to add a custom selection of Java EE services to e.g. Tomcat, for use in Spring-based applications? Does it make sense to use Spring and Java EE component models such as EJB 3.1 or CDI together? What are the integration options?

  About the speakers Juergen Hoeller

Juergen Hoeller is co-founder of the Spring Framework open source project and has been serving as the project lead and release manager for the core framework since 2003. Juergen is an experienced software architect and consultant with outstanding expertise in code organization, transaction management and enterprise messaging.

More About Juergen »

Marius Bogoevici

Marius Bogoevici is a Senior Software Engineer with Red Hat, leading the Spring integration efforts for JBoss AS and other JBoss projects. He is the lead for Snowdrop, a utility package that contains JBoss-specific extensions to the Spring Framework, and also a contributor to Weld, the JSR-299/CDI Reference Implementation and other Java EE-related developer initiatives at JBoss. Marius Bogoevici has an extensive experience of more than 15 years developing and architecting software systems. Prior to joining Red Hat, he was a Spring consultant with SpringSource. He is a contributor to the Spring Integration enterprise integration framework and co-author of “Spring Integration in Action”.

More About Marius »

Wishing WaveMaker good luck at Pramati

Many of you may have heard about Pramati's acquisition of WaveMaker assets from VMware, and we wanted to officially wish them well here.   However, one of WaveMaker’s users, in response to the news of the upcoming transition, already expressed the sentiment eloquently:

“WaveMaker is by far the best tool I have had the pleasure to use for building real world business apps and websites. You guys have just put so much clever thinking into it. It’s not just a nice ajax screen painter, but has huge depth with the way it binds to parts within.  Please, Please keep it going..
I would happily pay for it …”
Comment by jguy — March 20, 2013 @ 7:59 am

Well, it’s found a new steward and home.  The SpringSource team is confident WaveMaker has a bright future at Pramati, whose expertise in Java, Cloud and Mobile Computing and will serve it well. WaveMaker's recent releases had all been centered around Mobile, and Cloud support, making a natural fit for Pramati's goals. We wish WaveMaker well as it evolves - and continues to generate new classes and types of applications that are at the core, Spring applications.   

Happy WaveMaking,
The SpringSource Team

This Week In Spring - April 30th, 2013

Welcome to another installment of This Week in Spring! We've got a lot to cover this week, as usual, so let's get to it. Did you miss last week's Pivotal public launch? Catch the replay and learn about GE's investment in the new entity! Pivotal's mission is about bringing consumer-grade software to the enterprise -- where open source technology like Spring, Groovy, Grails, RabbitMQ, Redis, and Cloud Foundry, are already widely adopted. Check out the new Pivotal website, under the Community link (top right) for some other open source initiatives that might surprise you!

  1. Oliver Gierke has announced Spring HATEOAS 0.5, which contains lots of new features!
  2. Spring Security lead Rob Winch has announced that Spring Security 3.1.4 is now available. This is a maintenance release with a number of bug fixes including OSGi support for Spring 3.2.
  3. Spring Data ninja Oliver Gierke also (boy that guy gets around!) tweeted a look at the Spring Data roadmap: introducing Spring Data "Babbage."
  4. Spring Data Arora SR1 released this week (named for Sanjeev Arora). As an aside, you have probably noticed that the names of the various Spring Data release trains are adapted from various influential names in computer science. The new release is named for Charles Babbage.
  5. Adam Shook and Dr. Mark Pollack's webinar, Hadoop, Pivotal HD and Spring for Apache Hadoop, is now available online.
  6. Gil Tene, of Azul Systems, gave an amazing talk at SpringOne2GX 2012 called Understanding Java Garbage Collection and what you can do about it, which is now online.
  7. New SpringOne2GX replays now available in HD on YouTube: Building for Performance with Spring Integration & Spring Batch, Case Study: Provisioning a Multi-Site In-Memory Database
  8. James Watters shared a video he'd discovered on setting up Cloud Foundry and BOSH. It's pretty epic and worth a watch if you want to get a handle on BOSH.
  9. What people write blog posts about sometimes surprises me. The Javarevisted blog has a nice post introducing Spring's (fairly internal, albeit stable) org.springframework.util.StringUtils class, with examples on how to convert collections to delimited strings. I think this is perhaps too much information on the subject, but I love the enthusiasm!
  10. RabbitMQ developer-advocate Alvaro Videla has put together a post on how to unit-test RabbitMQ from PHPUnit. This approach is pretty cool, though I wonder how well it would play in Java and jUnit with concurrent test suite execution. Either way, this is a nice way to unit test my favorite message queue!
  11. Do you need a Spring Integration adapter? Have you checked out the Spring Integration extensions repository? This repository simply collects adapters that move faster than the Spring Integration core, or that are still being polished. It's a great place to find solutions to various problems. Heck, even the pull requests are chock full of useful stuff - I see an MQTT adapter in there by the amazing Gary Russell!
  12. Check out this amazing post on @gopivotal blog called 800,000 Messages/Minute: How Nokia’s HERE Uses #RabbitMQ to Make Real-time Traffic Maps over on the @gopivotal blog. It introduces the Nokia HERE architecture that builds on Spring AMQP and RabbitMQ.

SpringOne2GX 2012 Replays: Building for Performance with Spring Integration & Spring Batch, Case Study: Provisioning a Multi-Site In-Memory Database

Building for Performance with Spring Integration & Spring Batch

Spring Integration & Spring Batch greatly simplify the process of developing enterprise integration architectures and messaging systems. This session covers architectural patterns and real world examples showing how comprehensive the capabilities of Spring Integration & Batch are, while being lightweight enough to be suitable for very high performance environments.

At C24 we work closely with a large number of major financial institutions to help them architect high volume, low latency, scalable messaging systems. It's always great fun showing a client how a handful of Spring Integration configuration files can replace large chunks of their existing codebase, typically closing dozens of bugs in the process. Moreover, the resulting design is cleaner with a consistent approach to monitoring, error handling & processing. Spring Batch allows large file processing to be wired into the same flows usually with substantial improvements in throughput.

We'll review how to maximise performance while ensuring application robustness for mission critical usage.

About the speaker Andrew Elmore

Andrew Elmore is Head of Development at C24, a provider of financial services messaging software to many of the world's largest financial institutions. Prior to joining C24, Andrew built and managed the front & middle office systems at a Mastercard-owned credit card issuer & processor, led the development of numerous products at SmartStream Technologies and worked on a number of highly scalable systems including PitneyBowes' Portrait suite & British Telecom's call-routing software. Andrew is a Chartered Engineer & Chartered IT Practitioner and holds a BEng in Computer Science & Electronics from the University of Edinburgh, UK.

More About Andrew »


Case Study: Provisioning a Multi-Site In-Memory Database

In this session we will analyze the architecture and optimization for creating a multi-site in-memory database that provides high availability for a prominent consumer service . The session will cover the use of Spring Gemfire to significantly simplify deployment in a Gemfire cluster connected together using a WAN gateway . The same approach can be used to solve other high availability, low latency problems.

About the speaker Manuel David

Manny is a GemFire consultant for VMware's vFabric Cloud Application Platform. He brings with him over 18 years of software engineering experience in sectors such as finance, federal, pharma, and technology. His focus is on the server-side, but he also has experience in Java Swing rich client and Web development. He left the world of Smalltalk development when he plunged into the Java world in 1996, and hasn't looked back since. Manny started working with GemFire after joining Gemstone Systems as an Enterprise Architect in London in 2006, based on his prior experience in Coherence technology. He later joined VMware in early 2011, continuing to build on his expertise in designing GemFire-based solutions for applications that require in-memory persistence and distributed grid compute technology.

More About Manuel »

Spring Security 3.1.4 Released

We're pleased to an announce the GA release of Spring Security 3.1.4
The release is available from the Spring Community Downloads area and jars are available from Maven central repository. The release is expected to be in the EBR repository later this week. See the project website for more information.

This is a maintenance release with a number of bug fixes including OSGi support for Spring 3.2.

Changelog | Download | Reference Manual | FAQ

Spring Data Arora SR1 released

I am pleased to announce the first service release for the Spring Data Arora release. It includes the following modules: Spring Data Commons 1.5.1 – Changelog Spring Data JPA 1.3.1 – Changelog Spring Data MongoDB 1.2.1 – Changelog Spring Data Neo4j 2.2.1 – Changelog Spring Data Redis 1.0.4 – Changelog Spring Data Gemfire 1.3.1 – Read more...

Introducing Spring XD

Today we are officially kicking off a new initiative called Spring XD whose theme is "tackling Big Data complexity"1. The Spring Data team has been incredibly busy over the past few years, not only providing support for NoSQL datastores but also simplifying the development experience with Hadoop. With the creation of the Spring for Apache Read more...

This Week in Spring - April 23rd, 2013

Welcome back to another installment of This Week in Spring! Here in San Francisco, we're experiencing the first fits of life and beautiful weather typical of spring time. Fitting, too, as things are busy-as-can-be in the Pivotal open source communities - including Cloud Foundry and SpringSource - as we march towards the Pivotal Initiative launch on April 24th. See you then!

Without further ado, let's get into this week's roundup:

  1. Have you guys seen the amazing Java configuration support in Spring Batch 2.2.0.RC1? The code I've just linked you to demonstrates a complete working Spring Batch job that reads in a .csv file and then writes the records to a data source, all of which are configured in the class, entirely in Java. This demonstrates the @EnableBatchProcessing annotation in 2.2.0. Check it out!
  2. New SpringOne2GX replays now available in HD on YouTube: Implementing Domain Driven Design with Spring and vFabric, Batch Processing and Integration on Cloud Foundry and a bonus session, Understanding Java Garbage Collection and what you can do about it.
  3. The FuzzyDB open source project tweeted that they'd released a new version of FuzzyDB with Spring Data bindings aligned with the Spring Data Arora release train. Congratulations, guys!
  4. Have you had a chance to play with Thymeleaf, the HTML5 and Spring MVC-friendly templating engine? If you'd like to learn even more, you'll probably like this presentation called Thymeleaf, Will it Blend?
  5. David Welch put together a quick demo of Spring Data Mongo and made the work available. He tweets that he went from working demo in 8 minutes with 4 classes and a pom.xml. Nice work man!
  6. Check out Ramnivas Laddad's awesome talk CloudFoundry Architecture talk at SpringOne2GX up live on the SpringSource YouTube channel SpringSourceDev.
  7. Spring HATEOAS lead Oliver Gierke tweeted a link to this post, "How I Explained REST to my wife", which would seem at first to be just one person's attempt at explaining a fairly deep technology concept to a person who didn't have the same technical background, but quickly turns into a (I think really insightful) look at the applicability of REST. Check out Spring HATEOAS if you want to take your REST-fu to the next level.
  8. I'm personally enamored of the new Java configuration APIs, both those recently released and those currently available in preview releases. I showed a very simple example of the Spring Batch API above. I also took a moment last week to write about the powerful Spring Social Java configuration API soon to be available in the 1.1.0.M2 release.
  9. You can have Spring perform a sort of pre-condition check by using the @Required annotation to insist at runtime that a property be satisfied with a non-null value, or Spring will abort the construction of the object. This helps avoid any silent NullPointerExceptions. This JavaBeat post does a nice job explaining how to use @Required.
  10. The how to do in java blog has a nice posting on how to create a custom UserDetailsService in Spring Security 3.
  11. The JavaCodeGeeks blog has a nice post on how to create RESTful services with Spring MVC.
  12. Brian's Java Blog has a nice post on using Spring AOP with both annotation and XML-centric configuration options.

SpringOne 2GX 2012 Replays: Implementing DDD with Spring and vFabric, Batch Processing and Integration on Cloud Foundry

Implementing Domain-Driven Design with Spring and vFabric

Sponsored by EMC Consulting, this presentation highlights the use of Domain-Driven Design in a cloud-based, distributed architecture. There are several working examples of highly scalable DDD models featuring the NYSE Nanotrader system.

NanoTrader is a VMWare working reference implementation featuring SpringSource best-practices throughout the application stack. The functioning high-performance trading application includes Spring MVC with both web and mobile UI’s, Spring Integration, RabbitMQ, GemFire, Hibernate using SQLFire and/or Postgres. Domain-Driven Design (DDD) is a set of software development tools and best practices for crafting a business strategic initiative in a core domain model. How does NanoTrader apply DDD? This powerful approach to modeling a trading system will be showcased from the DDD strategic and tactical modeling perspectives.

About the speakers Vaughn Vernon

Vaughn Vernon is the author of the book Implementing Domain-Driven Design, published by Addison-Wesley. Vaughn is a veteran software craftsman with more than 25 years of experience in software design, development, and architecture. Vaughn is a thought leader in simplifying software design and implementation using innovative methods. Vaughn has been programming with object-oriented languages since the 1980s and applying the tenets of Domain-Driven Design since his Smalltalk domain modeling days in the early 1990s. His experience spans a wide range of business domains. He has also succeeded in technical endeavors creating reusable frameworks, libraries, and implementation acceleration tools.

Vaughn consults and speaks internationally, and has taught his Implementing Domain-Driven Design Workshop on multiple continents. He teaches both public and private classes and workshops, and has presented at conferences such as: SpringOne 2gx; PulsoConf in Bogota, Colombia; QCon; UberConf; IASA ITARC. As an author, Vaughn has contributed to industry literature and software patterns and is a founder of the DDD Denver Meetup group.

His IDDD Tour commences in Europe in April 2013: idddtour.com You can read more about his latest efforts at VaughnVernon.co and follow him on Twitter here: @VaughnVernon

More About Vaughn »

Wesley Williams

Wes Williams is a Senior Consultant with EMC specializing in vFabric technologies and Domain-Driven Design.

He has extensive experience (25+ years) as a hands-on software developer, architect and designer supporting the creation of enterprise-class information technology systems in a wide variety of industries from small businesses to Fortune 10 companies using big, fast data. He is certified with both Microsoft and Java technologies, including certifications with Java architecture and enterprise architecture. He was formerly a guest instructor for Architecture at Sun Microsystems.

More About Wesley »


Batch Processing and Integration on Cloud Foundry

Spring Integration is a lightweight integration framework from the makers of Spring. Integration of data and services between applications is not easy – and often requires adaptation from one system to another. Spring Integration also promotes loosely coupled, event-driven applications. Spring Batch is a batch processing framework – providing a simple, idiomatic way to crunch large amounts of data across in a sustainable way. Spring Batch even allows you to distribute processing across multiple machines in a cluster. Naturally, both of these frameworks play very nicely on top of Cloud Foundry, which lets you scale up and out as demand requires.

In this talk, Josh Long introduces how to use Spring Batch and Spring Integration on Cloud Foundry, the open source PaaS from VMware.

About the speaker Josh Long

Josh Long is the Spring developer advocate. Josh is the lead author on Apress’ Spring Recipes, 2nd Edition, and a SpringSource committer and contributor. 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. His interests include scalability, BPM, grid processing, mobile computing and so-called "smart" systems. He blogs at blog.springsource.org or joshlong.com.

More About Josh »

Spring Tool Suite and Groovy/Grails Tool Suite 3.3.0.M1 released

Dear Spring Community,

I am happy to announce the first milestone release 3.3.0.M1 of the Spring Tool Suite (STS) and the Groovy/Grails Tool Suite (GGTS).

Highlights from this milestone build include:

  • Spring IDE: improved support for JavaConfig-driven Spring projects
  • Groovy-Eclipse: now supports customizable editor templates
  • Groovy-Eclipse: navigation and hovers in binary (compiled) groovy files
  • Grails-IDE: preliminary support for current builds of Grails 2.3

Both tool suites ship on top of the latest Eclipse Juno SR2 release. For optimal performance and stability we still recommend the distribution that is
based on Eclipse 3.8.2.

The second milestone 3.3.0.M2 build is scheduled for early June 2013, followed by the 3.3.0 release in early July 2013 - shortly after the Eclipse Kepler release.

To download the distributions, please go visit:

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