java.netバグトラッカーに素早くアクセスするツールを開発しました

僕のプロジェクトは、仕事のも趣味のも大体みんなjava.netにホストしてあります。このうち、HudsonやGlassFishなど幾つかのプロジェクトは、数千のバグが記録された大きなバグデータベースがありますし、それには及ばないまでも、JAXBなど数百のバグがファイルされているプロジェクトはもっと沢山あります。


残念な事に、java.netのバグトラッカーはとても遅いので、こういう大きなプロジェクトでバグを検索したりしているとページのロードが遅くて大変イライラします。目的のバグが見つからなくて検索キーワードを変えながら何度も検索を繰り替えしたりすると、最悪です。


そこで、以前からのホビープロジェクトのjavanettasksLuceneを組み合わせて、バグデータベースをローカルにダウンロードしてそこで検索できるようにする「bokobai」というプログラムを書いてみました。まだ改善の余地は沢山有るのですが、もう既に僕にとっては充分便利になってきたので、公開しようと思います。(ちなみにボコバイはうちの娘の造語です。語呂はいいのですが意味は不明です。)


このツールには今のところ2つのコマンドがあります。「refresh」と「search」です。「refresh」は、ローカルのデータをjava.netとシンクロします。最初の実行では全てのデータを取得しますが、以降の実行では前回のrefresh以後の差分だけをダウンロードするのでそこそこ高速なはずです。cronなどで定期的にバックグラウンドで実行させるとなおよいでしょう。


「refresh」でデータを取得したら、「search」で検索します。エスケープシーケンスを使って色をつけてあるので、下のテキストよりは見た目はもう少しいいです。検索式の文法についてはLuceneのウェブサイトを参照してください。

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

...

javanettasksはバグをプログラムから更新することもできるので、このツールを拡張すれば、バックグラウンドで非同期にバグを更新したりすることも簡単です。IDEプラグインとしてパッケージしてGUIバインディングをつけたらなお良いかもしれません。IntelliJ IDEAのプラグインハック技術を磨くにも良さそうな素材です。


このツールが便利だと思う人は、拙作のSCM issue linkデーモンもどうぞ。一緒にハックしてくれる人や、ツールを使ってくれる人を募集中です。