XMPP学习笔记-LESSON-007:XMPPServer.java之Plugin开发

网上关于openfire开发的文字很是多,在这里推荐一篇文章:html

http://redhacker.iteye.com/blog/1919329
android

openfire插件开发之完美开发

这是单独开发openfire插件的的一个实例。设计模式

不过我我的仍是建议在原有的openfire源码上,保持源码结构的形式来开发openfire插件。这样在编译或者修改插件的时候,能够直接用openfire的编译命令来编译,更有利于源码库的管理。固然这是我的之见。ide

下面仍是讲讲如何从代码层面开发of插件吧。编码

前一章,咱们讲过插件管理器,初步了解了插件管理器的做用和生命周期,如今咱们来看一下插件究竟是什么?spa

插件就是Plugin(废话),plugin是插件的接口,这个接口定义了2个方法,初始化和注销。这在上一节插件管理器启动的时候有所说起,这也是插件的生命周期。简单来讲,实现了这两个接口的对象就是一个of插件组件了。具体如何管理和运行,这就不用插件开发人员管了?想一想,这里存在什么设计模式呢?模板?开发android的都知道,相似activity,activity能够说是集设计模式之大成者,改天会具体聊聊。插件

言归正传!设计

查看pluginmanager,loadPlugin:xml

首先载入plugin.xml , 这是插件的入口,来看看plugin.xml的配置,这也是很关键的地点:
以fastpath为例:
<!--编码设置,指定utf-8,pluginmanager中指定过  setEncoding("UTF-8")  -->
<?xml version="1.0" encoding="UTF-8"?>

<plugin>htm

   <!--指定插件类名,
      demo: String className = pluginXML.selectSingleNode("/plugin/class").getText().trim();

    -->       

   <class>org.jivesoftware.openfire.fastpath.FastpathPlugin</class>
    <name>Fastpath Service</name> <!--插件名称-->
    <description>Support for managed queued chat requests, such as a support team might use.</description>
    <author>Jive Software</author><!--插件开发者-->
    <version>4.2.0</version>
    <date>12/2/2009</date>
    <minServerVersion>3.7.0</minServerVersion>
    <databaseKey>fastpath</databaseKey> <!-- 参看getDatabaseKey方法-->
    <databaseVersion>0</databaseVersion>
    
    <adminconsole>
        ....<!--略 配置插件关联的页面-->
    </adminconsole>
</plugin>

能够参考如下资料,写的很是好,我这里讲讲如何在代码写:

1,主要理由XMPPServer这个单例的实例来获取相关manager对象,而后进行操做,好比connectionmanager等,而后经过这些接口来进行保存和设置数据。其中涉及openfire的核心代码,好比provider等,这些之后继续研究。

今天有些急躁,简单写了写。

可猛戳!


参考:

1,跟我一步一步开发本身的Openfire插件http://www.cnblogs.com/hoojo/archive/2013/03/07/2947502.html2,Openfire插件开发人员指南http://www.360doc.com/content/10/0707/15/1332348_37445649.shtml

相关文章
相关标签/搜索