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!

とか(笑)