openfire插件最佳实践(一)简单插件开发

时间:2021-01-22 14:43:51
 

openfire插件最佳实践(一)简单插件开发

 1378人阅读 评论(0) 收藏 举报 openfire插件最佳实践(一)简单插件开发 分类:

开发插件:简单插件

准备:openfire服务,tomcat 5(用于插件编译),eclipse

(1)新建一个Java project工程。

     添加openfire.jar

   将工程路径设置成如下样式:

openfire插件最佳实践(一)简单插件开发


src/plugins/userinfo 是我的插件

com.hoo.server.plugin 是自定义的包名

目录结构很重要。因为我们将写好的插件打成jar包后,打包的jar的目录有一定规范结构,不能随便建立其他目录。

web目录中则是前端的页面,其中web-custom.xml是配置当前插件UserServiceServlet配置;plugin.xml是我们配置插件的文件,这个很重要。

(2)新建一个插件类UserInfoPlugin.Java 实现 Plugin接口

[java] view plain copy
  1. package com.hoo.server.plugin;  
  2.   
  3. import java.io.File;  
  4.   
  5. import org.jivesoftware.openfire.XMPPServer;  
  6. import org.jivesoftware.openfire.container.Plugin;  
  7. import org.jivesoftware.openfire.container.PluginManager;  
  8. import org.jivesoftware.openfire.handler.IQvCardHandler;  
  9.   
  10. public class UserInfoPlugin implements Plugin{  
  11. private XMPPServer server;  
  12.       
  13.     @Override  
  14.     public void initializePlugin(PluginManager manager, File pluginDirectory) {  
  15.         server = XMPPServer.getInstance();  
  16.         System.out.println("初始化…… 安装插件!");  
  17.           
  18.     }  
  19.    
  20.     @Override  
  21.     public void destroyPlugin() {  
  22.         System.out.println("销毁插件!");  
  23.     }     
  24. }  
在初始化插件和销毁插件时可以看到打印。

(3)配置插件,在plugin.xml中写入如下信息

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <plugin>  
  3. <!-- Main plugin class-->  
  4.     <class>com.hoo.server.plugin.UserInfoPlugin</class>  
  5. <!-- Plugin meta-data -->  
  6.     <name>UserInfoPlugin</name>  
  7.     <description>user infomation plugin.</description>  
  8.     <author>lee</author>  
  9.    
  10.     <version>1.0</version>  
  11.     <date>19/12/2013</date>  
  12.     <url>http://localhost:9090/openfire/plugins.jsp</url>  
  13.     <minServerVersion>3.7.1</minServerVersion>  
  14.     <licenseType>gpl</licenseType>  
  15. </plugin>  

配置的是插件的全路径。name是插件的名称,安装后的插件名称;author是插件作者;lincenseType是协议。

(4)在工程根目录下简历build.xml和build.properties两个文件(用于使用ant进行编译)


[html] view plain copy
  1. <project name="Webapp Precompilation" default="openfire-plugins" basedir=".">  
  2.     <property file="build.properties" />  
  3.       
  4.     <!-- java servlet相关文件编译jar存放位置 -->  
  5.     <property name="java.jar.dir" value="${webapp.path}/java-dist"/>   
  6.     
  7.     <target name="java-jar">  
  8.         <mkdir dir="${java.jar.dir}"/>  
  9.         <jar jarfile="${java.jar}">  
  10.             <fileset dir="${webapp.path}/bin" includes="**/*.class"/>  
  11.         </jar>      
  12.     </target>      
  13.     
  14.       
  15.     <!-- 生成没有Web资源的可部署插件包 -->  
  16.     <target name="java-plug-jar">  
  17.         <!-- 插件插件包相关lib、 web目录 -->  
  18.         <mkdir dir="${webapp.path}/${plugin.name}/lib"/>  
  19.    
  20.         <!-- 复制java servlet的相关jar包到插件包的lib目录下 -->  
  21.         <copy file="${java.jar}" todir="${webapp.path}/${plugin.name}/lib"/>  
  22.    
  23.         <!-- 将相关的图片、帮助文档、修改日志等文件复制到插件目录下 -->  
  24.         <copy todir="${webapp.path}/${plugin.name}">  
  25.             <fileset dir="${plugin.path}" includes="*.*"/>  
  26.         </copy>  
  27.           
  28.         <!-- 产生可部署插件包 -->  
  29.         <jar jarfile="${webapp.path}/${plugin.name}.jar">  
  30.             <fileset dir="${webapp.path}/${plugin.name}" includes="**/**"/>  
  31.         </jar>      
  32.     </target>  
  33.                       
  34.     <!-- 清理生成的文件 -->  
  35.     <target name="clean">  
  36.         <delete file="${webapp.path}/${plugin.name}.jar"/>  
  37.         <delete dir="${webapp.path}/${plugin.name}"/>  
  38.         <delete dir="${webapp.path}/jsp-dist"/>  
  39.         <delete dir="${webapp.path}/java-dist"/>  
  40.     </target>    
  41.       
  42.     <target name="openfire-plugin-java" depends="clean,java-jar,java-plug-jar"/>  
  43. </project>  

[plain] view plain copy
  1. #tomcat home  
  2. tomcat.home=D:/tomcat-5.0.28/tomcat-5.0.28  
  3. webapp.path=D:/Workspace/OpenfirePlugin  
  4.    
  5. plugin.name=sample  
  6. 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