Tuesday, August 25, 2009

Server Consolidation

Our SVN code repository has been happily residing on Red Hat 9 for years.

Eclipse Mylyn finally provided the tipping point to upgrade our server since the RHEL9 packages were just too old for Bugzilla 3.

I started out w/Fedora 11, which at first looked amazing. The Fedora people have really made an effort to clean up the installer and to get all the packages to play nice. Our host box is a seven year old PIII and after a few hours X would go crazy and consume the CPU. Easy to deal with by setting runlevel 3, but still...

This isn't meant as a complaint, Fedora is supposed to be on the edge. However, we need stability for a code repository and I didn't want to invest the time necessary to make Fedora behave.

The fallback platform was Ubuntu 9, which has been rock solid so far. I installed CVS (for legacy sources) and SVN (our current workhorse repository). Although the wikis had some complaints, Bugzilla3 pretty much worked as installed (it does need some post-install configuration, but the documentation is good). Our install came up on MySql. PostGreSQL would have been my first choice, but I'm happy to have the task completed.

Seems like there always has to be a problem child and Twiki was ours. Other people have said it and I will too: don't even bother w/the apt packages of Twiki, they don't work. The application is scattered across many diverse directories, I spent several hours tweaking the configuration, file permissions, etc and still didn't get everything working. Finally I deleted the entire install and built from scratch. Success!

All we need now is "Cruise Control"...

Friday, August 14, 2009

JBoss Seam: Working For Me

Tonight I am putting the final touches on my second Seam application. Seam appears to be getting more attention so I decided to share what I hope will be some useful comments.

Currently it seems like enterprise Java frameworks are Spring and everything else. Spring has much to reccomend it: lots of features, well documented, well supported and Spring experience is marketable. As a contractor, I like being marketable.

There are already several comparisons of Spring and Seam floating around the net and I won't compete w/these. For my purposes, Seam looked attractive because it didn't rely upon extensive XML configuration files and promised extensive functionality such as RSS feeds, BPM support, etc. As a contractor, I am hoping for extensive customer adoption and future Seam work.

Mastering Seam is a journey, but the documentation is good and they make it easy to start. Seam will generate a fresh project that compiles and deploys right away. If you already have existing database schema, Seam will generate a scaffolding which will include pages to view, edit and select rows based upon your database schema.

The generated pages make for a great project start. Seam also comes w/multiple working examples which will be an esssential part of your Seam education.

I wish I could say everything about Seam was wonderful, but I wasted weeks and weeks of time trying to use eclipse and JBoss tools. JBoss tools did horrible things to eclipse, causing it to randomly lock up and corrupt my workspace. Of course, eclipse by itself works just fine. I just manage JBoss Application Server from another xterm.

It is a big help to already have the database design nailed before generating your seam application. Once the application was generated, I used the existing page navigation, etc and merely tweaked the facelet pages to appear as the customer required.

The seam forums are quite responsive, although on occasion it is hard to know what is a proper Seam question and what is not. For example, JBoss tools are supported in the JBoss forums.

I did purchase the book "Seam In Action" by Dan Allen, which did help but wasn't enough by itself. Seam covers a lot of ground, you will almost certainly need a good JSF/Richfaces book and a good Hibernate book to complete any real project.

So far I am impressed w/the results of using Seam. Now that I have some experience, I believe Seam will help me develop complex applications much faster. I have been promoting Seam to customers and I expect to start my 3rd Seam application soon.

Good luck w/your projects. Thanks for reading.