openfire插件開發

  一、 在上一篇博文中,我介紹了Openfire3.9.3源代碼導入eclipse中開發配置指南後,在這篇博文中,我介紹一下openfire插件的開發,由於在不少使用openfire的過程當中,須要更改openfire默認的一些行爲,這就涉及到插件的開發。這裏我也是寫一個HelloWorld的入門案例,但願起到一些拋磚引玉的做用,也算是對我工做,學習的一個總結吧,歡迎你們給我留言提出問題和不足,你們共同進步。html

      二、案例插件的功能java

      這個插件很簡單,就是在openfire Server啓動時,和關閉時,在控制檯打印出消息。web

      三、插件開發的目錄結構設計app

       先來看一下當前openfire在eclipse中的目錄結構:eclipse

目錄太長,我截取一部分,如今,咱們開始寫插件。在\openfire_src\src\plugins目錄下新建一個helloWorld的文件夾,而後在helloWorld目錄下新建一個src的文件夾,放頁面和源文件,再新建一個lib目錄放第三方的jar包,而後在src文件夾下面新建web,java兩個文件夾,web下面放置頁面,在這個案例沒有用到,能夠不建,java文件夾下面放置java源文件,如今目錄結構以下:ide

changelog.html、plugin.xml、readme.html這三個文件分別是你的插件修改日誌文件,插件文件和自述文件,其中plugin.xml這個文件很重要,後面我還要解釋,先空着,logo_large.gif和logo_small.gif是插件的logo文件,我隨便拷了兩個。各位,作好上面的步驟之後,注意了,跟openfire自帶插件的目錄結構不同,細心的朋友可能注意到了,我新建的src下面有個java目錄,而openfire自帶插件則沒有,而是跑到上面去了,以下:學習

不要着急,作完這一步,咱們的插件就跟openfire自帶插件同樣了,步驟截圖以下:ui

這時,咱們看到,src目錄下的java目錄不見了,而在上面的源碼目錄有了咱們本身插件了,截圖以下:spa

好了,咱們先建一個包,以下:.net

輸入包名:

如今包建好了,咱們在這個包中建一個java文件,名爲:HelloWorldPlugin,我就不截圖,這個學過java的人就應該知道,內容以下:

 

[java] view plain copy

 在CODE上查看代碼片派生到個人代碼片

  1. package com.helloworld;  
  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.   
  9. public class HelloWorldPlugin implements Plugin {  
  10.     private XMPPServer server;  
  11.   
  12.     public HelloWorldPlugin() {  
  13.   
  14.     }  
  15.   
  16.     @Override  
  17.     public void initializePlugin(PluginManager manager, File pluginDirectory) {  
  18.         server = XMPPServer.getInstance();  
  19.         System.out.println("HelloWorldPlugin----start");  
  20.         System.out.println(server.getServerInfo());  
  21.     }  
  22.   
  23.     @Override  
  24.     public void destroyPlugin() {  
  25.         System.out.println("HelloWorldPlugin----destroy");  
  26.     }  
  27.   
  28. }  

內容很簡單,就是在openfire啓動和關閉時,在控制檯打印出一條消息。保存好了,咱們的java源文件就寫好了,如今咱們該來寫plugin.xml文件了,內容以下:

 

 

[html] view plain copy

 在CODE上查看代碼片派生到個人代碼片

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <plugin>  
  4.     <class>com.helloworld.HelloWorldPlugin</class>  
  5.     <name>helloWorld</name>  
  6.     <description>First Openfire Custom Plugin.</description>  
  7.     <author>xieyuan</author>  
  8.     <version>1.0.0</version>  
  9.     <date>14/07/2014</date>  
  10.     <minServerVersion>3.9.0</minServerVersion>  
  11.       
  12.     <adminconsole>  
  13.     </adminconsole>  
  14.   
  15. </plugin>  

以及注意上面的class的配置,那個配置是最爲重要的,配置的是插件的全路徑;name是插件的名稱,安裝後的插件名稱;author是插件做者;adminconsole是配置插件關聯的頁面的;這裏不須要。

 

       四、編譯插件

       展開\openfire_src\build目錄,咱們發現有一個build.properties.template文件,咱們將其重命名爲:build.properties,在這個build.properties中加上一行:plugin=helloWorld,截圖以下:

使用ant編譯插件,截圖操做以下:

在彈出的target中選擇build one plugin,點擊Apply,Run:

以後,咱們在控制檯上看到:

構建成功,咱們在相應的目錄下,能夠看到,生成的插件包:helloWorld.jar

如今咱們來運行咱們的插件,看在控制檯上能不能打印相應的信息,啓動openfire,咱們看到在控制檯上一句:

好了,大功告成,網上有不少人問,怎麼調試插件,這不很簡單,直接debug openfire不就好了:

終於完成,但願對你們有所裨益!!!睡覺

相關文章
相關標籤/搜索