MQTT---HiveMQ源码详解(四)插件加载
来源:互联网 发布:国网网络大学积分 编辑:程序博客网 时间:2024/04/25 12:08
源博客地址:http://blog.csdn.net/pipinet123
MQTT交流群:221405150
实现功能
将所有放在plugins目录下的所有符合plugin编写规范的plugin jar包加载到整个guice context中
实现步骤
1、找到所有plugin目录下的所有jar包
2、分别找到jar包中META-INF/services/com.hivemq.spi.HiveMQPluginModule文件读取第三方plugin配置的HiveMQPluginModule子类全路径
3、然后依次实例化它。
类图
这次的类图比上次的相比简单多了,加载机制也跟其他的有plugin机制的加载比较类似。所以大概说一下加载步骤即可。
1、PluginBootstrap通过PluginLoader去加载Plugin,获得到HiveMQPluginModule的列表,并将其注册到guice中。
2、PluginLoader使用PluginFinder获得到所有Plugin类型,并使用IsolatedPluginLoader对多余的依赖进行排除,并实例化出来对应的HiveMQPluginModule实现的实例。
3、这样所有插件就可以加载出来了。
具体的插件开发以及体会本文中的加载处理方式,需要大家开发一个HiveMQ插件,就可以对本文中的处理逻辑。
http://www.hivemq.com/docs/plugins/latest/
示例
在HiveMQ官网有各种插件示例源码,通过他们的Plugin Developer Guide相信大家可以开发出符合自己业务的插件,实现自己的业务逻辑处理。
http://www.hivemq.com/plugins/
- MQTT---HiveMQ源码详解(四)插件加载
- MQTT---HiveMQ源码详解(三)配置加载
- MQTT---HiveMQ源码详解(五)Netty-启动与Listeners加载
- MQTT---HiveMQ源码详解(一)概览
- MQTT---HiveMQ源码详解(八)Netty-WebSocket
- MQTT---HiveMQ源码详解(九)Netty-Codec
- MQTT---HiveMQ源码详解(十)Netty-Statistics
- MQTT---HiveMQ源码详解(十一)Netty-Throttling
- MQTT---HiveMQ源码详解(十四)Persistence-LocalPersistence
- MQTT---HiveMQ源码详解(十六)TopicTree
- MQTT---HiveMQ源码详解(二)结构与启动
- MQTT---HiveMQ源码详解(外传)为什么使用Xodus
- MQTT---HiveMQ源码详解(六)Netty-Handlers总览
- MQTT---HiveMQ源码详解(七)Netty-SSL/NoSSL
- MQTT---HiveMQ源码详解(十五)Persistence-Cluster/Single
- MQTT---HiveMQ源码详解(十八)Cluster-kryo与Serializer
- MQTT---HiveMQ源码详解(十九)Cluster-Request/Response
- MQTT---HiveMQ源码详解(二十)Cluster-Replicate/VectorClock
- [第一周]Ubuntu 14.10安装后的二三事
- 关于react-native init <file>失败的问题
- 线程、多线程与线程池总结
- python全局变量和局部变量, global
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(二)
- MQTT---HiveMQ源码详解(四)插件加载
- 类的学习(1)
- C++知识点18
- 215. Kth Largest Element in an Array (Medium)
- Java实现排序算法之
- C++继承(一) 常用的继承方式
- SSH整合
- git分支那些事
- HBase Compaction(2)