Openfire插件开发流程
1.插件结构:
testplugin/
|- l      <-配置文件
|- readme.html    <-用户说明
|- changelog.html <-更新日志
|- icon_small.gif <-小图标
|- icon_large.gif <-大图标
|- src/<-存放编译的类文件夹
|- database/<-存放数据库改动
|- i18n/<-国际化
|- lib/<-插件所需要的类库
|- web            <-显式调用插件时需要的Web页面
|- WEB-INF/
|- l          <-Web配置
|- l    <-Web配置
|- images/
2.加入插件目录文件:
在eclipse的openfire项目文件夹openfire_src\src\plugins下手动新建一个插件文件夹,定义名为testplugin,进入文件夹根据需要新建以上文件夹或文件,其中web、i18n、icon、database 都不是必须的,可以只创建src文件夹和l文件。
在建立的src文件夹下依次创建文件夹java,org,jivesoftware,openfire,plugin,形成
src\plugins\testplugin\src\java\org\jivesoftware\openfire\plugin的目录结构。在最底层,即plugin文件夹
下建立java类,起名为TestPlugin.java。
修改建立好的l :
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<!—插件主类,必须要的 -->
<class>org.jivesoftware.openfire.plugin.TestPlugin</class>
<!—插件信息 -->
<!—插件名称 -->
<name>Plugin</name>
<!—插件描述信息 -->
<description>Test Plugin</description>
<!—插件作者 -->
<author>Aaron</author>
<!—插件版本 -->
<version>1.0.0</version>
<!—插件日期,必须格式为MM/dd/yyyy -->
<date>12/24/2007</date>
java创建文件<!—插件需要的openfire最小版本 -->
<minServerVersion>3.4.1</minServerVersion>
<!—插件许可类型-->
<licenseType>gpl</licenseType>
<!—Web界面需要配置,没有界面则保留<adminconsole>空标签即可 -->
<adminconsole>
<tab id="mytab"name="Example"url="my-plugin-admin.jsp"
description="Click ">
<sidebar id="mysidebar"name="My Plugin">
<item id="my-plugin"name="My Plugin Admin"
url="my-plugin-admin.jsp"
description="Click to administer settings for my plugin"/> </sidebar>
</tab>
</adminconsole>
</plugin>
保存退出。
退回到openfire项目根目录,用记事本打开CLASSPATH文件,复制一条<classpathentry kind="src" path="src/plugins/fastpath/src/java"/>将path改为你插件的目录也就是
src/plugins/testplugin/src/java ,保存退出。打开Eclipse点击项目按F5刷新,看到新加入的插件.
3.TestPlugin.java最基础的类结构:
package org.jivesoftware.openfire.plugin;
import java.io.File;
import org.jivesoftware.openfire.*;
import org.ainer.*;
public class TestPlugin implements Plugin{
public TestPlugin(){
}
public void initializePlugin(PluginManager manager,File pluginDirectory){
System.out.println("初始化插件");
}
public void destroyPlugin(){
System.out.println("停止插件");
}
}
插件主类必须实现org.jivesoftware.openfire.plugin. Plugin插件接口,并实现里面的两个方法:initializePlugin(PluginManager manager, File pluginDirectory)、destroyPlugin()。initializePlugin方法在插件加载时调用,destroyPlugin在插件卸载或者重启是调用,在initializePlugin书写你的功能代码或者调用其他方法执行。
4.servlet处理业务:
如果要用servlet处理业务逻辑,在
src\plugins\testplugin\src\java\org\jivesoftware\openfire\plugin文件夹下建立文件夹test,形
成src\plugins\testplugin\src\java\org\jivesoftware\openfire\plugin\test目录,在test下建立java 类,取名TestServlet.java,刷新eclipse。
编辑TestServlet.java。TestServlet类继承HttpServlet,在TestServlet下重写doGet()、doPost()、init()、destroy(),并在相应部分实现自己的功能。
init() 中添加AuthCheckFilter.addExclude("testservlet/testservlet")。这里的格式为[插件目录名]/[子url]  而不是"[servlet所在目录名]/[子url]"。
destroy()中添加veExclude("testservlet/testservlet")。(添加这两句的
作用是让个servlet的调用者有权限访问,而不是先进入openfire的Login页面)
接着配置servlet的部署描述符文件。在src\plugins\usermanage\src下建立文件夹,形成目录src\plugins\usermanage\src\web\WEB-INF,在WEB-INF文件夹下新建l文档,配置如下:
</web-app>
<!-- Servlets -->
<servlet>
<!—Servlet名字-->
<servlet-name>TestServlet</servlet-name>
<!—Servlet类文件-->
<servlet-class>
org.jivesoftware.stservlet.TestServlet
</servlet-class>
</servlet>
<!-- Servlet mappings -->
<servlet-mapping>
<!—Servlet名字,与上面一致-->
<servlet-name>TestServlet</servlet-name>
<!—http访问Servlet时调用的名字-->
<url-pattern>/testservlet</url-pattern>
</servlet-mapping>
</web-app>
5.插件编译:
编译插件需要ant工具,Eclipse有内置ant工具。切换到ant视图:菜单栏->show view->ant,在ant中选add buildfiles按钮,在project中选l,双击plugins节点,编译插件。待插件编译完成后生成的Jar在\openfire\target\openfire\plugins\下面。
6.插件装载:
在Eclipse启动Openfire ,浏览器里输入地址:localhost:9090/回车打开Openfire控制台,输入用户名密码登陆,登陆后点击菜单上“插件”链接进入插件管理页面.
点击浏览选择刚才已生成的插件,点击Upload Plugin上传,上传成功后在插件列表有显示。返回Eclipse控制台Console 输出了我们在插件的类里输出的:“初始化插件”证明插件完成上传,可以正常使用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。