Posted by kohsuke
on July 8, 2008 at 11:37 PM PDT
If you are suffering slow java.net issue tracker performance, I think I have just the tool for you.
I work on many, many projects on java.net , many of which has a large issue database, like GlassFish and Hudson with 1000s of issues respectively. Unfortunately, java.net issue tracker performance is pretty bad, and so when I need to find some issues that I vaguely remember (for example maybe I'm replying to an e-mail and trying to point to an existing issue), I waste a lot of time waiting for searches to come back. The same goes to when I'm looking at issues that people have filed.
One of the projects that I do is javanettasks , which provides programatic access to java.net. So I decided to "fix" this problem by myself, by writing Bokobai . Bokobai is a tool that downloads all the issue data and locally run queries. It's still very early in its development, but I already find it useful, so I decided to make it available publicly.
The tool currently has two commands. "refresh" and "search." Refresh synchronizes local issue data with java.net, by fetching updates since the last refresh. If you run it for the first time, it will download all the issues, so it'll take a while, but successive invocations should be reasonably fast (you can run this periodically by cron script too, for example.)
Once you have data on your system (it'll be stored in ~/.java.net.offline-issue-tracker), you can run queries like this:
java -jar bokobai-1.0-all.jar search hudson "NOT status:resolved AND maven"
#49 FEA P2 STARTED www (9 votes) self-contained cvs client libs
#205 ENH P3 NEW www Make branch builds more obvious
#217 DEF P3 VERIFIED www Hudson build error
#247 FEA P3 STARTED www (6 votes) Ability to define system-wide properties
I use ANSI escape sequence to make the output match that of java.net, so the output will be little fancier than above.
Imagine the possibilities...
For now, the search is all it does, but the underlying javanettask library supports updates as well, so it's easy to extend this tool to do a lot more. Noawadays I almost exclusively use SCM issue link daemon for marking issues as fixed, but I could still use a tool like this to mark bugs as duplicates, or browse issues.
It would be also nice if this can be wrapped into an IDE plugin.
In any case, I hope you'll find this tool useful, and if you have other ideas, please let me know. (Or better yet, please consider joining the development.) The project website is here .