tigase启动-MessageRouter.setConfig过程二
来源:互联网 发布:能加盟的网络拉货平台 编辑:程序博客网 时间:2024/06/16 04:35
在registr.addComponent(MessageRouter)的过程中,将通过 MessageRouterConfig.getDefaults(defs, params, getName())设置MessageRouter配置信息。
在MessageRouterConfig注册了MessageRouter的所有信息,如接受消息组件列表、默认组件列表COMPONENT_CLASSES、集群组件列表COMP_CLUS_MAP,如果设置为集群模式,则在此过程中,将用COMP_CLUS_MAP中的值替换COMPONENT_CLASSES对迎的值。
各个常量对应关系列表:
DEF_MSG_RECEIVERS_NAMES_PROP_VAL:[bosh, c2s, monitor, s2s, sess-man]
DEF_REGISTRATOR_NAMES_PROP_VAL : [vhost-man, stats]
CLUSTER_REGISTRATOR_NAMES_PROP_VAL: [vhost-man, stats, cluster-contr]
ALL_MSG_RECEIVERS_NAMES_PROP_VAL:[c2s, s2s, sess-man, ssend, srecv, bosh, monitor]
SM_MSG_RECEIVERS_NAMES_PROP_VAL:[ext-comp, sess-man, monitor]
CS_MSG_RECEIVERS_NAMES_PROP_VAL :[c2s, s2s, ext-comp, bosh, monitor]
COMP_MSG_RECEIVERS_NAMES_PROP_VAL :[ext, monitor]
MessageRouterConfig.getDefaults(defs, params, getName())过程
第一:判断是否为集群模式,集群模式,则用集群component替换默认component
第二:String[] rcv_names = DEF_MSG_RECEIVERS_NAMES_PROP_VAL获取默认消息接受component
第三:根据配置类型:即ALL、SM、CS、COMP确定rcv_names 值。
第四:变量params,加载自定义组件
第五:判断rcv_names 中是否有集群组件,无,则添加tigase.cluster.ClusterConnectionManager
第六:判断rcv_names 中定义的组件是否有实现类,如果没有定义具体的实现了,则为其添加默认实现类tigase.server.xmppcomponent.ComponentConnectionManager。
第七:如果为集群模式,则registr = CLUSTER_REGISTRATOR_NAMES_PROP_VAL;添加到defs中。
第八:添加 defs.put(LOCAL_ADDRESSES_PROP_KEY, LOCAL_ADDRESSES_PROP_VALUE);
defs.put(DISCO_NAME_PROP_KEY, DISCO_NAME_PROP_VAL);
defs.put(DISCO_SHOW_VERSION_PROP_KEY, DISCO_SHOW_VERSION_PROP_VAL);
defs.put(UPDATES_CHECKING_PROP_KEY, UPDATES_CHECKING_PROP_VAL);
defs.put(UPDATES_CHECKING_INTERVAL_PROP_KEY, UPDATES_CHECKING_INTERVAL_PROP_VAL);
将defs返回MessageRouter,通过configRepo.putProperties(compId, prop);实现组件名与相关组件配置信息的存储。
最后,MessageRouter调用setProperties实现MessageRouter组件参数的设置。
所有初始化得Configurable组件需要通过componentAdded来实现。
- tigase启动-MessageRouter.setConfig过程二
- tigase启动-MessageRouter.setConfig过程一
- Tigase手动安装过程
- tigase
- tigase
- tigase服务器的安装与启动
- tigase组件安装及调试过程
- Android 启动过程分析 (二)
- MFC启动过程(二)
- nginx启动初始化过程(二)
- Tigase客户端Jaxmpp的简单使用(二)
- uClinux 启动过程详细分析(二)
- Arm linxu启动过程分析(二)
- SurfaceFlinger启动过程分析(二)
- ARM linxu启动过程分析(二)
- SurfaceFlinger启动过程分析(二)
- SurfaceFlinger启动过程分析(二)
- 《Linux安装》(二)启动过程
- 提高数据库查询速度的几个思路
- 类内静态函数和全局静态函数的相同点和不同点
- 双离合DSG
- PHP连接MySQL查询结果中文显示乱码问题
- mysql表设计----列类型介绍
- tigase启动-MessageRouter.setConfig过程二
- Web项目性能问题常见定位方法梳理
- Android的源代码结构
- Discuz-X模板教程 G变量注解之$_G['setting'] 全局后台各项设置
- Java配置环境变量
- Perl开发的几个小注意事项
- 合肥行
- 正确关闭MongoDB
- 一步一步从入门到精通(一)建立一个简单入门的例子