Jetplume

<Jetplume>HSQLサポートも完了。そして、コミット済み。あとは、IE の JavaScript の問題と、ポートレットデコレータにちょっと手を入れれば、完成かね♪

<ビルド>以前は、NFS経由でAthron XP 2000くらいのマシンでJetplumeをビルドしていたのだが、5分くらいかかるので、ビルドマシンを変更してみた。まず、NFSをやめ、Athron64マシンにしたら、2分くらいになった。やっぱり、5分くらいかかるのは、ちょっと作業的にもつらかったな・・・。

<Graffito>とりあえず、Jetplumeで作った HSQL サポートのパッチをGraffitoに入るように交渉しようかと思う。GRFT-16というバグがあるので、これに対して、パッチをつけておけばいいかな・・・。

<Graffito>GRFT-16にパッチをつけ、devメーリングリストにメールを出した。あとは、パッチが採用されることを祈る。でも、私は、DBの専門家じゃないから、もっといい方法を思いつく人は、世の中にいるかもな・・・。まぁ、いいか。

Jetplume

<Jetplume>ようやく、OUTER JOIN の問題を解決できたっぽい。HSQLのChangelogを見ていたら、1.7.2でJOIN周りを変更したとあった。というわけで、1.7.3.3へバージョンアップしたら、動いた。あとで、コミットしておこう。とりあえず、一安心かな。まぁ、バージョンアップによる、regression がないかみないとは、いけないと思うが。

Jetplume

<Jetplume>GraffitoがHSQLですべてのフォルダを返してくる問題を調べているが、どうやら、原因は、OUTER JOINを使っていることにありそうだ。フォルダの場合、

SELECT A0.CLASS_NAME,A0.LINK_TARGET_ID,A0.VERSION_NUM,A0.OBJECT_ID,A0.DELTA,A0.LANGUAGE,A0.PARENT_ID,A0.CREATION_DATE,A0.IS_LAST_VERSION,A0.TITLE,A0.CONTENT_ID,A0.NAME,A0.DESCRIPTION,A0.URI,A0.CONTENT_TYPE,A0.OWNER,A0.CONTENT_SIZE FROM CMS_OBJECT A0 LEFT OUTER JOIN CMS_OBJECT A1 ON A0.PARENT_ID=A1.OBJECT_ID WHERE ( A1.URI = ‘/graffito/site1’) AND (A0.CLASS_NAME = ‘org.apache.portals.graffito.model.impl.FolderImpl’)

を発行しているが、ドキュメントの場合は、

SELECT A0.CLASS_NAME,A0.LINK_TARGET_ID,A0.VERSION_NUM,A0.OBJECT_ID,A0.DELTA,A0.LANGUAGE,A0.PARENT_ID,A0.CREATION_DATE,A0.IS_LAST_VERSION,A0.CONTENT_ID,A0.TITLE,A0.NAME,A0.DESCRIPTION,A0.URI,A0.CONTENT_TYPE,A0.OWNER,A0.CONTENT_SIZE FROM CMS_OBJECT A0 INNER JOIN CMS_OBJECT A1 ON A0.PARENT_ID=A1.OBJECT_ID WHERE ( A1.URI = ‘/graffito/site1/category2’) AND (A0.CLASS_NAME = ‘org.apache.portals.graffito.model.impl.DocumentImpl’)

が発行されている。Graffitoが悪いのか、HSQLのバグなのか・・・。調べないとわからん。

<HSQL>MySQLでも同じものを発行してみたら、普通に期待通りの動きをしている。つまり、HSQLの問題の気がする。そもそもA1.URI = ‘/graffito/site1’という条件があるのに、nullに対してもマッチするのが意味不明。仕様なのか、バグなのか・・・。というか、バグだろう・・・。