昨天看完module的流程和开发,就不得不提plugin了,而在了解plugin之前,还需要先看pluginManager。
pluginManager主要负责插件的载入,启动,关闭。
在XMPPserver对象中,声明了pluginManager对象实例,实例化很简单:
pluginManager = new PluginManager(pluginDir);
指定了插件目录,pluginManager在构造函数中使用了大量的map对象来保存插件的相关信息。
然后,启动插件管理器,pluginManager.start();,所做的事情,如下:
executor.scheduleWithFixedDelay(pluginMonitor, 0, 5, TimeUnit.SECONDS);
用一个定时器来启动插件。
这里PluginMonitor,是一个线程实例:
负责具体载入,启动实例的执行。
很简单吧,下一章,我们继续研究plugin。