Groovy Bean Configuration in Spring Framework 4

Engineering | David Turanski | March 03, 2014 | ...

This post is intended to introduce the Groovy Bean Builder to Java developers as a powerful alternative or supplement to Java @Configuration and XML configuration. The Spring Framework release 4.0 includes a port of the Grails Bean Builder to the core Spring Framework, providing a Groovy DSL for configuring Spring applications. Groovy and Grails developers are no doubt familiar with configuring Spring applications this way and I expect the rest of you are already thinking "How cool is that?"

Don't worry if you're not a Groovy expert. Just as many Java programmers use another popular Groovy DSL, Gradle, to build applications, you only need to know some basic syntax to get started. Sample code is available on github

Getting Started with Spring Data REST

Engineering | Greg L. Turnquist | February 26, 2014 | ...

Hot on the heels of Spring Data's Codd GA release, there is a new Getting Started guide for Spring Data REST, Accessing Data with REST. It shows you how to create up an application with a JPA backend and a RESTful, hypermedia-driven front end.

Spring Data REST does all the heavy lifting of building a powerful RESTful front end as well as writing the JPA queries for the back end. To top it off, the guide leverages Spring Boot so you are using the latest-and-greatest from the Spring team.

Cheers!

SpringOne2GX 2013 Replay: Researching Cancer In the Cloud Using Spring, Neo4J, Mongo and Redis

News | Pieter Humphrey | February 25, 2014 | ...

Recorded at SpringOne2GX 2013 in Santa Clara, CA

Speakers: Smitha Gudur, Manoj Joshi, Redbasin Networks

Cancer/life science drug research models are very rich in relationships, relationship heterogeneity and entity inter-dependencies. Most entity metadata is dynamic and unpredictable making it difficult to fit such models in traditional relational landscape. Redbasin Networks uses a hybrid Nosql strategy that supports composite and rich document metadata that is interconnected pervasively. Cancer and life science data is excessively nested. You will find this useful if you are building complex engineering and/or scientific applications, and need insights on how to merge data from many diverse data-sets and map it to an intuitive and effective graph database model. We will show using code examples how complex metadata can be engineered using Spring, Neo4J and Mongo, to create useful drug insights for the drug researcher, and also provide a platform for technologists to build sophisticated life science applications.

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

SpringOne2GX 2013 Replay: Spring Data Community Lightning Talks

News | Pieter Humphrey | February 25, 2014 | ...

Recorded at SpringOne2GX 2013 in Santa Clara, CA

Speakers: Peter Bell (MongoDB Master), Costin Leau (Elasticsearch), Christoph Strobl (Solr) and Michael Nitschinger (Couchbase)

Spring Data has started as an umbrella project consisting of many individual modules - per supported data store. While some of these data store modules - like the JPA and MongoDB ones - are maintained by Pivotal engineers a lot of community implementations have popped up lately. They build on the foundations of the Spring Data Core module and expose the Spring Data programming model for others stores. The session will feature maintainers and contributors of the community modules for Solr (Christoph Strobl), Elasticsearch (Costin Leau), Couchbase (Michael Nitschinger) and MongoDB (Peter Bell), who will talk about the latest and greatest features of the upcoming releases and give an impression of how they used the APIs of Spring Data Core to build the module. Spring Data has stared as an umbrella project consisting of many individual modules - per supported data store. While some of these data store modules - like the JPA and MongoDB ones - are maintained by Pivotal engineers a lot of community implementations have popped up lately. They build on the foundations of the Spring Data Core module and expose the Spring Data programming model for others stores. The session will feature maintainers and contributors of the community modules for Solr (Christoph Strobl), Elasticsearch (Costin Leau), Couchbase (Michael Nitschinger) and MongoDB (Peter Bell), who will talk about the latest and greatest features of the upcoming releases and give an impression of how they used the APIs of Spring Data Core to build the module.

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

This Week in Spring - February 25th, 2014

Engineering | Josh Long | February 25, 2014 | ...

Welcome back to another installment of This Week in Spring.

