The Spring Blog

Engineering
Releases
News and Events

Pluggable styling with SpringSource Slices

Since we announced SpringSource Slices, a number of users and customers have asked about using Slices to make the styling and branding of their Web sites pluggable. In this blog, I’ll demonstrate how easy it is with Slices.

Pluggable styling

I have a standard war file, named styled.host.war, that contains a very simple index.html page:

<html>
	<head>
		<title>SpringSource Slices Pluggable Styling Demonstration</title>
		<link rel="StyleSheet" href="styles/main.css" type="text/css" />
	</head>
	<body>
		<div class="header">
			<div class="title">SpringSource Slices</div>
			<div class="subtitle">Pluggable Styling Demonstration</div>
		</div>
	</body>
</html>
Read more...

Using Yourkit to Find a Memory Leak

I had such a great experience today with Yourkit that I thought I’d write a quick plug. It’s been a couple of years since I used it in anger, and even then it was the best tool I could find, but now it really is ultra slick. I haven’t done an exhaustive survey of the marketplace, and that wasn’t the object of the exercise: I just wanted a tool to solve a problem.

Here’s the story of my day; frustration, then irritation, then finally satisfaction. I had a suspected memory leak in Spring Batch and I needed to track it down quickly. The back story to this is I’ve seen plenty of memory leaks, but I haven’t had to deal with one at the coal face for quite some time. I live in STS these days (sometimes dream in it as well), so I needed a tool that worked well in the IDE. I tried two tools, but only because the first choice didn’t work. The two I tried were TPTP and Yourkit.

Read more...

STS 2.1.0.RC1 Updated for Eclipse 3.5

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.

Download | New Feature List | Forum | JIRA

Read more...

Maven PAR Plugin 1.0.0.M1

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.

Read more...

Installing STS into Eclipse 3.5

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:

Read more...

OSGi Test Stubs 1.0.0.M1

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.

The Problem

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.

Read more...

Messaging meets OSGi at OSGi DevCon Europe

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.

Read more...

Modular Web Applications with SpringSource Slices

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:

Read more...

dm Server Repository Content via JMX

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.

Read more...

Exploring Roo's Architecture

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.

Read more...