openfire 的启动

ServerStarter main-->start: 然后通过Classload 加载然后创建实例对象。

            Class containerClass = loader.loadClass(
                    "org.jivesoftware.openfire.XMPPServer");
            containerClass.newInstance();

XMPPServer

    /**
     * Creates a server and starts it.
     */
    public XMPPServer() {
        // We may only have one instance of the server running on the JVM
        if (instance != null) {
            throw new IllegalStateException("A server is already running");
        }
        instance = this;
        start();
    }

单例模式创建对象,然后start:

initialize()

初始化,包括openfire.xml文件的载入,获取host,以及版本信息等

创建插件管理对象

pluginManager = new PluginManager(pluginDir);

判断是否已经安装

if (!setupMode)

然后验证数据库连接是否能够正常使用

然后载入模块,初始化模块,启动模块

loadModules-->initModules-->startModules

启动插件管理器

pluginManager.start();

控制台输出启动信息

最后开启监听

            // Notify server listeners that the server has been started
            for (XMPPServerListener listener : listeners) {
                listener.serverStarted();
            }

Openfire 启动完毕。

results matching ""

    No results matching ""