@kuritar さんがtwitterでOmniBaseの導入方法をつぶやかれているのですが、見失いそうなので手順をまとめておきます。@kuritar さん、いつもありがとうございます!
はじめに
まず利用するPharoは、先頃公開された Pharo 1.4 Summer とする。
http://www.pharo-project.org/home
また、Seasideで使うためにOmniBaseを導入するため、先にSeaSideをインストールしておく。
Seasideの導入
Pharo起動時に表示されるWorkspace内にある、 MetacelloConfigurationBrowser open. をdoitし、ConfigurationBrowserを出す。
次に、ConfigurationsタブにあるSeaside30を右クリックして、Install Configuration(stable)を選ぶ。
しばらくするとロードが始まるので終了まで待つ。
OmniBaseの導入(2012/7/26追記)
UntrustedタブにはOmniBaseも載っている。しかし、@kuritar さんが指摘されているように、そのまま右クリックではインストールできない(どうやらstableバージョンがない)ため、いったんLoad configurationを選んでロードしておき、別にWorkspaceを開いて以下をdo itする。
ConfigurationOfOmniBase load.
こちらもしばらく待てばインストールが完了する。
SystemBrowserでOmniBase-Testsのテストを実行すると、OmniBaseTest>>#testObjectLockingとOmniBaseTest>>#testObjectLocking2で失敗する。
なお、@kuritarさんによると、Windowsでは他のテストも失敗するらしい。この原因は OmniBaseTest>>#dirの中のディレクトリセパレータが”/”となっているからで、以下のように修正すれば良いだろう。
dir ^ FileDirectory default fullName, FileDirectory separatorString, 'OmniBaseTester'
OmniBaseJの導入(2012/7/22修正)
このままだと日本語の処理に問題があるようなので、 @umejava さんのOmniBaseJを導入する。
なお、OmniBaseJでは代入に「:=」でなく「←(実際にはアンダースコア文字)」を用いているため、インストールの前に以下をdo itしてコンパイルできるようにする。
Scanner allowUnderscoreAsAssignment: true.
Monticelloブラウザを起動して、以下のレポジトリを追加する。
MCHttpRepository location: 'http://squeaksource.blueplane.jp/OmniBaseJ’ user: '' password: ''
Openでレポジトリブラウザを開いてOmniBaseJをLoadすれば良い。
また、OmniBaseJではscaledIdentityHashというメッセージを使っているが、Pharoには存在しないため identityHash で置き換える必要がある。
World menu->Tools->FinderでSelectorをSourceに変更してscaledIdentityHashを探すと、ODBIdentityDictionary内に6つのメソッド内で使っていることがわかるので、それぞれ identityHash に置き換える。
OmniBaseJ-Coreカテゴリに移ったOmniBaseTestでテストを実行すると、新たに OmniBaseTests>>#testStoreLoadByteArrayKey でファイルが存在しないというエラーが発生するが、create a new fileを選べばテストが通るようになる。
DBAccessorの導入(2012/7/22追記)
OmniBaseを使いやすくするために、 @umejava さんがDBAccessorというラッパークラスを作成されているので導入する。特に、「SeasideへGo!(第4回) http://www.ogis-ri.co.jp/otc/hiroba/technical/seaside/seaside4/ 」を使う時には必須である。
Monticelloブラウザを起動して、以下のレポジトリを追加する。
MCHttpRepository location: 'http://squeaksource.blueplane.jp/DBAccessor’ user: '' password: ''
Openでレポジトリブラウザを開いてDBAccessorをLoadすれば良い。