Skip to main content

Faster access to java.net issue tracker

Posted by kohsuke on July 8, 2008 at 11:37 PM PDT

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
      https://hudson.dev.java.net/issues/show_bug.cgi?id=49
#205
  ENH P3 NEW        www          Make branch builds more obvious
      https://hudson.dev.java.net/issues/show_bug.cgi?id=205
#217
  DEF P3 VERIFIED   www          Hudson build error
      https://hudson.dev.java.net/issues/show_bug.cgi?id=217
#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.

Related Topics >>

Comments

Nice... but if you are using Eclipse, Mylyn provides a 1st class tasks support in the IDE and there are number of connectors for various issue trackers, including JIRA, Trac, Mantis, Bugzilla and there is also connector for IssueZilla from CollabNet: http://eclipse.org/mylyn/ http://www.collab.net/products/integrations/cdee/seeit.html

It's a good news. Thanks. We really like hudson but in other hand we found very frustrating how java.net is so slow (for the documentation and to find issue) and not very practical (for instance, I found strange to have to request to be an observer just to can add a comment for an issue especially as we are already logged).

Hey this is really nice thing to me I going to use this on my ongoing project http://code.google.com/p/cubeon/ I also like work on project too .. let me know

theanuradha -- cool! I'll talk to you offline.

sanlaville -- Thanks. Unfortunately, this is probably not too useful for users of the project --- for them, it wouldn't make sense to wait for the whole thing to be downloaded before doing anything.

Eugne -- Yeah, I know Mylyn has a connector, and Collab.net has one (it doesn't work on Ganymede, though.) The problem is, Eclipse is not really my cup of tea, and it's true with most of my colleagues.