概述

Openfire插件开发是Openfire的精髓之一,支持插件热插拔,还可以方便的在web端进行管理插件。插件分为两种,一种是以服务为主的控制台插件,一种是包括页面或对外开放Servlet接口。这里我们先描述开发控制台插件。根据上一篇的源码部署(http://www.cnblogs.com/mvilplss/p/6005158.html)相信你已经成功部署好了,那么我们就开始写自己的插件吧!

准备

系统环境:window10(surface pro4)

JDK:1.7 or later

开发工具:eclipse-Mars.2 Release (4.5.2)

Openfire版本:4.0.3

步骤

在openfire源码中,我们看到很多自带的插件,我们就参考自带的插件进行开发。以下都是自带的插件。

我们参考上面插件的结构进行创建自己的一个插件目录。

l  在项目根部创建一个source folder。

l  文件名称folder name为:src/plugins/helloword/src/java

l  创建包,名称参考其他现有插件

l  创建一个类,实现Plugin接口

 package org.jivesoftware.openfire.plugin;

 import java.io.File;

 import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager; public class HelloPlugin implements Plugin{ @Override
public void initializePlugin(PluginManager manager, File pluginDirectory) {
System.out.println("HelloPlugin插件初始化成功");
} @Override
public void destroyPlugin() {
System.out.println("HelloPlugin插件销毁完毕");
} }

l  在src/plugins下找到helloword目录,参考其他插件,拷贝一个plugin.xml,修改对应的参数

 <?xml version="1.0" encoding="UTF-8"?>
<plugin>
<!-- 插件的class全称 -->
<class>org.jivesoftware.openfire.plugin.HelloPlugin</class> <!-- 插件的名称,在web管理显示插件的名称 -->
<name>Hello插件</name> <description>我的第一个Hello插件</description>
<author>mvilplss</author>
<version>0.0.1</version>
<date>11/1/2016</date> <!--插件最小兼容openfire的版本 -->
<minServerVersion>3.9.0</minServerVersion>
</plugin>

l  插件已经准备好,我们进行编译后运行。

l  参考上一篇文章,设为-Dplugin=helloword,选用plugin (build one plugin)。

l  点击Run,成功编译后,编译好的jar已经在指定的目录了,在控制台可以看到

l  运行openfire,如果打印出自己输出的文字则成功。

其他

在开发插件的过程中,如果用到第三方jar包,则只需在自己插件的plugin.xml文件同目录创建一个lib文件夹,将自己的jar包放到lib下并引入到项目即可,编译的时候就会自动打包到自己插件的jar中。

结束

第一个插件已经成功开发完成,openfire的插件开发还是非常简单的。在上面的介绍中,我把world写成word了,非常抱歉。

在后续的文章中会介绍如何开发web插件,聊天记录插件,广播插件等。

Openfire插件开发图解的更多相关文章

  1. openfire插件开发之完美开发

    http://redhacker.iteye.com/blog/1919329 一.说在前面 在继上篇Openfire3.8.2在eclipse中Debug方式启动最简单的方式后,我研究了openfi ...

  2. (转)openfire插件开发(二) 基于web的插件开发

    转:http://blog.csdn.net/lovexieyuan520/article/details/38935137 在前面的博客中,我介绍了openfire插件开发,在那篇博客中我详细的说明 ...

  3. openfire插件开发入门1

    .案例插件的功能 这个插件很简单,就是在openfire Server启动时,和关闭时,在控制台打印出消息. 3.插件开发的目录结构设计 先来看一下当前openfire在eclipse中的目录结构: ...

  4. (转)openfire插件开发(一)

    转:http://blog.csdn.net/lovexieyuan520/article/details/37774909 1. 在上一篇博文中,我介绍了Openfire3.9.3源代码导入ecli ...

  5. openfire插件开发的几点说明

    1.关于插件的目录结构 这个网上的资料很多,但是我觉得要看懂也不太容易,我这里上一个包括了jsp和servlet的图,希望大家能马上看懂: ME的Navigator视图下的截图: build path ...

  6. openfire插件开发环境

    创建java工程 SamplePlugin: package com.hoo.server.plugin; import java.io.File; import org.jivesoftware.o ...

  7. (转)openfire插件开发(三)通过http方式向openfire客户端发信息

    转:http://blog.csdn.net/hzaccp3/article/details/19964655 需求:  通过http方式,向openfire客户端发信息(非XMPP协议)openfi ...

  8. openfire插件开发1

    http://www.cnblogs.com/hoojo/archive/2013/03/29/openfire_plugin_chatlogs_plugin_.html http://www.cnb ...

  9. 在XMPP的JAVA开源实现Openfire中,增加LBS 附近的人功能

    1. XMPP协议 与 Openfire XMPP协议是IM领域的标准协议了,具体可参考  http://xmpp.org   及RFC6120,RFC6121,RFC6122等相关文档. http: ...

随机推荐

  1. React入门---组件-4

    组件:网页可以分为多个模块,比如头部,底部,分享等各种模块,这些模块在其他页面也可能会用到,我们把这些分开,每一个模块当作一个组件,进行复用. 接下来直接以头部 header作为一个组件来进行demo ...

  2. MyBatis之级联——一对多关系

    上次我们讲到了MyBatis的一对一关系的表示,简单回顾一下一对一关系就是一个学生只有一个学生证.那么什么是一对多关系呢?一个学生有多个课程这就是一对多的关系.我们结合上一章中的学生和学生证,在此基础 ...

  3. Java 多线程详解(二)------如何创建进程和线程

    Java 多线程详解(一)------概念的引入:http://www.cnblogs.com/ysocean/p/6882988.html 在上一篇博客中,我们已经介绍了并发和并行的区别,以及进程和 ...

  4. php中for循环的应用1

    for 循环是 PHP 中最复杂的循环结构.它的行为和 C 语言的相似.在PHP中使用的是执行相同的代码集的次数. for 循环的语法是: for (expr1; expr2; expr3)state ...

  5. Ubuntu 挂载硬盘分区

    1.先查看当前硬盘分区状态,命令sudo fdisk -l 大致如下:设备 启动 Start 末尾 扇区 Size Id 类型/dev/sda1 2048 206847 204800 100M 7 H ...

  6. 开关调色新世界BP2888电源解决方案

    LED智能方案经过几年的拼杀,已经风靡照明界.但人们渐渐发现,对照明来说,一味追求花哨的功能并不被市场所认同,而其中开关调色,以其简单易操作的特点,已逐步融入广大消费者的生活习惯中.对吸顶灯,面板灯等 ...

  7. [原创]首次SDN比赛的记录-部分

    SDN大赛环境搭建和第一大题实现 由于物理设备不足的原因,故用虚拟机实现Floodlight控制器,openvswitch(以下简称:OVS)和mininet各种要用到的SDN环境的搭建.下面将给出它 ...

  8. [原创]CentOS下Mysql双机互为备份

    一.环境: 1.安装Centos-6.5-x64位系统的机器两台: host1:192.168.2.3 host2:192.168.2.4  (互相能ping通) 2.安装Mysql. 命令:Yum ...

  9. 基于Groovy应用程序的spring boot

    spring boot CLI 它是使用Spring Boot的最简单的和快速的的方法.他是一个基于Groovy脚本的命令工具.可以按照以下步骤安装次工具: 1.去spring官网下载 http:// ...

  10. EM算法原理总结

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等.本文就对 ...