SpringOne 2GX 2012 Replays: Introduction to Spring Data, Java Batch JSR-352

An Introduction to Spring Data

The Spring Data project is an umbrella project that provides a familiar and consistent Spring-based programming model for a wide range of data access technologies. Motivated by the rise of new NoSQL databases and Big Data solutions, there is support for Redis, MongoDB, HBase, Neo4j, Gemfire, Hadoop and Splunk. There is also a “refresh” of Spring’s traditional support for JDBC and JPA. In this session, we will provide a guided tour of the Spring Data feature set, showing how you can quickly increase your productivity when creating applications that use these new data access technologies. Use cases unique to each technology will be discussed and demonstrated as well as where Spring Data provides some level of portability between different databases.

About the speaker 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 »


Java Batch JSR-352

Java Batch JSR-352 is an initiative chaired by Chris Vignola from IBM and includes members from RedHat, Oracle, VMware, Industry leaders, and independent consultants involved in the Enterprise Java Batch.

This presentation will cover: The influence of Spring Batch on the Java Batch spec (the Batch DSL). The evolution of requirements on Java Batch in terms of concurrency, data and application modernization, and data grids. Key design decisions for coming to a common language (JCL) of batch in terms of Jobs, Steps, Partitioning, Concurrency, Parallelization, etc. State of Java Batch; Roadmap, specification, and public access to discussions and hot topics.Influences of Java Batch on Spring Batch and the implications for the future.

About the speaker Jonathan Fullam

Jonathan Fullam has over 12 years of experience with software development with a heavy focus on enterprise Java based applications and open source frameworks. Currently employed by SpringSource, a division of VMware, Jonathan advises enterprises on building scalable architectures using modern technologies and tools. With a passion for public speaking, he most recently presented Test Driven Developement at the 2011 Java Server Side Symposium. Jonathan received his education from The College of New Jersey where he obtained a B.S. in computer science.

More About Jonathan »

Wayne Lund

Wayne Lund is a Senior Systems Engineer within VMware vFabric. Currently Wayne is on the Java Batch expert group (JSR-352) working to standardize the use of Java Batch in the enterprise, which has just been released for public review. Prior to coming to VMware Wayne has been working as an enterprise Java Architect from the earliest days of Java. While at Accenture he was one of the Chief Architects of Spring Batch, a joint effort between Accenture and SpringSource, and introduced the Java Community to Spring Batch at Java One 2007 along with Rod Johnson and Scott Wintermute.

More About Wayne »

Webinar Replay: Multi-Client Development with Spring

Multi Client Development with Spring

No application is an island and this is more obvious today than ever as applications extend their reach into people's pockets, desktops, tablets, TVs, Blu-ray players and cars. What's a modern developer to do to support these many platforms? In this talk, join Josh Long to learn how Spring can extend your reach through (sometimes Spring Security OAuth-secured) RESTful services exposed through Spring MVC, HTML5 and client-specific rendering thanks to Spring Mobile, and powerful, native support for Android with Spring Android.

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 Data GemFire 1.3.0 Released

I am pleased to announce the GA release of Spring Data GemFire 1.3.0. In addition to many minor bug fixes and enhancements, this release includes some notable new features to make writing Java applications with GemFire even easier: Annotation Support For Functions GemFire provides the ability to "bring the code to the data" by providing Read more...

New Discounts On Spring Trainings Worldwide

SpringSource still has some seats left for the top Spring Framework classes: Core Spring, Spring Web and Enterprise Integration with Spring in Europe. If you register now, you can SAVE 30% on the remaining Spring training class seats for:

Please use the following discount code in the referral field during the registration process:
Discount Code: SPLPROMOCLS

SpringSource has also launched a 15% education discount on the following classes:

Please use the following discount code in the referral field during the registration process:
Discount Code: springcustomerpromo

The final discount is a discount launched by the official SpringSource VATC Partner in India, SpringPeople:

  • April 08 - 11: Core Spring in Delhi, India: Discount = INR 15,000
  • April 15 - 25: Core Spring, Hibernate with Spring and Enterprise Integration with Spring in Bangalore, India: Discount = Get Hibernate with Spring for Free
  • May 06 - 09: Core Spring in Hyderabad, India: Discount = INR 15,000

To obtain the discount code for Indian courses contact: info@springpeople.com | Ph +91 80 6567 9702

This Week in Spring - March 12th, 2013

