Sunday, May 27, 2012

mixer2がjavax.cache (JSR-107)に対応

mixer2 1.1.3をリリースしました。既にmavenセントラルリポジトリから利用可能です。

まだ一部ですが、javadocを英語と日本語の併記にしたほか、 ロードしたテンプレートをキャッシュして性能向上させられるなりました。 JSR-107として規格化されつつある javax.cache.Cache の実装クラスのインスタンスをMixer2Engine内にsetするだけで使えます。 詳しくは javadoc に。

とはいっても、実は、手元でいろいろためしたのですが、キャッシュを使ってもそれほど性能はあがりません。^^;) いまのところおそらく唯一であろうJSR107の実装であるehcache-1.4.0beta1を使ってテストしたのですが、 mixer2が普通にhtmlテンプレート文字列をロードしてHtml型オブジェクト化するのと、キャッシュからHtml型オブジェクトを取り出すのとではそれほど大きな性能差が見られませんでした。

見方はいろいろですが、mixer2の性能はもともとそれほど悪くはないと言えるのかもしれませんし、ehcacheの今後の改良次第で差が現れてくるのかもしれません。いずれにせよJSR-107を実装するキャッシュフレームワークはどんどん種類が増えてくるはずですので、今後に期待しましょう。

Sunday, May 13, 2012

Jenkins IPMessenger Pluginを作ってみた

勉強がてら、JenkinsがIPメッセンジャーでビルド結果を通知してくれるプラグインを作ってみました。 https://wiki.jenkins-ci.org/display/JENKINS/IPMessenger+Plugin

実装はゴールデンウィーク中に出来ていたのですが、jenkins-ci.orgへのdeployやwiki執筆に至る前に時間切れになってしまったので告知が遅れました。

とはいっても少々やっつけ感のある実装です。しかもまずいことに、テストを書いてませんw。 外部の通信先を必要とするようなコードのテストケースって書きづらいんですよね。受け取り側のSocketのフリをしてくれるMockとか、あるのかしらん。

メッセージの内容は設定画面である程度カスタムできます。$JOB_NAMEとか $BUILD_ID といった、メール通知なんかでもよく使われるマクロが使えます。

ただ、通信先はIPアドレスかホスト名(Windowsマシンでいうコンピュータ名で可)でしか指定できません。 これは、IPメッセンジャーの設定ユーザー名やグループ名などの情報を得るには、メッセージを送る前にまずLAN内にブロードキャストを投げて反応があったマシンから各種の情報を事前に受け取っておかなければならない、という実装部分をはしょったからです。^^;)

誰かパッチ書いてくれたらマージしますんでよろしくお願いします。