Geertjan is a DZone Zone Leader and has posted 457 posts at DZone. You can read more from them at their website. View Full User Profile

Interview: Lieven Doclo, Spring RCP Project Lead

10.20.2008
| 5927 views |
  • submit to reddit
Spring RCP, a Swing application framework full of the promise of Spring and famous for its project's stops and starts—occasionally rising from its own ashes, only to return to them again some months later. Let's find out more by quizzing its project lead, Lieven Doclo.

Firstly, Lieven, who are you?

I'm the current project lead for Spring RCP. During the day, I work as a Java consultant for Jintec, a small Belgian consultancy firm specialized in Java development. I try to specialize in GUI development and general usability in user interfaces, and thanks to Spring RCP, I've been given the chance to train my skills in GUI frameworks.

How did you get started with Spring RCP?

In my previous job one of the former project leads for Spring RCP, Jan Hoskens, was my colleague. He was responsible for extending the Spring RCP framework to suit the needs of the company's development. During my time there, I mostly worked on the client-side of the applications, which were mostly Swing-based and thereby I became immersed in the world of Spring RCP. After I left there, I still remained interested in the project and started to dig deeper into the framework's inner workings, just to understand what made it tick.

Can you tell us a bit about the basic idea behind Spring RCP, i.e., its central aims?

The general idea behind the framework is to create a Swing application framework powered by the Spring framework. It tries to combine best practices in GUI development and enables a developer to build an application in a standard way, without having to worry about a lot of the intricacies involved in Swing development. It provides support for those who wish to integrate aspects of a Swing application, such as security, validation, and exception handling, in a clear and concise way.

The project seems to have had frequent stops and starts. Can you enlighten us a bit on this point?

The road has been bumpy, there's no denying that. Spring RCP started 4 years ago as a small project backed by some of the current SpringSource people, for example Keith Donald. Over the years, it has evolved more and more, but as time passed, fewer people remained involved in the project. Keith was moved to his current Web Flow project and support from SpringSource became minimal at best. From then on, we sort of depended on the goodwill of the committers to move the project forward. Releases were not frequent and support was not up to par with the other frameworks around.

In March, Jan Hoskens, the project lead at that time, decided to release the 1.0.0 version, in an attempt to increase interest in the project again and to provide a baseline on which everyone could evaluate the project. And in retrospect, it was a good decision. Spring RCP got more publicity in the last 6 months than in the last 4 years. A series of Javalobby articles were written and the forums became active again.

However, some of us realized that the framework also needed some innovations, as the project was still mainly Java 1.4 based and didn't use the possibilities of the newer Spring versions. The codebase also had some problems we couldn't address without completely refactoring the entire codebase (and sometimes just plain rewriting parts of it). Thus Spring Desktop was born, to start with a clean slate. In the beginning a lot fresh ideas were raised and it seemed like things were going great, also because support from SpringSource had increased. But as time passed, the project slowly died and the project lead for both Spring RCP and Spring Desktop, Peter De Bruycker, couldn't find the time to work on both projects.

So last week, after contacting Peter and Jan, I decided to take over the project lead role to make sure Spring RCP didn't die either. As part of that decision, we decided to stop development on Spring Desktop until time and resources were found to actively support the project.

Currently, we're looking at ways to get Spring RCP alive and kicking again and to promote it wherever and whenever we can.

So where are things right now?

At the moment, we're trying to fill in a lot of the gaps that are present in the current release. One of the biggest gaps is the lack of documentation. That's why I started to create a practical guide to Spring RCP to make sure that someone starting with Spring RCP wouldn't be trying out the framework empty-handed. Jan and I also submitted a BoF for Devoxx this year, but unfortunately, it was rejected (let's face it, Swing development isn't as popular or sexy as web development nowadays).

Additionally, the company for which Jan and I worked for recently decided to donate all the customized code based on Spring RCP to the project. We're currently joining our efforts to integrate that code into the codebase, so that everyone can benefit from their work.

What are the main things developers can gain from the project right now?