Welcome to another installment of This Week in Spring! This week, there's a lot of Spring Tool Suite news, so be sure to check out the new release and try it out. One last reminder: be sure to join me Thursday for a webinar introducing Spring's REST and mobile support at 3:00PM GMT (for Europeans) and 10:00AM PST (for North America). If you've wanted to learn how to build mobile applications for your Spring-based backend services, then this talk is for you. We'll look at Spring's rich support for REST, Android and mobile platforms, in general.

  1. Jonathan Brisbin's announced that Spring Data REST 1.1.0.M1 has been released. The new release is basically a from-the-ground up rewrite. In the new release, there is support for all repositories including MongoDB and GemFire-based repositories.
  2. Martin Lippert has announced that Spring Tool Suite and Groovy/Grails Tool Suite 3.2.0 have been released. The new version is much faster than the previous version, and includes updated support for Eclipse Juno SR2, high-res displays on OSX, and updated compliance with various Spring projects, including Spring Integration 2.2.
  3. Rob Winch has announced that Spring Security SAML 1.0.0.RC2 has Been Released. Spring Security SAML is a third-party contribution that provides SAML support for Spring Security.
  4. Spring Integration 2.2.2 is Now Available! The new release features various important bug fixes.
  5. I'm presenting a webinar on March 14, 2013 - Multi Client Development with Spring! Join me to learn about REST, OAuth, Spring MVC, Spring Android, and much more!
  6. Join Damien Dallimore and David Turanski on a webinar as they introduce the Webinar: Extending Spring Integration for Splunk - March 28th, 2013
  7. New SpringOne2GX replays now available in HD on YouTube: Addressing Messaging Challenges Using Open Technologies, Introduction to Spring Integration and Spring Batch
  8. @SpringSource is launching a (quick) swag-giveaway campaign!
  9. Spring and Groovy/Grails Tool Suite lead Martin Lippert's put together a video comparing the speed of the Tool Suites at 3.1, versus their speed at 3.2.
  10. Speaking of Spring Tool Suite, are you interested in saving 15% on SpringSource Tool Suite Training?
  11. Yuan Ji has a nice post on how to persist Spring Social connections with Spring Data MongoDB. Awesome! I was about to roll up my sleeves and write such an implementation myself! But this should save me some work. Thanks, Yuan!
  12. The Object Partners Inc. blog has a video up that introduces Spring Batch 2 and how to integrate it with Grails. That's pretty cool! They use a Groovy DSL instead of Spring Batch's native XML format to reduce verbosity. One new alternative is the Java configuration support in Spring Batch 2.2.
  13. Petri Kainulainen has a blog post up that introduces Spring Data SOLR query methods.
  14. The Ippon Technologies blog has a nice post on performance tuning the Spring Petclinic sample application.
  15. Michael Simons has a nice post on using the popular, component-oriented web framework Vaadin with Spring
  16. Nicolas Frankel has a nice post on replacing Spring XML with Java Configuration.
  17. Gert-Jan Schouten, MSc., has put together a nice post on how to use his open-source event bus implementation, RRiBbit 2.3.0, with Spring. I'm not sure what -->
  18. Tomasz Nurkiewicz is back, this time with a post on using the DeferredResult with Spring MVC 3.2's asynchronous request controllers.
  19. Xavier Padró has put together a very nice post on the effect of registering various HttpMessageConverter instances on the RestTemplate when handling different types of RESTful resources.
  20. Before the RestTemplate and REST, and before document-oriented SOAP-based web services and Spring Web Services, there was Spring's JaxWsPortProxyFactoryBean, which can give you a strongly typed client to talk to SOAP web service with a JAX-WS port, or client. This post introduces how to use Spring's JAX-WS support to create a client.
  21. The Spring Addon blog has a perhaps overly-brief look at how to setup a Spring MVC-based REST endpoint. He makes a good point though: if you've got a Spring MVC application, then exposing a RESTful service is dead simple from there.
  22. The Kamal's blog has a nice post on how to setup a Spring MVC 3.0-based application. NB that, with more recent releases of Spring, you don't need any XML for web.xml or the Spring application context.
  23. The fuzzydb in focus has a nice post on how to support both existing Hibernate-based services, as well as JPA-based repositories based on Spring Data JPA, which requires a EntityManager reference. The approach is simple, and something that's uniquely easy to do with Spring's Java configuration style.



