QDox is back: 1.6 released
QDox history
QDox is a fast JavaDoc/Java parser I originallybuilt in 2002.
It was originally intended as a stop gap until Java supported annotations by allowing tools to easily get access to JavaDoc attributes. Essentially it provided nothing more than a stripped down version of the JavaDoc Doclet tool, with performance suitable for using in continual build cycles (what would take JavaDoc over ten minutes to process would typically take QDox less than ten seconds). It served its purpose well.
The death of QDox
Then came along Java 5 and I stopped actively working on QDox. The first reason was that with Java’s new annotations support, QDox was no longer necessary. The other reason was that it would take a lot of effort to update the parser to support Java 5 syntax (not just for annotations, but generics, enums, etc).
And so QDox went quiet. The dev team lost interest and the releases stopped.
QDox is reborn
It turned out, I was wrong. Even with Java supporting annotations, QDox in a Java 5 world has some benefits:
- Some Java 5 projects still want to use JavaDoc attributes (as well as annotations). Maybe for legacy reasons.
- QDox acts on source code, rather than byte code. This can be useful in chicken and egg situations where you need to generate source from existing source, but you can’t compile until you’ve generated the code.
- QDox exposes information that isn’t exposed by reflection, such as names of parameters or JavaDoc comments, which are useful for building tools to help visualize code.
So, by popular demand, I’m resurrecting the project. Yay.
1.6 released
This new release is a stop-gap release. Highlights include:
- Switched to Apache 2.0 license.
- Parser can now read Java 5 source code (annotations, generics, enums, var args, etc).
- Numerous bugfixes.
The next release will focus on exposing Java 5 specific features through the API. Stay tuned.