Openfire插件開發(fā)人員指南_第1頁
Openfire插件開發(fā)人員指南_第2頁
Openfire插件開發(fā)人員指南_第3頁
Openfire插件開發(fā)人員指南_第4頁
Openfire插件開發(fā)人員指南_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Openfire插件開發(fā)人員指南導言插件是增強Openfire功能。這份文件是一個開發(fā)人員創(chuàng)建插件指南。結構的一個插件插件存放在插件openfireHome名目。當部署一個jar或war插件文件,它會自動解壓安裝。該文件在插件名目結構如下:插件結構

myplugin/

|

-plugin.xml

插件定義文件

|-readme.html

任擇自述文件的插件,它會顯示給最終用戶

|-changelog.html

任擇修改文件的插件,它會顯示給最終用戶

|-icon_small.gif

可選?。?6x16)圖標與插件(也能夠是PNG文件)

|-icon_large.gif

可選大(32x32)圖標與插件(也能夠是PNG文件)

|classes/

資源的插件需要(即屬性文件)

|-database/

可選數據庫架構文件,你需要插件

|-i18n/

插件國際化的語言配置。

|-lib/

您的插件的jar包

|-web

資源的治理操縱臺集成,如果有的話

|-WEB-INF/

|-web.xml

生成web.xml中含有編譯JSP的條目

|-web-custom.xml

可選用戶自定義的web.xml中的自定義servlets

|-images/

圖片文件存放的名目web名目存在的插件,需要添加到Openfire治理操縱臺。進一步的細節(jié)如下。在plugin.xml文件規(guī)定的要緊插件類。樣本文件看起來可能如下:樣本plugin.xml<?xmlversion="1.0"encoding="UTF-8"?><plugin>

<!—需要的插件類-->

<class>org.example.ExamplePlugin</class>

<!--插件元數據-->

<name>ExamplePlugin</name>

<description>Thisisanexampleplugin.</description>

<author>JiveSoftware</author>

<version>1.0</version>

<date>07/01/2006</date>

<minServerVersion>3.0.0</minServerVersion>

<licenseType>gpl</licenseType>

<!--治理操縱臺的條目-->

<adminconsole>

<!--Moreonthisbelow-->

</adminconsole></plugin>該元數據的領域,能夠設置在plugin.xml文件:

name

-插件的名稱。

description

-插件的講明。

author

-插件的作者。

version

-該插件的版本。

date

-公布日期如2006年7月1日。

url

-插件網址。

minServerVersion

-最低Openfire版本

databaseKey

-如果插件需要它自己的數據表,該databaseKey內容應當設置一個架構要緊名稱(通常是相同名稱的插件)。數據庫架構文件為每個支持的數據庫,然后放置在數據庫名目下的插件。例如,

“foo”,架構文件將被稱為“foo_mysql.sql”

,

“foo_oracle.sql”等等,我們建議您,您的表前綴of

,以幸免可能的沖突與其他應用程序安裝在同一數據庫。腳本應該進入ofVersion表使用的關鍵,如此的架構版本信息可跟蹤,例如:

INSERTINTOofVersion(name,version)VALUES('foo',0);

databaseVersion-數據庫版本號(如果數據庫模式的定義)。新的插件與數據庫架構應該開始在版本。假現在后插件版本的需要更新,這些更新能夠定義創(chuàng)建子名目中的升級數據庫名目為每個版本。例如,名目database/upgrade/1和database/upgrade/2將包含腳本,如“foo_mysql.sql”和“foo_oracle.sql”中包含有關的數據庫,為每一個版本的變化。每個腳本應該更新版本中的信息ofVersion表,例如:

UPDATEofVersionsetversion=1wherename='foo';

parentPlugin-父層插件(作為“foo”的“foo.jar”插件)。當一個插件有一個父插件,插件的類加載器將被使用來而不是建立一個新的類加載器。這可讓插件更加緊密地協同工作。子插件將可不能阻礙其父插件。

“l(fā)icenseType”:顯示許可協議,該插件是由。有效值如下:o

“commercial”:commercial

“商業(yè)”

:插件是下公布的商業(yè)許可協議。o

“gpl”:

“通用公共許可證”

:插件公布使用GNU公共授權(

GPL

)。o

“apache”

:該插件公布的Apache許可證。o

“internal”

:(內部)插件是供內部使用的一個組織只,并可不能重新分配。o

“other”

:(其他)插件是許可下公布agrement不屬于其中的其他類別。許可協議的細節(jié)應該在插件的自述。如果許可證類型未設置,這是假定其他。一些額外的文件都能夠在該插件提供更多資料,以最終用戶(所有放置在要緊的插件名目):

readme.html

-可選自述文件的插件,它會顯示給最終用戶。

changelog.html

-可選修改文件的插件,它會顯示給最終用戶。

icon_small.png

-可選小(

16x16

)圖標有關插件。也能夠是。

GIF文件。

icon_large.png

-可選大(

32x32

)圖標有關插件。也能夠是。

GIF文件。采樣插件執(zhí)行packageorg.example;

importorg.jivesoftware.openfire.container.Plugin;importorg.jivesoftware.openfire.container.PluginManager;

importjava.io.File;

/***AsamplepluginforOpenfire.*/publicclassExamplePluginimplementsPlugin{

publicvoidinitializePlugin(PluginManagermanager,FilepluginDirectory){

//您的代碼

}

publicvoiddestroyPlugin(){

//您的代碼

}}GeneralPluginBestPractices一樣插件最佳實踐在選擇軟件包的名稱為您的插件,我們建議您選擇一些與眾不同的您和/或您的組織,以關心幸免沖突盡可能。例如,如果每個人去與org.example.PluginName