SpringOne 2GX 2012 Replays: Addressing Messaging Challenges Using Open Technologies, Introduction to Spring Integration and Spring Batch

Addressing Messaging Challenges Using Open Technologies

For Modern Applications Many businesses are faced with some new messaging challenges for modern applications, such as horizontal scalability of the messaging tier, heterogeneous messaging systems and access methods, and extreme transaction processing. This presentation/demo will cover how businesses can overcome these messaging challenges with the use of Spring and RabbitMQ technologies.

Tom will build a case for AMQP, explain how SpringSource is providing AMQP support via Spring AMQP and Spring Integration, explain how RabbitMQ is a modern messaging solution that offers a reliable, highly available, scalable and portable messaging system with predictable and consistent throughput and latency, and demonstrate how Spring Integration and RabbitMQ can be progressively introduced into a standard Spring web application.

  About the speaker Tom McCuch

Tom McCuch is a Solution Engineer for Hortonworks with over twenty two years of experience in software engineering. Tom specializes in the architecture, implementation, and deployment of distributed systems requiring high Reliability, Availability, and Scalability (RAS) features. Prior to Hortonworks, Tom worked for SpringSource - handling field architecture for their global accounts including Financial Services, Transportation, and Energy. Tom has consulted enterprise clients across multiple industries in the architecture of mission-critical solutions based on open source software as well as led the engineering of enterprise Java middleware supporting next-generation telecommunications products deployed at tier-1 telcos both in the U.S. and Europe.

More About Tom »

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 »


Introduction to Spring Integration and Spring Batch

In this session you will learn what Spring Integration and Spring Batch are all about, how they differ, their commonalities, and how you can use Spring Batch and Spring Integration together.

We will provide a short overview of the Enterprise Integration Patterns (EIP) as described in the highly influential book of the same name. Based on these patterns, we will then see how Spring Integration enables the development of Message-driven applications. This allows you to not only modularize new or existing applications but also makes it easy to integrate with external systems.

This session will also introduce Spring Batch. Spring Batch addresses the needs of any batch process, be it complex calculations in large financial institutions or simple data migration tasks as they exist in many software development projects. We will cover what Spring Batch is, how Spring approaches the concepts of batch and how Spring handles scaling batch processes to be able to handle any volume of data.

You will also see how Spring Integration and Spring Batch maximize the reuse of the integration support provided by the core Spring Framework. In addition to providing a robust, proven foundation, this also flattens the learning curve considerably to all developers already familiar with Spring.

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 »

Performance Improvements in STS 3.2.0

The latest release of the Spring Tool Suite (3.2.0) contains a large number of performance improvements in many different areas. We are not only adopting the latest improvements from the Eclipse Juno SR2 maintenance release (which fixes a large number of performance issues with the new Eclipse 4 platform UI), we also worked on the Read more...

Spring Data REST 1.1.0.M1 Released

The Spring Data team is happy to announce the next major step in the evolution of exporting domain objects to the web using RESTful semantics: Spring Data REST 1.1.0.M1 is now available in the SpringSource milestone repository.

Spring Data REST Home | Source on GitHub | Reference Documentation

Export domain objects to the web

Spring Data REST is a set of Spring MVC components that you can add to your own Spring MVC applications that export your Spring Data Repositories to the web using RESTful, HATEOAS semantics. It provides a consistent interaction API by exporting repositories to RESTful URLs that are configurable in a couple different ways.

Spring Data REST supports CRUD for top-level entities (those domain objects directly managed by a Spring Data Repository) by literally writing a single line of code that defines an interface that extends Spring Data's CrudRepository interface. That done, your entities then have full RESTful semantics. You can create new ones, update existing ones, and delete them using standard URLs that are, following the principles of HATEOAS, discoverable. That means the user agent accessing your Spring Data REST application doesn't need to have advance knowledge of what resources you are exporting. It can discover what entites exist and what relationships exist on those entities by successive calls to URLs provided in the JSON. These "links" are the real foundation and power of a HATEOAS REST application.

Changes from the ground up

Version 1.1 is virtually a re-write from the ground up. Not only is it easier to configure than 1.0 and better conforms to Spring MVC expections for the transition to Spring 3.2, but the biggest change in the internals of Spring Data REST is that it now supports other types of Spring Data repository implementations beyond just JPA. The HTTP semantics for CRUD and manging relationships (if the datastore supports it) remain the same no matter what backing datastore is used.

