openfire插件最佳實踐(一)簡單插件開發

開發插件:簡單插件

準備:openfire服務,tomcat 5(用於插件編譯),eclipse

(1)新建一個java project工程。

     添加openfire.jar

   將工程路徑設置成如下樣式:



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>
<!-- Main plugin class-->
	<class>com.hoo.server.plugin.UserInfoPlugin</class>
<!-- Plugin meta-data -->
	<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" />
    
    <!-- java servlet相關文件編譯jar存放位置 -->
    <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>    
  
    
    <!-- 生成沒有Web資源的可部署插件包 -->
    <target name="java-plug-jar">
        <!-- 插件插件包相關lib、 web目錄 -->
        <mkdir dir="${webapp.path}/${plugin.name}/lib"/>
 
        <!-- 複製java servlet的相關jar包到插件包的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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章