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

Openfire插件开发坏境配置指南

openfire 云聊IM 1180℃

本文主要是介绍Openfire插件开发的环境配置,该指南是在你已经完成了Eclipse中Openfire源码开发环境配置的基础之上的。

[一]、配置编译所有插件

  1. 点击 Run –> External Tools –> Open External Tools Dialog….
  2. 选择 Ant Build. 右击 Ant Build 选择 New. 创建一个新的配置
  3. 把新配置的默认名称:New_configuration 修改成:openfire build all plugins .
  4. 选择Main 标签,点击 Buildfile –> Browse Workspace…. 弹出 Choose Location 窗口
  5. Choose Location 窗口 左边 选择 openfire –> build ,右边窗口选择 build.xml ,点击OK 返回主配置界面
  6. 选择Targets 标签,选中名称为:plugins 的target,其他全部取消选中。
  7. 选择Common 标签,在 Display in favorites menu 下选中 the External Tools,便于以后快捷编译插件
  8. 点击主配置界面中的 Apply 和 Close 按钮
  9. 你只要点击:Run –> External Tools –> openfire build all plugins (和之前配置的名称一致)即可执行编译所有的插件

[二]、配置编译一个已存在的插件(以 search 插件为例)

  1. 点击 Run –> External Tools –> Open External Tools Dialog….
  2. 选择 Ant Build. 右击 Ant Build 选择 New. 创建一个新的配置
  3. 把新配置的默认名称:New_configuration 修改成:openfire build search plugins .
  4. 选择Main 标签,点击 Buildfile –> Browse Workspace…. 弹出 Choose Location 窗口
  5. Choose Location 窗口 左边 选择 openfire –> build ,右边窗口选择 build.xml ,点击OK 返回主配置界面
  6. 在Main 标签中的 Arguments 设置中添加参数配置:-Dplugin=search 。
  7. 选择Targets 标签,选中名称为:plugin (区别编译由于插件的target:plugins)的,其他全部取消选中。
  8. 选择Common 标签,在 Display in favorites menu 下选中 the External Tools,便于以后快捷编译插件
  9. 点击主配置界面中的 Apply 和 Close 按钮
  10. 之后只要点击:Run –> External Tools –> openfire build search plugins 即可执行编译一个指定的插件
  11. 编译好后,刷新项目会在 openfire_src\target\openfire\plugins 看到已经打包好的插件

[三]、配置编译自己的插件

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

根目录下要包含:plugin.xml

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

插件开发的详细参见:http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html

本文自定义一个 mmlog 的插件,结构如下:

..\openfire_src\src\plugins\mmlog
│  plugin.xml
│
└─src
    └─java
        └─com
            └─micmiu
                └─openfire
                    └─plugins
                        └─mmlog
                                MMLogPlugin.java

plugin.xml :

<?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 :

package com.micmiu.openfire.plugins.mmlog;
 
import java.io.File;
 
import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;
 
/**
 *
 * @author Michael Sun
 */
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 服务端主程序。

[五]、参考文档

  1. http://community.igniterealtime.org/docs/DOC-1200
  2. http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html
  3. http://www.micmiu.com/opensource/openfire/openfire-src-config/

本文转自:http://www.micmiu.com/opensource/openfire/openfire-plugins-build/

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