That means it's now possible to export JPA entities and MongoDB entities within the same Spring Data REST application and access those entities using a common URL structure and using the standard Spring HATEOAS Resource representation for all entities and collections. The user agent accessing those RESTful URLs does not need any special knowledge on which datastore the backing entities are managed by and, most importantly, you don't have to write any code to get that functionality!

MongoDB support

Spring Data REST 1.1 now supports exporting MongoDB CrudRepository implementations. The same HTTP semantics apply to MongoDB @Document entities as apply to JPA entities. GET, POST, PUT, DELETE are of course supported, but so is @DBRef. You can view and manage the relationship between two documents using GET, POST, PUT, and DELETE and you can export finder methods based on your @Query definitions. Please reference the spring-data-mongodb reference documentation for the full details of how the object mapping differs from JPA style mapping and how query definitions work.

Gemfire support

Spring Data REST 1.1 now supports exporting entities that use the high-performance Gemfire database to different Regions. Read the Spring Data Gemfire documentation for the full explanation of the vast configuration options and how POJO mapping in Gemfire differs from other mapping technologies.

Neo4J support is next

Spring Data REST 1.1 is now set to support Neo4J GraphRepositorys with the next version of spring-data-neo4j, version 2.3. When that's generally available (which should be around or before the general availablity of Spring Data REST 1.1 RELEASE), you will be able to access @NodeEntitys and their relationships using standard HATEOAS semantics, just like you do with the other datastores.

Add it to your existing apps

Spring Data REST is designed in such a way that you can, if you wish, create an entire application for the Spring Data REST application. It's just a standard Spring MVC webapp after all. But things get really interesting when you add Spring Data REST to your own services.

Spring HATEOAS author Oliver Gierke has created an example application that demonstrates the use of HATEOAS principles in a modern web application. It's called spring-restbucks and is an implementation of the Restbucks application described in the Systematic Theology of REST services: REST in Practice by Jim Webber, Savas Parastatidis and Ian Robinson.

Mixin REST services

By mixing Spring Data REST with your other RESTful services, you can get a seamless integration between those domain objects exported by Spring Data REST--objects for which you didn't have to write any code to have them exposed--and those services that don't represent an actual entity but a process. You can see an example of how a payment service might interact with domain object CRUD in the spring-restbucks application, where credit card payment processing is handled by a custom controller, while object CRUD is handled by Spring Data REST. Your custom controllers can actually piggyback onto the Spring Data REST URLs so that a consistent and simple URL structure can be maintained throughout the appliation, no matter whether the URL refers to your custom controller, a Spring Data REST JPA Repository, or any of the other supported Repository styles.

It's not exclusive

It's not an either-or with Spring Data REST. If you don't want all of your Repositories exposed to a web client, no problem! There a several different ways you can turn off functionality for Repositories. You can embed annotations into your source code or, if you don't have access or simply can't add the Spring Data REST annotations, you can use a fluent, DSL-style configuration to tell Spring Data REST how your resources should be exposed. Using Spring Data REST in your application isn't an exclusive committment to only one way of doing things. Spring Data REST is structured in a what that it will play nicely with your existing application so you can incorporate those bits of functionality from Spring Data REST you want, while still maintaining all the custom-coded services you're used to creating in Spring MVC controllers.

JSONP support moving to a filter

The JSONP support that was built into Spring Data REST 1.0 has been removed from the core framework in preference to a forthcoming general-purpose JSONP Serlvet Filter that will work much better than the way JSONP was implemented in version 1.0. When that filter is generally available, then JSONP support can be added not just to Spring Data REST, but virtually any Servlet-based REST resource.

Installation and Documentation

To get started playing with Spring Data REST, have a look at the reference documentation to get the lay of the land, so to speak, and get started playing with it in your own application by simply adding a dependency to the spring-data-rest-webmvc artifact (currently at 1.1.0.M1 in the SpringSource milestone repository) then import the Spring Data REST configuration like you see being done in the spring-restbucks application.

Learn more at CONFESS_2013

If you're planning on attending CONFESS_2013 in Vienna the first week of April, then you can hear all about Spring Data REST at my talk on exporting entities to the web.


Spring Data REST Home | Source on GitHub | Reference Documentation

Spring Tool Suite and Groovy/Grails Tool Suite 3.2.0 released

Dear Spring Community,

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

