Openfire开发笔记二-插件开发

来源:互联网 发布:制作炫彩字的软件 编辑:程序博客网 时间:2024/06/17 19:29

Openfire的所有插件都存放在openfire根下的plugins目录下。当一个插件被以JAR或WAR文件发布时,他自动扩展为一个文件夹。插件目录结构如下所示:

Plugin Structure

myplugin/

 |- plugin.xml      <- 插件定义文件

 |-readme.html     <- 可选的插件自己述文件,它将被显示给最终用户。

 |-changelog.html  <-可选的插件版本日志文件,它将被展现给最终用户。

 |-logo_small.gif  <- 可选的与插件关联的小图标(16x16)文件(也能为png文件)

 |-logo_large.gif  <-可选的与插件关联的大图标(32x32)文件(也能为png文件)

 |- classes/        <- 你的插件需要的资源文件(如properties文件)

 |- database/       <- 可选的你的插件需要的数据库schema文件

 |- i18n/           <- 可选的i18n文件,它们为插件提供国际化支持

 |- lib/            <- 你的插件需要的库(JAR文件)

 |- web             <- 需要集成到管理控制台中的各类资源(如果有的话)

     |- WEB-INF/

         |-web.xml           <- 配置jsp调度的web.xml配置文件

         |-web-custom.xml    <- 可选的用户定义的web.xml文件,用于调度自定义servlets

     |- images/


插件开发流程:
1.将Openfire的源码导入到Eclipse中,
在项目文件夹\openfire\src\plugins下手动新建一个插件文件夹,定义名为org(随便取),进入文件夹根据需要新建以上文件夹或文件,其中web、i18n、icon、database都不是必须的。

 

建立plugin.xml :

<?xml version="1.0" encoding="UTF-8"?>
<plugin>

    <!—插件主类 -->
    <class>org.jivesoftware.openfire.plugin.OrgInfoPlugin</class>
   
    <!—插件信息 -->
     <name>Plugin</name>
     <description>Test Plugin</description>
     <author>Aaron</author>
     <version>1.0.0</version>
     <date>12/24/2007</date>
     <minServerVersion>3.4.1</minServerVersion>
  <licenseType>gpl</licenseType>
   
    <!—Web界面需要配置,没有界面则保留<adminconsole>空标签即可 -->
    <adminconsole>
    </adminconsole>
  
</plugin>

保存退出。

退回到项目根目录 用记事本打开CLASSPATH文件 ,找到类似
|plugins/packetFilter/src/java/" kind="src" path="src"/>的地方复制|plugins/packetFilter/src/java/ 并更改其为|plugins/org/src/java/粘贴在|plugins/packetFilter/src/java/后面 。

复制一条<classpathentry kind="src" path="src/plugins/fastpath/src/java"/>将 path改为你插件的目录 也就是src/plugins/org/src/java ,保存退出。

打开Eclipse点击项目按F5刷新,看到新加入的插件:

打开OrgInfoPlugin,最基础的类结构如下:

  package org.jivesoftware.openfire.plugin;

  import java.io.File;

  import org.jivesoftware.openfire.*;
  import org.jivesoftware.openfire.container.*;


  public class OrgInfoPlugin implements Plugin {

    public OrgInfoPlugin() {
    }

    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书写你的功能代码或者调用其他方法执行。

 

3、 插件编译
编译插件需要ANT工具,Jbuilder、Eclipse都内置Ant工具,我们往环境变量里追加path变量 加入ant 的路径 Jubilder的路径就是:
Borland JBuilder\2005\thirdparty\ant\bin
加入变量后我们就可以在CMD里调用ANT命令了,运行 → CMD 打开命令提示行 ,进入到Openfire项目的根目录下的Build的文件夹 ,输入命令ant plugins
编译插件,待插件编译完成后生成的Jar在\openfire\target\openfire\plugins\下面。

4、 插件装载

找到你的插件复制出来,如果保留在该文件下则插件随Openfire一同启动。
插件可以直接copy到openfire运行环境的 目录下。
也可以在管理控制台 插件页面通过上传功能直接上传。

以下是我们项目管理界面的插件界面:

 

下一篇我们将聊聊openfire提供的插件及其作用,方便大家在开发时选用。

 

原创粉丝点击