XMPP學習筆記-LESSON-002:ServerStarter.java

這個類很是簡單,定義了2個變量:
DEFAULT_LIB_DIR                    默認的系統包路徑,值../lib,能夠看出這裏的root是$openfireHome/bin,那麼../lib,就是$openfireHome/lib目錄,這裏存放着用到的jar,或者jar.pack(pack?啥東西,一會再說)java

DEFAULT_ADMIN_LIB_DIR        這是默認的插件,即後臺管理,他是一個webapp程序,jsp的,web服務器使用jetty,關於插件,之後會詳細介紹web

ok,到此,咱們來看,openfire如何啓動。服務器

main方法只有一句代碼: new ServerStarter().start();app

讀代碼無聊麼,其實挺有樂趣,代碼是最好的學習資料,我的認爲,:).webapp

看start().
String libDirString = System.getProperty("openfire.lib.dir");
這個幹嘛呢?就是代替上面的DEFAULT_LIB_DIR ,意思若是你指定(或配置)了這個值,那麼就以這個變量的值爲準。jsp

同理還有, System.getProperty("openfireHome");
這個指定openfire的主目錄位置。函數

下一步,就是讀取lib以及插件的打包文件,解壓pack,關注unpackArchives方法。學習

最後,經過ClassLoader,載入到環境變量裏。插件

最關鍵的地方來,經過java反射,實例化org.jivesoftware.openfire.XMPPServer,這個纔是xmppserver的核心類server

經過xmppserver,在構造函數中start 服務器。

預知如何啓動,請看下節。

相關文章
相關標籤/搜索