tigase启动-MessageRouter.setConfig过程二

在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来实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值