1. 程式人生 > >Eclipse下OpenFire4.0.2原始碼配置+簡單外掛開發

Eclipse下OpenFire4.0.2原始碼配置+簡單外掛開發

==============原始碼配置 begin==================

1.下載:地址

2.解壓到當前資料夾openfire_src,進入openfire_src>build>eclipse目錄下,把裡面settings、classpath、project三個檔案拷貝到openfire_src目錄,並用windows命令列重新命名它們:

rename settings .settings、rename classpath .classpath、rename project .project。

3.匯入工程到eclipse中,發現有些錯誤,一些jar包missing了。

不用擔心,直接把報錯的jar包remove掉,然後把build>lib下的所有jar包括資料夾裡面的jar都導進來。

這樣,整個工程就不會報錯了,OK。

4.在Build Path配置中把  /openfire_src/src/i18n 、/openfire_src/src/resources/jar 、/openfire_src/build/lib/dist 資料夾新增到 Source 中,如圖:


餘下來,按下面的圖完成操作即可:

-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"

注意:專案路徑 ${workspace_loc:

openfire_src}


然後,把整個工程用ant編譯一遍:


如果想單獨編譯某一個外掛的話:


==============原始碼配置 end==================

==============外掛開發 begin==================

  1、 在上一篇博文中,我介紹了Openfire3.9.3原始碼匯入eclipse中開發配置指南後,在這篇博文中,我介紹一下openfire外掛的開發,因為在很多使用openfire的過程中,需要更改openfire預設的一些行為,這就涉及到外掛的開發。這裡我也是寫一個HelloWorld的入門案例,希望起到一些拋磚引玉的作用,也算是對我工作,學習的一個總結吧,歡迎大家給我留言提出問題和不足,大家共同進步。

      2、案例外掛的功能

      這個外掛很簡單,就是在openfire Server啟動時,和關閉時,在控制檯打印出訊息。

      3、外掛開發的目錄結構設計

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

目錄太長,我擷取一部分,現在,我們開始寫外掛。在\openfire_src\src\plugins目錄下新建一個helloWorld的資料夾,然後在helloWorld目錄下新建一個src的資料夾,放頁面和原始檔,再新建一個lib目錄放第三方的jar包,然後在src資料夾下面新建web,Java兩個資料夾,web下面放置頁面,在這個案例沒有用到,可以不建,java資料夾下面放置java原始檔,現在目錄結構如下:

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

不要著急,做完這一步,我們的外掛就跟openfire自帶外掛一樣了,步驟截圖如下:

這時,我們看到,src目錄下的java目錄不見了,而在上面的原始碼目錄有了我們自己外掛了,截圖如下:

好了,我們先建一個包,如下:

輸入包名:

現在包建好了,我們在這個包中建一個java檔案,名為:HelloWorldPlugin,我就不截圖,這個學過java的人就應該知道,內容如下:

  1. package com.helloworld;  
  2. import java.io.File;  
  3. import org.jivesoftware.openfire.XMPPServer;  
  4. import org.jivesoftware.openfire.container.Plugin;  
  5. import org.jivesoftware.openfire.container.PluginManager;  
  6. publicclass HelloWorldPlugin implements Plugin {  
  7.     private XMPPServer server;  
  8.     public HelloWorldPlugin() {  
  9.     }  
  10.     @Override
  11.     publicvoid initializePlugin(PluginManager manager, File pluginDirectory) {  
  12.         server = XMPPServer.getInstance();  
  13.         System.out.println("HelloWorldPlugin----start");  
  14.         System.out.println(server.getServerInfo());  
  15.     }  
  16.     @Override
  17.     publicvoid destroyPlugin() {  
  18.         System.out.println("HelloWorldPlugin----destroy");  
  19.     }  
  20. }  
內容很簡單,就是在openfire啟動和關閉時,在控制檯打印出一條訊息。儲存好了,我們的java原始檔就寫好了,現在我們該來寫plugin.xml檔案了,內容如下:
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <plugin>
  3.     <class>com.helloworld.HelloWorldPlugin</class>
  4.     <name>helloWorld</name>
  5.     <description>First Openfire Custom Plugin.</description>
  6.     <author>xieyuan</author>
  7.     <version>1.0.0</version>
  8.     <date>14/07/2014</date>
  9.     <minServerVersion>3.9.0</minServerVersion>
  10.     <adminconsole>
  11.     </adminconsole>
  12. </plugin>
以及注意上面的class的配置,那個配置是最為重要的,配置的是外掛的全路徑;name是外掛的名稱,安裝後的外掛名稱;author是外掛作者;adminconsole是配置外掛關聯的頁面的;這裡不需要。

       4、編譯外掛

       展開\openfire_src\build目錄,我們發現有一個build.properties.template檔案,我們將其重新命名為:build.properties,在這個build.properties中加上一行:plugin=helloWorld,截圖如下:

使用ant編譯外掛,截圖操作如下:

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

之後,我們在控制檯上看到:

構建成功,我們在相應的目錄下,可以看到,生成的外掛包:helloWorld.jar

現在我們來執行我們的外掛,看在控制檯上能不能列印相應的資訊,啟動openfire,我們看到在控制檯上一句:

好了,大功告成,網上有很多人問,怎麼除錯外掛,這不很簡單,直接debug openfire不就行了:

終於完成,希望對大家有所裨益!!!睡覺


==============外掛開發 end==================

原文:

http://www.51itong.net/openfire4-0-2-eclipse-19194.html

http://blog.csdn.net/lovexieyuan520/article/details/37774909#