Generics for the JFace Viewer and the end of the Google Summer of Code 2013

Last week the final results of the Google Summer of Code were released. So I want to give you a brief update on my GSoC project and write a bit about my personal experience I collected within the GSoC.

After a discussion on the cross-project-issues-dev mailinglist, my mentors(Lars Vogel and John Arthorne) and I decided to revert my last changes on the master branch and start working in a separated branch. This separated branch should avoid side-effects on other depending projects until the work on the generic viewer is fully done.

So currently the changes take place in the johna/402445 branch.
This branch includes the following generic viewers:

  • ListViewer
  • ComboViewer
  • TableViewer
  • TreeViewer

Every single generic viewers also support the usage of

  • Generic ContentProvider
  • Generic LabelProvider
  • Generic Filter
  • Generic EditingSupport

For this support also depending classes like the whole LabelProvider classes have been updated to generics support.

With the new generic API also the JUnitTests and the JFace Snippets have been updated, to show and test the usage of the changes.

Within the last three and a half  months I changed 288 files, uploaded more than 40 gerrit reviews and learned tones of new things.  But to be honest it was a tough time for me. Even though I tried to be prepared, I underestimated the complexity of the Java Generics. Especially the use of Generics within old-fashioned parts of the JFace api, like plain arrays, brought me some sleepless nights.

Beside this it was a little bit surprising to me, that my project and the idea of a generic JFace was not welcomed by every one in the community. But in a big project like Eclipse you can’t avoid situations like this, especially when a well used API is affected.   An open discussion about technical aspects and other topics on the mailinglist helped to remove some (but not all) concerns about the project.

But in the end, I think the GSoC was a success for me. It allowed me to have a look at the internals of a big opensource project. I learned how to use modern tools like Git, Gerrit and the processes of the eclipse community. But I’ve also gained experience in the use of Java Generics and  the JFace Toolkit. So even if not all of my changes were merged into the master, I’m happy that I attended at the GSoC.

I also will stay active in the Eclipse Community and will continue my work on the Generics for JFace.

And of course I want to thank Lars, John and every one else who helped me  with my first opensource project.

This entry was posted in Other. Bookmark the permalink.