Trac Lighting付属のHudsonをCI以外の目的で使ってみる - almost nearly dead
本来のHudsonの使い方とは異なりますが、実行結果の確認とbatファイルの管理がHudsonで集中管理できるのは運用面での大きなメリットになります。
簡単に言うと「やらなきゃハドソン」って感じですw
あー,その気持ちよくわかります。あたしもPostgreSQLのバックアップをHudsonにやらせてます。バックアップファイルをアーティファクトに指定しておくと,なにかと便利だったりしますよ。
ここら辺のプラグインなんか,ビルド以外にも使えますね。
J2SE5.0_HOTSPOT_MEMO
ここ数年ほどJVMのチューニングとは無縁な生活を送ってきたのだけれど,ちょっと気になるこの一文。
Default garbage collectorの変更
サーバクラスのマシン、且つサーバVMを実行している場合、
1.5.0以降 1.4.2まで -XX:+UseParallelGCがデフォルト -XX:+UseSerialGCがデフォルト となった。上記 switchの明示的な指定で変更可能。
Default garbage collectorの変更
なんですと? JDK1.5.0からってパラレルコレクタがデフォルトなんすか!?さらに読み進めると「-XX:+UseAdaptiveSizePolicyがデフォで有効になる」って書いてるし。1.4.2時代は,このオプションが役に立った思い出ないんだけどな。今は違うんかね。
#パラレルコレクタがデフォになったってのは,ここでも見つけたからホントウなんだろう。
#→Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
あたしの記憶が正しければ,パラレルGCんときは-XX:TargetSurvivorRatioが言う事きいてくんなかったと思ったけどなぁ。ちょっとヤなこと見つけちゃったかも。ん?でも強制的にシリアルGC指定しとけばいいんか??ヒマがあったら試してみたいけど,手間がかかるの分かってるから,多分やんない。
求む,詳細情報っ!! :-)
そんなに何を気にしているかというと,たとえばJDK1.4.2からJDK1.5.0以降にマイグレーションしたとしよう。JDK1.4.2用にチューニングしたJVMオプションをそのまま使ってもJDK1.5.0以降では有効に働かないものがありそうだよって事ス。何でか言うと,デフォルトコレクタが変更になったから。
でも,よくよく考えてみれば,JDK1.5もEOL迎えてんのに,こんなこと見つけたって騒ぐほどのもんでもないか...。
Remote APIが返すURLにHUDSON URLが適用されてないように思える
というのを原因突き詰めてバグレポしようと思ったのですが,途中で力尽きました。
えーとですね,Hudson v1.282,FreeStyleProjectの話です。winstoneでもTomcatでも良いんですが,自分のPC上にHudson立ち上げて,トップページのRemote APIを叩きます。たとえば,http://localhost:8080/api/xml
とか。
すると,戻り値の/job/url
要素には,こんな値が返ってきます。
<url>http://localhost:8080/job/sampleJob/</url> ~~~~~~~~~~~~~~
ちなみに,このホスト名部分,http://127.0.0.1:8080/api/xml
とかhttp://masanobuimai-mac:8080/api/xml
とかすると,そのホスト名がそのまま/job/url
要素に含まれて返ってきました。
つまり,Hudsonの設定画面でHUDSON URLを設定してもRemote APIのこの部分には適用されないようです。
#RSSのURL部分には,この値が反映されています。
一応,この設定値がHudson.getRootUrl()
で取れる事。Remote APIがHudson.getApi()
経由のApi.doXml()
あたりまで追って挫折しました。ハイ,単に根性無しなだけデス。orz
なぜ,そんなことに気づいたかというと,Trac Lightningが mod_proxy使って Apache -> winstone(Hudson)連携をしていて,ここでRemote API叩いたら先のような現象に出くわしたという次第です。
Remote APIのxpath=, exclude=引数の使い方が分かった
ケガの功名というかなんちゅうか,Api.doXml()
のソース読んだおかげで,xpath=とexclude=の使い方がわかったよ。
ポイントは,こんなもんかね。
- XPath式には,"/hudson/..."みたいにルート要素も指定する。
- exclude=は複数指定できる。
- exclude=を指定した場合,xpath=も指定しないとエラーになる(仕様というかバグっぽい?)
XPath式はぜんぜん詳しくないからアレだけど,これって減算式でフィルタかけてくみたいね。たとえば「/hudson/job/color要素の値が'blue'だけの/hudson/jobの一覧」みたいな指定って出来ないのかな?...なんとなく出来なさそう。
あと,xpath=で指定するXPath式は「ひとつの特定ノード以下を取得」って理解してる。
ps.
ちょっとだけXPath式が便利に思えた。でも覚えるのメンドクサイ。:-(