This Week in Spring
Welcome back to another installment of This Week in Spring. We have a lot of great content this week, as usual!
- Rossen Stoyanchev has put up another blog in his series on Spring MVC 3.2 Preview. This latest installment introduces a Spring MVC chat example.
Oliver Gierke has announced the 1.1.0 GA version of Spring Data JPA.
Spring Data JPA makes it very simple to build JPA-based repositories, saving you from the tedious boiler plate code. This new release includes new keywords for query generation (
Contains), a handy
PersistenceUnitPostProcessor to scan for JPA entities (to be used in Spring versions before 3.1), support for native queries in
@Query, and support for declarative locking.
- Jonathan Brisbin announced the
1.0.0.M2 release of Spring Data REST. Spring Data REST
let's you easily export your Spring repository objects as RESTful endpoints.
The new release includes support
for invoking query methods of
support for JSR 303 and Spring Validator validations, and improved support for Spring
ApplicationEvents that are emitted before and after each save or delete, and annotation-based configuration.
- Oleg Zhurakousky has announced the first milestone release of Spring Integration 2.2.
This release includes dependency upgrades, JPA support, and support for "publisher confirms and returns," which are newly supported in Spring AMQP.
- Gary Russell has announced version 1.1.0 of Spring AMQP that includes support for the RabbitMQ 2.8.x client, which in turn supports mirrored queues, broker failover, publisher confirms, returns, federated exchanges, and much more.
- Matt Vickery has a great post introducing the Spring Integration splitter-aggregator pattern.
- Willie Wheeler has a great post up on his custom configuration management database (a CMDB). The post details the project, and then talks about his use of Spring Data's repositories in rebuilding the backend for CMDB.
Nice post, Willie!
Doug Haber put together a wonderful post on
handling paging using Spring Data and the REST support in Spring 3.1.
- Blogger panbhatt has a detailed post on using
Spring MVC's REST support to solve a particular set of problems he was having.
Blogger OBSERWATORZY described his particular thought process when trying to consume a RESTful service, and wondering if Spring provided an answer (of course it did!). Read on for his resolution.
- Vishal Biyani has put together a nice introduction to getting started with Spring Roo and Cloud Foundry.
- The RabbitMQ blog has an amazing article introducing queueing theory (with an introduction to throughput, latency and bandwidth.
- JAXEnter has a nice roundup of some of the news releases described in this very post, including the Spring AMQP and Spring Data JPA's GAs.
Welcome back to another installment of This week in Spring!. We've got a lot to cover this week, as usual. So, onward!
- Rossen Stoyanchev has just released part two and three of his blog series introducing Spring MVC 3.2's new features. In the first installment, Rossen introduces how to make a Spring MVC
@Controller asynchronous. In the second post, Rossen introduces how to add long polling to an existing web application. Long polling is useful in any number of scenarios where you want to simulate server-side push with client-side applications.
- The video for Oleg Zhurakousky's followup webinar introducing More Practical Tips and Tricks with Spring Integration has just been posted. Check it out!
- Roy Clarkson just announced that Spring Mobile 1.0.0 has been released!
- SpringSource and Cloud Foundry rockstar Jennifer Hickey
continued her amazing series on Cloud Foundry workers over on the Cloud Foundry blog last week, this time introducing the support for Spring developers.
I followed up with some more nuanced examples introducing how to use Spring Integration gateways, and Spring Batch jobs and core Spring's
@Scheduled annotation in conjunction with Cloud Foundry workers.
- Cloud Foundry advocate Andy Piper and I have
penned an article that helps you take your first steps on Cloud Foundry with a simple Spring application in the new JavaTech Journal, the online magazine from the producers of the JAX conference.
Registration is free, but required, to download the issue.
- Blogger Tomasz Nurkiewicz is back at it, this time with a really cool
blog introducing how to integrate reCAPTCHA with Spring Integration. Nice job, Tomasz!
- The Random Thoughts blog has an interesting look at
how to integrate JSON, XML and RSS endpoints using Spring 3.1.
- Blogger abhishek has written up a nice post explaining how to setup Spring MVC's annotations, step by step, going from a new Eclipse application all the way to the finished product.
Welcome to another installment of This Week in Spring!
I'm writing the back of the room during Adrian Colyer's amazing keynote at SpringOne On The Road - London event.
- Did you guys miss Oleg Zhurakousky's webinar, Practical Tips and Tricks with Spring Integration? Have no fear, the video is
Also, be sure to check out part 2, this Wednesday, May 3rd for both Europe and North America!
- Roy Clarkson has announced the latest release of Spring Mobile.
The release has several enhancements including more refined resolution, and improved site switching behavior.
- Jonathan Brisbin just announced Spring Data REST 1.0.0.M1, which is a servlet-based web application
that can be used to export JPA Repositories over HTTP to create RESTful endpoints that user agents can access to manage your exposed JPA Entities.
- Blogger Daniel Sawano has put together two blogs introducing how to use Spring MVC with Scala. The first blog introduces a simple Scala-Java hybrid Spring MVC application setup, and
the second blog introduces how to build a more advanced Spring MVC example with RESTful endpoints using Scala. Nice job, Daniel!
- Our pal Jan Machacek over at Cake Solutions has put together a really cool blog on how to use Akka (an actor framework), Spray (an HTTP framework on top of Akka) and Spring together.
Blogger mkyong has a nice introduction on how to use Google App Engine to setup a RESTful Spring MVC application on Google App Engine.
- Blogger Maciej Walkowiak has a
fanastic blog on how to force Spring Data MongoDB to cascade saves
to related document objects
Over on the Rai Studies blog, there's a few good blog posts on setting up Spring MVC3 CRUD applications using
- Our friend Tobias Trelle has another installment of his fantastic series introducing Spring Data. This post introduces Redis.
- The Thymeleaf project, and Soraya Sánchez, in particular, has put together a wonderful example showing how to rework the classic Spring PetClinic sample application to use the powerful Thymeleaf templating engine.
Tomcat engineer Filip Hanik has put together a wonderful blog introducing
how to use WebSockets in Apache Tomcat 7.
- Blogger Matt Vickery has a great blog introducing how to
use header enrichment in Spring Integration to store payload data.
- Our friend Willie Wheeler, author of Manning's Spring in Practice, has a great post on using Spring Data JPA to create dynamic DAOs and queries.
- Billy Sjöberg has a great blog on using Spring Integration to bridge AMQP and JMS.
Over on Xebia's Xebee blog, Anita Parida has put together a great blog introducing how to setup LDAP authentication using Spring Security.
- The CandidJava blog has a very... candid look at how to setup file uploads in Spring MVC that map to a domain model in the backend.
Check out this blog if you want a narrated example introducing how to do Spring MVC 3.0, and Hibernate, with annotations.
- AMQP's a powerful technology, and RabbitMQ, the leading AMQP-based message broker, is even more so. However, one common question I get is: what other implementations are there? This blog has the top 5 implementations (though, clearly not in order, because RabbitMQ would have to be #1, otherwise!)
- Want to manage JTA transactions on JBoss AS 7 using Spring and Hibernate? This gist by ggerard shows one possible configuration.
Welcome back to another installment of This Week in Spring! As I compile this, I'm eagerly waiting for
Costin Leau to begin his talk on NOSQL with Spring here in sunny, and beautiful Kiev, Ukraine, the first stop in the European leg of the Cloud Foundry Open Tour. The turnout for this event's been staggering! If you're reading this, then you've already missed out on the chance to attend the Kiev event, but be sure to register for the upcoming Moscow and London events.
In this SpringOne 2GX 2011 session, Mark Fisher and Thomas Risberg
transform a monolithic enterprise application by changing its relational DB with a NoSQL one, introducing modularity, adding polyglot support and incorporating message queuing and event driven request processing using common enterprise integration patterns.
- Did you guys notice that the final edition of the excellent Spring Roo in Action has just been published?
This book is, as Ben Alex (Spring Roo project founder) put it, "an insightful and comprehensive treatment." I (personally) can't recommend it enough. Ken Rimple and Srini Penchikala, as long time readers of this roundup will know, are frequent Spring community bloggers and
routinely provide amazing content on all things Spring.
Blogger Billy Sjöberg on DZone has a great post on how to bridge JMS and RabbitMQ.
This example uses Spring Integration, and provides a very powerful example of how to use the Spring Integration JMS adapter and the AMQP adapter.
The doanduyhai blog
has a great entry on how to use Spring Security to solve a common problem: how do I detect a user session timeout with an Ajax request? The example comes complete with an introduction and a lot of sample code.
- The furiousbob blog has a great post introducing how to use
Scala to build a RESTful service with Spring MVC.
Blogger Carlo Scarioni has a great blog introducing how to create custom Spring 3 XML namespaces.
- Blogger Duck Ranger follows with the second part of his series introducing how to setup Spring MVC applications with
SpringSource Tool Suite. This blog goes beyond relying on the built-in
templates, and looks at tailoring the Spring MVC request mapping.
version 2.0, is out. The project is a Spring integration for the Memcached caching server. It provides a way to configure the behavior of the cache. This API's pretty awesome, but I (personally) would love to see a Spring 3.1
- Blogger benkiew has put together a blog that explains how to
retrieve references to a
prototype-scoped bean that's been injected using some of the supported Spring annotations (
@Inject). The problem's easy to imagine: suppose I have a bean that's bound to the HTTP scope. It will be recreated each time it's accessed in a unique HTTP request. Scoping works to ensure that a bean is only uniquely recreated once per scope. So, ten accesses of the same HTTP-request-scoped bean during a single HTTP request will result in the same reference, but separate accesses across two different requests will result in the creation of two beans. So far, this maps nicely with what we would expect. What happens when I inject a reference to a bean that is not scoped - or, it's scope is longer lived than the bean that's scoped? In this instance, you
need a scoped proxy - a proxy object that manages (and refreshes, as appropriate) accesses to a bean.
Here's a very simple example of injecting a scoped proxy that is recreated each time the bean is used (e.g., it's recreated each time it's accessed).
- The Java Code Geeks has a great blog that introduces AOP (drawing inspiration from Ramnivas Laddad's excellent book AspectJ in Action).
- The Hot Java blog has a step-by-step recipe for creating a Spring MVC project using Netbeans.
- Blogger Petri Kainulainen has put together the next installment of a series of blogs focused on Spring Data, this time introducing the pagination and
The prabinhada blog has a great look
at how to setup JSF and Spring. The Spring-JSF integration provides the ability to reference and rely on Spring beans from JSF. Spring
can also manage backing beans. This example gives all the painstaking details of the integration.
Another approach is to use Spring Roo 1.2 or later , to create a simple JSF application with
web jsf setup command.
This approach will let you choose one of two JSF implementations, setup a theme, setup the internationalization, and much more, all for a few minutes of banging around on the shell.
Welcome back to another installment of This Week in Spring. This week is the last chance to sign up for the SpringOne on the Road events in London, Kiev and Moscow so be sure to register. Let's dive into it!
- Chris Richardson's webinar recording on NoSQL options for the Java developer is online in the SpringSourceDev YouTube Channel.
- Shekhar Gulati's excellent introduction to Spring Roo continues over on IBM's developerWorks portal. The latest installment introduces writing advanced (and wrapper) Spring Roo addons.
- This article, which introduces how to use Spring to assemble JavaFX 2 components is short and to the point. I'd probably use Spring's Java configuration option to fully exploit all the custom components, however. The nice thing about the approach outlined (over using FXML, directly, is that beans configured this way benefit from all the services that Spring provides, including dependency injection and AOP). Nice post, Andy!
- Blogger Rob Gordon has a nice post introducing Spring 3.1's custom property resolution mechanism and explores some of the great power that it provides, along with some interesting examples. I really like the easily understood example of establishing environment properties based on a String read in from the command line.
- In the latest in his extensive Spring series, Eugen from the baeldung blog, explains how to use RestTemplate with Basic Authentication in Spring. This series of posts is developing into a nice collection of tips for REST style web interaction using Spring.
- Blogger Angelo Zerr is at it again, following up his previous posts on Spring Data repositories with a post that describes an (Eclipse RCP-based) rich client that uses Spring Data JPA and Spring Remoting.
Definitely worth a read! And, as if that weren't sweet enough, the blog example uses SpringSource Tool Suite lead Martin Lippert's
SpringExtensionFactory! Nicely done!
- The ajax911 blog has been working through a nice series introducing how to build Spring MVC applications, and has just released part 5.
- Blogger Suresh Payankannur has a great post on the right way to handle LOBs in Spring 3.1's Hibernate 4 support.
Rene van Wijk
has a pretty detailed blog (yay! I'm always glad for details) on how to use Spring with WebLogic JMS's clusters.
- Blogger Arul has an interesting blog on what it looks to build Spring applications behind a Red5 router.
Read this blog - it is not actually about using Jersey and Spring together, rather it is about library dependency management. It is a good-to-remember warning: older API integrations may link to older version of Spring which overlap with more contemporary libraries on your class path, and that can cause mayhem in your code. To fix it, make judicious use of
- Blogger bwgz57 introduces how to build Spring Web Flow projects with a really clean thorough example.
- On the CompareStuffs blog, there is an example on how to use the older
MultiActionController. This is useful, but it is important to remember that Spring MVC 2.5 and greater have supported the combination of multiple controller methods in single beans very easily with annotations.
What a great week! The Cloud Foundry Open Tour's well under way, having just finished the Asian and US legs of the tour. Now, onward to Europe! (If you're in Europe, now's the time to secure your spot!)
Before we continue on to the bevy of the latest and greatest content, I wanted to remind you guys to check out Spring Integration ninja Oleg Zhurakousky's upcoming webinar, Practical Tips for Spring Integration. There is, as usual, one event for North America, and one for Europe
- Gunnar Hillert's put together a blog introducing a feature that's received a lot of attention in SpringSource Tool Suite: easy-to-use templates for creating Spring Integration projects. Nice job, Gunnar! Also, check out Gunnar's accompanying video Create Spring Integration Projects with STS on the SpringSource YouTube channel.
- Michael Isvy has put together a great blog explaining a few of the things you should be aware of when upgrading to Spring 3.1. Handy!
- Spring Integration 2.1.1 has been released! This is the first maintenance release of 2.1.x branch and contains the usual things like bug fixes and improvements related to AMQP, Gemfire, Mongo and Redis modules which were first introduced in Spring Integration 2.1.0. All together 56 issues were resolved with this release.
For more, consult the release announcement.
- Gabriel Axel talks about the first milestone of Spring Social Google, the Spring Social binding for Google's APIs, including Google+.
- Aparna Chaudhary has put together a wonderful, concise blog that explains how to archive log files using Spring Data MongoDB and Spring Integration.
Bloger Sloan Seaman's put together a fascinating introduction to the wide world of Spring's custom XML namespace support, rooted around
BeanDefinitionParser class. This introduction's both powerful, and helpful. Spring namespaces are an integral part of providing a clean, useful integration API for people that consume your API from Spring. Spring's XML namespaces often pack a lot of punch, offering very efficient, more focused DSLs for certain API abstractions and concepts XML namespaces are easy to create, and many third party projects also provide namespace implementations for their APIs.
Here's Part 1 and
- Gordon Dickens, of Chariot Solutions, has put together a great blog introducing how to create and configure Java 7 for use with Spring Roo
- Blogger Diarmuid Moloney has put together a great look at how to use Spring 3.1's
Environment abstraction, which provides an interface to the things that tend to change from one environment to another - properties, profiles, etc. He introduces the problems that Environment and its cousin, profiles, are designed to solve, then introduces how to use the Environment API to solve the problem.
- Cake Solution's Jan Machacek is at it again, this time he's thinking aloud about a more sophisticate polyglot persistence story for Spring Data. What do you guys think about his ideas? Be sure to let him know and to encourage him!
- Building Spring MVC applications, but want to use Groovy instead? Check out this blog that introduces how to setup Groovy and use it in conjunction with Spring MVC.
- Apache Tomcat 7.0.27 has been released with many new features and bug fixes.
- Alex Soto's at it again, this time with a great look at how to use Dumbster, a fake email server, with Spring's JavaMail support for easier unit tests.
Welcome to another Installment of This Week in Spring
The Cloud Foundry Open Tour is well underway, and have been thus far very good events to attract community.
There are still some (well, there were yesterday!) early bird spots in the upcoming shows in Austin, Washington D.C., Kiev, Moscow, and London, so book now.
- Some of the wonderful content from the Spring I/O conference is now available online! The conference, held in Spain in February of this year, is conducted in both Spanish and English, so there's a lot to like no matter which language you speak. Adrian Colyer's keynote session is super, once you get past the audio problems at the beginning. I couldn't find a SpringIO-specific hash tag, but you can pick them out of the other videos pretty easily by scrolling down. Stay tuned, there should be even more content posted, soon.
- Tobias Fiohre (who seemingly lives only to please us, the lucky developers in the Spring community!) has put up the third installment of his blogs on Spring Batch and transactions.
The first one introduced the basics, and the second one introduced restart and cursor-based readers and writers.
- The Cake Solutions gang has two wonderful posts on the nuances of using Spring Data Neo4j from Scala. Confusingly, there is a subsequent blog, called Spring Data Neo4j and MongoDB which has more to do with how to write a domain model using the Spring Data Neo4J and MongoDB annotations together, in Scala, than on how to actually use Spring Data MongoDB. But, knowing them, I trust that just means we'll have something wonderful to look forward to next week!
- The NovoJ blog has a great look at composing custom security annotations in Spring Security with a bit of help.
- I've had a few people ask me how to modularly turn on runtime features exposed as aspects in Spring. The answer's usually to conditionally enable or disable the feature at the proxy or aspect level, as described in this StackOverflow post. For extra points, you might wire that property up to JMX so that it can be easily changed from an operations console.
Blogger Eren has an interesting post explaining how to integrate JSF 2.1, Hibernate 4.1.0, Primefaces 3.1.1, Tomcat 7.0, and Spring 3.1.1. It's got a lot of the moving parts correctly lined up, which is nice, and a testament to how far Spring can take you. But, I would suggest a few updates: first, you can use Spring to manage your JSF beans with the
SpringBeanFacesELResolver, making them fully managed components in Spring, and giving them access to all the benefits other Spring components benefit from.
Additionally, I'd probably use Java-style configuration, and avoid the extra layering imposed by having a DAO and a Service, which essentially just delegates to the DAO. These are, of course, just a matter of taste. Either way, good post!
- The VoltDB blog has a fantastic post on how to integrate VoltDB - an in-memory distributed database - with the Spring framework. The blog sketches the outlines of a simple Spring integration. I'd recommend wrapping up the client creation login in a
FactoryBean, which would let people inject the
Client directly. That said, this is a cool look at a cool technology.
- The Java Revisited blog has a great look at how to limit the number of sessions in an application from Spring Security, which is the first point of entry in secured Spring applications.
- The Safari books blog has an interesting tip about using JSON views from Spring MVC controllers. The tip is over-specific, however. If you're using Spring MVC 3, or Spring 3.1, you don't need to actually use that configuration. You can simply setup a simple Spring MVC
@Controller class with a method annotated with
@ResponseBody on the return type and - assuming your requests have an
Accept header (
Accept: application/json) in the request, and that you have Jackson (for JSON), or JAXB (for XML) on the class path - then the response will be a JSON response.
- Blogger Duck Ranger has an amazing post on the nitty gritty of what the Spring
DispatcherServlet does as the core of Spring's web machinery. Great post, and worth a read. So is her previous post introducing Spring Source Tool Suite, from last year.
- Blogger Tomasz Nurkiewicz has a great post that explains how to setup a
JDBCJobStore with Spring and Quartz, the job scheduling engine.
- The Java Code Geeks blog has a great roundup of the various remoting technologies supported by Spring, including RMI, the HTTP Invoker, Hessian, Burlap, JAX-WS, JMS, and JAX-RPC complete with example RMI code.
Developers who like the remoting hierarchies in Spring core might also be interested in my repository on GitHub that I created several months ago to demonstrate how to provide Spring
ServiceExporter and marshalling
HttpMessageConverter (so that you can use these marshalling technologies with Spring MVC's REST support) implementations for Avro, Thrift, MessagePack, and Google Protocol Buffers, among others.
- Using Java FX? You'll need to secure it to do anything useful in a large deployment. The ZenJava explains how to use Spring Security to secure your Java FX applications.
Welcome to another installation of This Week in Spring.
As usual, we have a lot to cover. As this post goes up, the
Cloud Foundry Open Tour is underway in Beijing, and coming to a city near you, soon. This show's a very unique opportunity to learn more about Cloud Foundry and Spring from the experts - don't miss out, register today.
- Spring web dude Rossen Stoyanchev announced that Spring Web Flow 2.3.1 has been released. This is a maintenance release featuring an upgrade to Spring 3.1.1, and JavaServer Faces 2.1.7 along with a number of bug fixes.
- SpringSource Tool Suite lead Martin Lippert announced the release of the Cloud Foundry Integration for Eclipse 1.0.
This release brings a complete, cohesive Cloud Foundry integration for all Eclipse distributions, including the SpringSource Tool Suite.
- Martin also announced the release of SpringSource Tool Suite release, 2.9.1, featuring new features and bug fixes.
- Mark Fisher and Thomas Risberg's epic talk from SpringOne 2GX 2011 - Architecture Choices for Scalable Cloud Apps - that introduces how to build scalable architectures in the cloud using technologies like Spring Integration and Cloud Foundry is now up on InfoQ.
- Maciej Walkowiak has a blog that introduces how to use Spring 3.1 profiles in conjunction with some custom Tomcat configuration to activate Spring profiles without changing the deployed binary.
Michal Jastak has put together a wonderful post introducing how to use Spring MVC 3.1's support for flash attributes.
Tobias Flohre is at it again, this time with two posts on Spring Batch. The first post introduces the basics of transactions in Spring Batch, and the second post introduces some of the finer points of restarting cursor-based readers and writers.
- Artur Mkrtchyan has a great post introducing both how to install Redis (a fast, highly optimized data-structure server) and how to use Spring Data Redis (part of the Spring Data umbrella project that facilitates access to the wide varieties of so-called NoSQL and big-data stores) to build Spring applications that talk to Redis.
- Vijay Rawat has a detailed post introducing how to use Memcached in your Spring applications to acheive session replication. This approach relies on the developer specifically delegating to Memcached for Session persistence in his code. While this works, I hope that users will take a look at more transparent options. Tomcat supports pluggable session storage engines. There are numerous available implementations, including a Redis-based implementation and a GemFire-based implementation.
- Speaking of Apache Tomcat, blogger Ramki has an interesting post introducing how to setup virtual hosts ("vhosts") using Apache Tomcat, Apache and ModJK.
Hello and welcome to another installment of This Week in Spring! As usual, we've got some great stuff to look at, so let's get to it.
Want to use SpringSource Tool Suite on the latest Eclipse Juno (4.2) milestone builds?
SpringSource Tool Suite lead Martin Lippert has got the answer for you.
- Michal Borek has a great blog post on how to use the
ConversionService in Spring 3.0+ to convert uploaded file data into a domain object. First, this is a really cool idea. Second, users should be aware that Spring supports file uploads by default if it detects
commons-fileupload or the Servlet 3
javax.servlet.http.Part APIs present on the classpath. To use this support, simply create a Spring MVC handler that takes a @RequesParam of type
MultipartFile. For an example, see this RESTful API controller that accepts HTTP POST'd file uploads. If all you want is to manipulate the file data, then this is easy. The idea proffered in this post is to take it a step further, and bind that data to a domain model object.
- Gal Levinsky has an interesting post on removing circular dependencies in Spring applications.
He discusses the problems created by circular dependencies - i.e. one bean depending on another which is in turn in some way depended on by the first bean - and then explores some of the many ways that Spring can solve circular dependencies for you.
Blogger Hemraj has a succinct post introducing how you can install the Spring web-tier machinery through the use of context loaders -
- Over on Dr. Dobbs, Adrian Bridgwater's written a fantastic blog about using Spring with the Magnolia CMS with the
Blossom integration module for Magnolia.
- Spring, as a technology, is a collection of libraries that you can layer into your application with ease. It provides powerful support, usually in the term of adapter code that's exposed as AOP aspects. While this is a good thing (TM), it can make for some very deep stack traces! With Spring, however, at least you can disassemble the layers by removing libraries. The problems are far worse with other, more monolithic technologies.
So, blogger Tomasz Nurkiewicz has written a simple post on how to effectively isolate the errors from the stack frames that are irrelevant in diagnosing a problem (Spring's frames, for example). Cool post, and it mirrors something I'm sure many of us have done at some point or another, ourselves!
- The Cafe Techno has a great post introducing the idea of an inner bean in Spring.
- I'm sure that you heard all the news a couple of weeks ago about about Spring for Apache Hadoop? Want to get started fast? Check out this Spring for Apache Hadoop quick start with all the details!
- Blogger zousu has a great post introducing how to get started with Spring Data Mongo 1.0.1 GA.
- Roger Hughes is back at it again, this time with a little bit of anecdotal advice on how to integrate Spring into legacy applications. I like to think of this process as Spring cleaning!
Welcome to another installment of This Week in Spring. There is a lot to look at this week with much of the excitement around the just released Spring for Apache Hadoop project, which provides a very, very powerful Spring API integration for Apache Hadoop, an open source framework originally designed to support map-reduce style batch processing solutions.
- Costin Leau kicked things off with the announcement of Spring for Apache Hadoop 1.0.0.M1 last week. I can't explain it any better than Costin does, so I won't bother. From his post:
Whether one is writing stand-alone, vanilla MapReduce applications, interacting with data from multiple data stores across the enterprise, or coordinating a complex workflow of HDFS, Pig, or Hive jobs, or anything in between, Spring for Apache Hadoop stays true to the Spring philosophy offering a simplified programming model and addresses "accidental complexity" caused by the infrastructure.
What are you waiting for? Go! Check it out! When you're done, you might check out the other coverage of the event, as well.
As you might expect, a lot of people blogged about it, too.
- What are you guys doing in two days, on March 8th, 2012? I'll be at the Native Android Development with Spring for Android webinar that introduces native Android development practices, resource management and the Spring for Android integration library, which makes the whole process more natural for developers that wish to interface with services on the server side.
There are, as usual, two editions, one for North America and one for Europe. Don't miss it!
- The inimitable Oleg Zhurakousky today announced the Spring Integration Scala DSL. The DSL extends the Spring Integration API to Scala developers using a very concise, idiomatic Scala-based DSL.
Just when you thought Spring Integration couldn't get any more concise!
- The latest update of SpringSource Tool Suite version 2.9.0 is now available, all Spring and Grails developers are recommended to upgrade. This version provides the latest updates to Spring Integration 2.1, Grails 2.0.1, and Spring Roo 1.2.1 and does some behind the scenes updates to the baseline Eclipse platform.
- Speaking of Spring for Android, Roy Clarkson just announced the latest release, 1.0.0.RC1, of the Spring for Android library. Among other things, the new release features support for Spring Social 1.0.2.RELEASE and Spring Security 3.1.0.RELEASE and an updated
RestTemplate implementation, which is compatible with Spring 3.1's implementation.
Project lead Michael Hunger just announced the latest milestone release of the Spring Data Neo4J project, version 2.1.0. There are a lot of new features and updates, so check out the release notes.
- Over on InfoQ, Sam Brennan and Rossen Stoyanchev's excellent talk on Spring (and Spring MVC) based testing from SpringOne2GX is up. Rossen's one of the lead committers to Spring MVC, and Sam's the lead committer for the Spring core testing support, so.... what else is there to say? These guys are giants. Go. Learn. I'll follow!
- This article provides an introduction on how to use Spring with RMI based remoting
- The Cloud Hadoop blog has a great post on how to inject Java 5
enums using Spring.
- InfoQ has a great release announcement coverage on Thymeleaf 2.0, another one of those open source projects that fills a gap, or augments, Spring, outside of SpringSource. The best of these projects, like Thymeleaf, are exemplary in their own right, and worthy of our attention. Thymeleaf, as long time readers of this roundup will know, is a template engine that has a remarkably good integration story with Spring MVC's
ViewResolver machinery and definitely worth a look for the JSP-fatigued Spring MVC developers out there!
- Our pal Roger Hughes is at it again, this time with a blog post that shows how to use Apache Tomcat as part of your build process.
- If you're having trouble with a recently trusted, but misbehaving, PGP key in Spring Roo, then this solution is for you.