Recently we released the first milestone of the Flex Addon for Spring Roo as a part of the Spring BlazeDS Integration 1.5.0.M1 distribution. This addon aims to bring the productivity and usability benefits of Spring Roo to the development of Spring-based RIAs with Flex. The below 15 minute screencast (split into two parts) serves as a quick introduction to the addon and its capabilities. Watch as we go from installation of the addon to a fully functional Flex application backed by Spring in just a handful of commands.
The Spring Blog
Virgo 2.1.0.M02-incubator is available for download. Apart from completing the “getting started guide”, this milestone dramatically reduces startup time - by as much as 5x on some systems.
This should be a further incentive for users of dm Server to migrate to Virgo: Virgo is the codebase for future development, has more liberal licensing, and now provides much faster startup.
We measured elapsed time for a warm startup (i.e. without -clean) of the Virgo web server and compared milestone M02 to M01.
In part 1 of this series, I introduced you to some of the subtleties associated with persisting domain instances with GORM. This time, I’m going to tackle relationships with particular focus on hasMany and belongsTo.
GORM provides only a few basic elements for defining relationships between domain classes, but they are sufficient to describe most needs. When I give training courses on Grails, it always surprises me how few slides cover relationships. As you can imagine, this apparent simplicity does hide some subtle behaviour that can trip up the unwary. Let’s start with the most basic of relationships: the many-to-one.
Hot on the heels of the STS on Eclipse 3.6 and Gemini Web milestone announcements, I am glad to report that the first milestone of Gemini Blueprint is available for download. Part of the Gemini project, Blueprint builds on top of the Spring Dynamic Modules v2 code base and is the Reference Implementation for the OSGi 4.2 Blueprint specification. Besides the changes reflecting the transition to the Eclipse Foundation, 1.0.0.M1 code base has been upgraded to the latest Spring framework release.
Gemini Blueprint is dual licensed under Apache License and Eclipse Public License.
Last week the Eclipse Foundation released the much anticipated next version of Eclipse. You can download Eclipse 3.6 aka Helios from SpringSource’s member distribution page. Also check out the New & Noteworthy for this release.
The Tools Team at SpringSource has been busy updating our developer tools to support Eclipse 3.6 and while we haven’t released a new version of SpringSource Tool Suite that builds on and bundles 3.6 yet, users can now install STS on top of Eclipse 3.6.
Detailed steps to install STS from our nightly update sites can be found in the installation instructions. Please carefully follow the outlined steps in the “Installing from the Nightly Snapshot Update Site” section starting on page 9.
SpringSource developed the Reference Implementation of the OSGi Web Container and then contributed the code to Eclipse as the Web sub-project of Gemini. The goal of Gemini is to provide modular implementations of Java EE technology. Gemini Web provides servlet and JSP technology.
Gemini Web runs on the Equinox OSGi framework and embeds Tomcat. It is also integrated into the Eclipse Virgo web server.
Are you new to Grails? Or have you perhaps run into your first GORM “oddity”? If so, then you’ll want to read this series on GORM gotchas. Not only will the articles highlight those little idiosyncrasies that often catch people out, but they will also explain why GORM behaves in these ways.
Hopefully you will already know that GORM is the database access library that comes with Grails. It’s based on probably the most popular Java ORM out there: Hibernate. As you can imagine, Hibernate is a powerful and flexible library and it brings big benefits to GORM. But there is a cost to using it: many of the problems that users of GORM run into stem from the way Hibernate works. GORM tries to hide the implementation details as best it can, but they do leak out on occasion.
The first milestone (2.1.0.M01) of Eclipse Virgo is now available for download under the Eclipse Public License. This consists of an application server, known as the Virgo Web Server, and a stand-alone kernel.
The goal of this milestone is for dm Server 2.0.x users to be able to migrate to it relatively painlessly and have an equally stable environment. SpringSource is offering commercial support for Virgo and we encourage all dm Server users to migrate to Virgo. The main communication channel with users is now the Virgo forum. There is also a Virgo developer mailing list and a weekly Virgo community call.
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.