The latest release candidate for SpringSource Tool Suite has been updated to run on the brand new Eclipse Galileo release. STS 2.1.0.RC1 includes support for Spring Roo, SpringSource dm Server and tc Server, enterprise OSGi tools, as well as all the usual great Spring development tools. This newest version also provides support for a Mac OS X 64 bit Cocoa client. Of course the download for SpringSource Tool Suite is free so get started with the best IDE for enterprise Java development today.
Shortly after the introduction of SpringSource dm Server (Application Platform at the time), Thorsten Maus created a Maven plugin for creating PAR files. This was a great community contribution and we even used it in the Getting Started Guide for dm Server 1.0.x.
As dm Server’s 2.0 milestones have progressed we’ve been adding new functionality to the PAR file. The most interesting feature is that now a PAR file can contain more than just JAR files. With the introduction of OSGi RFC 66, the dm Server has deprecated Web Modules in favor of the standard Web Container files using a .war extension. Because of this, the PAR plugin needed to be updated to support these different types as dependencies. Thorsten graciously agreed to donate his code to SpringSource and I’m pleased to announce the 1.0.0.M1 release of the Apache Licensed Maven PAR Plugin.
Today marks a big day for Eclipse and for everybody involved with the Eclipse ecosystem: Congratulations to the Eclipse folks for releasing Eclipse 3.5 aka Galileo. You can read more about the release at http://www.eclipse.org/galileo/. I encourage everybody to download Eclipse 3.5 today and try it out.
Since SpringSource is strongly committed to Eclipse and we are building our SpringSource Tool Suite on top of the Eclipse technology stack, I’m excited to report that STS can be installed and used with 3.5. Here are some instructions to get started:
I’m pleased to announce the 1.0.0.M1 release of SpringSource’s OSGi Test Stubs. These stubs offer a way to unit test complex OSGi Framework interactions without needing a full OSGi container.
As the dm Server team has been developing, we found that one of the biggest problem areas for testing for us was in BundleActivators. Our BundleActivators do quite a bit of publishing services to the service registry as well as consuming services using ServiceTrackers. These kinds of tasks involve many interwoven calls to BundleContexts, Bundles, ServiceRegistrations, and ServiceReferences. In the beginning, these activators were simple enough that not much unit testing was done on them, and we depended on integration tests to catch any bugs that were introduced. As time went on though, the activators became more complex and unit testing became a more pressing need. We started using EasyMock for these tests, but found that they were very complex, hard to maintain, and most importantly hard to understand.
Yesterday I was speaking at OSGi DevCon Europe about using Spring Integration and dm Server to tackle common problems in large applications in a pragmatic way. Before and after my session I talked to various people that liked to have a little more information about these ideas. This blog will give an overview of what I talked about.
I’ll jump right in with a summary of the presentation.
Any project will grow during its lifetime of active development. Usually developers add features and fix problems raised by the product owners by adding code. This process will naturally grow the code base. While the source grows the maintenance and fixing bugs typically gets harder. If not dealt with this process will ultimately lead to something I call Code Supernova. This uncontrolled growth, and eventual collapse, can be countered by proper modularization, and OSGi is one of the more compelling medicines currently available.
Updated: added sub module instructions for Git.
I’ve talked in the past about providing support for truly modular applications, and I’m pleased to announce that you can now access the early prototype code of SpringSource Slices.
Building and Installing
You can access the source code from our Git repository:
git clone git://git.springsource.org/slices/slices.git git submodule init git submodule update
To build a packaged version of Slices simply run ant clean jar package from the build-slices directory:
In the dm Server 2.0.0.M1 release we added support for shared repositories. As a followup to this new functionality, we’ve added support for browsing those repositories via JMX.
Connecting to a running dm Server instance with a JMX client now shows you a Repository group. Under this group, each configured repository (with the exception of chained repositories) has a bean that returns synopses of all of the artifacts contained inside. The bean also exposes a method for returning the entire, detailed ArtifactDescriptor for a given bean based on it’s type, name, and version.
Last month we discovered how easy it is to build a fully-fledged enterprise application in just a few minutes using Spring Roo - our new productivity tool for Java developers. While many Java developers have already started evaluating Roo to help save time on their projects, I’ve received a lot of questions from people curious about how Roo actually works. In this blog entry I will explore Roo’s architecture in depth, including its goals, alternatives prototyped, design rationale and implementation details. By the end you’ll have a good understanding of what makes Roo tick and why its approach works well for Java projects.
As Rob mentioned in his introduction to the OSGi Web Container, dm Server automatically imports system packages into Web bundles. This has proved very useful, especially when deploying existing WAR files into an OSGi environment. I’ve recently spent some time moving this functionality from dm Server’s Web subsystem into the OSGi Web Container RI. This blog describes the new functionality, and how to make use of it.
Enabling import of the system packages
There are two ways in which you can instruct the RI to import all of the exported system packages.
Dear Spring Community,
I'm pleased to announce that the first GA release of Spring BlazeDS Integration, the open source solution for building Spring-powered RIAs with Adobe Flex, is now available.
In response to the community feedback since the release of RC2, we've clarified some of the documentation, made a few minor improvements to the Spring Integration messaging adapter, added some metadata to help with tooling support, and tweaked the ivy and pom files to ensure all dependencies are properly captured. I would like to extend my sincere thanks to all of those who have tried out the early releases and provided feedback, as it has been critical to ensuring that the full 1.0 is solid.