SpringSource dm Server Admin Console

Engineering | Christopher Frost | July 24, 2009 | ...

New Features

A set of updates to the SpringSource dm Server Admin Console are available in the nightly builds. This also shows the use of Plans and the RFC66 Web container. There are two new features available, the first lets you look at any service dumps that the dm Server system may have produced and the second lets you explore the state of bundles within OSGi.

A dump may contain many dump items such as stack traces, thread dumps, depending on the initial cause. Dump items are available for viewing in the Admin Console, simply select the dump of interest on the left and then the dump item on the right…

Spring Integration 1.0.3 Samples: just add Maven

Engineering | Mark Fisher | July 21, 2009 | ...

Spring Integration 1.0.3 is now available. You can find links to the download, reference manual, and more at the Spring Integration home. This release includes quite a few changes, but in this blog, I'm going to focus on one in particular. Starting with this version, the samples are fully self-contained and Maven-enabled. That means you can download the distribution, go into the 'samples' directory, run 'mvn install' and then import the projects into a Maven-aware Eclipse instance, such as the SpringSource Tool Suite. Here's the step-by-step breakdown...

Installing and Running the Samples

  1. Make sure you have Maven installed and in your path (2.0.9 or later is required). If not, download it and follow the setup instructions: http://maven.apache.org
  2. If you don't already have a Maven-aware version of Eclipse, you can download the SpringSource Tool Suite (STS) which will support these projects out-of-the-box (STS even includes support for the OSGi-enabled samples). Alternatively, you can manually add a Maven plugin, such as m2eclipse to an existing Eclipse installation.
  3. Download the Spring Integration Samples and unzip.
  4. Within the unzipped "samples" directory, run 'mvn install'. You should eventually see output similar to the following: si-samples-mvn-install-output
  5. Once STS/Eclipse is up and running, choose 'File -> Import...' and within the Wizard choose 'General -> Existing Projects into Workspace'. Then browse to the unzipped 'samples' directory, and you will see all of the projects selected by default: si-samples-import-project-list Either accept all or choose the individual sample(s) that you want to import, and after a few moments of workspace building, you should be ready to run.*

*NOTE: if you import the 'osgi-inbound' project, you will see some errors on that particular project (but you should not see any errors on the other projects after the workspace build completes). Those errors would be resolved after configuring the runtime and the bundle repository. If you would like to work through the OSGi samples, refer to the dedicated chapter in the Reference Manual

Git Migration

Engineering | Ben Hale | July 15, 2009 | ...

Some of you may have noticed that in recent posts that the dm Server team has been referencing Git repository URLs. The team has been migrating all of its source code and I'm now pleased to announce that this migration is done. The list below contains the Git URLs for the code managed by the dm Server team. If you were referencing the equivalent repositories in SVN, please clone these new repos instead.

This announcement only covers code managed by the dm Server team, and not the entirety of the Spring portfolio. Other projects will be converting at their own pace and the Subversion…

dm Server 2.0 M3

Engineering | Andy Wilkinson | July 15, 2009 | ...

dm Server 2.0.0.M3 has been released, and is now available for download.

In the sprints since 2.0.0.M3, we've made significant progress towards the final release, both in terms of new features, and in defect fixes. Take a look at the M3 release notes if you're interested in seeing everything that we've been working on. Please keep your feedback coming as comments on our blog, in the forums, and on JIRA.

New and noteworthy

Integration of the OSGi Web Container reference implementation

dm Server now contains the OSGi Web Container reference implementation and uses and builds upon it for all of its web support. As part of this work we've also moved to using the standard XML format for the configuration of Tomcat in dm Server.

Dump analysis in the Admin Console

A new Dump Inspector has been added to dm Server's admin console. The Dump Inspector can be used to examine diagnostic dumps produced by dm Server's serviceability component.

dump-inspector

Using Git as our version control system

We've recently moved dm Server's source code to Git as we felt that we could benefit significantly from Git's distributed nature and its excellent support for branches. If you're interested in accessing dm Server's source code, and in building dm Server from source, instructions for doing so now that the code is hosted in Git can be found below.

Documentation updates

A number of the newly-added features are now covered in the dm Server user guide and programmer guide.

Use of ConfigurationAdmin

dm Server now makes extensive use of ConfigurationAdmin to manage its configuration. This has resulted in changes to dm Server's configuration files and their format. The new files and format are described in the updated user guide.

Updated application development guide

We've updated our guide to creating an enterprise Java application with dm Server to bring it up-to-date with the 2.0 line.

Working with dm Server's source code

dm Server's Git repositories

Repository URL Contents
git://git.springsource.org/dm-server/util.gitGeneral-purpose utility code
git://git.springsource.org/dm-server/artifact-repositoryArtifact repository
git://git.springsource.org/dm-server/osgi-extensions.gitOSGi extensions and Equinox hooks
git://git.springsource.org/dm-server/kernel.gitdm Kernel
git://git.springsource.org/dm-server/web.gitOSGi Web Container integration and extensions
git://git.springsource.org/dm-server/servlet.gitAdmin console
git://git.springsource.org/dm-server/hosted-repositoryHosted Artifact repository
git://git.springsource.org/dm-server/documentation.gitDocumentation
git://git.springsource.org/dm-server/dm-server.gitPackaging

Building dm Server from source

Setup
Before you can build dm Server from source, the following will have to be setup on your machine:
  • Java 6 installed and the JAVA_HOME environment variable configured to point to it
  • Ant 1.7.1 or later installed
  • An ANT_OPTS environment variable configured to provide a max heap of at least 512MB, e.g. ANT_OPTS=Xmx512m
  • Git client
  • With this setup complete you're ready to build dm Server.

    Packaging published binaries
    The easiest way to build a packaged dm Server zip file is to build one from existing binaries that have already been published:
    git clone git://git.springsource.org/dm-server/dm-server.git
    cd dm-server
    git checkout --track 2.0.0.M3 -b 2.0.0.M3
    ant…

Pluggable styling with SpringSource Slices

Engineering | Andy Wilkinson | July 10, 2009 | ...

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>

As you can see, it's looking for a CSS file…

Using Yourkit to Find a Memory Leak

Engineering | Dave Syer | July 05, 2009 | ...

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

Installing STS into Eclipse 3.5

Engineering | Christian Dupuis | June 24, 2009 | ...

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:

Update: The instructions in this post are outdated and might not work for you. Please refer to the STS Installation Instructions

Maven PAR Plugin 1.0.0.M1

Engineering | Ben Hale | June 24, 2009 | ...

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

Messaging meets OSGi at OSGi DevCon Europe

Engineering | Iwein Fuld | June 23, 2009 | ...

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…

OSGi Test Stubs 1.0.0.M1

Engineering | Ben Hale | June 23, 2009 | ...

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.
@Test
public void startAndStop() throws Exception {
    BundleActivator bundleActivator = new DumpBundleActivator();
    BundleContext context = createMock(BundleContext.class);
    Filter filter = createMock(Filter.class);
    
    String filterString = "(objectClass=" + DumpContributor.class.getName() + ")";
    
    expect(context.createFilter(filterString)).andReturn(filter);
    context…

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all