I think the talk went well yesterday, the room was almost full. It was very enlightening to talk to people afterwards as many said they had either built frameworks on the same technologies of Swing, OSGi and IOC or are currently looking into doing so. The concept of Event/Message Bus was also something that many people have adopted or are investigating adopting. I am glad I got to do the talk as it sounds like many people have had the same issues designing and managing large scale swing application. I hope I got a chance to help some people who are lucky enough to be at an early stage in developing a application and can adopt some of these solutions.
Click below for a PDF of the slides for the talk:
The SPAR Framework
During my talk I introduced the SPAR framework which is the rich client framework I built for Imagery. I have created an open source project for it at spar.dev.java.net. It is under a BSD license so you are free to use it how you like. If people are interested in signing up to help improve the SPAR framework and move it forward that would be great!
I will work on some form of documentation for the framework in the near future so I will apologize now for being light on documentation. There is a sample application as a very simple worked example which doesn’t do much at the moment other than bring up a window with docking panels, menus, toolbars etc. There are two plugins that make up the SPAR framework and two docking framework plugins at the moment:
- spar – This is the core of the framework and has no concept of UI so can be used for headless applications.
- spar.ui – This is the UI framework for menus, toolbars, docking panels etc.
- spar.ui.jide – This contains the JIDE libraries, a implementation of spar.ui’s DockingManager and some custom components I have written that depend on JIDE.
- spar.ui.infonode – This will be a InfoNode implementation of spat.ui’s DockingManager but I have not had a chance to finish this yet.
I hope the SPAR framework turns out to be useful and I am interested in hearing peoples feedback on it. I plan to blog more about it in the future and explain more about how it works.
Jasper, congratulations on a very successful presentation, and thanks for spending some time with some of us later to compare notes, discuss the issues, and whine a bit about Java framework overload! 🙂
I’m looking forward to checking your framework, the ideas you presented are the exact issues we’ve been dealing in *all* our user interfaces (not just Java UIs) and your talk validated a lot of the conceptual designs we’re promoting in my company.
I do think the community needs to have a very honest discussion about the state of the current frameworks for desktop Java. We have Eclipse, Netbeans, Swing app framework, Spring RCP, and others … and while choice is good I think we need something like the app framework but that addresses the modularity and scalability issues present in a complex app. I think the current app framework is a good start, but I’m concerned it has nothing to do with Netbeans RCP and I don’t get a good sense that there’s a long term plan to scale the framework.
This looks like a fascinating talk. I’m sorry I couldn’t be there. Looking at your first few slides, I see architectures I’ve developed for various Swing apps I’ve created.
Is there any chance the audio for this presentation will be available at some point? Thanks.
Great talk – as far as I can tell from the slides. That’s a great angle you took on SPAR (what does it stand for?). I’ve been interested in combining modules and IoC for Swing for some time, and OSGi and I agree Spring are the best candidates (though I wonder how Google’s JUICE compares). This is the way to go for Swing, I like your analogy of “what’s good for the server might be good for the client too.” Server code used to be served with marinara, client code still often is. I’m also a big fan EventBuses – in fact I have an open source project called the EventBus at http://eventbus.dev.java.net.
I’m interested in collaborating with you on SPAR, I’ll contact you through the project site.
I don’t see any files available on java.net, where can we look at it?
David: unfortunately I don’t think they were recording the JavaOne sessions.
Michael: The source code is available though subversion at the java.net project site: https://spar.dev.java.net/source/browse/spar/trunk/code/
Thanks for the link to my EclipseZone article! I wish I could have been at JavaOne this year, but I blew my conference-attending budget on EclipseCon.
I’m also interested in collaborating with you on SPAR, although I do agree with Augusto’s comment that it’s starting to look like there are too many RCP frameworks out there. Look at the confusion caused by the proliferation of web frameworks in Java, for example. On the other hand “one framework to rule them all” is also not the best approach… it’s good to have a choice between SWT and Swing, at least.
It’s possible that Spring Rich Client will transition to an OSGi-based framework, as Rod Johnson and the other guys are Interface 21 are strong supporters of OSGi. Unfortunately the lead developer of Spring RC very tragically developed throat cancer recently, and so there is not a lot of active development going on there at the moment.