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に対してもマッチするのが意味不明。仕様なのか、バグなのか・・・。というか、バグだろう・・・。

Jetplume

<Jetplume>HSQLを利用しているときに、OJBでフォルダを正しくとれない Graffitoの問題を調査。しかし、いまいち、OJBを理解していないので、原因もよくわからん。これは、まず、OJBを学習する必要がありそうだ・・・。

<Graffito>FileSystemContentStore みたいなものがあった。これを使えば、コンテンツをファイルシステムに置くことができるのだろうか。それなら、興味深いな。

Jetplume

<Jetplume>ようやく、HSQLでも動くようになった。でも、まだ、Graffito にバグがある。どこのフォルダにいても、含まれるすべてのフォルダを返してくる。どうも、検索するときのフィルタがおかしいのだろうな・・・。はて、どうやって、修正しようか・・・。