The Spring Blog

Engineering
Releases
News and Events

Spring Web Flow 1.0.2 Released

Dear Spring Community,

We are pleased to announce that Spring Web Flow 1.0.2 has been released.  This is a bugfix and enhancement release, addressing all bugs reported against the Spring Web Flow 1.0 series and significantly enhancing Spring Web Flow’s support for users of Java Server Faces (JSF).  We recommend upgrading to this release from previous versions.

 

Spring Web Flow is a next generation Java web application controller framework.  The framework provides a powerful system for implementing navigation logic and managing application state consistently across a variety of environments.

Read more...

Spring Framework 2.0.4 Released

Dear Spring Community,

We are pleased to announce that Spring 2.0.4 has been released.  This is a bugfix and enhancement release, addressing all reported bugs against the Spring 2.0 series and introducing significant performance improvements.  We recommend upgrading to Spring 2.0.4 from previous 2.0.x releases.

Spring 2.0 Released

 

Regarding the performance improvements, repeated creation of Spring bean instances is up to 12 times faster in this release than previous versions of Spring 2.0. AspectJ-based weaving performance has also increased by a significant factor.

Read more...

So what's the deal with Spring-OSGi?

Welcome to my blog!
This is my first entry…ever. I manage to resist the urge of blogging but since so many people encouraged me to write about what I do at i21 I decided to give it a go. This and the fact that the Spring-OSGi had its first release yesterday evening (EET time zone).

I’ve been involved with Spring-OSGi since August last year and it has been quite a ride. It’s one of the most challenging projects I have worked on and I’m glad to have it released, even as a milestone, to the public. Thanks a lot to everybody involved for making this happen, especially my team mates - Adrian, Andy and Hal!

Read more...

Request-Reply JMS with Spring 2.0

Several months ago, I posted a blog entry introducing Spring 2.0’s support for Message Driven POJOs. While many people are now familiar with that feature, Spring 2.0’s JMS remoting features have received less attention. Essentially, this remoting functionality provides a JMS-based version of Spring’s general approach to remoting as exhibited in its support for RMI, Hessian/Burlap, and its own HttpInvoker.

For those unfamiliar with Spring remoting, the general idea is to configure a non-invasive exporter on the server-side and a proxy generator (a Spring FactoryBean) on the client-side.

Read more...

BeanInitializer: wiring dependencies in unit tests

One of the things that irritates me the most about unit testing some classes in a Spring context, is initialising them with all their dependencies. This is especially true of Spring framework extensions, like FactoryBean implementations or *Aware implementations. It is cumbersome to add all the dependencies, and easy to forget to call the bean lifecycle methods, like the afterPropertiesSet method from InitializingBean.

The Spring base classes for unit testing help quite a lot, but there are still some things that are fiddly. E.g. in many cases it is necessary to disambiguate autowiring, so that collaborators are given the correct implementation. Also, to benefit from the lifecycle execution you have to be testing a bean instance from the current configuration, which isn’t always convenient.

Read more...

Amsterdam Java Meetup scheduled for April 13th

Mark you calendars! In about two weeks, I’m hosting another Amsterdam Java Meetup; the quarterly event in the Netherlands where all people that have something to do with Java (but hey, we’re friendly; .NET guys are welcome too!) can have a chat and a drink. No technical sessions, no presentations, no keynotes, just drinks and chatting.

We have been organizing the Java Meetups for a while now and the attendance has grown from about 20 in December 2005 to about 60 or 70 last January.

So, spread the word and come join us (ah, and don’t forget, the first couple of rounds are paid for).

Read more...

AOP Context Binding With Named Pointcuts

There a a ton of new features in Spring AOP including the AspectJ pointcut language, the <aop:*/> namespace, and the @AspectJ syntax support. But by far one of the most powerful aspects (forgive the pun) is the AOP context binding.

For example, let’s say you want to advise a method that takes a String as an argument.


public interface HelloService { String getHelloMessage(String toAddHello); }

To advise this method, you’d write a pointcut that looked for a String return type, all implementations of the HelloService interface and the getHelloMessage(String) method.

Read more...

NY Java SIG Overflows

Every so often I get to experience something pretty amazing about the popularity of Spring, Interface21, and our people.

Last night was one of those such moments. Rod spoke at the NY Java SIG in Manhattan. Long time NY Java SIG coordinator Frank Greco sent out an email announcing the Java SIG late on a Sunday night about two weeks ago. By Monday morning at around 9am the event had hit a maximum number of registrations of 300 (the conference room at Google gets trouble from the fire codes when they exceed 260). Effectively the Java SIG had sold out in about a business hour. I think with friends and guests the total registered list was 340. Amazingly, people were turned away at the door once the room filled to 260. For them, I am sorry they didn’t get to see Rod speak but maybe they can come down to Philadelphia for the Emerging Technologies in the Enterprise show.

Read more...

Why Open Source Businesses are not like Wal-Mart

Hopefully one or more open source businesses will be among the standout successes of early 21st century capitalism. However, it’s interesting to look back at one of the standout successes of late 20th century capitalism for an instructive example of one of the unusual challenges facing open source businesses.

Wal-Mart’s history is well known. The first Wal-Mart opened in Rogers, Arkansas in 1962. Five years later there were 24 stores across Arkansas. In 1968, Wal-Mart opened its first stores outside Arkansas, in Missouri and Oklahoma. Both those states, of course, neighbour Arkansas. Wal-Mart’s expansion thereafter continued to be in concentric circles around its home base, enabling logistical and cultural challenges to be overcome gradually and execution to continue to be highly efficient. Despite enormous success in Wal-Mart’s home market, wider geographical expansion has not always proven successful–as in Germany.

Read more...

CarPlant not accepting null CarModels

Last Friday I finished a training session at a client of ours. Because I had some time to kill in the hotel I was staying in, I polished the sample application I coded up during the training to post it online for the guys of the training. Usually I try to find a little sample application specific to the client’s domain to use during the training. This makes it a bit more lively instead of some of the HelloWorld examples.

This client is a big car brand, that have adopted Spring widely throughout their organization. That’s why I created a CarPlant system capable of producing cars. Below you can find a little UML diagram displaying the (rather tiny) domain model and services in the system.

Read more...