Skip to main content

SAF team is looking for experienced contributors

Posted by alexfromsun on March 26, 2009 at 10:34 AM PDT

As I promised in the previous entry, the work on the Swing Application Framework has been restarted. We already fixed a bunch of bugs, including #95, #69, #82 and we are not going to stop.

During our internal meetings we decided that we should be more in contact with developers who have experience in creating real applications on Swing. Only if you got trough all the obstacles you can give a good advice how to make it right. A good advice is valuable but a good code is even more welcome.

We are looking for experienced contributors who creates successful applications on Swing and can prove this fact by providing links to their projects, forums or blogs. We especially interested in practical solutions on making the same Swing application look native on different platforms (Windows, Linux and certainly Mac OS) and managing application's actions.

The SAF is an open source project which may be included to the core JDK, to contribute you will have to sign Sun Contributor Agreement.
For the code quality sake, all the proposals will be discussed and the code will be internally reviewed before any change.

If you meet the requirements and want to work together with the Swing team on this project please let me know either by leaving a comment for this entry or sending an email to alexfromsun at

Let's make Swing easier!



Related Topics >>


i am a swing developer

can I give comment to SAF? <-- my other project using swing <-- my swing L&F

reading this post more thoroughly: while I totally understand the need fro the contributor's agreement (without reading it in details now), what does this mean: "For the code quality sake, all the proposals will be discussed and the code will be internally reviewed before any change. " Sounds like people willing to contribute will have an ugly lot of discussion work to get a small patch in! I'm really a great fan of keeping good code quality - but there are better means than "internal discussion" form a team that didn't participate in the public mailing lists of the project since ages. Wouldn't it be better to use automated checking of quality (unit tests, continuous integration, test code coverage checks, formatting(at least the 1.03 appframework code's formatting is butt-ugly, mixing spaces and tabs indentions!) checks and let people make commits easy? And then, you can always make regular code reviews, and throw out stuff that is badly written. Maybe some things were easier with a "proper" decentralised versioning system like mercurial or git.

I'd be interesting in helping. But you should really start with reading and replying to the mails on the appframework mailing list! There are a lot of open questions and unclear things, that I'd really like to understand before starting to invest much more time, and currently, a lot of things are confusing - inconsistent file/download store, no up to date docuentation, and such. It seems that really many people like the framework, but there's not much support from the sun side - I even thought about storing a fork on github so I can publish my ideas for changes somewhere.

Hello Cruette Thanks for you support! I'll answer you in a private email alexp

Hi Alex Nice to meet SAF developers. Newbie with SAF but so interesting !! I must say I was quite frustrated with the lack of documentation, reference manuals, tutorials and so on. I can contribute in writing "Getting started" and "SAF unleashed" tutorials. Can anyone provide a good (but simple..) example of demo application to be discovered step by step ? Thanks for your feedbacks Regards

Hi Alex, I'm working on CRM-like project (like very small MS Dynamics GP). Using Swing, SAF, JGoodies librarries and suite, SwingX, etc. This is a freelance job. Currently I consider to change it. See my documnets on Regards.

I'm working on such a project. Swing+SAF+BeansBinding+JavaEE+Hibernate+PostgreSQL. I use old version from NetBeans delivery. The original idea was use NetBeans tooling for rapid development of the application.

@jnelson: not everyone uses Netbeans, in fact the vast majority of people don't. To say that everyone should just use Netbeans to create Swing applications and that thus something that goes outside Netbeans isn't worth the effort (which is effectively what you are doing) is worse than silly. It's an insult to the wider Java development community.

Agree with Kirill, use the project mailing lists. There has been a lot of good discussion and there are many experienced developers posting there. And we miss you. :-) @dags: The scope/goals of SAF has been defined long time ago by JSR-296.

Maybe you could establish first what kind of applications this framework will be primarily oriented to. That could be useful to determinate what features are needed. I believe that most developers, business application developers, need to easily create CRUD and reporting applications and be able to maintain them. That are well known patterns but for some reason most of Sun's efforts seems to be on fancy or "eye candy" features. Most business applications doesn't need all this stuff. It can be used, after the main goal is acomplished, but is not needed. BeansBinding is a need too, and is near to be forked due to lack of Sun support. It would be interesting to develop a tutorial or article regarding how to make an Invoice application with Swing. I mean an ACTUAL Invoice application, where do you need to quickly find a customer between some thousands, browse a big products database, deal with prices, payments and deliveries issues. There are some patterns emerging again and again. During development of this tutorial you will find what is needed and I am sure the developers community will provide you with a lot of collaboration. I will do, for sure.

My apologies for coming across like I'm criticizing; I most certainly am not trying to. I just think that one of the first places for the SAF to start is to build on top of the 10 years of accumulated knowledge of how to deal with multiple platforms when writing a real functioning Swing application. That doesn't mean adopting the NetBeans platform, but it might mean incorporating their platform workarounds, some of the tricks they've come up with to not break APIs over the years, and so on.

@ljnelson Yes, indeed the engineers behind NetBeans went and are going a different direction, as the NetBeans Platform is a more sophisticated thing. If SAF makes sense, it does because it trade off a bunch of features for some simplicity. So I think it's a good idea that Sun searches for external committers. I hope that there's a good response from the community: we are fast to criticize Sun, should be fast to cooperate too when we're offered a chance.

There is a *thriving* desktop community centered around NetBeans. I understand that the SAF wants to pursue a different direction, but you have years and years and years of experience within your *own company* that have built up a desktop framework that works. I bet they'd be a real asset. Best, Laird

I think you would find more than enough experienced people on the project mailing lists. Sun has not been involved in the mailing lists over the last two years, and this needs to be *truly* addressed as soon as possible.

Hi SAF developers, A small team (one teacher and two students) is working on a project with SAF (1.03 debugged), MVC integration and a DAO layer with Google Guice IoC. End of project and documentation is coming soon (perhaps end of june).

while this is not directly related I'd like to post the suggestion/comment I posted about the Netbeans Platform in imo, this is great but for java-gurus but that's not what I wanna say. I believe that this should be the trend, platforms not frameworks. With a platform that is very atomic but powerful and rich, development is done in no time. What I meant with 'atomic' is that for example when I develop a simple JFrame Calculator, the profile(platform provided) I'll use would be "Generic JFrame based Application". This profile would have provided all the necessary code/functionalities like frame.setLocationRelativeTo(null); "Are you sure you want to exit?" dialog GUI's state are persisted // may be another profile named "State-full Generic JFrame based Application" ThreadWorker.invokeLater something2 that is recommended for swing apps :D I wouldn't care if there are many profiles(bec. of the limitless variety of apps) but I'm sure popularity and Apache Software Foundation will have something like 'Apache Platform Profiles' or 'Apache Java Platform Profiles', or better a JSR. Proof of concept is already here(Netbeans Platform), a whole new programming method would emerge, faster then Agile, maybe call it 'Squall' or any cooler word haha! :) Thanks for reading my java-newb comment/suggestion!