News and announcements
What a week! So much to talk about and scarcely enough minutes in the day to manage.
Without any further ado, let's get on to it!
- Jonathan Brisbin has announced the availability of Spring Data REST 1.0.0.RC1 . Spring Data REST helps you provide a RESTful interface for your JPA-based repositories.
- Oliver Gierke has announced Spring Data MongoDB 1.0.2.GA. The new release has plenty of bugfixes and improvements, so check the changelog for more.
- Wonder what happened to the RabbitMQ webinar that was briefly on the SpringSource events calendar? It was rescheduled (slight schedule mishap), but it's back and you should definitely mark your calendars with the updated dates. It figures to be an amazing event.
- Our pal Gordon Dickens - a world class trainer and engineer -
has been very busy recently.
If you haven't been following his blog recently, you missed an
introduction to the SpringSource Tool Suite - including its composition and value-added features, and answers some common questions.
Besides the great post on Spring 3.1's constructor namespace that we saw earlier this month,
he also had a great post on converting
from Spring OSGi projects to the Eclipse Gemini Blueprint namespaces for bundles. Nice job, as usual, Gordon!
Andy Chan has a nice post introducing how to use Spring Security 3.1.0 to talk to Microsoft Active Directory for authentication.
Nice job, Andy!
- Ben O' Day has put together a wonderful post on using Spring AOP to implement
basic performance monitoring.
- The Keyhole Software blog has a couple of very interesting blogs introducing Spring Batch: the first introduces the high level concepts and the second introduces some actual code. Definitely worth a read.
- The Stardog blog (merely uttering that is fun..) has a
a very cool example introducing how the Stardog RDF database server could work with Spring by way of an example: the Stardog Petstore! So cool...
Andriy Redko has a nice post on using Redis with Spring Data Redis.
- Ken Rimple, co-author of Manning's Spring Roo in Action, has put together a nice post on using Spring Roo and Spring Webflow.
Michal Letynski has a nice post on using
Spring 3.1's support for the
@Valid annotation on
@RequestBody controller method arguments.
- I suspect we probably covered some of these before, but just to be sure, I wanted to point everybody to this series of blogs introducing the concepts of AOP, and how they're implemented in practice using the raw JDK, Spring's AOP and AspectJ, which Spring has fantastic support for. For the other blogs, simply scroll to the bottom of the page and you'll find links.
Madhusudhan Konda, author of O'Reilly's Just Spring and Just Spring Integration, has a new book - this one, called Just Spring Data Access, which introduces the nitty gritty of the core data-access technologies in the Spring framework (it does not, however, introduce the Spring Data technologies). While I haven't read it (though I'll be sure to read it eventually and possibly write a book review!), it looks interesting.
- Arnon Rotem-gal-oz has written a good over-coffee introduction to AMQP and RabbitMQ terminology (if not their application. For that, you might check out this blog introducing the Spring support for JMS and AMQP ).
The VoltDB blog has a pretty nice writeup of how to implement repositories with Spring and VoltDB to build high throughput web applications.
Another great post from the VoltDB blog talks about using the Spring Converter API with VoltDB's Data Objects. The idea is a bit unusual, but pretty slick when you think about it: let Spring's generic converter registry handle converting Volt's notion of record sets (objects of type
VoltTable) into regular, domain-specific objects. You codify the recipe once - as a Spring
Converter, and then simply reuse it later.
In other data-access strategies, this same effect is achieved using, for example, the
RowMapper callback interface, which lets you codify and reuse the recipe for converting a JDBC
ResultSet into a domain-specific object.
Finally, all of these blogs come to a head in this blog introducing the performance tests done against the previous application.
I'm pleased to announce the release of Spring Data REST 1.0.0.RC1! Beyond a number of bug fixes, this release adds support for paging and sorting and makes it easier to integrate Spring Data REST into an existing Spring MVC application.
New functionality includes:
- Paging - Add URL parameters like "page=2" and "limit=20" to control the paging of large result sets.
- Sorting - Add URL parameters like "sort=name" to control the sorting of result sets.
- Integrate with existing Spring MVC applications - Now you can easily integrate Spring Data REST into an existing Spring MVC application by simply including a JavaConfig bean into your own configuration.
New documentation includes:
Starter Web Application | Wiki | Release Notes
To learn more about the project, visit the Spring Data REST homepage, or visit the Github repository to download the source.
Dear Spring community, I'd like to announce the availability of Spring Data MongoDB 1.0.2. It's a bug fix release containing 20 bugfixes and improvements.
Downloads | JavaDocs | Reference Documentation | Changelog
The release is available from our Maven repository and from Maven Central as well. To learn more about the project, visit the Spring Data MongoDB Page. Looking forward to your feedback on the forum or in the issue tracker.
This week the I'm at QCon New York talking to people about Spring, Cloud Foundry, vFabric, and much more. Attendees at QCon conferences always keep things interesting with great questions and ideas.
As usual, though, the internet has given us a lot of great content to look at this last week, so let's dive right into the roundup!
- If you missed Gary Russell's excellent webinar introducing managing and monitoring of Spring Integration applications,
don't worry, the video is on the SpringSource YouTube channel.
- Details of the new release of Spring for Apache Hadoop 1.0.0.M2 are available. For information on the project itself, check out this in-depth blog of the highlights by Spring for Apache Hadoop contributor, Costin Leau.
- James Bayer has a great post introducing how to setup Apache Tomcat 7 as a server on Cloud Foundry using the recently announced
- Aljona Murygina has a great post on using Spring's asynchronous execution and scheduling support.
- The Codecentric blog has a nice post on using Spring technoloies to create your own RSS reader! Definitely worth a read!
- InfoQ has a nice post on the recently announced Spring Android 1.0 release.
- If you missed Spring Data contributor and ninja Oliver Gierke's talk at Øredev on Spring Data, Data Access 2.0, then be sure to check out the recording!
- The Cake Solutions blog has an interesting post on getting around a possible hangup of using Spring's AOP load time weaving with Specs2 tests.
- The Craftsman Spy framework has an interesting post on logging with JDBC using their logging JDBC driver classes and Spring. This driver lets you insert yourself between the actual JDBC driver and the API calls made to the JDBC driver where you can get visibility into the arguments and operations made against the driver. Very cool!
- The RabbitMQ blog has a post on using STOMP with RabbitMQ to build Websockets-based applications. Very cool stuff!
- VMWare's recent vFabric release, 5.1, has updated the version of the RabbitMQ messaging broker included in the suite to 2.8.1.
The Spring Integration team is pleased to announce the release of:
Spring Integration 2.1.2.RELEASE - a small maintenance release with some important bug fixes
Spring Integration 2.2.0.M2 - Second milestone release of 2.2 stream whose main theme is JPA support as well as other important features and improvements
More information is available on project's home page
We are pleased to announce the first milestone release of Spring Integration 2.2 stream - Spring Integration 2.2.0.M1.
Spring Integration provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns
Aside from the usual bug fixes this release brings quite a few new features and upgrades:
- Dependency upgrades such as Spring 3.1.0.RELEASE, Spring AMQP 1.1.0.RELEASE, Spring Data Mongo 1.1.0.M1, Spring Gemfire 1.1.1.RELEASE
- JPA support
- Initial support for graceful shutdown of integration context
- Support for 'Publisher Confirms and Returns' based on new features of Spring AMQP
This release also contains many improvements. You can see full release notes here
For more information about Spring Integration, refer to the project's home page
If you are a Java developer looking to increase your Spring knowledge, vFabric Education by SpringSource is the place to start. We are providing several Spring trainings across the globe closely connected to your needs as a professional developer.
This month SpringSource offers a 15% discount code on all VMware trainings (partners not included). Please use the following referral code during the website registration process: springcustomerpromo. The complete Spring training schedule for May, 2013 can be found below:
Step 1: Core Spring
- May 07 - 10: Core Spring in Boston, MA
- May 07 - 10: Core Spring in Dallas, TX
- May 13 - 16: Core Spring in Phoenix, AZ
- May 13 - 16: Core Spring in Sacramento, CA
- May 13 - 16: Core Spring in San Francisco, CA
- May 13 - 16: Core Spring in San Jose, CA
- May 14 - 17: Core Spring in Washington, DC
- May 14 - 17: Core Spring in Washington, DC
- May 14 - 17: Core Spring in Los Angeles, CA
- May 14 - 17: Core Spring in Portland, OR
- May 21 - 24: Core Spring in Salt Lake City, UT
- May 21 - 24: Core Spring in Seattle, WA
- May 27 - 30: Core Spring in Bogota, Colombia
- May 28 - 31: Core Spring in Stamford, CT
- May 28 - 31: Core Spring in Charlotte, NC
Europe, Middle East & Africa
- May 07 - 10: Core Spring in Rome, Italy
- May 07 - 10: Core Spring in Lisbon, Portugal
- May 07 - 10: Core Spring in Madrid, Spain
- May 13 - 16: Core Spring in London, UK
- May 14 - 17: Core Spring in Kontich, Belgium
- May 14 - 17: Core Spring in Paris, France
- May 14 - 17: Core Spring in Stockholm, Sweden
- May 21 - 24: Core Spring in Zagreb, Croatia
- May 21 - 24: Core Spring in Berlin, Germany
- May 28 - 31: Core Spring in Prague, Czech Republic
- May 28 - 31: Core Spring in Hamburg, Germany
Step 2: Spring Web / Enterprise Integration with Spring / Hibernate with Spring
- May 06 - 09: Spring Web in Edmonton, AB
- May 06 - 09: Spring Web in Phoenix, AZ
- May 06 - 09: Spring Web in Sacramento, CA
- May 06 - 09: Spring Web in San Francisco, CA
- May 06 - 09: Spring Web in San Jose, CA
- May 06 - 09: Spring Web in Phoenix, AZ
- May 21 - 24: Enterprise Integration with Spring in Ottawa, ON
- May 21 - 24: Enterprise Integration with Spring in Toronto, ON
- May 21 - 24: Enterprise Integration with Spring in Montreal, QC
- May 21 - 24: Enterprise Integration with Spring in Edison, NJ
- May 21 - 24: Spring Web in Chicago, IL
- May 28 - 31: Enterprise Integration with Spring in Los Angeles, CA
Europe, Middle East & Africa
- May 06 - 08: Hibernate with Spring in Wien, Austria
- May 06 - 08: Hibernate with Spring in Berlin, Germany
- May 06 - 08: Hibernate with Spring in Zurich, Switzerland
- May 07 - 10: Enterprise Integration with Spring in Amsterdam, Netherlands
- May 14 - 17: Enterprise Integration with Spring in Munich, Germany
- May 20 - 23: Enterprise Integration with Spring in London, UK
- May 21 - 24: Enterprise Integration with Spring in Dublin, Ireland
- May 27 - 29: Hibernate with Spring in Munich, Germany
- May 28 - 31: Enterprise Integration with Spring in Brussels, Belgium
- May 21 - 24: Spring Web in Prague, Czech Republic
- May 21 - 24: Spring Web in Rome, Italy
- May 21 - 24: Spring Web in Amsterdam, Netherlands
If you cannot find a professional training near you, you can always request an onsite SpringSource training
Dear Spring Community,
Today we’re excited to announce that rest.js is now part of Cujo.js and that rest.js 0.9 has been released.
rest.js is a RESTful HTTP client. It goes far beyond the typical XMLHttpRequest abstraction developers are accustomed to in other frameworks. rest.js is built upon composable interceptors that incrementally add new functionality to a client. Configured clients are tamper proof and can be safely shared within an application. If a portion of the application needs specific behavior, it can chain further interceptors on the common client creating a new client that’s independent of the remainder of the application.
As a quick example, if your application requires basic authentication, you can configure the basicAuth interceptor with the username and password once, rather then being forced to add the credentials to every place in the application that makes a request. When your application adds new authentication requirements, such as oAuth, you only need to replace the basicAuth interceptor with the oAuth interceptor in one place. All requests made with the resulting client get the new behavior automatically.
Out of the box rest.js works in every major browser (and then some) plus Node.js. There are interceptors for content negotiation, HATEOAS, basic auth, oAuth (the implicit flow), error detection, retries, timeouts, JSONP and of course fall backs for IE’s XHR and cross domain request support. It’s dirt easy to create new interceptors to apply your own behavior.
Our monthly newsletter is packed full of techniques, tutorials, tips and tricks to get you on your way to Spring nirvana. View Archive