Yesterday I was in Atlanta, GA for the amazing DevNexus conference talking to developers about the latest and greatest in the wide world of Spring, and about REST API development with Spring. Today I am in Montreal, Canada, for the ConFoo conference. I'll speak to developers this week about Spring's rich NoSQL and big-data support and building REST APIs with Spring.

As usual, we've got a lot to cover, so let's get into it!

  1. Spring Batch lead Michael Minella has announced that Spring Batch 3.0 M3 is now available. My favorite new feature? It implements all of the required pieces for JSR 352, the Batch JSR! Congratulations Michael and team, this is a huge milestone!
  2. Spring Mobile lead Roy Clarkson has announced that Spring Mobile 1.1.1 is now available.
  3. Spring Security lead Rob Winch announced that Spring Security 3.2.1, and 3.1.5, are now available
  4. Rob also announced that Spring LDAP 2.0.1 is now available.
  5. Christoph Strobl has announced that Spring Data Redis 1.2.0 is now available, also!
  6. Join Juergen Hoeller and the Spring Team to learn about Java 8 and Spring Framework 4.0 on March 25.
  7. Don't miss Mattias Arthursson on March 18th, presenting Spring LDAP 2.0.0.
  8. Tomcat fans should check out the webinar replay from Apache Committer Stuart Williams and Daniel Mikusa: Introduction to Apache Tomcat 8.
  9. The replay of the Spring Data Community Lightning Talks from SpringOne2GX 2013 are now up
  10. The replay of the SpringOne2GX 2013 talk, _SpringOne2GX 2013 Replay: Researching Cancer In the Cloud Using Spring, Neo4J, Mongo and Redis _
  11. Spring Data lead Oliver Gierke has announced that Spring Data Codd is now available and GA! Check out the latest and greatest bits!
  12. The latest cut of the Axon CQRS framework, version 2.1, is now available.
  13. Pivotal CEO Paul Maritz has penned a nice post on the formation of a foundation around Cloud Foundry
  14. El Reg also has a nice post on the recent formation of the Cloud Foundry foundation in a post titled, Cloud Foundry laps up attention in EMC, IBM, HP, Rackspace, SAP, VMware love-in.
  15. The Zoltan blog has a nice post on using two-factor authentication with Spring Security
  16. Biju Kunjummen on the the Java Code Geek's blog has put together a nice nice post on his first steps with Spring Boot and Spring Integration.
  17. Xavier Padró' has published his followup post to last week's post introducing Spring and Thymeleaf. The new post looks at how to build a form, and how to use Ajax with Thymeleaf.
  18. Speaking of Spring Boot, the OpenCredo blog has a nice post on their first steps with Spring Boot, as well! Check it out.
  19. JavaLobby has a nice post on using custom ViewResolvers with Spring MVC.

Spring Batch 3.0 Milestone 3 Released

Releases | Michael Minella | February 24, 2014 | ...

Today we are pleased to announce the final milestone release towards Spring Batch 3.0 (download). This release demonstrates our support of JSR-352 and currently supports all its required features. We also added a number of new features to Spring Batch for existing Spring Batch users. Spring Batch is a lightweight, comprehensive framework for the development of robust batch applications.

Features in Milestone 3

As the final milestone for the Spring Batch 3.0.0 release, all major features for this release are complete. The major features for this release include:

  • JSR-352 support
  • Promote Spring Batch Integration to Spring Batch
  • Upgrade to support Spring 4 and Java 8
  • Other fixes and improvements

JSR-352 Support

Spring has invested a large amount of time and resources in our contribution to this spec. Our collaboration with the other industry experts via the JCP, JSR-352 validates that the batch patterns that Spring Batch has implemented and battle tested over the past six years in countless production environments is the best approach for building mission critical batch applications in the enterprise.

