版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
插件開(kāi)發(fā)人員指南導(dǎo)言插件是增強(qiáng)Openfire功能。這份文件是一個(gè)開(kāi)發(fā)人員創(chuàng)建插件指南。結(jié)構(gòu)的一個(gè)插件插件存放在插件openfireHome名目。當(dāng)部署一個(gè)jar或war插件文件,它會(huì)自動(dòng)解壓安裝。該文件在插件名目結(jié)構(gòu)如下:插件結(jié)構(gòu)
myplugin/
|
-plugin.xml
插件定義文件
|-readme.html
任擇自述文件的插件,它會(huì)顯示給最終用戶(hù)
|-changelog.html
任擇修改文件的插件,它會(huì)顯示給最終用戶(hù)
|-icon_small.gif
可選?。?6x16)圖標(biāo)與插件(也能夠是PNG文件)
|-icon_large.gif
可選大(32x32)圖標(biāo)與插件(也能夠是PNG文件)
|classes/
資源的插件需要(即屬性文件)
|-database/
可選數(shù)據(jù)庫(kù)架構(gòu)文件,你需要插件
|-i18n/
插件國(guó)際化的語(yǔ)言配置。
|-lib/
您的插件的jar包
|-web
資源的治理操縱臺(tái)集成,假如有的話(huà)
|-WEB-INF/
|-web.xml
生成web.xml中含有編譯JSP的條目
|-web-custom.xml
可選用戶(hù)自定義的web.xml中的自定義servlets
|-images/
圖片文件存放的名目web名目存在的插件,需要添加到Openfire治理操縱臺(tái)。進(jìn)一步的細(xì)節(jié)如下。在plugin.xml文件規(guī)定的要緊插件類(lèi)。樣本文件看起來(lái)可能如下:樣本plugin.xml<?xmlversion="1.0"encoding="UTF-8"?><plugin>
<!—需要的插件類(lèi)-->
<class>org.example.ExamplePlugin</class>
<!--插件元數(shù)據(jù)-->
<name>ExamplePlugin</name>
<description>Thisisanexampleplugin.</description>
<author>JiveSoftware</author>
<version>1.0</version>
<date>07/01/2006</date>
<url>:///projects/openfire/plugins.jsp</url>
<minServerVersion>3.0.0</minServerVersion>
<licenseType>gpl</licenseType>
<!--治理操縱臺(tái)的條目-->
<adminconsole>
<!--Moreonthisbelow-->
</adminconsole></plugin>該元數(shù)據(jù)的領(lǐng)域,能夠設(shè)置在plugin.xml文件:
name
-插件的名稱(chēng)。
description
-插件的說(shuō)明。
author
-插件的作者。
version
-該插件的版本。
date
-公布日期如2006年7月1日。
url
-插件網(wǎng)址。
minServerVersion
-最低Openfire版本
databaseKey
-假如插件需要它自己的數(shù)據(jù)表,該databaseKey內(nèi)容應(yīng)設(shè)立一個(gè)架構(gòu)要緊名稱(chēng)(通常是相同名稱(chēng)的插件)。數(shù)據(jù)庫(kù)架構(gòu)文件為每個(gè)支持的數(shù)據(jù)庫(kù),然后放置在數(shù)據(jù)庫(kù)名目下的插件。例如,
“foo”,架構(gòu)文件將被稱(chēng)為“foo_mysql.sql”
,
“foo_oracle.sql”等等,我們建議您,您的表前綴of
,以幸免可能的沖突與其他應(yīng)用程序安裝在同一數(shù)據(jù)庫(kù)。腳本應(yīng)該進(jìn)入ofVersion表使用的關(guān)鍵,如此的架構(gòu)版本信息可跟蹤,例如:
INSERTINTOofVersion(name,version)VALUES('foo',0);
databaseVersion-數(shù)據(jù)庫(kù)版本號(hào)(假如數(shù)據(jù)庫(kù)模式的定義)。新的插件與數(shù)據(jù)庫(kù)架構(gòu)應(yīng)該開(kāi)始在版本。假現(xiàn)在后插件版本的需要更新,這些更新能夠定義創(chuàng)建子名目中的升級(jí)數(shù)據(jù)庫(kù)名目為每個(gè)版本。例如,名目database/upgrade/1和database/upgrade/2將包含腳本,如“foo_mysql.sql”和“foo_oracle.sql”中包含相關(guān)的數(shù)據(jù)庫(kù),為每一個(gè)版本的變化。每個(gè)腳本應(yīng)該更新版本中的信息ofVersion表,例如:
UPDATEofVersionsetversion=1wherename='foo';
parentPlugin-父層插件(作為“foo”的“foo.jar”插件)。當(dāng)一個(gè)插件有一個(gè)父插件,插件的類(lèi)加載器將被使用來(lái)而不是建立一個(gè)新的類(lèi)加載器。這可讓插件更加緊密地協(xié)同工作。子插件將可不能阻礙其父插件。
“l(fā)icenseType”:顯示許可協(xié)議,該插件是由。有效值如下:o
“commercial”:commercial
“商業(yè)”
:插件是下公布的商業(yè)許可協(xié)議。o
“gpl”:
“通用公共許可證”
:插件公布使用GNU公共授權(quán)(
GPL
)。o
“apache”
:該插件公布的Apache許可證。o
“internal”
:(內(nèi)部)插件是供內(nèi)部使用的一個(gè)組織只,并可不能重新分配。o
“other”
:(其他)插件是許可下公布agrement不屬于其中的其他類(lèi)別。許可協(xié)議的細(xì)節(jié)應(yīng)該在插件的自述。假如許可證類(lèi)型未設(shè)置,這是假定其他。一些額外的文件都能夠在該插件提供更多資料,以最終用戶(hù)(所有放置在要緊的插件名目):
readme.html
-可選自述文件的插件,它會(huì)顯示給最終用戶(hù)。
changelog.html
-可選修改文件的插件,它會(huì)顯示給最終用戶(hù)。
icon_small.png
-可選?。?/p>
16x16
)圖標(biāo)相關(guān)插件。也能夠是。
GIF文件。
icon_large.png
-可選大(
32x32
)圖標(biāo)相關(guān)插件。也能夠是。
GIF文件。interfacefromthe
OpenfireAPI
aswellashaveadefault(noargument)contructor.您的插件類(lèi)必須執(zhí)行插件接口從Openfire的API
,以及有一個(gè)缺?。o(wú)參數(shù))
contructor
。插件接口方法初始化和銷(xiāo)毀插件。采樣插件執(zhí)行packageorg.example;
importorg.jivesoftware.openfire.container.Plugin;importorg.jivesoftware.openfire.container.PluginManager;
importjava.io.File;
/***AsamplepluginforOpenfire.*/publicclassExamplePluginimplementsPlugin{
publicvoidinitializePlugin(PluginManagermanager,FilepluginDirectory){
//您的代碼
}
publicvoiddestroyPlugin(){
//您的代碼
}}GeneralPluginBestPractices一樣插件最佳實(shí)踐在選擇軟件包的名稱(chēng)為您的插件,我們建議您選擇一些與眾不同的您和/或您的組織,以關(guān)心幸免沖突盡可能。例如,假如每個(gè)人去與org.example.PluginName
,即使PluginName是不同的,您可能會(huì)開(kāi)始投放到一些沖突在那個(gè)地點(diǎn)和那兒的類(lèi)名。專(zhuān)門(mén)是當(dāng)工作與聚類(lèi)。。修改治理操縱臺(tái)插件能夠添加標(biāo)簽,區(qū)段,和網(wǎng)頁(yè)的治理操縱臺(tái)。有幾個(gè)步驟,以完成這項(xiàng):
第一個(gè)<adminconsole/>必須添加到plugin.xml文件。
JSP的文件必須編制和實(shí)施的類(lèi)路徑的插件。阿web.xml中的匯編文件,其中包含的JSPservlet的條目必須付諸網(wǎng)頁(yè)/名目下的插件。注:
Openfire建立腳本能夠協(xié)助編制JSPs和制造web.xml中。這是詳細(xì)說(shuō)明如下。
任何圖像所需的JSP頁(yè)面必須住在網(wǎng)頁(yè)/圖像/名目。只有GIF和PNG圖像的支持。該<adminconsole/>部分plugin.xml定義額外的標(biāo)簽,科和項(xiàng)目治理操縱臺(tái)框架。抽樣plugin.xml文件看起來(lái)可能如下:樣本plugin.xml<?xmlversion="1.0"encoding="UTF-8"?><plugin>
<!--要緊插件類(lèi)-->
<class>org.example.ExamplePlugin</class>
<!--治理操縱臺(tái)的條目-->
<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>在那個(gè)例子中,我們定義一個(gè)新的標(biāo)簽“范例”
,一個(gè)工具欄目“我的插件”和一個(gè)網(wǎng)頁(yè)“我的插件治理”
。我們差不多注冊(cè)的,插件admin.jsp頁(yè)面。您能夠覆蓋現(xiàn)有的標(biāo)簽,區(qū)段,項(xiàng)目利用現(xiàn)有的ID屬性值在自己的<adminconsole>定義。治理操縱臺(tái)最佳實(shí)踐有幾種最佳做法時(shí),需要考慮變更Openfire治理操縱臺(tái)通過(guò)一個(gè)插件??偟闹黝}是無(wú)縫集成的插件應(yīng)該:
集成到現(xiàn)有的標(biāo)簽和側(cè)欄節(jié)只要有可能不是創(chuàng)建自己的。只有制造新標(biāo)簽的專(zhuān)門(mén)重要的新功能。
不要用“插件”的名稱(chēng),標(biāo)簽,
sidebars和項(xiàng)目。例如,有一個(gè)項(xiàng)目叫做“網(wǎng)關(guān)插件”
,也可能是所謂的“網(wǎng)關(guān)設(shè)置”
。
嘗試以符合現(xiàn)有的用戶(hù)界面治理操縱臺(tái)在您的自定義插件的網(wǎng)頁(yè)。
沒(méi)有必要建立一個(gè)治理操縱臺(tái)進(jìn)入查看插件元數(shù)據(jù)。相反,讓Openfire告知用戶(hù)有關(guān)該插件安裝,并提供插件治理。寫(xiě)作網(wǎng)頁(yè)治理操縱臺(tái)Openfire使用Sitemesh框架裝飾網(wǎng)頁(yè)的治理操縱臺(tái)。全球定義的裝修適用于每個(gè)網(wǎng)頁(yè),以便使最終產(chǎn)出,如下面的圖:建立網(wǎng)頁(yè),與Sitemesh是容易的。只要?jiǎng)?chuàng)建有效的HTML頁(yè)面,然后使用中繼標(biāo)記來(lái)傳送指示Sitemesh
。當(dāng)渲染輸出,Sitemesh將使用您所提供的指示,使裝修的任何內(nèi)容,在您的HTML網(wǎng)頁(yè)。以下元標(biāo)記可用于:
pageID
-的ID的網(wǎng)頁(yè),其中必須符合入境治理操縱臺(tái)中的XML上文所述。要么pageID或subPageID
必須指定。
subPageID
-的ID小組網(wǎng)頁(yè),其中必須符合入境治理操縱臺(tái)中的XML上文所述。小組網(wǎng)頁(yè)用于行政行為涉及到父頁(yè)面編號(hào)。例如,編輯或刪除某一特定群體。要么pageID或subPageID
必須指定。
extraParams
(可選)
-額外的參數(shù),應(yīng)通過(guò)網(wǎng)頁(yè)。例如,在網(wǎng)頁(yè)上刪除一組可能的ID集團(tuán)。參數(shù)必須是URL編碼。
裝修(可選)
-覆寫(xiě)Sitemesh裝修使用的網(wǎng)頁(yè)。裝修沒(méi)有命名,將可提供簡(jiǎn)單的網(wǎng)頁(yè)沒(méi)有裝修。下面的HTML代碼段顯示了有效的網(wǎng)頁(yè):范例<html>
<head>
<title>MyPluginPage</title>
<metaname="pageID"content="myPluginPage"/>
</head>
<body>
Bodyhere!
</body>
</html>在您使用本土化插件這有可能把你的插件成多種語(yǔ)言化(
i18n
)。為此,請(qǐng)使用下列程序進(jìn)行:
創(chuàng)建一個(gè)“i18n”名目的根名目中的插件。
購(gòu)買(mǎi)每項(xiàng)資源文件,并使用%[plugin_name]%_i18n"_"language".properties"。屬性”命名約定,在那兒[plugin_name]的名字是插件名目中。見(jiàn)翻譯指南
,詳細(xì)了解資源包。
字符串轉(zhuǎn)換在您的JSP的文件指的是國(guó)際鑰匙。例如:
<%@tagliburi="://java.sun/jstl/core_rt"prefix="c"%>
<%@tagliburi="://java.sun/jstl/fmt_rt"prefix="fmt"%>
...
<fmt:messagekey=""/>
國(guó)際化在你的Java文件使用LocaleUtilsclass:
org.jivesoftware.util.LocaleUtils.getLocalizedString("","[plugin_name]");
國(guó)際化plugin.xml文件在您使用$
(葉)格式:
<sidebarid="gateways"name="${}"description="${plugin.sidebar.description}">
<description>${plugin.description}</description>使用Openfire構(gòu)建腳本在Openfire建立腳本將關(guān)心您建立和進(jìn)展插件。它看起來(lái)的插件開(kāi)發(fā)名目格式如下:插件結(jié)構(gòu)myplugin/|-plugin.xml
<-插件定義文件|-readme.html
<-插件自述文件|-changelog.html
<-插件修改的日志|-icon_small.gif
<-縮略圖片(16x16)|-icon_large.gif
<-圖片(32x32)
|-classes/
<-資源的插件需要(即屬性文件)|-lib/
<-包|-src/
|-database
<-可選的數(shù)據(jù)庫(kù)腳本的插件
|-java
<-插件的Java源代碼
|
|-com
|
|-mycompany
|
|-*.java
|-web
|-*.jsp
<-jsp頁(yè)面
|-images/
<-圖片文件
|-WEB-INF
|-web.xml
<-可選的文件自定義servlets能夠注冊(cè)構(gòu)建腳本將編譯源文件和JSPs
,并建立有效的插件結(jié)構(gòu)和JAR文件。把你的插件名目中的
src
/插件名目下的源分布,然后用antplugins來(lái)建立您的插件。任何JAR文件的插件需要在匯編應(yīng)放到lib名目。這些JAR文件也將被復(fù)制到插件的生成lib名目的構(gòu)建過(guò)程的一部份。假如您創(chuàng)建一個(gè)src/web/WEB-INF/web.xml,注冊(cè)servlets初始化時(shí)啟動(dòng)插件。只有注冊(cè)的servlet和servlet的映在web.xml中的文件。注:此功能是通過(guò)合并執(zhí)行您的自定義web.xml中的檔案文件的web.xml中所產(chǎn)生的JSP的匯編過(guò)程。執(zhí)行您的插件插件完全進(jìn)入Openfire的API
。這提供了一個(gè)龐大的靈活性,什么插件能夠完成。然而,有幾個(gè)集成點(diǎn),這是最常見(jiàn)的:注冊(cè)一個(gè)插件作為一個(gè)組成部分
。元件接收所有數(shù)據(jù)包給某一特定子網(wǎng)域。例如,test_component.example。因此,數(shù)據(jù)包發(fā)送到j(luò)oe@test_component.example將交付給該組件。請(qǐng)注意,子域定義為組件無(wú)關(guān)的DNS條目的子域。所有的XMPP協(xié)議路由在套接字級(jí)別
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 塑膠購(gòu)銷(xiāo)合同
- 2024年度溫泉洗浴中心整體運(yùn)營(yíng)承包合同文本3篇
- 2024年電器設(shè)備租賃與購(gòu)買(mǎi)合同
- 2024年環(huán)保設(shè)施建設(shè)與維護(hù)合同
- 2024年大型商場(chǎng)文化活動(dòng)策劃與執(zhí)行服務(wù)合同2篇
- 2024年汽車(chē)交易合同
- 2024年智慧社區(qū)停車(chē)場(chǎng)租賃及智能家居服務(wù)合同3篇
- 2024年環(huán)保節(jié)能型房屋建筑材料購(gòu)銷(xiāo)合同
- 2024年版:國(guó)際快遞公司間的航空運(yùn)輸合同
- 2025年度智慧家居產(chǎn)品承包租賃合同3篇
- 《滅火應(yīng)急疏散預(yù)案》課件
- 【高分復(fù)習(xí)筆記】孫廣仁《中醫(yī)基礎(chǔ)理論》(第9版)筆記與考研真題詳解
- 開(kāi)題報(bào)告:高質(zhì)量數(shù)字教材建設(shè)機(jī)制及政策研究
- PE工程師工作總結(jié)
- 華東師范大學(xué)《法學(xué)導(dǎo)論(Ⅰ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 空壓機(jī)操作安全培訓(xùn)
- 自然辯證法論述題146題帶答案(可打印版)
- 工程施工日志60篇
- 特殊作業(yè)安全管理監(jiān)護(hù)人專(zhuān)項(xiàng)培訓(xùn)課件
- 期末復(fù)習(xí)試題 (試卷)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- 2024年中國(guó)工業(yè)級(jí)硝酸銨市場(chǎng)調(diào)查研究報(bào)告
評(píng)論
0/150
提交評(píng)論