Highlights from this release include:

  • Eclipse Juno SR2 updates (including Mylyn, EGit, m2e, m2e-wtp)
  • added support for high-res displays on Mac OSX
  • updated bundled tc Server to 2.8.2
  • major performance improvements for working with Spring projects
  • major improvements to the Live Spring Beans Graph
  • added support for Spring Integration 2.2
  • updated to include Groovy 2.0.7 and Grails 2.2.1 (Groovy 2.1 is available from the dashboard)

We continue to ship distributions both on top of Eclipse 3.8 and Eclipse 4.2. While the 4.2 stream of Eclipse has improved a lot in the Eclipse Juno SR2 release, we still recommend using the 3.8-based version for optimal performance and stability.

To download the distributions, please go visit:

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

Updates from STS/GGTS 3.0.0 and 3.1.0 are available through the automatic "Check for Updates". Users of STS 2.9.x (or older) should start with a fresh installation of STS/GGTS 3.2.0.

The next version 3.3.0 is scheduled to arrive in July 2013, shortly after the Eclipse Kepler (4.3) release. Also watch out for milestone builds of 3.3.0 if you want to stay up-to-date with the latest developments.


Save 15% on SpringSource Tool Suite Training

SpringSource has launched a promotion for people that have recently chosen to use SpringSource Tool Suite to build the best Spring-powered Enterprise applications.

SpringSource Tool Suite (STS) supplies tools for all of the latest enterprise Java and Spring, and comes on top of the latest Eclipse releases.
Included with STS is the developer edition of vFabric tc Server, the drop-in replacement for Apache Tomcat that’s optimized for Spring. With its Spring Insight console, tc Server Developer Edition provides a graphical real-time view of application performance metrics that lets developers identify and diagnose problems from their desktops.

In order to maximise the efficiency and control over your development process that you might have already gained through using STS see our:
During the official 4-day Spring Training you will learn to build professional applications with Spring. The professional training helps you to learn how to maximize use of the SpringSource Tool Suite, to build powerful Spring Applications and to become certified in Spring.

If you have chosen STS to build your applications we would like to offer you a discount on the professional Spring Training. If you register for a course with a start date before July 01, 2013 you will receive a 15% discount on the training.* Please use the following discount code in the referral code field during registration: stsdownload13

See our Spring Training page for the full Spring Education Schedule

*Discount Terms and Conditions: The 15% discount applies to the original list price of SpringSource Training Courses. The 15% discount can also be used to register for a Spring class provided by one of our official Spring VATC Partners in EMEA. Please note that the VMware website might show a 10% early bird discount if the courses starts in 31 days or later. This discount does not add up to the early bird discount. It is not possible to use the discount code when using VMware credits to pay. The discount can also be applied to onsite trainings, please send an email to emeaeducation@vmware.com to ask for more information when booking an onsite training.

Spring Integration 2.2.2 is Now Available

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

This is a minor release containing a few important bug fixes.

The release notes can be found here.

The project page is here.

Scripted 0.4 released

This week we've released version 0.4 of our JavaScript focused code editor. You can read about the background of Scripted here. The full release notes for 0.4 are here but in this article I'll call out a few of the more interesting changes. Tooltips Scripted uses an inferencing engine to build an understanding of your Read more...

This Week in Spring - March 5th, 2013

