The Spring Blog

Engineering
Releases
News and Events

Spring IDE powering ahead

I had a great time at the Spring Experience conference last month. One pleasant surprise I had was the extent of the recent work the Spring IDE team have been doing. I ran into Spring IDE developer Christian Dupuis several times at the conference, and it seems that each time he’d implemented a new feature…

The forthcoming 2.0 release of Spring IDE is a comprehensive update to match the new features in Spring 2.0. And the Spring IDE team is making great progress with two of the big ticket items: XML extension namespaces and the AOP enhancements. (Btw, in case you’re wondering why I haven’t posted for a while, I spent a lot of time writing a Spring 2.0 update article over at InfoQ. This goes pretty deep with XML, AOP and core container features.)

Read more...

Installing WebSphere Application Server 6.1 on Ubuntu

Recently I've been doing some work with a client on WAS 6.1. Since we have a number of Spring users on WAS and I need to test the application, I decided it was time to get a copy of WAS running on one of my work laptops. I say 'one of' because I'm currently working on both my Mac (with OSX) and my ThinkPad (with Ubuntu) - more recently I've just been using the ThinkPad because I can have Oracle XE and WAS running without the need for a VM tool like Parallels. I still prefer the Mac, but to be honest there isn't much difference day-to-day - I just miss some of the more useful Mac tools like Spotlight, Quicksilver, TextMate and NewsFire.

Read more...

A Bridge Too Far

In my last entry I presented a technique for creating strategy classes that take full advantage of any generic metadata that is present in your application. At the end of that entry I showed this code snippet:

EntitlementCalculator calculator = new DividendEntitlementCalculator();
calculator.calculateEntitlement(new MergerCorporateActionEvent());

You'll remember that DividendEntitlementCalculator was defined as:

public class DividendEntitlementCalculator implements EntitlementCalculator<DividendCorporateActionEvent> {

    public void calculateEntitlement(DividendCorporateActionEvent event) {

    }
}
Read more...

Unit Testing with Stubs and Mocks

I was on site with some clients the other day, and they asked me about unit testing and mock objects. I decided to write up some of the discussion we had as a tutorial on creating dependencies (collaborators) for unit testing. We discuss two options, stubbing and mock objects and give some simple examples that illustrate the usage, and the advantages and disadvantages of both approaches.

It is common in unit tests to mock or stub collaborators of the class under test so that the test is independent of the implementation of the collaborators. It is also a useful thing to be able to do to control precisely the test data that are used by the test, and verify that the unit is behaving as expected.

Read more...

Spring Web Flow 1.0.1 Released

Dear Spring Community,

We are pleased to announce that Spring Web Flow 1.0.1 has been released.

 

Spring Web Flow is a next generation Java web application controller framework that allows developers to model user actions as high-level modules called flows.  The framework delivers improved productivity and testability while providing a strong solution to enforcing navigation rules and managing application state.

Read more...

What's New and Cool in Spring 2.0?

Last month Rod Johnson presented at three Australian Spring User Group meetings a session entitled, “What’s New and Cool in Spring 2.0”. Rod mentioned during those meetings that I’d make his presentation available, so here it is.

There are some other recent presentations that people have also been emailing me about. In no particular order, here is the latest:

Read more...

Why the name Interface21?

A few weeks ago I blogged about the origins of the name Spring. We also get many questions about the origins of the name Interface21.

For anyone who’s read my books or considered the design of Spring, the interface part is hardly a surprise. It plays on both the OO concept of an interface (for which I’ve always had a deep love) and the notion of the interface to a system. For example, putting a web interface onto an existing green screen system–something I was actually doing when I first thought of the company name.

Read more...

What happened to getConfigLocations()?

I was on site at a customer last week and a question came from the crowd, “Why isn’t getConfigLocations() abstract anymore?” After working in front of customers for a while, it becomes rare that you’re speechless, and yet I was. To be honest, my first thought was that there was no way the customer could be right. But lo and behold, in revision 1.3 of AbstractSingleSpringContextTests it clearly states that getConfigLocations() is no longer abstract. I hadn’t created any new integration tests against 2.0.1, so I hadn’t even seen the change.

Read more...

What you have to look forward to at The Spring Experience 2006...

These shots of our venue were taken yesterday (proximity to places like this is one of the perks of Interface21 having an office in Florida).

 
The Majestic Westin Diplomat
Complete with an infinity pool
A lazy river underneath
On beautiful beach-front property

We are incorporating several of these shots into the main conference banners to be draped from the towering ceilings of the Diplomat. Everything is set for a great show. See you at The Spring Experience next week!

Read more...