OpenFire源码学习之四:openfire的启动流程

本文详细探讨了OpenFire服务器的启动流程,从ServerStarter的main方法开始,涉及类加载、XMPPServer的核心启动步骤,包括初始化、加载插件模块、启动插件监控管理和通知监听。在初始化阶段,系统会根据openfire.xml配置文件进行设置,首次启动可能需要数据库配置。插件管理器负责加载和初始化插件,PluginMonitor监控新插件,完成后通知XMPPServerListener服务器启动完成。
摘要由CSDN通过智能技术生成

openfire启动

ServerStarter

启动流程图:


启动的总入口在ServerStarter的main方法中。通过上图首先它会先加载它所需要的jar文件。最后通过java反射机制将XMPPServer加入当前线程。

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

当它获取当前执行的线程对象Thread.currentThread()然后设置为这个线程上下文类加载器,将loader加载进去。而loader是什么呢?再向上看它的源码:

ClassLoader loader = new JiveClassLoader(parent, libDir);

libDir就没什么好说的了。Parent就是:ClassLoader parent = Thread.currentThread().getContextClassLoader();

Parent就是AppClassLoader加载器。

XMPPServer

——核心启动类

XmppServer中的启动顺序机制,如图:

初始化

——初始化操作initialize()

initialize方法执行的时候会根据配置文件的<setup>节点属性值来判断系统是否第一次启动在openfire_src\target\openfire\conf目录下的openfire.xml文件中也配置着系统的基本信息。这些基本的信息包括:DB连接供应商,数据库连接的基本信息,端口&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值