SpringSource Training Schedule: May 2013

If you are a Java developer looking to increase your Spring knowledge, vFabric Education by SpringSource is the place to start. We are providing several Spring trainings across the globe closely connected to your needs as a professional developer.

This month SpringSource offers a 15% discount code on all VMware trainings (partners not included). Please use the following referral code during the website registration process: springcustomerpromo. The complete Spring training schedule for May, 2013 can be found below:

Step 1: Core Spring


Asia Pacific

Europe, Middle East & Africa

Step 2: Spring Web / Enterprise Integration with Spring / Hibernate with Spring


Europe, Middle East & Africa

Live Online

If you cannot find a professional training near you, you can always request an onsite SpringSource training

This Week in Spring - April 16th, 2013

Welcome to another installment of This Week in Spring! It's been an exciting week for Spring at Pivotal, which you can hear more about at the re-scheduled Pivotal launch event on April 24th.

  1. In case you are reading too fast, Pivotal has re-scheduled the launch event to April 24th. Register here!
  2. Arjen Poutsma has announced Spring Web Services 2.1.3.RELEASE. The new release mainly consists of bug fixes, for the full details check out the changelog.
  3. Don't miss the upcoming Webinar with Donald Miner and Mark Pollack discussing Pivotal HD and Spring Hadoop, a good introductory webinar for those that are Pivotal HD-curious.
  4. New SpringOne2GX replays now available in HD on YouTube: Cloud Foundry Architecture, Effective Design Patterns in NewSQL
  5. There was a great post on Reddit the other day that explains the difference between REST and SOAP in terms of Martin Lawrence. This has nothing to do with Spring, but was droll enough that it's worth sharing. Spring, of course, has an amazing REST stack and I highly encourage people to check out how to build consolidated, streamlined REST services with Spring! Moving on... :)
  6. James Rossiter has a good post on how to use a Spring InitBinder to Resolve Type Mismatch and bind Exceptions in POST from Spring MVC to Controller Actions.
  7. @olivergierke brings up a great point on Twitter: how much code does it take to add the JTA 1.2 JSR javax.transaction.Transactional annotation to Spring? Almost nothing! Most of the code here is just unit tests. Otherwise, this is just a dead simple mapping of the JTA annotation to Spring's already supported engine, which also currently supports the native Spring @Transactional and @javax.ejb.TransactionAttribute annotation.
  8. Are you looking into Gradle and want to get started with Spring, quickly? Giancarlo Frison has put together a nice post with a bootstrap Gradle build that can be used with Spring applications.
  9. Eugen Paraschiv has put together a nice post on how to use RestTemplate to do HTTP BASIC authentication.
  10. Spring has long supported a utility class, called the org.springframework.util.StopWatch, which can be used to measure the execution of method invocations. The Javarevisited blog has a nice post on how to use the StopWatch class.
  11. This post is fairly old, but I just stumbled upon it and thought it was a well thought out presentation introducing Aspect Oriented Programming (AOP) in Spring.

SpringOne 2GX 2012 Replays: Cloud Foundry Architecture, Effective Design Patterns in NewSQL

Cloud Foundry Architecture

If you have deployed applications on Cloud Foundry, you know how easy it is to push an app, bind services to it, and scale it. There are more magical things behind the scenes. Did you know, for example, that cloudfoundry.com is updated approximately twice a week? Each update included small changes such as a bug fix or a new feature, but often large changes such as updating the underlying operating system. Yet, we can do all this without any downtime for user apps. Come to this talk to understand what makes this possible. Even if you aren't going to ever implement a PaaS on your own (and why should you? we already give you a good one!), the architectural ideas apply to your distributed apps quite well.

About the speaker Ramnivas Laddad

Ramnivas Laddad is a SpringSource Principal Enginner. He has over a decade of experience in applying his enterprise Java and aspect-oriented programming (AOP) expertise to middleware, design automation, networking, web application, user interface, and security projects.

Ramnivas Laddad is a well-known expert in enterprise Java, especially in the area of AOP and Spring. He is the author of AspectJ in Action, the best-selling book on AOP and AspectJ that has been lauded by industry experts for its presentation of practical and innovative AOP applications to solve real-world problems. Ramnivas, a Spring framework committer, is also an active presenter at leading industry events such as JavaOne, JavaPolis, No Fluff Just Stuff, SpringOne, Software Development, and has been an active member of both the AspectJ and Spring communities from their beginnings.

More About Ramnivas »


Effective design patterns with NewSQL

NewSQL is a term that describes the next generation of highly distributed, scalable, memory oriented SQL databases. In this session, we will explore some basic concepts in NewSQL (VMWare SQLFire), translate a traditional “Star” schema to a partitioned schema(scale out design), walk through various SQL usage patterns – simple queries, complex joins, aggregations, stored procedures and explain how they can be more effectively realized in SQLFire through replicated tables, partitioned tables, in-memory or disk resident tables, parallel procedure execution, distributed transactions, etc.

