I’ve been working for the past couple of weeks revamping the Online Glom project that Murray Cumming started last year and I thought it was about time that I posted an update on my progress. I’m doing this work as part of a short contract with Openismus which should take me into mid-January or so. It’s a bit of proof of concept project that Murray has been thinking about for a while. I like when people use software that I write so I’m pretty motivated to make a something functional in this time period.
My first task was to sort out the build for the Java bindings to libglom. I decided to move the project to Gitorious because I like that it lets you have a top level project with sub-repositories. I also like that the Gitorious code base is AGPL. Here’s the repository:
http://gitorious.org/online-glom/java-libglom
Besides updating the SWIG interface file for the changes in libglom, I’ve also changed the build to generate the C++ and Java source code at build time rather than checking the generated source files into the repository. I decided it would be best to stick with the autotools to package up the Java files as Maven and Ant don’t seem to play well with autotools. Using the autotools to build and package the Java code turned out to be not as straightforward as I had thought. I ended up getting the new Autotools book specifically for the chapter on building Java and C# which really helped with the task. The book is really good if you’re new to autotools or you find yourself needing obscure features of the autotools and don’t want to rummage around the web for an answer.
As for the web side of Online Glom, I spent some time this week getting up to speed with GWT and the RCP mechanisms it uses. I’m pretty impressed with the how easy it is to use – especially the development mode Eclipse integration. The GWT developers managed to do a really good job of making a complicated task in a complicated IDE easy. I’m definitely impressed.
I decided to start from scratch and not use the jsp-glom code that Murray had started because a lot has changed in GWT since Murray worked on the project. So far, I’ve managed to get GWT to display listing of the tables in an example glom file using the java-libglom bindings. I’m now at the point where Murray left it last year. The code needs to be cleaned up a bit before I push it to a repository but I will try to get it out early next week.
As part of this work, I spent a bit of time setting up my Eclipse development environment. It’s really interesting to see how the Linux Tools project has progressed over the years. I helped get the project off the ground as a member the Eclipse team at Red Hat a few years ago so it’s an interesting experience to now be on the user side of things.
I’ve been using Eclipse 3.6 with the latest version of the CDT, the Autotools plugin and the EGit plugin. Unfortunately there’s still a few kinks to iron out with this stack. My goal was to clone and build Glom using only Eclipse. The first problem that I encountered was that Egit has a very specific way in which you need to use it. For example, it allows you to clone a repository but it doesn’t hand that cloned repository over to the import wizards very well. After a few tries, I managed to get Glom imported as a General Project. I then tried to convert it over to a C++ / Autotools project but didn’t succeed. After a bit more fiddling, I managed to get the build mechanisms semi-working but not in a way that I would expect. It seems like the Autotools plugin just isn’t designed for the way GNOME modules use autotools. I’m still using the CDT as an editor but I’m doing my builds on the command line. I haven’t had the courage to use Egit to commit and push any code to a remote repository yet. I’ll probably start using it when I’m working exclusively on the GWT / Java side of things because I shouldn’t have a reason to use a terminal for that work.
I’m going to try to post weekly blog updates on my progress so stay tuned for next week’s post.



