2024年4月15日发(作者:)

Openfire源码研究

Openfire源码目录结构

目录:build目录下收录的是生成安装文件(例如:rpm)所要的一些文件,

例如JRE等。

ces目录:resources目录下收录的是一些为实现国际化(i18n)和本地化的

一些编码文件(例如:英文,中文,法文,德文等)。

ntation目录:documentation目录下收录的是一些关于Openfire安装

和配置的信息,但最终要的是这里有Openfire开发的Javadoc。

目录:顾名思义这个src文件夹就是我们想要的Openfire源代码了,这下面又

有许多文件夹,我们只要Java文件夹就好,这里面实现的Openfire的核心功能,通过它

就可以调试Openfire了。

命名规则

Openfire中常见的类名后缀命名包括Starter、Plugin、Listener、Dispatcher、

Handler、Manager、Provider,通常情况下,这些命名类包括如下意义:

XXStarter

系统启动类,如Starter,调用其start()方

法可启动系统应用。

XXListener

业务的最终处理类。

XXDispatcher

调度类,其中有很多关键方法,如addListener(),以组合的方式,为类内定义的静态

Set实例添加XXListener对象。以便调用dispatchEvent(String property,

EventType eventType, Map params)方法遍历处理Set集中的

XXListener对象(通过调用XXListener对象的各实际方法完成实际业务)。

XXPlugin

实现Plugin接口的插件类,需实现initializePlugin(PluginManager manager, File

pluginDirectory)方法和destroyPlugin()方法。在其初始化方法中调用Dispatcher实现

类的addListener()方法如tener(this)。

XXProvider

实现面向接口编程方式的接口类,通过反射机制创建具体实现类的对象,反射类名配

置在ofproperty表对应的记录propvalue属性中。若没有相关配置,则调用默认实现类,

默认实现类类名命名规则为DefaultXXProvider。

XXHandler

实际处理类,以ConnectionHandler为例,在.