The Open Source Frameworks I Use

July 22, 2007

Everyone uses open source these days (well, I hope they do). These are the libraries I use regularly on projects when I can. Some are popular; others more obscure. All of these work well for me. Most of these are used in my web framework and this blog software.

Jetty - my servlet container of choice for many years.

DWR - for Ajax connectivity this is the easiest framework to work with.

Commons HTTPClient - for making calls to web servers from inside your web application.

Jakarta Commons - not all frameworks in commons are equally as useful, but this is the first place to go to find something

FastUtil - when you need fast primitive collections, this can't be beat.

Javolution - faster collections than the JDK with more options.

Jodatime - if you do date and time calculations, there is no option, you must use this. There is a JSR now to include this into a future JDK to replace/supplant the terrible JDK time and date classes.

H2 Database - my favorite Java database, it's fast, well supported by the author, and constantly being updated.

iBatis - easier to work with than Hibernate when you really need to use the power of SQL.

Logback - the next generation of logging by the author of log4j and Slf4J which is a new logging facade.

Rome - you can generate RSS feeds yourself but this is still useful.

StringTemplate - the author of the famous ANTLR parser generator also has a nice template framework. I've used it on and off for quite a while. It's a bit like Velocity but far more powerful and with less side-effects.

JDOM - for manual parsing of known XML, as well as generating known XML, it's the best framework for working with existing XML formats.

Xstream - very fast XML serializer, I always use this to store and load XML content created from my own objects.

Stax - I always use stax when embedding stuff into xml or xhtml (such as a web framework).

I use other things too, but these are very basic to what I do. It's amazing what you can get for free these days.

If you have a blog, go ahead and list your favorites as well in a post. It would be useful to see what everyone else uses.