开发插件:简单插件
准备:openfire服务,tomcat 5(用于插件编译),eclipse
(1)新建一个Java project工程。
添加openfire.jar
将工程路径设置成如下样式:
![](https://img-blog.csdn.net/20131227172624875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGR3dGlsbA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
src/plugins/userinfo 是我的插件
com.hoo.server.plugin 是自定义的包名
目录结构很重要。因为我们将写好的插件打成jar包后,打包的jar的目录有一定规范结构,不能随便建立其他目录。
web目录中则是前端的页面,其中web-custom.xml是配置当前插件UserServiceServlet配置;plugin.xml是我们配置插件的文件,这个很重要。
(2)新建一个插件类UserInfoPlugin.Java 实现 Plugin接口
- package com.hoo.server.plugin;
-
- import java.io.File;
-
- import org.jivesoftware.openfire.XMPPServer;
- import org.jivesoftware.openfire.container.Plugin;
- import org.jivesoftware.openfire.container.PluginManager;
- import org.jivesoftware.openfire.handler.IQvCardHandler;
-
- public class UserInfoPlugin implements Plugin{
- private XMPPServer server;
-
- @Override
- public void initializePlugin(PluginManager manager, File pluginDirectory) {
- server = XMPPServer.getInstance();
- System.out.println("初始化…… 安装插件!");
-
- }
-
- @Override
- public void destroyPlugin() {
- System.out.println("销毁插件!");
- }
- }
在初始化插件和销毁插件时可以看到打印。
(3)配置插件,在plugin.xml中写入如下信息
- <?xml version="1.0" encoding="UTF-8"?>
- <plugin>
-
- <class>com.hoo.server.plugin.UserInfoPlugin</class>
-
- <name>UserInfoPlugin</name>
- <description>user infomation plugin.</description>
- <author>lee</author>
-
- <version>1.0</version>
- <date>19/12/2013</date>
- <url>http://localhost:9090/openfire/plugins.jsp</url>
- <minServerVersion>3.7.1</minServerVersion>
- <licenseType>gpl</licenseType>
- </plugin>
配置的是插件的全路径。name是插件的名称,安装后的插件名称;author是插件作者;lincenseType是协议。
(4)在工程根目录下简历build.xml和build.properties两个文件(用于使用ant进行编译)
- <project name="Webapp Precompilation" default="openfire-plugins" basedir=".">
- <property file="build.properties" />
-
-
- <property name="java.jar.dir" value="${webapp.path}/java-dist"/>
-
- <target name="java-jar">
- <mkdir dir="${java.jar.dir}"/>
- <jar jarfile="${java.jar}">
- <fileset dir="${webapp.path}/bin" includes="**/*.class"/>
- </jar>
- </target>
-
-
-
- <target name="java-plug-jar">
-
- <mkdir dir="${webapp.path}/${plugin.name}/lib"/>
-
-
- <copy file="${java.jar}" todir="${webapp.path}/${plugin.name}/lib"/>
-
-
- <copy todir="${webapp.path}/${plugin.name}">
- <fileset dir="${plugin.path}" includes="*.*"/>
- </copy>
-
-
- <jar jarfile="${webapp.path}/${plugin.name}.jar">
- <fileset dir="${webapp.path}/${plugin.name}" includes="**/**"/>
- </jar>
- </target>
-
-
- <target name="clean">
- <delete file="${webapp.path}/${plugin.name}.jar"/>
- <delete dir="${webapp.path}/${plugin.name}"/>
- <delete dir="${webapp.path}/jsp-dist"/>
- <delete dir="${webapp.path}/java-dist"/>
- </target>
-
- <target name="openfire-plugin-java" depends="clean,java-jar,java-plug-jar"/>
- </project>
- #tomcat home
- tomcat.home=D:/tomcat-5.0.28/tomcat-5.0.28
- webapp.path=D:/Workspace/OpenfirePlugin
-
- plugin.name=sample
- plugin.path=D\:/Workspace/OpenfirePlugin/src/plugins/userinfo
执行命令后,你可以看到工作空间的工程目录下多了目录和文件。其中sample.jar就是你所要安装的插件。
(5)安装插件
安装插件有两种方式:
①直接将sample.jar放置在openfire服务器的plugins目录下,重启openfire服务
②在openfire启动的情况下,访问http://localhost:9090/plugin-admin.jsp页面,直接安装插件。
参考资料:
http://phoenixtoday.blogbus.com/logs/20285574.html
http://steven-lee.iteye.com/blog/680762
http://www.cnblogs.com/ErinCodeMM/archive/2012/03/06/2382312.html
http://www.cnblogs.com/hoojo/archive/2013/03/29/2988437.html
http://www.cnblogs.com/ErinCodeMM/archive/2011/12/25/2301220.html
http://314858770.iteye.com/blog/908249
http://blog.csdn.net/majian_1987/article/details/9812933
http://www.cnblogs.com/rioder/archive/2013/01/23/2873549.html
http://abin888.blog.sohu.com/236481227.html
http://iluoxuan.iteye.com/blog/1736252
http://aijiawang-126-com.iteye.com/blog/1825424