,即使PluginName是不同的,您可能會開始投放到一些沖突在那個地點和那兒的類名。專門是當工作與聚類。。修改治理操縱臺插件能夠添加標簽,區(qū)段,和網頁的治理操縱臺。有幾個步驟,以完成這項:

第一個<adminconsole/>必須添加到plugin.xml文件。

JSP的文件必須編制和實施的類路徑的插件。阿web.xml中的匯編文件,其中包含的JSPservlet的條目必須付諸網頁/名目下的插件。注:

Openfire建立腳本能夠協助編制JSPs和制造web.xml中。這是詳細講明如下。

任何圖像所需的JSP頁面必須住在網頁/圖像/名目。只有GIF和PNG圖像的支持。該<adminconsole/>部分plugin.xml定義額外的標簽,科和項目治理操縱臺框架。抽樣plugin.xml文件看起來可能如下:樣本plugin.xml<?xmlversion="1.0"encoding="UTF-8"?><plugin>

<!--要緊插件類-->

<class>org.example.ExamplePlugin</class>

<!--治理操縱臺的條目-->

<adminconsole>

<tabid="mytab"name="Example"url="my-plugin-admin.jsp"description="Clicktomanage...">

<sidebarid="mysidebar"name="MyPlugin">

<itemid="my-plugin"name="MyPluginAdmin"

url="my-plugin-admin.jsp"

description="Clicktoadministersettingsformyplugin"/>

</sidebar>

</tab>

</adminconsole></plugin>在那個例子中,我們定義一個新的標簽“范例”

,一個工具欄目“我的插件”和一個網頁“我的插件治理”

。我們差不多注冊的,插件admin.jsp頁面。您能夠覆蓋現有的標簽,區(qū)段,項目利用現有的ID屬性值在自己的<adminconsole>定義。治理操縱臺最佳實踐有幾種最佳做法時,需要考慮變更Openfire治理操縱臺通過一個插件??偟闹黝}是無縫集成的插件應該:

集成到現有的標簽和側欄節(jié)只要有可能不是創(chuàng)建自己的。只有制造新標簽的專門重要的新功能。

不要用“插件”的名稱,標簽,

sidebars和項目。例如,有一個項目叫做“網關插件”

,也可能是所謂的“網關設置”

。

嘗試以符合現有的用戶界面治理操縱臺在您的自定義插件的網頁。

沒有必要建立一個治理操縱臺進入查看插件元數據。相反,讓Openfire告知用戶有關該插件安裝,并提供插件治理。寫作網頁治理操縱臺建立網頁,與Sitemesh是容易的。只要創(chuàng)建有效的HTML頁面,然后使用中繼標記來傳送指示Sitemesh

。當渲染輸出,Sitemesh將使用您所提供的指示,使裝修的任何內容,在您的HTML網頁。以下元標記可用于:

pageID

-的ID的網頁,其中必須符合入境治理操縱臺中的XML上文所述。要么pageID或subPageID

必須指定。

subPageID

-的ID小組網頁,其中必須符合入境治理操縱臺中的XML上文所述。小組網頁用于行政行為涉及到父頁面編號。例如,編輯或刪除某一特定群體。要么pageID或subPageID

必須指定。

extraParams

(可選)

-額外的參數,應通過網頁。例如,在網頁上刪除一組可能的ID集團。參數必須是URL編碼。

裝修(可選)

-覆寫Sitemesh裝修使用的網頁。裝修沒有命名,將可提供簡單的網頁沒有裝修。下面的HTML代碼段顯示了有效的網頁:范例<html>

<head>

<title>MyPluginPage</title>

<metaname="pageID"content="myPluginPage"/>

</head>

<body>

Bodyhere!

</body>

</html>在您使用本土化插件這有可能把你的插件成多種語言化(

i18n

)。為此,請使用下列程序進行:

創(chuàng)建一個“i18n”名目的根名目中的插件。

字符串轉換在您的JSP的文件指的是國際鑰匙。例如:

...

<fmt:messagekey=""/>

國際化在你的Java文件使用LocaleUtilsclass:

org.jivesoftware.util.LocaleUtils.getLocalizedString("","[plugin_name]");

國際化plugin.xml文件在您使用$

(葉)格式:

<sidebarid="gateways"name="${}"description="${plugin.sidebar.description}">

<description>${plugin.description}</description>使用Openfire構建腳本在Openfire建立腳本將關心您建立和進展插件。它看起來的插件開發(fā)名目格式如下:插件結構myplugin/|-plugin.xml

<-插件定義文件|-readme.html

<-插件自述文件|-changelog.html

<-插件修改的日志|-icon_small.gif

<-縮略圖片(16x16)|-icon_large.gif

<-圖片(32x32)

|-classes/

<-資源的插件需要(即屬性文件)|-lib/

<-包|-src/

|-database

<-可選的數據庫腳本的插件

|-java

<-插件的Java源代碼

|

|-com

|

|-mycompany

|

|-*.java

|-web

|-*.jsp

<-jsp頁面

|-images/

<-圖片文件

|-WEB-INF

|-web.xml

<-可選的文件自定義servlets能夠注冊構建腳本將編譯源文件和JSPs

,并建立有效的插件結構和JAR文件。把你的插件名目中的

src

/插件名目下的源分布,然后用antplugins來建立您的插件。任何JAR文件的插件需要在匯編應放到lib名目。這些JAR文件也將被復制到插件的生成lib名目的構建過程的一部份。如果您創(chuàng)建一個src/web/WEB-INF/web.xml,注冊servlets初始化時啟動插件。只有注冊的servlet和servlet的映在web.xml中的文件。注:此功能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論