The Startup Process
AdminDevel_323.pdfのPage105あたりを参考に,JBossの起動プロセスを知るべくソースを追いかけてみた.経路だけ簡単に言うと以下.
build.sh
↓
org.jboss.Main.main(String)
↓
org.jboss.Main.boot(String)
↓
org.jboss.system.server.ServerLoader.load(ClassLoader)
ここでとりあえずサーバインスタンスが生成されて,startする.
org.jboss.system.server.ServerImpl.start()
↓
org.jboss.system.server.ServerImpl.doStart()
このprivateなdoStartメソッドの中でMBeanサーバが起動されて,まずMainDeployerとかJARDeployer,SARDeployerといった先に必要なMBeanが生成・登録・開始される.それから各サーバセットのlibフォルダに置いたライブラリをロードし,confフォルダの各設定ファイルをリソースとしてロードする.そしてjboss-service.xmlの定義内容を読み,その内容に従って必要な分だけ各種MBeanの生成・登録・開始等が行われる.
さすが"Professional Open Source"というか,とりあえずここまで調べるのにはほとんど苦労しなかった.親切丁寧なアーキテクチャとドキュメントのお陰です.
ソースを読んでいると,コメントのところにしばしばプログラマの茶目っ気が見られる.
// thats all folks, have fun
とか
// here ya go
とか
// Start 'er up mate!
とか(笑)