本文主要是介绍Openfire插件开发的环境配置,该指南是在你已经完成了Eclipse中Openfire源码开发环境配置(详见:http://www.micmiu.com/opensource/openfire/openfire-src-config/)的基础之上的。
- 配置编译所有插件
- 配置编译一个已存在的插件
- 配置编译自己的插件
- 如何运行和调试插件
[一]、配置编译所有插件
- 点击 Run –> External Tools –> Open External Tools Dialog….
- 选择 Ant Build. 右击 Ant Build 选择 New. 创建一个新的配置
- 把新配置的默认名称:New_configuration 修改成:openfire build all plugins .
- 选择Main 标签,点击 Buildfile –> Browse Workspace…. 弹出 Choose Location 窗口
- Choose Location 窗口 左边 选择 openfire –> build ,右边窗口选择 build.xml ,点击OK 返回主配置界面
- 选择Targets 标签,选中名称为:plugins 的target,其他全部取消选中。
- 选择Common 标签,在 Display in favorites menu 下选中 the External Tools,便于以后快捷编译插件
- 点击主配置界面中的 Apply 和 Close 按钮
- 你只要点击:Run –> External Tools –> openfire build all plugins (和之前配置的名称一致)即可执行编译所有的插件
[二]、配置编译一个已存在的插件(以 search 插件为例)
- 点击 Run –> External Tools –> Open External Tools Dialog….
- 选择 Ant Build. 右击 Ant Build 选择 New. 创建一个新的配置
- 把新配置的默认名称:New_configuration 修改成:openfire build search plugins .
- 选择Main 标签,点击 Buildfile –> Browse Workspace…. 弹出 Choose Location 窗口
- Choose Location 窗口 左边 选择 openfire –> build ,右边窗口选择 build.xml ,点击OK 返回主配置界面
- 在Main 标签中的 Arguments 设置中添加参数配置:-Dplugin=search 。
- 选择Targets 标签,选中名称为:plugin (区别编译由于插件的target:plugins)的,其他全部取消选中。
- 选择Common 标签,在 Display in favorites menu 下选中 the External Tools,便于以后快捷编译插件
- 点击主配置界面中的 Apply 和 Close 按钮
- 之后只要点击:Run –> External Tools –> openfire build search plugins 即可执行编译一个指定的插件
- 编译好后,刷新项目会在 openfire_src\target\openfire\plugins 看到已经打包好的插件
[三]、配置编译自己的插件
自定义插件,最基本要满足如下两个条件:
- 根目录下要包含:plugin.xml
- 根目录下包含一个java源码文件夹,同时要有一个实现了org.jivesoftware.openfire.container.Plugin 接口的java类。
本文自定义一个 mmlog 的插件,结构如下:
1 2 3 4 5 6 7 8 9 10 11 |
..\openfire_src\src\plugins\mmlog │ plugin.xml │ └─src └─java └─com └─micmiu └─openfire └─plugins └─mmlog MMLogPlugin.java |
plugin.xml :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?xml version="1.0" encoding="UTF-8"?> <plugin> <class>com.micmiu.openfire.plugins.mmlog.MMPlugin</class> <name>mmlog</name> <description>This is an example plugin.</description> <author>Michael</author> <version>1.0</version> <date>3/19/2013</date> <minServerVersion>3.0.0</minServerVersion> <adminconsole> </adminconsole> </plugin> |
MMLogPlugin.java :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package com.micmiu.openfire.plugins.mmlog; import java.io.File; import org.jivesoftware.openfire.container.Plugin; import org.jivesoftware.openfire.container.PluginManager; /** * * @author <a href="http://www.micmiu.com">Michael Sun</a> */ public class MMLogPlugin implements Plugin { @Override public void initializePlugin(PluginManager manager, File pluginDirectory) { System.out.println("===> initializePlugin ..."); } @Override public void destroyPlugin() { System.out.println("===> destroyPlugin ..."); } } |
其他的编译配置的步骤和上面 第[三] 部分介绍编译一个已存在的插件的过程一致。
编译好后,刷新项目会在 openfire_src\target\openfire\plugins 看到已经打包好的插件:mmlog.jar
[四]、如何运行和调试插件
一个插件本身不会运行,它会随着Openfire 服务端程序的的启动而启动,不管是运行还是调试都需要依赖Openfire 服务端主程序。
[五]、参考文档
- http://community.igniterealtime.org/docs/DOC-1200
- http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html
- http://www.micmiu.com/opensource/openfire/openfire-src-config/
本文介绍到此结束@Michael Sun.
原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]
本文链接地址: http://www.micmiu.com/opensource/openfire/openfire-plugins-build/
最近在学习openfire, 谢谢楼主的文章帮了大忙 🙂
我有一个问题想要请教一下, 我按照楼主的这篇文章, 第一个插件也能正常运行, 但是每次修改插件然后Build Successful, 发现插件还是我修改前的版本, 每次更改插件的话都需要重启服务器才能应用更改, = =! 楼主遇没遇到这个问题? 需要设置哪里才能解决这个问题?
么有你说的这个问题哇,控制台进入插件管理模块,可以增加插件、启停插件,无需重启
楼主用控制台命令编译运行的么? 我是在eclipse下启动的openfire, 还有, 怎么在控制台进入插件管理模块 ❓
🙂 谢谢楼主分享的文章,这样的文章对于新手帮助很大,谢谢。
你好,我正在收集好博客的链接,做博客导航,有兴趣加入吗?到http://go.zhans.org/03/255.htm 留言哦