3.0.0.M3 is the first release of Spring Batch that is compliant with JSR-352 in that it passes all 152 of the SE TCK tests. The Spring Batch implementation of JSR-352 allows users to use the familiar components of Spring Batch and still maintain compliance with java standards. Spring Batch supports the configuration of jobs via the JSR-352 based XML, injection of batch artifacts developed against the javax.batch.* interfaces using the injection methods defined in the JSR (Spring's dependency injection, batch.xml, and inline configuration), as well as all scalability options provided in JSR-352 (splits and partitioning via threads).

Our goal for our implementation was simple: follow the rules of the JSR without breaking the rules already defined by Spring Batch. In other words, implement the specification without impacting existing Spring Batch users. We have done this by providing two "paths" for implementing batch jobs. The first is the traditional Spring Batch way. Using the Spring Batch XML or Spring's java configuration, developing against the Spring Batch interfaces, etc. This will not change as part of the 3.0 release. The second "path" is the JSR path. This method of development uses the JSR-352 defined XML schema to configure your jobs, uses the JSR's JobOperator for launching jobs and managing the metadata, and developers write code against the JSR's APIs. It is important to note that these are two distinctly different paths. While using Spring Batch components will work with JSR-352 based jobs, their use within those contexts will be dictated by the JSR's rules. An example of this would be the injection of the contexts defined in JSR-352 (StepContext and JobContext). If a job is configured using traditional Spring Batch methods and launched the via regular Spring Batch components, those contexts will not be available to the batch artifacts. However, if you configure the job via the JSR-352 XML and launch it via the JSR-352 JobOperator, those contexts will be injected where appropriate.

It is important to point out that Spring Batch does not just implement JSR-352. It goes much further than the spec in a number of ways:

  • Components - Spring Batch provides 17 different ItemReader implementations, 16 ItemWriter implementations, and many other components that have years of testing in production environments under their belts.
  • Scalability - JSR-352 provides scaling options for a single JVM only (partitioning and splits both via threads). Spring Batch provides multi-JVM scalability options including remote partitioning and remote chunking.
  • Spring dependency injection - While JSR-352 provides a form of "dependency injection light", there are a number of limitations that it places on the construction of batch artifacts (must use no-arg constructors for example). Spring Batch is built on Spring and benefits from the power of the Spring Framework's capabilities.
  • Java based configuration - While Spring's XML based configuration options are well known, Spring and specifically Spring Batch, provide the option to configure your jobs using the type safety of java based configuration.
  • Hadoop/Big Data integration - Spring Batch is a foundational tool for interacting with Hadoop and other big data stores in the Spring ecosystem. Spring for Apache Hadoop provides a number of batch related extensions to use Spring Batch to orchestrate work on a Hadoop cluster. Spring XD builds on Spring Batch by providing both execution capabilities, but also management functionality similar to Spring Batch Admin for any environment.

Spring will continue to participate in the evolution of JSR-352 as it goes through maintenance revisions and look forward to further contributions to the JCP process.

Promote Spring Batch Integration to Spring Batch

Spring Batch Integration has been a little known sub project of Spring Batch Admin for a few years now. However, given how powerful the features this library provides and it's usefulness in enterprise development, we decided to move it from under the Spring Batch Admin umbrella to under the Spring Batch umbrella. Designed to provide useful components that bridge batch and integration processing, Spring Batch Integration provides a number of options for launching and scaling batch applications. Features include:

  • Asynchronous ItemProcessor/ItemWriter - Executes the ItemProcessor logic on another thread, returning a Future to the ItemWriter. Once the Future returns, the result is written.
  • JobLaunchingMessageHandler/JobLaunchingMessageGateway - Provides the ability to launch jobs via Spring Messages received over channels.
  • Remote Chunking - Provides the ability to execute ItemProcessor logic remotely (across multiple JVMs) via a master/slave configuration.
  • Remote Partitioning - Provides the ability to execute full chunks remotely (read/process/write across multiple JVMs) via a master/slave configuration.

These components have allowed Spring Batch applications to seamlessly integrate and scale in many enterprises.

Upgrade to support Spring 4 and Java 8

As part of our efforts to keep dependencies up to date, we have updated Spring Batch and it's various modules to support Spring 4. Because of these updates, Spring 4 will be the minimum supported version of Spring for Spring Batch 3.0.0.M3. This not only brings along the numerous list of new features found in Spring 4, but it also provides the ability to run on Java 8 immediately.

Other fixes and improvements

Beyond the above large new features, we have also added some smaller features and continued to fix bugs. New features we added include the addition of a JobScope and support for SQLite.

Roadmap to a release candidate

So what's left? As we approach our release candidate, there is still some minor work to be done. We are still taking a hard look at the dependencies for Spring Batch and looking to upgrade as many as possible.

Conclusion

3.0.0.M3 marks a key milestone for Spring Batch. It allows developers to test out the JSR-352 based functionality while still having the foundation of Spring and Spring Batch to rely upon. It also brings new features to the framework. We look forward to your comments and feedback in the forums, in social media, and in person!

Spring Data Release Train Codd Goes GA

Releases | Oliver Drotbohm | February 24, 2014 | ...

I am happy to announce the final release of the Spring Data release train named Codd. The full list of participating modules looks as follows:

Spring Mobile 1.1.1 Released

Releases | Roy Clarkson | February 21, 2014 | ...

We're happy to announce that Spring Mobile 1.1.1 is now available. This is a maintenance release that primarily addresses an issue where some Samsung tablets were being incorrectly resolved as mobile devices. Additional testing was also added for Windows 8 and newer versions of iOS. This release is built against Spring Framework 3.2.8, and has been tested against Spring Framework 4.0.2. See the changelog for more information.

This Week in Spring - February 18, 2014

Engineering | Josh Long | February 19, 2014 | ...

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. Spring Data lead Oliver Gierke has announced that Spring Data Babbage SR3 has been released. The new release rolls up Spring Data Commons 1.6.4, Spring Data JPA 1.4.4, Spring Data MongoDB 1.3.4, and Spring Data Neo4J 2.3.4. Like Spring 4 before it, this release train ships with a Maven dependency BOM (bill of materials) that can be used to level set the dependency versions.
  2. March 18th Webinar - Join Mattias Arthursson as he introduces Spring LDAP 2.0.0.
  3. March 25 Webinar - Be sure to check out Spring lead Juergen Hoeller's upcoming webinar: Spring Framework 4 on top of Java 8.
  4. SpringOne2GX 2013 replay: Spring and Sencha - A Match Made In Heaven (or at least the cloud) is now available
  5. Check out a founding father of Spring - Rob Harrop talk about Running Spring in Amazon Web Services, a great talk from SpringOne2GX 2013.
  6. HCL Technologies AVP Srinivas Ajjarapu penned a nice post on some of the ways that Pivotal's stack is helping IT lower spending and get more.
  7. Nicolas Frankel is back, and has put together a nice post on how to chain together Spring MVC ViewResolvers.
  8. Daniel Mikusa and Stuart Williams's webinar replay introducing Apache Tomcat 8 is now available online.
  9. Steve Perkins put together a nice post on his first steps with Spring Boot. Check it out!
  10. John Thoms has put together a nice example of configuring Spring Boot's embedded Tomcat application server with SSL support. Check it out!
  11. The stellar JHipster project, which sits on top of Spring Boot, is now available complete with new monitoring endpoints and a lot more!
  12. Speaking of Spring Boot, Spring Boot RC 3 is now available. Don't hesitate to check it out.
  13. Our pal Xavier Padró is back with a nice look at how to use the view templating library Thymeleaf with Spring
  14. My pal Andy Piper and Eclipse Paho (an MQTT client) lead Andy Piper has put together a nice post on how to use Spring Integration's MQTT support.

Spring Data Redis 1.2.0 RC1 Released

Releases | Christoph Strobl | February 19, 2014 | ...

We are pleased to announce the first release candidate of Spring Data Redis 1.2.0! We raised the minimum Spring version to 3.2.8. This release is tested against Redis 2.6 and current 2.8 as well as the latest version of Spring Framework 4.0.2. It introduces a set of bug fixes as well as some improvements like support Jackson 2 serialization, a transaction aware cache manager, support for the TIME command and upgrades of the Redis drivers.

For a complete list of changes please see this JIRA query. The next step will be RC2 scheduled for March. We’re looking forward to your feedback on Twitter or in the issue tracker

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

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

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all