My First SWT Application

Here at work we have a process which indexes content into a special database for concept searching. This process was originally built as a ColdFusion Java CFX using the vendor's Java API. However due to the large amount of data we now need to index the job was taking forever and bringing down our ColdFusion server in the process. So I was asked to take a look and see what could be done. I quickly determined that there was absolutely no reason we needed to run this job in ColdFuision (on our production servers nonetheless) so I decided to build a little desktop utility to handle it. And since I have been messing around with Eclipse plugins I decided to build it in Java using SWT. (SWT is a Java toolkit from Eclipse that lets you access the OS's native UI. It is also what makes Eclipse look and run so much better than most other desktop Java applications written using Swing.)

I have to say that all in all using the SWT toolkit was fairly straight forward. Granted it was a simple application and I was only concerned with building a Windows version of this tool, so I'm sure that made my experience with SWT easier. Plus I was using Eclipse's visual editor, so I didn't really have to spend a lot of time pulling my hair out with grid layouts.

The final application was deployed using Java Web Start and so far it is working great. We were able to speed the process up considerable by breaking it out into multiple threads, and we no longer bring down our ColdFusion servers when we run the job.

One of the main features of the application is that custom versions can be built and deployed for different target environments (ie. development, staging or produciton) just by changing a properties file. Some of the settings which can be tweaked are the JDBC driver and URL, number of threads to run for the process, and server addresses.

Here are a couple a screen shots of the app, one running under the Windows Classic theme and one under the XP theme.

BlogCFC was created by Raymond Camden. This blog is running version 5.8.001.