openfire 插件开发入门

我这里写的插件是基于openfire源码工程做的开发,不是专门开发of插件的工程

 

 

1、到OpenFire工程下,找到src/plugins目录,新建myplugin文件夹(即插件的最外层目录,插件的名称也是根据这个文件夹名称来确定的),然后在这个目录下需要建 lib、src目录和plugin.xml文件;src下再java 、web目录(web这个以后可能要用),如图:

 

 

2、在java目录中添加java文件继承Plugin接口,作为插件启动的入口

 

package com.maojd.test;

import java.io.File;

import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;

public class MyPlugin implements Plugin{

	private XMPPServer server;
//插件在启动的时候会调用initializePlugin这个方法
	@Override
	public void initializePlugin(PluginManager manager, File pluginDirectory) {
		// TODO Auto-generated method stub
		server = XMPPServer.getInstance();
		System.out.println("初始化安装插件....init myplugin mao");
		System.out.println(server.getServerInfo());
	}

	@Override
	public void destroyPlugin() {
		// TODO Auto-generated method stub
		System.out.println("服务器停止,销毁!   end myplugin mao");
	}

}

 

 

3、将java目录引入classpath路径,如图

 

4、编写plugin.xml配置文件

 

<?xml version="1.0" encoding="utf-8"?>
<plugin>
  <!-- Main plugin class  
  这里是最重要滴,就是你的插件的全路径
  -->
  <class>com.maojd.test.MaojdPlugin</class>
  <!-- Plugin meta-data -->
  <name>myplugin222</name>
  <description>This is the my sample
  plugin.description</description>
  <author>author maojd</author>
  <version>2.88888</version>
  <date>22/11/2013</date>
  <url>http://localhost:9090/openfire/plugins.jsp</url>
  <minServerVersion>3.4.1</minServerVersion>
  <licenseType>gpl</licenseType>
  <adminconsole></adminconsole>
</plugin>

a) 关于class标签是“包.类”全路径,插件在启动的时候会去找这个类,这个类一定是继承了Plugin接口,会去调用这个类的initializePlugin()方法

 

b)adminconsole标签是配置插件的jsp页面在of web工程中展现位置的说明。

 

5、使用ant编译插件,即双击build.xml文件中的 plugins这个子工程,编译完毕之后去target/openfire/plugins目录下面去查找,看有没有myplugin.jar这个文件,这个文件名就是第一步创建的文件夹,如图:

 

如果存在则说明插件开发成功,如果没有说明失败了,考虑哪里出错了

 

6、启动OpenFir项目。打开http://localhost:9090/plugin-admin.jsp,查看,刚才的插件已经现实出来,并且启动过程,控制台打开了刚才的 语句

 

 

 图片显示的的信息就是在plugin.xml文件中说明的属性,它前面展示的图标实际上是在myplugin目录中需要添加logo_large.gif 和 logo_small.gif图片作为展示

猜你喜欢

转载自hbiao68.iteye.com/blog/1986142