We will also compare and contrast various NewSQL features with traditional SQL.


About the speakers Jags Ramnarayan

As the Chief Architect for GemFire product line, Jags is responsible for the technology direction for its high performance distributed data Grid and virtualization platform. Jags has represented GemStone Systems in the EJB expert group and the J2EE platform specification. In the past, Jags represented BEA in the W3C SOAP protocol specification, JAXM and other standards. Jags has presented in several conferences in the past on Data management, clustering and grid computing(Javaone, W3C workshop, Java user groups, Open Grid Forum, Platform Grid conference etc) . He has over 20 years of experience, a bachelors degree in computer science and a masters degree in management of science and technology.

More About Jags »

Guillermo Tantachuco

Guillermo is an award-winning Enterprise Architecture practitioner with 17+ years of progressive experience in different industries. As a Regional Senior Systems Engineer for VMware's Cloud Application Platform division, Guillermo works with customers to understand their business needs and challenges and helps them seize new opportunities by leveraging vFabric to modernize their IT architecture. Guillermo is passionate about his family, business, technology and soccer.

More About Guillermo »

This Week in Spring - April 9th, 2013

Welcome to another installment of This Week in Spring! As usual, we've got a lot to cover, so let's get to it!

  1. SpringSource CTO Adrian Colyer outlines the direction and momentum of SpringSource and the Spring projects under the Pivotal Initiative, a new company spun out of EMC comprised of - among other things - SpringSource, Cloud Foundry, and GreenPlum. This is definitely worth a read if you want to understand Spring's - ahem - Pivotal role in this new initiative!
  2. Spring Batch lead Michael Minella has announced that Spring Batch 2.2.0.RC1 is now available. The new release includes preliminary support for Spring Data, Java configuration support, non-identifying job parameters and numerous fixes and polishes. This release is amazing, and definitely worth a look. I, personally, love the Java configuration API that's been surfaced. You don't need to write another Spring Batch XML file if you don't want to!
  3. Spring Mobile lead Roy Clarkson has announced that Spring Mobile 1.1.0.M3 has been released featuring simpler configuration when using a custom domain strategy with SiteSwitcherHandlerInterceptor, support for Kindle Fire device detection (as tablet or mobile depending on which mode they are in), several resolved issues and compatibility with Spring Framework 3.2.2.
  4. New SpringOne2GX replays now available in HD on YouTube: Virtualizing and Tuning Large Scale Java Applications, From Spring and Java to Spring and Akka
  5. The HMK blog has a really nice post on how to use the Cujo.js's rest.js and Spring MVC. Very cool!
  6. The JavaRevisited blog has put together a post on calling stored procedures from Spring using the StoredProcedure template object. There are other ways to approach this same problem, including the SimpleJdbcCall object and simply using the update(String, Object ... params) method on JdbcTemplate. Check it out!
  7. The Spring Java Tutorial blog has a nice post on using stored procedures with Spring, and it also uses the same domain example - an EmployeeDAO. They aren't exacty the same - far from it - but it does seem like one heckuva coincadence! At any rate, more information's always good.
  8. Spring provides various lifecycle callback methods, which this JavaBeat blog looks at.
  9. The Binary Beans blog has a post that simply links to some interesting, introductory videos that we've published on the SpringSourceDev YouTube Channel. If you're a regular reader of this round up then you've seen these videos before. But, it's a good 3 hours of introductory content and worth a look if you want a good getting started experience.
  10. KH Yiu has put together a cool post introducing the concept of a factory pattern (which you're no doubt already familiar with!) in application code, built with Spring. This is not about how Spring uses the factory pattern, and was kind of an interesting approach. Nicely done!
  11. Daniel Wong put together a really cool blog illustrating how to tie together Spring MVC with OpenCMS! Definitely worth a look.
  12. The 11th Hour blog put together a nice post on how to use the Spring Expression Language with some examples.
  13. Wang Xiang's put together a blog.. more like a series of snippets.. demonstrating how to setup Jetty, a DataSource, and Spring together.
  14. The Java Code Geeks blog has an introductory post on using Spring MVC with JSR 303 bean validation. Check it out!
  15. Our pal Mark Serrano is back, this time with a review of Spring Security lead Rob Winch's book on Spring Security.
  16. Hippoom Zhou has put together a nice post introducing how to use mocks and stubs in Spring Integration tests. This is a very nice post, and definitely worth a look!
  17. The awesomely named Raging Goblin blog has a nice post on how to do role-based views using Spring Roo and Spring Security.
  18. Peter Chng describes a scheme that can be used to auto-register custom converters used for data type conversion in core Spring, Spring MVC, and Spring Integration, among other places. Pretty smart!

SpringOne 2GX 2012 Replays: Virtualizing and Tuning Large Scale Java Applications, From Spring and Java to Spring and Akka

Virtualizing and Tuning Large Scale Java Applications

This session shares many of the production proven methods of running Java on vSphere. Covering how to size JVMs, and VMs for large scale deployments. The session will have a special section on GC tuning and show how a wide range of JVMs can be tuned using a GC recipe developed over the past 15 years of actual field experience in tuning JVMs.

Three key trends and associated tuning techniques are discussed in this session. The key trends are: Consolidation, Elasticity and Flexibility, and Performance

Consolidation Many of our customers find that their middleware deployments have proliferated and are becoming an administrative challenge associated with higher costs. We see a trend across customers who look to virtualization as a way of reducing the number of server instances. At the same time, customers are taking the consolidation opportunity to rationalize the number of middleware components needed to service a particular load. Middleware components most commonly run within a Java Virtual Machine (JVM) with an observed scale of 100 to 1000s of JVM instances and provide many opportunities for JVM instance consolidation. Hence, middleware virtualization provides an opportunity to consolidate twice – once to consolidate server instances, and, secondly, to consolidate JVM instances. This trend is far-reaching, because every IT shop on the planet is considering the cost savings of consolidation. One customer in the hospitality sector went through the process of consolidating their server footprint and at the same time consolidated many smaller JVMs that were less than 1GB heap. They consolidated many of these smaller 1GB JVMs into 2 categories, those that were 4GB, and others that were 6GB. They performed the consolidation in such manner that the net total amount of RAM available to the application was equal to the original amount of RAM, but with fewer JVM instances. They did all of this while improving performance and maintaining good SLAs. They also reduced the cost of administration considerably due to the reduced number of JVM instances they had to manage, and refined environment that helped easily achieve SLA.
Another customer, in the insurance industry, was able to achieve the same as the above customer, but additionally was able to over-commit CPU in development and QA environments in order to save on third party software license costs. On the other hand, sometimes we come across customers that have a legitimate business requirement to maintain one JVM for an application, and/or one JVM per a line of business. In these cases, you cannot really consolidate the JVM instances, as that would cause intermixing of the lifecycle of one application from one line of business with another. However, while such customers don’t benefit from eliminating additional JVM instances through JVM consolidation, they do benefit from more fully utilizing the available compute resource on the server hardware, that otherwise would have been underutilized in a non virtualized environment

Elasticity and Flexibility It is increasingly common to find applications with seasonal demands. For example, many of our customers run various marketing campaigns that drive seasonal traffic towards their application. With VMware, you can handle this kind of traffic burst, by automatically provisioning new virtual machines and middleware components when needed, and then automatically tear down these VMs when the load subsides. In addition, the ability to change updating/patching hardware without causing outage is paramount for middleware that supports the cloud era scale and uptime. VMware VMotion gives you the ability to move VMs around without needing to stop applicators and or the VM. This flexibility alone makes virtualization of middleware worthwhile when managing large-scale middleware deployments. One customer in the financial space, handling millions of transactions per day, used VMotion quite often to schedule their hardware upgrades without any time downtime. What otherwise would be a costly scheduled downtime to their business.

Performance Customers often report improved middleware platform performance when virtualizing. Performance improvements are partly due to the updated hardware that customers will typically refresh during a virtualization project. There is also some performance improvement due to the robust VMware hypervisor. A recent customer that reported a great level of performance provided the following testimony

“With our OrderExpress project we upgraded our Middleware Services, Commerce, Portal, WCM, Service Layer, DB2 Database; migrated from AIX to Linux; virtualized on VMware; moved the application into a three-tier DMZ; increased our transactions by over 150 percent; and added significant new capabilities that greatly improved the customer experience. Changing such a wide range of technology components at once was a huge challenge. However using VMware vSphere and additional architectural changes we were successful in improving performance by over 300 percent; lowered costs in the millions; improved security, availability, and scalability; and how we plan to continue evolving this application to maintain greater than 30 percent yearly growth.”

– Jeff Battisti, Senior Enterprise Architect at Cardinal Health

In this session, I will show some actual JVM and VM sizes for middleware components both small and large JVMs. Will also detail out GC tuning recipe that I have developed over the years,that has been shown to handle JVM heap sizes form 4GB to 88GB+, and higher. Of course the introduction of in-memory databases has driven the trend to have these larger JVMs and hence why we will discuss what is the best way to tune the JVM, VM, and the hardware platform they are deployed on.

I see the sizing question as the most commonly asked question with our customer base,and as a result I plan to focus on it during the session.

About the speaker Emad Benjamin

Emad Benjamin has been in the IT industry for the past twenty years. He graduated with a Bachelor of Electrical Engineering from the University of Wollongong. Earlier in his career, he was a C++ software engineer, then in 1997, he switched to programming with Java, and has been focusing on Java ever since. For the past seven years, his focus has been Java on VMware vSphere, vFabric GemFire and SQLFire. Emad has been at VMware since 2005, and is the author of the Enterprise Java Applications Architecture on VMware book. Emad has previously presented at VMworld, SpringOne, and Open World on the subject of Java virtualization.

More About Emad »


From Spring + Java to Spring + Akka - A Journey of Discovery

Actor based concurrency model is a paradigm shift. What is paradigm shift?

A change in the basic assumptions, or paradigms, within the ruling theory of science. A paradigm shift makes simple ideas hard to grok. Even though Actor model is a simple and revolutionary idea it becomes hard for programmers to see practical benefits and usage. Similarly, the Scala programming language brings a lot to the table in simplifying actor-based design, but comes with a new style of coding. One possible solution to this problem is to evaluate the new paradigm in terms of old paradigm. In this presentation we will take a working Spring based web application and gradually implement it using actors and Scala. We will be skeptical and suspicious of new ideas but at the same time we will be open minded. We will learn about actor based concurrency model using the knowledge of spring. At the same time, we'll learn best practices behind Actors, Scala and combining these with the Spring Framework.

About the speakers Nilanjan Raychaudhuri

Nilanjan is a consultant and trainer for Typesafe. He started his professional career as a software developer in 2000 using object oriented programming languages. Nilanjan has previously worked with IBM, ThoughtWorks and LivingSocial where he gained a lot of experience in managing and developing software solutions in Java/JEE, Ruby, Groovy and also in Scala. He is zealous about programming in Scala ever since he got introduced to this beautiful language. Currently he spends his spare time working on the scala-webmachine open source project (restful resource framework). In the past Nilanjan worked on other open source projects and libraries. At Typesafe he is mainly teaching and designing Scala and Play courses and helping customers to adopt these technologies. Nilanjan enjoys sharing his experience via talks at various conferences. He is also the author of the "Scala in Action" book.

More About Nilanjan »

Josh Suereth

Josh Suereth is a Senior Software Engineer at Typesafe and the author of "Scala In Depth.” He has been a Scala enthusiast ever since he came to know this beautiful language in 2007. He started his professional career as a software developer in 2004, cutting his teeth with C++, STL, and Boost. Around the same time, Java fever was spreading and his interest was migrating to web-hosted distributed Java-delivered solutions to aide health departments discover the outbreaks of disease - everything from EJB to Hibernate/Spring and even some Applets. He introduced Scala into his company code base first in 2007, and soon after he was infected by Scala fever, contributing to the Scala IDE, maven-Scala-plugin, and Scala itself. In 2009, he began writing the book "Scala In Depth" which provides practical support for using Scala in everyday applications. Today, Josh is the author of several open source Scala projects, including the Scala automated resource management library, the PGP sbt plugin, as well as contributing to key components in the Scala ecosystem, like the maven-Scala-plugin. His current work at Typesafe Inc. has him doing anything from building MSIs to profiling performance issues. Josh regularly shares his expertise in articles and talks.

More About Josh »

Spring Batch 2.2.0 RC1 is now available

We are pleased to announce that Spring Batch 2.2.0.RC1 is now available via the SpringSource Milestone repository. Spring Batch Home | Source on GitHub | Reference Documentation Support for Spring Data Spring Data is a collection of projects intended to make it easier to develop Spring-powered applications that use new data access technologies such as non-relational databases. Based on a model of exposing Repository objects, Spring Data allows applications to access data in a simple and consistent way across many new platforms. Spring Batch 2.2.0.RC1 now provides ItemReader and ItemWriter implementations for a number of the data stores supported by Spring Data including MongoDB, Neo4j, and Gemfire (write only). In addition, Spring Batch 2.2.0.RC1 now has a RepositoryItemReader and RepositoryItemWriter that will read and write items from custom Spring Data Repository implementations. Java Configuration With this release, Spring Batch 2.2.0.RC1 now supports Java based job definitions. Building a job definition with java configuration is now available via the new @EnableBatchProcessing annotation and a collection of builders that allow you to construct jobs, steps, flows, splits, etc. By using the @EnableBatchProcessing annotation the following features are enabled:
  • Creation of StepScope - Allowing the configuration of beans via @Scope("step")
  • @Autowired - A JobRepository, JobLauncher, JobRegistry, PlatformTransactionManager, JobBuilderFactory and StepBuilderFactory are all available to be autowired into your context.
Non-identifying Job Parameters Spring Batch 2.2.0.RC1 now supports the use of job parameters that do not contribute to the generation of a JobInstance's identity. As part of this update, the JobParameters is no longer associated with a JobInstance and is now associated with a JobExecution. To support this change, the job repository schema has changed and a migration script has been provided. You can read the details about the migration script in the Getting Started Guide. Other Improvements and Bug Fixes With the release of Spring Batch 2.2.0.RC1, a host of other improvements and bug fixes have been added. The complete list of updates for this release can be found in the changelog for this revision. Links Spring Batch Home | Source on GitHub | Reference Documentation

Spring Mobile 1.1.0.M3 Released

Dear Spring Community,

We are happy to announce the release of Spring Mobile 1.1.0.M3!

Spring Mobile provides extensions to Spring MVC that aid in the development of cross-platform mobile web applications.

This release adds simpler configuration when using a custom domain strategy with SiteSwitcherHandlerInterceptor. Kindle Fire devices are now detected as tablet or mobile depending on which mode they are in. Additionally, several issues have been resolved in this release. This release is built and tested against Spring Framework 3.2.2. See the changelog and reference manual for more information. Many thanks to the community for their continued feedback and support in improving Spring Mobile.

To retrieve the software, download the release distribution, or add the maven artifacts to your project. Sample apps are available at github.com/SpringSource/spring-mobile-samples

If you are building a mobile web app, we encourage you try out Spring Mobile 1.1.0.M3 and collaborate with us on the next iteration of the project.

Spring and Open Source at the Pivotal Initiative

By now you’ve probably heard about the Pivotal Initiative. I’d like to take a moment here to explain what this means for Spring, and to tell you about some of our plans for 2013. In case you missed it, here’s the essential background to the Pivotal Initiative: Led by Paul Maritz, the initiative unites key Read more...

This Week in Spring - April 2nd, 2013

This Week in Spring

Welcome to another installment of This Week in Spring ! I've just returned from Devoxx UK and Devoxx France where I was very happy to talk to developers using Spring from all walks of industry. I also spoke at Skills Matter in London on building web applications using Spring. Thanks to Skills Matter, the London Spring User Group, and to the amazing Rob Harrop for having me, it was such a pleasure! The video from that session is available online if you're interested.

  1. Register today for the Super Early Bird rate at SpringOne 2GX 2013, in Santa Clara, CA Sept 9th-12th, 2013!
  2. Gary Russell's announced that Spring AMQP 1.2.0.M1 is now available.
  3. The Cujojs team has announced that rest.js is now part of Cujo.js and rest.js 0.9 and is now available.
  4. Gary Russell's announced that Spring Integration 2.2.3 is now available. This release corrects an issue with the conversion of some complex message payloads when being mapped to method arguments, as well as a few other minor issues.
  5. Arjen Poutsma has announced that Spring Scala 1.0.0.M2 is now available. The new release is full of features, including an updated JdbcTemplate wrapper, rich wrappers for BeanFactory, ListableBeanFactory and ApplicationContext, AOP advice wrappers with implicit conversions, support for Spring 3.2.2, and updated support in FunctionConfiguration for eager initialization, along with many other bug fixes and changes.
  6. Last week's webinar introducing the Spring Integration adapter for Splunk is now available online. Nice job by David Turanski and Damien Dallimore (Splunk)!
  7. New SpringOne2GX replays now available in HD on YouTube: Getting Started with Spring Security 3.1, Tooling for Spring, Grails and the Cloud
  8. The JRebel guys have announced an updated version of their plugin which facilitates live-reloading of code in Java applications. The new release features improved support for Spring, supporting live reloading of @Configuration-based Spring applications.
  9. James Rossiter has a nice post on how to handle form binding using Spring MVC's <form> tags and Spring MVC models. There are two posts. The first introduces how to bind a parent and child object. The second introduces the initBinder mechanism.
  10. The JavaBeat blog has a nice post on how to use Spring's scopes
  11. Pravin Chavan has a nice post on how to handle HTTP request interception using the Spring framework.
  12. The 2Bloggers blog has a nice post introducing the distinct duties performed by the BeanFactory and ApplicationContext objects in Spring and their relationship to each other.
  13. The TechRecipes blog has a nice post on basic configuration of a Spring application using Spring's XML configuration format. This is admittedly very introductory.
  14. The Java EE Architectures blog has a nice post on how use Spring MVC and Spring Data MongoDB together.
  15. Camilo Lopes has written up a book review (in Portuguese) of the Portguese-language book Vire o jogo com Spring Framework. This is worth a read if you're looking for a book introducing Spring (in Portuguese).
  16. The Programming Fortune blog has put together a nice post that's also on the subject of populating objects with form-field data.

SpringOne 2GX 2012 Replays: Getting Started with Spring Security 3.1, What's new with Tooling for Spring, Grails and the Cloud

Getting Started with Spring Security 3.1

Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements. In this presentation Rob will incrementally apply Spring Security to an existing application to demonstrate how it can meet your authentication and authorization needs. It will also answer many of the common "how to" questions that are found on the forums. This will ensure that you can not only secure your application quickly, but ensure you understand Spring Security well enough to extend it to meet your custom requirements.

About the speaker Rob Winch

Rob Winch is a Senior Software Engineer at VMware and is the project lead of the Spring Security framework. He is also a committer on the core Spring Framework and co-author of the Spring Security 3.1 book. In the past he has worked in the health care industry, bioinformatics research, high performance computing, and as a web consultant. When he is not sitting in front of a computer he enjoys playing the guitar.

More About Rob »


What's new with tooling for Spring, Grails and the Cloud

In this talk we will give an overview of the recently open-sourced and newly organized tooling landscape for Spring, Groovy/Grails and Cloud Foundry (we’ll touch on Gradle too). We will introduce the new open-sourced tooling projects and how they fit together to form our new distributions: the Spring Tool Suite and the Groovy/Grails Tool Suite. In addition to that we will demo the latest feature additions to the tools that enable you to be even more productive.

The first part of this talk will focus on Spring whilst the second part focuses on Groovy/Grails. Attend one (or both!) parts of the session.

About the speakers Andy Clement

Andy Clement is a staff engineer in the SpringSource division of VMware, based in the languages and tools lab in Vancouver. He has more than ten years experience in Enterprise Application Development and now spends his time building tools for languages like AspectJ, Groovy and JavaScript and frameworks like Grails. He currently oversees the Groovy Grails Tool Suite deliverable, a variant of the Spring Tool Suite with a focus on Groovy and Grails.

More About Andy »

Martin Lippert

Martin leads the team of the SpringSource Tool Suite and the Spring IDE and works together with the tools team on providing the best developer tools out there for Spring and Cloud Foundry. Before joining SpringSource/VMware, Martin founded (together with colleagues) it-agile, a leading consulting and development company focused on agile software development, and worked many years as consultant and coach for agile software development and flexible and modularized architectures. He is author of papers, articles, and books on various topics including agile software development, Eclipse technology and refactoring techniques.

More About Martin »

Webinar Replay: Extending Spring Integration for Splunk

Join David Turanski (SpringSource) and Damien Dallimore (Splunk) as they discuss and demonstrate Splunk and Spring Integration. Spring Integration provides a number of adapters out of the box to support various transports, such as JMS, File, HTTP, Web Services, and Mail. They will introduce the Splunk channel adapter, a new entry to the out of the box adapters available for Spring Integration, which allows data to flow through Spring Integration to interact with data being ingested or queried by Splunk.

For those who may be unfamiliar, Splunk collects, indexes and harnesses machine-generated big data so you can monitor, search, analyze, visualize and act on large streams of real-time and historical machine data.

Demo Source is located at:
About the speakers Damien Dallimore

Damien is the first Developer Evangelist at Splunk where he engages with the developer community to build big data applications on top of Splunk using Splunk's SDKs and Application framework. A fervent JVM fan, he has a particular interest in the new breed of alternate JVM languages and actually thinks that logging is cool. Prior to joining Splunk, Damien paid his mortgage wearing many different technical hats coding,hacking,engineering and architecting software and solutions around the globe in a variety of industries, primarily in the Enterprise Java space. He is a fanatical All Black's rugby supporter, loves scuba diving and golf and can hold his own on guitar in a blues jam.

More About Damien »


David Turanski

David Turanski is a Senior Software Engineer with SpringSource, a division of VMWare. David is a member of the Spring Data team and lead of the Spring Data GemFire project. He is also a committer on the Spring Integration project. David has extensive experience as a developer, architect and consultant serving a variety of industries. In addition he has trained hundreds of developers how to use the Spring Framework effectively.

More About David »

Spring Integration 2.2.3 is Now Available

We are pleased to announce that Spring Integration 2.2.3.RELEASE is now available.

For links to downloads and documentation, see the project home page

This release corrects an issue with the conversion of some complex message payloads when being mapped to method arguments, as well as a few other minor issues. Release Notes.

Rest.js 0.9 Released

Dear Spring Community,

Today we’re excited to announce that rest.js is now part of Cujo.js and that rest.js 0.9 has been released.


rest.js is a RESTful HTTP client. It goes far beyond the typical XMLHttpRequest abstraction developers are accustomed to in other frameworks. rest.js is built upon composable interceptors that incrementally add new functionality to a client. Configured clients are tamper proof and can be safely shared within an application. If a portion of the application needs specific behavior, it can chain further interceptors on the common client creating a new client that’s independent of the remainder of the application.

As a quick example, if your application requires basic authentication, you can configure the basicAuth interceptor with the username and password once, rather then being forced to add the credentials to every place in the application that makes a request. When your application adds new authentication requirements, such as oAuth, you only need to replace the basicAuth interceptor with the oAuth interceptor in one place. All requests made with the resulting client get the new behavior automatically.

Out of the box rest.js works in every major browser (and then some) plus Node.js. There are interceptors for content negotiation, HATEOAS, basic auth, oAuth (the implicit flow), error detection, retries, timeouts, JSONP and of course fall backs for IE’s XHR and cross domain request support. It’s dirt easy to create new interceptors to apply your own behavior.

This Week in Spring - March 26, 2013

Welcome to another installment of This Week in Spring! This week I'm in chilly (brrr!) London, England and Paris, France, for Devoxx UK and Devoxx FR and - tonight - I gave a talk at Skills Matter for the London Spring User Group. What a pleasant experience. If you're in France and want to talk Spring, don't hesitate to ping me.

  1. The CujoJS team has announced that When.js 2.0 is now available.
  2. I found a few nice posts introducing Spring Integration. Here's part 1 and part 2. These posts are very thorough and well worth a read!
  3. New SpringOne2GX replays now available in HD on YouTube: What's New in Spring Integration 2.2 and Spring Integration, Batch, & Data Lightning Talks.
  4. Did you guys miss SpringOne2GX 2012? Don't fret, Oleg Zhurakousky and Arjen Poutsma's talk introducing how to use Spring with Scala is now available on InfoQ.
  5. Michael Isvy's been hard at work refactoring the code of the canonical Spring PetClinic reference application. The application is now available on GitHub.
  6. Long time readers will remember Daniel Fernandez, author of the amazing Thymeleaf templating engine that works well with Spring MVC and Spring Security. We're happy to have him pen a blog post on how Thymeleaf contributes to the refactored Spring Travel application as the view engine.
  7. Have you guys checked out the RabbitMQ simulator on Cloud Foundry?
  8. Speaking of RabbitMQ there are now Lua bindings available.
  9. Alexey Zvolinskiy has a very introductory post on Spring MVC. Nicely done!
  10. Our friend Roger Hughes is back at it again, this time with a post on how to create a Spring MVC 3.2 web application.
  11. The ITEye blog has a nice Chinese-language post on how to use Spring and MyBatis together.

SpringOne 2GX 2012 Replays: What's New in Spring Integration 2.2, Spring Integration, Batch, and Data Lightning Talks

What's New in Spring Integration

Spring Integration 2.2 introduces many exciting new features including among other things new adapters supporting MongoDB, Redis and JPA. Furthermore, the transaction synchronization support was expanded, allowing for the synchronization of inherently non-transactional resources with existing transactions. Another noteworthy addition is the ability to add behavior to individual endpoints using advice chains. For example, Spring Integration 2.2 now provides out-of-the-box support for various retry strategies. Watch this replay session to learn about these and many other new features and improvements. We will also take a look at some of the things planned for Spring Integration 3.0.

About the speaker Gunnar Hillert

Gunnar Hillert is a member of technical staff (MTS) at SpringSource, a division of VMware, Inc. He is a committer for Spring Integration, Spring AMQP and also contributes to the Cloud Foundry project. Gunnar heads the Atlanta Java Users Group and is an organizer for the DevNexus developer conference.

A native from Berlin, Germany, Gunnar has been calling Atlanta home for the past 11 years. He is an avid gardener specializing in anything sub-tropical such as bananas, palm trees and bamboo. As time permits, Gunnar works on his Spanish language skills and he and his wife Alysa are raising their two children tri-lingually (English, German, Spanish). Gunnar blogs at: http://blog.hillert.com/ and you can follow him on Twitter: https://twitter.com/ghillert

More About Gunnar »

Gary Russell

Gary has been in software engineering, concentrating on Enterprise Integration, for over 30 years on various platforms, and in the Java space since the late '90s.

He has been developing with the Spring Framework since 2004 and joined SpringSource/VMware in 2009 in a consulting role. From 2009 until the end of 2011 he taught Core Spring and Enterprise Integration with Spring to several hundred developers, as well as providing Enterprise Integration consulting services with Spring Integration, Spring Batch and Core Spring.

He has been a committer on the Spring Integration project for nearly 3 years and became a full time member of the engineering team in January 2012.

More About Gary »

Oleg Zhurakousky

Oleg is a Principal Architect with Hortonworks responsible for architecting scalable BigData solutions using various OpenSource technologies available within and outside the Hadoop ecosystem. Before Hortonworls Oleg was part of the SpringSource/VMWare where he was a core engineer working on Spring Integration framework, leading Spring Integration Scala DSL and contributing to other projects in Spring portfolio. He has 17+ years of experience in software engineering across multiple disciplines including software architecture and design, consulting, business analysis and application development. Oleg has been focusing on professional Java development since 1999. Since 2004 he has been heavily involved in using several open source technologies and platforms across a number of projects around the world and spanning industries such as Teleco, Banking, Law Enforcement, US DOD and others. As a speaker Oleg presented seminars at dozens of conferences worldwide (i.e.SpringOne, JavaOne, Java Zone, Jazoon, Java2Days, Scala Days, Uberconf, and others).

More About Oleg »


Spring Integration, Batch, and Data Lightning Talks

Join the hosts Mark Fisher and Mark Pollack for a series of 10 lightning talks by leading contributors to the Spring Integration, Batch, and Data projects. Learn all the inside tips and tricks about using these projects in exciting edge cases and get a preview of current experimental work being conducted by the R&D team.

The use-cases will cover the domains of traditional enterprise integration, SaaS integration, and Big Data workflows.

About the speakers Mark Fisher

Mark Fisher is an engineer within the SpringSource division of VMware and lead of the Spring Integration project. He is also a committer on the core Spring Framework and the Spring BlazeDS Integration project. Mark has provided consulting services for clients across numerous industries, and he has trained hundreds of developers how to use the Spring Framework and related projects effectively. Mark speaks regularly at conferences and user groups in America and Europe.

More About Mark »

Mark Pollack

Dr. Mark Pollack has been a core Spring (Java) developer since 2003 and founded its Microsoft counterpart, Spring.NET, in 2004. Mark now leads the Spring Data project that aims to simplify application development with new data technologies around big data and NoSQL databases. Prior to working on Spring project, Mark worked in offline computing in high-energy nuclear physics at Brookhaven National Laboratory and then moved to the financial services industry as a technical lead for front-office trading systems.

More About Mark »

Bringing new life to Spring Travel with Thymeleaf

  Hi reader! My name is Daniel Fernández and I am the author of the Thymeleaf template engine as well as several other open source technologies. I recently helped update the Spring Travel sample application and migrate its view layer to Thymeleaf, and the nice folks at SpringSource have given me the opportunity to write Read more...

Save 50% on Spring in Action, Fourth Edition

Save 50% on Spring in Action, Fourth Edition with promo code: sia4vm

Expires March 22nd, 2013 at midnight.

Spring Framework is required knowledge for Java developers. Spring 3.2, the latest major version, builds on the core Spring 3 features like SpEL, the Spring Expression Language, new annotations for the IoC container, and much-needed support for REST. Whether you're just discovering Spring or you want to absorb the new features, there's no better way to master Spring than with this book.

Spring in Action, Fourth Edition is a hands-on guide to the Spring Framework. It covers the latest features, tools, and practices including Spring MVC, REST, Security, Web Flow, and more. You'll move between short snippets and an ongoing example as you learn to build simple and efficient J2EE applications. Author Craig Walls has a special knack for crisp and entertaining examples that zoom in on the features and techniques you really need.

Table of Contents, MEAP Chapters & Resources Table of Contents PART 1: CORE SPRING
1. Springing into Action - FREE
2. Wiring Beans
3. Advanced bean wiring
4. Aspect-oriented Spring

5. Building web apps with Spring MVC
6. Spring web views
7. Advanced Spring MVC
8. Working with Spring Web Flow - AVAILABLE
9. Securing Spring Web

10. Persisting data with Spring and JDBC
11. Spring and ORM
12. Working with Schema-less Data
13. Caching data
14. Securing Methods

15. Working with remote services
16. Creating REST APIs with Spring MVC
17. Consuming REST APIs
18. Messaging with Spring
19. Sending emails with Spring
20. Managing Spring Beans with JMX
What's Inside
  • Updated for Spring 3.2
  • Environment-specific configuration using definition profiles
  • Spring Data for NoSQL
  • Using annotations to reduce configuration
  • Working with RESTful resources
  • Spring Expression Language (SpEL)
  • Security, Web Flow, and more

Nearly 100,000 developers have used this book to learn Spring! It requires a working knowledge of Java.

About the Author

Craig Walls is a software developer at SpringSource. He's a popular author and a frequent speaker at user groups and conferences. Craig lives in Plano, Texas.

Spring Petclinic is on Github!

We are pleased to announce that the Spring Petclinic sample application has been refactored. The source code is now available on github and has been deployed on cloudfoundry. Here is a screenshot of the new application: And here is an overview of the new architecture: Spring, Spring, Spring   We have used the following Spring Read more...

When.js 2.0.0 Released

Dear Spring Community,

We are pleased to announce the release of when.js 2.0.0.

When.js is cujojs’s lightweight Promises/A+ and when() implementation, and powers the async core of wire.js, cujojs’s IOC Container. It also provides several other useful Promise-related concepts, such as joining multiple promises, mapping and reducing collections of promises, and timed promises.

This major release brings full Promises/A+ compliance, and async promise resolutions. It also includes a few new features, including a new when/keys module for working with object keys.

See the cujojs discussion group for further detail, and check out the full changelog for more info and direct links to docs for the new features.