Welcome back to another installment of This Week in Spring. We've got a lot to cover, though, so let's get to it!

  1. I'm presenting a webinar on March 14, 2013 - Multi Client Development with Spring! Join me to learn about REST, OAuth, Spring MVC, Spring Android, and much more!
  2. Join Damien Dallimore and David Turanski on a webinar as they introduce the Webinar: Extending Spring Integration for Splunk - March 28th, 2013
  3. New SpringOne2GX replays now available in HD on YouTube: Spring Data Repositories: A Deep Dive, and Intro to Cascading
  4. @SpringSource is launching a (quick) swag-giveaway campaign!
  5. Spring Security lead and ninja Rob Winch has announced the initial support for Java-based configuration in Spring Security. This is a wonderful milestone. Recently, we've seen Java-configuration alternatives to the XML DSLs offered for Spring Social, Spring Batch and - now - Spring Security. Check out the Spring Security Java-based configuration for more details.
  6. I had the unique privilege of visiting the Alibaba group in China where they're doing some amazing things with Spring. Read more in my blog, Spring at China Scale: the Alibaba group.
  7. Someone asked me this the other day and I felt like it was worthy of a mention: in your Spring MVC @Controller class handler methods, make sure that the BindingResult argument is immediately after the model or command argument, like this: @RequestMapping(...) public String handleRequest( @ModelAttribute @Valid YourCustomPojo attempt, BindingResult result). In this example, handleRequest will validate the POJO (YourCustomPojo) - checking the POJO for JSR303-annotations and attempting to apply the constraints because the POJO is annotated with @Valid - and stash any errors in the BindingResult, which it makes available if we ask for it.
  8. Speaking of validation using JSR 303, I found this amazing post from 2010 that I felt worth inclusion. This post introduces a custom annotation, called @SpelAssert, that works like JSR303's @ScriptAssert.
  9. Do you want to use Cloud Foundry with the continuous integration capabilities offered by CloudBees? We got you covered! The Cloud Foundry and Cloud Bees teams worked to integrate the process, and the step-by-step introduction is given here.
  10. Alvaro Videla has introduced and open-sourced his RabbitMQ simulator. The RabbitMQ simulator is an awesome visualization tool to demonstrate how RabbitMQ topologies work.
  11. Gary Russell has announced that Spring AMQP 1.1.4 is now available.
  12. The Fstyle blog has an interesting post on how to unit test Spring Security with Spring MVC test mocks.
  13. Our pal Boris Lam is back, this time with a post on how to integrate Spring Data, MongoDB and JavaServer Faces.
  14. Indika Prasad, on the Programmer's Guide blog, has put together a tutorial showing how to use Spring Security with Webdav and password encryption.
  15. The Java J2EE SOA Key Points blog has a nice post on using the Spring WS JAXB web service client. There's very little narrative, but lots of code.

SpringOne 2GX 2012 Replays: Spring Data Repositories Deep Dive, Intro to Cascading

Spring Data Repositories – A Deep Dive

The repository abstraction layer is one of the core pieces of the Spring Data projects. It provides a consistent, interface-based programming model to allow implementing data access layers easily. The talk will start with a brief introduction and dive into best practices and implementation patterns later one.

We will conclude the session with an overview over what can actually be built on top of this generic repository abstraction and discuss integration hooks into Spring MVC and REST webservices.

About the speaker Oliver Gierke

Oliver Gierke is engineer at SpringSource, a division of VMware, project lead of the Spring Data JPA module and involved into other Spring Data modules (e.g. MongoDB) as well. He has been into developing enterprise applications and open source projects for over 6 years now. His working focus is centered around software architecture, Spring and persistence technologies. He is regularly speaking at German and international conferences as well as author of technology articles.


Introduction to Cascading

Introduction to Cascading, an application framework for Java developers to deploy robust, enterprise-grade applications on Apache Hadoop. We'll start with the simplest Cascading program possible (file copy in a distributed file system) and progress in small steps to show a Java-based social recommender system based on Twitter feeds.

Introduction to Cascading, an application framework for Java developers to deploy robust, enterprise-grade applications on Apache Hadoop. We'll start with the simplest Cascading program possible (file copy in a distributed file system) and progress in small steps to show a Java-based social recommender system based on Twitter feeds.

The objective is to show how to work with “Big Data”, starting on a laptop with sample data sets, to generate JAR-based apps which can be deployed on very large clusters.

We'll show best practices for scalable apps in Cascading, how to leverage TDD features, etc.

About the speaker Paco Nathan

Data Scientist @ http://ConcurrentInc.com. Developer Evangelist for http://Cascading.org open source project. Expert in Hadoop, R, cloud computing, machine learning, predictive analytics, NLP. BS MathSci and CS CompSci from Stanford, 25+ yrs in tech industry. For the past several years, I've been leading Data Science teams, working with large scale MapReduce applications.

Spring-AMQP 1.1.4.RELEASE is now Available

We are pleased to announce that Spring-AMQP 1.1.4.RELEASE is now available.

This is a minor maintenance release with fixes to a few minor issues in the AMQP Log4j Appender, as well as correcting an issue in the spring-rabbit manifest for OSGI users.

Release notes can be found here.

The project home page is here, where you can find links to documentation, downloads and APIs.

Spring at China Scale: Alibaba Group (Alipay, TaoBao, and TMall)

So What Does It Take to Operate at China Scale? The challenges inherent to building enterprise applications that meet China-scale demand are unparalleled. One exemplary Chinese organization using Spring heavily to solve very unique challenges is the Alibaba group. Alibaba is itself an online auction site, like eBay in the west. The Alibaba group in Read more...

