Jakub has posted 1 posts at DZone. View Full User Profile

The Best Java Tools You Never Knew Existed

  • submit to reddit

I was at an awesome presentation at JavaOne of the long tail of Java tools that not many people have come across, which I had to share. So, in no particular order, and with my own emotive comments:

  • Apache Abdera - work easily with Atom feeds. See also Rome.
  • Antlr - this parser generator can look daunting, but it's pretty easy once you get your head around it. Can be used to parse things like complex URLs where regexps are not up to the job.
  • ApacheDS - Java LDAP and Kerberos server, very easy to embed and great for testing your directory code. Now under the Apache Directory project which has heaps of other good stuff.
  • ASM - small, efficient bytecode manipulation
  • CGLIB - built on ASM, it works at a higher level and makes the former look like Assembler by comparison. Only downside is that it's not well documented
  • JEXL - easily embeddable expression language, compares with OGNL
  • DisplayTag - JSP taglib for table formatting and exporting
  • EHCache - easy in-memory caching for everyone. Used this, it's awesome.
  • Janino - someone took the time to write an embeddable Java compiler! It lets you use Java like a scripting language, eg. allow your users to type Java expressions directly into your GUIs.
  • Jar Jar Links - allows you to overcome namespace/package clashes between different versions of libraries used by your product by repackaging them. Similar to the Minijar Maven plugin that approaches the problem slightly differently by removing unused classes. Can be used to resolve dependency issues (classpath hell).
  • jDBI - substitute for JDBC that doesn't suck when used directly
  • Jetty - web server/servlet container. Lightweight, yet lightning fast. Great for embedding, drives Grails.
  • Joda Time - date time library that kicks butt over java.util.Calendar. Intuitive (January is month 1!), easy to use and complete - everything that the java.util classes aren't. Can be used alongside Date and Calendar. Chances are that the JSR based on this will become a part of Java 7, but why wait when you can use it now!
  • JSON-lib - best Java JSON library out there. Has good documentation. See also Jaxen.
  • Commons Math - everything from linear algebra to statistics
  • Mock Javamail - mock test infrastructure for Javamail code. See also Dumpster, Smartster.
  • Not-Yet-Commons-SSL - Nice, easy to use Java wrapper over OpenSSL. Encryption for the masses!
  • Selenium - test your web app interaction! HTML/JS, browser-based test environment - JUnit starts playing with windows :).
  • Selenium IDE - the "IDE" part may be overstating things, but this Firefox plugin generates the basis of your test code for you. See also Canoo Webtest.
  • Selenium Maven plugin - self explanatory
  • Sitemesh - like Tiles, but non-intrusive and heaps better. It hasn't been updated for ages because it Just Works.
  • Smack - Java Jabber client
  • XStream - objects -> XML -> objects translation. I can't recommend this one enough, awesome one to have in the toolbox.
  • StringTemplate - like Velocity, but better.
  • Ivy - this Ant plugin means that dependency management is not just for Maven any more. I worked on a big project that used this and it worked a treat.
  • Subetha - a mailing list manager and embeddable mail server. See also James.
  • Scriptella - extract, transform and load (ETL) tool for Java.

Feel free to add any gems that you have come across in the comments!

Published at DZone with permission of its author, Jakub Korab.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Jakub Korab replied on Mon, 2008/05/12 - 9:12am

This is a re-post at the request of the editors, originally at http://dubjug.org.

Jose Smith replied on Mon, 2008/05/12 - 9:53am

Great list - I saw this article a couple of days ago.

Marcos Silva Pereira replied on Mon, 2008/05/12 - 10:53am

Nice list. But...

Antlr, ASM, CGLIB, EhCache, Jetty, Joda-Time, Selenium*, Sitemesh, XStream and Ivy are well know tools, aren't?

Kind Regards

Philip Cornthwaite replied on Mon, 2008/05/12 - 1:02pm

Thanks a lot for posting this!  I really wanted to, but couldn't make the session at JavaOne...How did you find the rest of the show?

Jakub Korab replied on Mon, 2008/05/12 - 5:25pm in response to: Marcos Silva Pereira

Agreed, for some people. Not everybody has come across them before, and even so it's always good to get reminded of stuff every now and again. As I said, this is an unedited list from the presentation.

Jakub Korab replied on Mon, 2008/05/12 - 5:28pm in response to: Philip Cornthwaite

Very good, it depends on how exposed you are to the ecosystem. I would say that there was something there for everyone. There were a couple of non-technical analysis sessions talking about trends that were great.

sridhar swamynathan replied on Tue, 2008/05/13 - 6:20am

Very useful post...keep it up

Mostly Harmless replied on Sat, 2008/05/24 - 6:57pm

Sitemesh - like Tiles, but non-intrusive and heaps better. It hasn't been updated for ages because it Just Works.
Great description. Too true.

Anuj Kulkarni replied on Sat, 2013/04/20 - 6:06pm

Google Guava ??

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.