Please note that we are not providing a dependencies download anymore. The recommended way of obtaining third-party libraries for use with Spring is Maven/Ivy; you could also download third-party distributions of your choice and take the jars from there. Note that there is no reason to upgrade third-party libraries unless you want to: The simplest solution is to keep using the versions that you know and trust.
The Spring Blog
After several weeks of fine-tuning and community feedback, Spring Framework 3.0.3 is now available. This release fixes more than a hundred minor issues reported against Spring 3.0.2, in particular in the JSP tag library and in Portlet session handling, as well as in ConversionService details. Once again, this release catches up with recent third-party releases: OpenJPA 2.0 final, Hibernate 3.5.2, and JBoss 6.0.0 M3, all of which are fully supported in combination with Spring 3 now.
Note that, in the meantime, all major persistence providers have released GA versions with JPA 2.0 support, even including a JPA 2.0 feature pack for WebSphere 7. This clearly suggests that JPA 2.0 is about to become mainstream… A good time to give it a try if you haven’t done so already! Of course, Spring 3 is happy to work with a server-provided JPA 2.0 EntityManagerFactory (e.g. in a WebSphere environment), while also being able to bring the full power of embedded JPA 2.0 to Tomcat and standalone environments. (At the same time, Spring 3 will automatically adapt to a JPA 1.0 provider as well if that is what it encounters at runtime, e.g. on a Java EE 5 server.)
Update I changed the first paragraph to clarify the relationship between RabbitMQ and JMS.
RabbitMQ is a lightweight, reliable, scalable and portable message broker. But unlike many message brokers familiar to Java developers, it's not based on JMS. Instead, your applications communicate with it via a platform-neutral, wire-level protocol: the Advanced Message Queuing Protocol (AMQP). Fortunately there's already a Java client library and SpringSource is working on first class Spring and Grails integration - so don't worry about having to do low-level stuff to use RabbitMQ. You can even find AMQP client libraries that expose a JMS interface. But AMQP is sufficiently different in operation from JMS that it might cause headaches for Java developers that are used to the JMS model.
In the SpringSource training course for Groovy & Grails, we highlight that Grails stands on the shoulders of giants. One of those giants is Spring. Without it, Grails simply wouldn’t have been developed as quickly as it was. It probably wouldn’t have the flexibility to integrate easily with enterprise Java systems either. Just look at the number of plugins available: many are based on Java libraries with Spring support.
In this post, I want to start by looking at how Grails uses Spring and then cover the various ways in which you can access that raw power and flexibility.
Dear Spring Community,
The first release candidate of Spring Web Flow 2.1.0 is now available for download.
In this release the Web Flow documentation has been updated for all available changes. Please see the “What’s New In Spring Web Flow” section in the documentation for a good overview.
Spring Web Team
By now, most of you probably have heard about the announcements at Google I/O around Spring, Roo, STS and GWT. Ben and Rod covered this in their respective blog posts recently. If you missed the keynote I strongly recommend to watch the recording on YouTube to catch up (the relevant section starts at 1:09:00 into the recording).
Today I’d like to provide some detailed steps and instructions on how you can use Roo and STS to create your first GWT application.
Before we can fire up the Roo shell and start typing commands, we need to download and install all pre-requisites. Although a lot of components are involved in building advanced single-page applications that can run on the cloud, you really only need to download the STS 2.3.3.M1 bundle for your operating system. The STS installation includes Roo 1.1.0.M1, tc Server Developer Edition with Spring Insight (required to get Speed Tracer integration), Maven 2.2 and access to the Google Plugin for Eclipse (GPE).
Grails is a fantastic framework for developing web applications quickly and easily. You also have access to a plethora of plugins that provide features or make integration with other systems nice and easy. That’s all good, but in this article I want to talk about what happens when your application grows and you start drowning in a sea of controllers, domain classes, and other files.
Separation of concerns
One of the most useful patterns in software architecture is called separation of concerns. The idea is that you group everything related to a particular feature or concern into a single, self-contained unit. The code in that unit should not take on any other responsibility. For example, the business logic of a web service should be in one class while the handling of SOAP messages should be in another: the business logic and SOAP handling are two different concerns.
- The kernel startup hard timeout limit has been increased to allow dm Server to run on slower machines.
- Documented a restriction in the OSGi web container, Tomcat <context> elements are not supported.
- Fix to the ServiceScoper class to close all input streams.
- Added support to tolerate File.list returning null occasionally, this manifested as the pickup directory wiping itself occasionally for seemingly no reason.
- Usage of @Configurable with ServerOsgiBundleXmlWebApplicationContext now works.
The Spring Insight team is proud to announce the release of Spring Insight 1.0.0.M3. This release contains a ton of new enhancements to give you more productivity and get your application to production even faster. Spring Insight is available as part of tc Server Developer Edition and SpringSource Tool Suite but you can snag the new developer release at http://springsource.org/insight. Setup time will take you the usual 10 seconds.
Speed Tracer Google IO conference
Last week, I described how Grails now treats plugins like normal dependencies that can be pulled from Maven-compatible repositories. Although this was the big new feature for 1.3, it wasn’t the only one. In this post, I’ll look at some of the others, starting with a feature that I only recently found out about.
GORM provides three distinct ways of performing database queries:
- dynamic finders, e.g. Book.findByTitleAndAuthorLike(…);
- criteria queries, which use a nice DSL; and
- HQL, Hibernate’s SQL-like query language.