Oga.db.updator.Updator説明書

= これは何？ =

データベースのデータ・アップデート作業は、多くの場合非常に面倒となりがちである. しかも、データベースを２個、３個と作っていくうちに、その管理コストが２倍、３倍と膨れていく. これを放置しておくと、データベース作成者が仕事をすればするほど急速に首がグイグイ絞まっていくことになる.

Updatorクラスは、管理するデータベースの数が増えてもコマンド1発で全てのデータベースのアップデートが可能となる、ことを目指して作られた、フレームワークである.

= 使い方 =

インストール
1. subversionリポジトリよりダウンロード svn co http://rgm2.lab.nig.ac.jp/svn/repos/ogaBase

2. maven2にて管理されているので、以下のコマンドでddbj_lib/targetディレクトリの下にjarが作られる. 先にMavenの使い方を参照して$HOME/.m2/settings.xmlを作成すること. cd ogaBase mvn package mvn assembly:assembly -DdescriptorId=jar-with-dependencies

実行方法
例えばoga.db.updator.Updatorを使ったプログラムである、RgmUpdatorを起動するには以下のようにする.

java -cp worlddb2-0.0.1-SNAPSHOT-jar-with-dependencies.jar oga.worlddb2.rgm.RgmUpdator

引数なしだと、oga/worlddb2/rgmの下のdefault.confに書いてあるパラメータを用いて実行がおこなわれる. このパラメータをコマンドライン引数を介して変えたければ、以下のように引数を与えればよい.

java -cp worlddb2-0.0.1-SNAPSHOT-jar-with-dependencies.jar oga.worlddb2.rgm.RgmUpdator -P パラメータ名１=値１ -P パラメータ名２=値２

ここで、-Pは（HadoopのConfigurationクラスに習って）-Dでもよい. どちらも同じ意味である.

ライブラリの使い方

 * UpdatorはThreadのサブクラスであるため、updatorObj.startでデータベースのアップデートプログラムが起動する.
 * UpdatorContainerはUpdatorのサブクラスであり、ほかのUpdatorのリストを持つことができる. UpdatorContainerのstartメソッドを起動すると、UpdatorContainerが保持しているUpdatorオブジェクトを順番にstartする.
 * 個々のUpdatorオブジェクトは、共通の設定ファイルdefault.confの値を参照する.

以下はR Graphical Manualのアップデータのディレクトリ構造である.
 * RgmUpdator.javaがアップデートプロセス全体を管理するプログラムであり、これを起動すると、tarball, package, function, imagesといった各パーツのアップデータを適切な順序で起動する. RgmUpdatorはUpdatorContainerのサブクラスである.
 * 例えばCranTarballInfo.javaなど、他のjavaプログラムは、それぞれ１つのタスクを持ったUpdatorである.

Updatorを使うプログラムの雛形

 * UpdatorContainerを使うプログラムの雛形 : 例としてRgmUpdator.java等を見てください.
 * Updatorを使うプログラムの雛形（container以外） : 例としてCranLuceneIndexer.java等を見てください.

= 内部構造 =

ソースコードを読んでください.