流水不争先,争的是滔滔不绝

openfire学习之六 openfire插件开发之HelloWorld

openfire 云聊IM 1944℃

预先准备

本文介绍的是openfire插件开发基础,阅读本文需要先准备好openfire的eclipse开发环境,如果还未准备好,可以先看一下这两篇:

  1. openfire4.15源码在windows上使用Eclipse编译配置
  2. openfire插件开发环境配置指南

编写代码

自定义插件,最基本要满足如下两个条件:

  1. 根目录下要包含:plugin.xml
  2. 根目录下包含一个java源码文件夹,同时要有一个实现了org.jivesoftware.openfire.container.Plugin 接口的java类。

这次我们做的插件很简单,就是在openfire Server启动时,和关闭时,在控制台打印出消息。

先在\openfire_src\src\plugins目录下新建一个helloWorld的文件夹,然后在helloWorld目录下新建一个src的文件夹,放页面和源文件,再新建一个lib目录放第三方的jar包,然后在src文件夹下面新建web,java两个文件夹,web下面放置页面,在这个案例没有用到,可以不建,java文件夹下面放置java源文件,现在目录结构如下:

changelog.html、plugin.xml、readme.html这三个文件分别是你的插件修改日志文件,插件文件和自述文件,其中plugin.xml这个文件很重要,后面我还要解释,先空着,logo_large.gif和logo_small.gif是插件的logo文件,我随便拷了两个。

做好上面的步骤以后,注意了,跟openfire自带插件的目录结构还是不一样,细心的朋友可能注意到了,我新建的src下面有个java目录,而openfire自带插件则没有,而是跑到上面去了,如下:

不要着急,做完这一步,我们的插件就跟openfire自带插件一样了,步骤截图如下:

这时,我们看到,src目录下的java目录不见了,而在上面的源码目录有了我们自己插件了,截图如下:

好了,我们先建一个包,如下:

输入包名:

现在包建好了,我们在这个包中建一个java文件,名为:HelloWorldPlugin,我就不截图,这个学过java的人就应该知道,内容如下:

package com.helloworld;  
  
import java.io.File;  
  
import org.jivesoftware.openfire.XMPPServer;  
import org.jivesoftware.openfire.container.Plugin;  
import org.jivesoftware.openfire.container.PluginManager;  
  
public class HelloWorldPlugin implements Plugin {  
    private XMPPServer server;  
  
    public HelloWorldPlugin() {  
  
    }  
  
    @Override  
    public void initializePlugin(PluginManager manager, File pluginDirectory) {  
        server = XMPPServer.getInstance();  
        System.out.println("HelloWorldPlugin----start");  
        System.out.println(server.getServerInfo());  
    }  
  
    @Override  
    public void destroyPlugin() {  
        System.out.println("HelloWorldPlugin----destroy");  
    }  
  
}  

内容很简单,就是在openfire启动和关闭时,在控制台打印出一条消息。保存好了,我们的java源文件就写好了,现在我们该来写plugin.xml文件了,内容如下:

<?xml version="1.0" encoding="UTF-8"?>  
  
<plugin>  
    <class>com.helloworld.HelloWorldPlugin</class>  
    <name>helloWorld</name>  
    <description>First Openfire Custom Plugin.</description>  
    <author>www.91im.net</author>  
    <version>1.0.0</version>  
    <date>14/07/2014</date>  
    <minServerVersion>3.9.0</minServerVersion>  
    <adminconsole>  
    </adminconsole>  
</plugin>  

以及注意上面的class的配置,那个配置是最为重要的,配置的是插件的全路径;name是插件的名称,安装后的插件名称;author是插件作者;adminconsole是配置插件关联的页面的;这里不需要。

编译插件

参考openfire插件开发环境配置指南一文中【配置编译一个已存在的插件(以 search 插件为例)】一节就可以。只需要将其中的【search】改为我们自己插件的名字【HelloWorld】。

编译完,即可在相应的目录下,可以看到,生成的插件包:helloWorld.jar

运行和调试插件

一个插件本身不会运行,它会随着Openfire 服务端程序的的启动而启动,不管是运行还是调试都需要依赖Openfire 服务端主程序。

启动openfire,即可在命令行看到:

版权声明:部分文章、图片等内容为用户发布或互联网整理而来,仅供学习参考。如有侵犯您的版权,请联系我们,将立刻删除。
点击这里给我发消息