This Week in Spring - Feb 26th, 2013

Welcome to another installment of This Week in Spring! It's been an exciting two weeks for Hadoop content - Hadoop enthusiasts should check last week's post for an HD quality replay of Building Big Data Pipelines with Spring Hadoop from SpringOne 2GX 2012.

  1. Costin Leau has announced that Spring for Apache Hadoop 1.0 has gone GA! This marks the end of a year in development from the time of the first betas. There's a lot in this release. For more information, check out the blog.
  2. Did you guys hear about yesterday's announcement from Greenplum of Pivotal HD, a Hadoop distribution which performs better than the competition, provides a true SQL interface, and features extra tools (like an admin console and an installation, configuration and management facility) and is bundled with Spring for Apache Hadoop? The release was in the news a lot yesterday. Here's a nice post on GigaOm, another on CIO , and yet another on CRN and another still on Silicon Angle.
  3. SpringOne2GX 2013 has been announced! This year, SpringOne will occur in Santa Clara, California, on September 9-12th, 2013. I hope to see you there!
  4. Join me, Josh Long, for the upcoming webinar - Multi Client Development with Spring - on March 14th. The webinar will introduce how to build RESTful, Spring-based applications using Spring MVC, REST and mobile technologies like Spring Mobile and Spring Android and HTML5.
  5. Join Damien Dallimore (Splunk) and David Turanski (SpringSource) on March28th for a webinar, and hear them introduce the Spring Integration Channel Adapter for Splunk!
  6. Are you a JPA user? Weigh in on the JPA TCK Access debate and help improve TCK quality!
  7. Three new SpringOne2GX 2012 recordings available on YoutTube in HD this week: Getting started with Spring Data and Distributed Database Grid, Whoops, Where did my architecture go? and Monitoring and Managing Spring Integration.
  8. If you missed the Testing Web Applications with Spring 3.2 Webinar with Sam Brannen and Rossen Stoyanchev, you can see it in HD on YouTube.
  9. Nicolas Frankel put together a post that demonstrates how to change the default scope of beans. Beans are singleton scoped if no scope is otherwise specified. This example uses a Spring framework BeanFactoryPostProcessor to achieve the effect. NB: this is not something I'd recommend doing! This is super hackety. It is, however, a nice illustration of just how flexible Spring is.
  10. Petri Kainulainen put together a nice tutorial on configuring Spring Data Solr.
  11. CORS, or cross-origin resource sharing is a technique for communicating across hosts, sidestepping the single-host policy limitations typical of Ajax communication. Spring MVC doesn't support it out of the box, but it's easy to add to an existing application, as this tutorial explains.
  12. The Agitech Limited blog has an introduction to Spring MVC tutorial that you might find interesting.
  13. Pas Apicella has written a very nice post on using Spring and MyBatis, along with VMware SQLFire .
  14. The Cloud Counselor blog has a nice post on how to use Spring and GemFire together, complete with the working GemFire configuration files.
  15. Vincent Devillers introduces the cloudfoundry-runtime's Java types, letting you configure Cloud Foundry applications in Spring using Java (and Java configuration)
  16. The Java Journal blog has put together a nice post on using JDBC from Spring. Spring's long since featured the support described in this blog, so hopefully you've at least heard about these facilities in the core Spring framework before! If you haven't, then check out this post.
  17. The all and sundry blog is back, this time with a post on XML vs. Java-based configuration styles in Spring.
  18. The VmwareNews.de blog has a nice post on the new VMWare vFabric reference architecture.
  19. The aptly-named Solutions to basic IT problems blog has a nice post on Spring Data JPA. This is a follow-up from his previous post, which introduced the Spring and Hibernate combination.
  20. The ComSysto blog has a nice post specifically on visualizing Spring Data Neo4j nodes in JavaFX
  21. Krishna's Blog has a nice post on JUnit testing Spring MVC applications.
  22. The Techi Ghost blog has an interesting post on how Spring's ApplicationContext-wide eventing mechanism works. The event mechanism, by the way, is one of the things that should be greatly improved in the upcoming Spring 4.0 release, due at the end of this year.

Spring for Apache Hadoop 1.0 Goes GA

We are happy to announce the first GA release (1.0) for Spring for Apache Hadoop, almost one year to the date from the release of its first milestone release. During that time we have incorporated a great deal of your feedback to drive the road-map, so thanks everyone from the community who have helped! While Read more...