・build.propertiesが存在する場合，その設定に従ってインストール対象のパッケージを選択する
・build.propertiesが存在しない場合，antにより対話的にインストール対象のパッケージを選択し，
結果をbuild.propertiesとして書き込む．これにより，次回からは単にビルドするだけでよい．
・build.propertiesにて，リソースの上書きに関する選択を許可する．これは，自動更新処理のため
である．
・build.propertiesは，インストール対象のパッケージを指定するリソース
・env.propertiesは，インストール環境に関する設定を指定するリソース

----

■アプリケーション配布のシナリオ

(1) 配布用アプリケーションとして，ローカルでopensedk全体をビルドし，配布用パッケージを作成する．
(2) 配布先ノードには，所定の形式でopensedkが展開されている．ただし，必要なプロダクトのみとする．
(3) 配布担当者は，配布用パッケージを適当なノードへ配布する．ここは手動である．
(4) 配布用パッケージがインストールされたノードは，他のノードへ更新を通知する．
(5) 更新を必要としているノードは，一次配布ノードから必要なプロダクトをダウンロードする．
(6) ダウンロードを完了したノードは，安全な方法でアプリケーションを停止し，再起動する．
更新されたノードは，二次配布ノードとして機能する．
(7) (4)〜(6)を繰り返す．


◆検討事項

・配布用パッケージのビルド方法
・一次配布方法
・二次以降配布方法
・アプリケーションの停止と再起動方法
・インフラ


◆配布パッケージのレイアウト

<プロダクト名>
	update.config				ファイル更新ルールを記述した設定ファイル
	lib							プロダクトそのものと，それが必要とているライブラリ一式
	config						テキストのコンフィグファイル一式
	properties					プロパティファイル一式．クラスパスが通る．
	log							ログ出力先ディレクトリ
	misc						その他プロダクトが必要としているリソース一式

例：

+RSS
	update.config
	+lib
		commons-logging.jar
		log4j-1.2.8.jar
		lpcommon-core-1.3.jar
		lpcommon-cli-1.0.jar
		rss1b-1.0.jar
		HTTPClient.zip
	+log
		rss.robot.run.log
	+rc
	+config
		rsswebspider.conf
		rssnavigator.conf
	+properties
		commons-logging.properties
		log4j.properties
		lookupfactory.properties
		oqsconfig.properties


・差分配信と完全配信をサポートする
・差分はファイル単位とし，比較方法はSHA1ダイジェスト値とする

◆アプリケーションの一次配布方法
・完全なプロダクトを，どれか1つのノードに配備する．

◆アプリケーションの終了と再起動方法

・特定のポートでリスニングする
・終了コマンドが送信されてきた場合，アプリケーションを終了する
・再起動コマンドが送信されてきた場合，アプリケーションを再起動する
・アプリケーションの終了方法は，アプリケーション依存とする
・終了/再起動方法は，BATで実装する．exitcode=0は終了，exitcode=100は再起動とする
・スタンドアロンのアプリケーションは，main()メソッドからSystem.exit()を呼び出す
ことにより，終了する
・RMIサーバーの場合，unexportRemoteObject()した後，main()メソッドから
System.exit()することにより，終了する
