Jackrabbit の練習(1)

最近仕事で Jackrabbit を使うことになったので、
趣味と実益をかねて覚えたことをここに残しておきます。
(超初心者です。)

ちなみに Jackrabbit は Apache による JCR(Java Contents Repository) 実装です。
なんのこっちゃという感じですが。。
こんな感じ。
IBM - United States

コンテンツ・マネージメント・アプリケーションの人気が高まるなか、コンテンツ・リポジトリーに共通の標準 API が必要であることは明らかです。Content Repository for JavaTM Technology API (JSR-170) は、そのようなインターフェースを提供することを目的としたものです。この記事では、JSR-170 のオープン・ソース Apache Jackrabbit インプリメンテーションを用いてウィキペディアのような百科事典バックエンドを設計しながら、この有望なフレームワークの機能を探っていきます。

http://jackrabbit.apache.org/style/jlogo.gif
うさぎロゴがかわいい。(Tomcat よりもはるかに)


環境は、
Windows XP
Eclipse 3.1.1 (All in One Eclipse)
です。

Jackrabbit で Hello world

とりあえず Jackrabbit のHPの First-hop をやってみます。
First Hops

まず、

jcr-1.0.jar
jackrabbit-api-1.4.jar
jackrabbit-core-1.4.jar
jackrabbit-jcr-commons-1.4.jar
jackrabbit-spi-1.4.jar
jackrabbit-spi-commons-1.4.jar
jackrabbit-text-extractors-1.4.jar
slf4j-api-1.3.0.jar
slf4j-simple-1.3.0.jar
commons-collections-3.1.jar
lucene-core-2.2.0.jar
derby-10.2.1.6.jar
concurrent-1.3.4.jar

これらのjacをクラスパスにいれろとのこと。

jcr-、jackrabbit-以外の jar はこのHPにはないようなので、
他から探してきて、Eclipseで外部JARに追加。

あとはサンプルコードを写して実行。
おー、動いた。

とりあえずこの状態で動かすと、データは Derby に格納されるみたい。
で、次の段階として、データをDBに格納して永続化させるためには、
repository.xml を編集していくのだけど、reposiotry.xml が見つからない。。。
なんかエラーも出たりしてたり。
と、色々やってみて分かったこと。

なお、こちらのブログをかなり参考にさせてもらっています。
http://d.hatena.ne.jp/yousukehara/

ホームリポジトリは Javaシステムプロパティで設定できる。

System.setProperty("org.apache.jackrabbit.repository.home", "c:/apps/jcr/jackrabbit");

という一文を入れておけば、そこをホームリポジトリにしてくれる様子。
必要なファイルはフォルダは自動的につくってくれます。

repository.xmlは、初回実行時に jackrabbit が勝手につくってくれる

Eclipseでやってたから、F5を押すまで気づかなかった。。。orz
プロジェクト直下にrepository.xmlできてました。

repository.login() だと、session.save() ができない

許可ないユーザーと言われます。
変更をセーブしたい時には、任意のユーザー、パスワードでログインしましょう。
(ホントに任意でよいみたい。このへんもよくわからん。。)

System.setProperty("org.apache.jackrabbit.repository.home", "c:/apps/jcr/jackrabbit");

Repository repository = new TransientRepository();
Session session = repository.login(new SimpleCredentials("jackrabbit", "jackrabbit".toCharArray());

みたいな。
うごくと楽しいですね、とりあえず。