As I stated before, Spring RCP enables developers to concentrate on the right things in their GUI development. Spring RCP tries to provide an abstraction so that developers don't need to worry about the details of Swing development. Also, standardization is a big issue nowadays and we're certain that Spring RCP can help GUI developers to standardize their Swing development efforts.

In the Swing world, there aren't a lot of alternatives when choosing a framework, all of which have their own strong and weak points. Many companies have created their own Swing abstraction, resulting in even less standardized development. Spring RCP can help by providing an alternative, supported by a community of developers.

What more can be expected in the future?

We'll continue expanding the current codebase to support more out-of-the-box components. Additional documentation will be written to make sure developers get the support they need.

As for Spring Desktop, we're waiting on some support from outside the current RCP community. None of use can commit enough time to handle both projects. That said, we do believe Spring Desktop is the way forward but we won't risk sacrificing Spring RCP.

Do you have any timelines or milestones so we can see what the plans are?

As I said before, we're going to add a lot of stuff to the project soon, which will hopefully increase the value of the framework by a significant amount. You might see it as a milestone, as it'll certainly increase the applicability of Spring RCP in enterprise development.

For the rest, we're going to keep improving the current codebase and also do some cleanup. There's no current release plan yet, but we're working on a system of regular releases, with documentation of course.

Would you like help from the community?

Any help is more than welcome, we accept everyone who's motivated to add value to the current framework. Whether it be adding documentation, providing integrations with other Swing frameworks, or just providing fresh ideas, we can use all the help we can get.

For example, here are three screenshots of the Bio Browser created by Jonny Wray, via his Spring-JIDE integration, which is available at https://jide-springrcp.dev.java.net/:



Anything else you'd like to share?

The current Spring RCP team isn't big, but we're a happy bunch. I'd like to thank everyone who has helped in the last 4 years, because their efforts have made the framework what it is today.

You'll certainly be hearing from us in the future!

 

AttachmentSize
fig-1.png91.94 KB
fig-2.png109.67 KB
fig-3.png70.67 KB
1ce328b.jpg2.52 KB
Published at DZone with permission of its author, Geertjan Wielenga.

Comments

Harris Goldstone replied on Mon, 2008/10/20 - 5:13am

From this, it seems SpringSource is no longer involved with Spring RCP? The desktop is maybe less interesting to them.

Lieven Doclo replied on Mon, 2008/10/20 - 6:16am

It's a trend... Desktop development just isn't as hot a topic as RIA development. Just look at any convention on Java related subjects and calculate the ratio web-desktop topics, were lucky to get 1/10. But I love fighting the odds.

SpringSource current interest is in web development, which is perfectly understandable. We from Spring Rich Client are just convinced it would be a valuable addition to the portfolio. 

Harris Goldstone replied on Mon, 2008/10/20 - 7:49am

What does it mean for licensing? If an application is created with Spring RCP, does SpringSource own the application in some way. And has SpringSource officially distanced itself from Spring RCP? With the recent announcement about SpringSource code and the missing tag and so on... where is Spring RCP in relation to that? If I have problems with Spring RCP, it seems I should not be asking SpringSource for answers. But does that mean that SpringSource has no claim to Spring RCP at all?

Lieven Doclo replied on Mon, 2008/10/20 - 9:15am

Spring RCP falls under the Apache 2.0 license, which means the sourcecode is free to everyone, which is the same as SpringSource. As for claiming the code, at this time, since SpringSource hasn't taken an official position on Spring RCP we don't believe SpringSource has a claim to Spring RCP. Mind you, if in the future Spring RCP might become a fully-fledged part of the Spring portfolio, this might change.

Currently, support is only done by us, not by SpringSource. We'll be providing releases independently in regard to the Spring portfolio and this will remain unchanged until further notice.

One small remark: Spring RCP and it's integration projects have optional dependencies to non-Apache 2.0 licensed libraries. You have to make sure you comply to those licenses before you can use components that use one of those dependencies.  

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.