《Openfire插件开发人员指南.docx》由会员分享,可在线阅读,更多相关《Openfire插件开发人员指南.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Opennfirre插件件开发人人员指南南导言插件是增增强Oppenffiree功能。这份文文件是一一个开发发人员创创建插件件指南。结构的一一个插件件插件存放放在插件件opeenfiireHHomee目录。当部署署一个jjar或或warr插件文文件,它它会自动动解压安安装。该该文件在在插件目目录结构构如下:插件结构构 myypluuginn /|- pluuginn.xmml 插件定定义文件件| - reeadmme.hhtmll 任择自自述文件件的插件件,它会会显示给给最终用用户| - cchanngellog.htmml 任择修修改文件件的插件件,它会会显示给给最终用用户| - iicon
2、n_smmalll.giif 可选选小( 16xx16 )图标标与插件件(也可可以是 PNGG文件)| - icoon_llargge.ggif 可可选大( 32xx32 )图标标与插件件(也可可以是 PNGG文件)| cllassses/ 资源的的插件需需要(即即属性文文件)| -ddataabasse/ 可选选数据库库架构文文件,你你需要插插件| -i118n/ 插插件国际际化的语语言配置置。| -liib/ 您您的插件件的jaar包| -wweb 资源的的管理控控制台集集成,如如果有的的话| - WWEB-INFF/| - wweb.xmll 生生成weeb.xxml中中含有编编译JSS
3、P的条条目| -weeb-ccusttom.xmll 可可选用户户自定义义的weeb.xxml中中的自定定义seervlletss| -imaagess/ 图片文文件存放放的目录录web目目录存在在的插件件,需要要添加到到Opeenfiire管管理控制制台。进进一步的的细节如如下。在pluuginn.xmml文件件规定的的主要插插件类。样本文文件看起起来可能能如下:样本pllugiin.xxml orrg.eexammplee.ExxampplePPluggin Exaamplle PPluggin Thhis is an exaamplle ppluggin. JJivee Sooftwwa
4、ree 1.00 07/01/20006 hhttpp:/wwww.iggnittereealttimee.orrg/pprojjectts/oopennfirre/pplugginss.jssp 3.00.0 gppl 该元数据据的领域域,可以以设置在在pluuginn.xmml文件件:namme -插插件的名名称。desscriiptiion -插件件的说明明。autthorr -插件的的作者。verrsioon -该插件件的版本本。datte -发布日日期如220066年7月1日。urll -插件件网址。minnSerrverrVerrsioon -最低Oppenffiree版本ddat
5、aabasseKeey -如果果插件需需要它自自己的数数据表,该该dattabaaseKKey内内容应设设立一个个架构主主要名称称(通常常是相同同名称的的插件)。数据库库架构文文件为每每个支持持的数据据库,然然后放置置在数据据库目录录下的插插件。例例如,“fooo”,架架构文件件将被称称为“ fooo_myysqll.sqql ”,“ foo_oracle.sql ”等等,我们建议您,您的表前缀of,以避免可能的冲突与其他应用程序安装在同一数据库。脚本应该进入ofVersion表使用的关键,这样的架构版本信息可跟踪,例如:INSERT INTO ofVersion (name, version
6、) VALUES (foo, 0);databaseVersion -数据库版本号(如果数据库模式的定义)。新的插件与数据库架构应该开始在版本。如果将来插件版本的需要更新,这些更新可以定义创建子目录中的升级数据库目录为每个版本。例如,目录database/upgrade/1和database/upgrade/2将包含脚本,如“ foo_mysql.sql ”和“ foo_oracle.sql ”中包含相关的数据库,为每一个版本的变化。每个脚本应该更新版本中的信息ofVersion表,例如:UPDATE ofVersion set version=1 where name=foo;parrent
7、tPluuginn -父父层插件件(作为为“fooo”的的“ ffoo.jarr ”插插件)。当一个个插件有有一个父父插件,插插件的类类加载器器将被使使用来而而不是建建立一个个新的类类加载器器。这可可让插件件更加紧紧密地协协同工作作。子插插件将不不会影响响其父插插件。“liicennseTTypee”:显显示许可可协议,该该插件是是由。有有效值如如下:o“coommeerciial”:commercial“商业”:插件是下发布的商业许可协议。o“gppl”:“通用公公共许可可证”:插件件发布使使用GNNU公共共授权(GPL)。o“appachhe”:该插插件发布布的Appachhe许可可证。o
8、“innterrnall”:(内内部)插插件是供供内部使使用的一一个组织织只,并并不会重重新分配配。o“ottherr”:(其其他)插插件是许许可下发发布aggremmentt不属于于其中的的其他类类别。许许可协议议的细节节应该在在插件的的自述。如果许可可证类型型未设置置,这是是假定其其他。一些额外外的文件件都可以以在该插插件提供供更多资资料,以以最终用用户(所所有放置置在主要要的插件件目录):reaadmee.httml-可选自自述文件件的插件件,它会会显示给给最终用用户。chaangeelogg.httml-可选修修改文件件的插件件,它会会显示给给最终用用户。icoon_ssmalll.p
9、png-可选小小(16xx16)图标标相关插插件。也也可以是是。GIFF文件。icoon_llargge.ppng-可选大大(32xx32)图标标相关插插件。也也可以是是。GIFF文件。inteerfaace froom ttheOpeenfiire APIIas welll aas hhavee a deffaullt (no arggumeent) coontrructtor.您的插插件类必必须执行行插件接口口从Oppenffiree的APII,以及及有一个个缺省(无无参数)contructor。插件接口方法初始化和销毁插件。采样插件件执行packkagee orrg.eexammplee
10、;impoort orgg.jiivessofttwarre.oopennfirre.cconttainner.Pluuginn;impoort orgg.jiivessofttwarre.oopennfirre.cconttainner.PluuginnMannageer;impoort javva.iio.FFilee;/* * AA saamplle ppluggin forr Oppenffiree. */publlic claass ExaampllePllugiin iimpllemeentss Pllugiin pubblicc vooid iniitiaalizzePllugi
11、in(PPlugginMManaagerr maanagger, Fiile pluuginnDirrecttoryy) /您的代代码 pubblicc vooid desstrooyPllugiin() /您的代代码 Geneerall Pllugiin BBestt Prractticees一般般插件最最佳实践践在选择软软件包的的名称为为您的插插件,我我们建议议您选择择一些与与众不同同的您和和/或您的的组织,以以帮助避避免冲突突尽可能能。例如如,如果果每个人人去与oorg.exaamplle.PPlugginNNamee,即使使PluuginnNamme是不不同的,您您可能会会开始投投放到
12、一一些冲突突在这里里和那里里的类名名。尤其其是当工工作与聚聚类。修改管理理控制台台插件可以以添加标标签,区区段,和和网页的的管理控控制台。有几个个步骤,以以完成这这项:第一个个必必须添加加到pllugiin.xxml文文件。JSPP的文件件必须编编制和实实施的类类路径的的插件。阿weeb.xxml中中的汇编编文件,其其中包含含的JSSP sservvlett的条目目必须付付诸网页页/目录下下的插件件。注:Opeenfiire建建立脚本本可以协协助编制制JSPPs和创创造weeb.xxml中中。这是是详细说说明如下下。任何图图像所需需的JSSP页面面必须住住在网页页/图像/目录。只有GGIF和和
13、PNGG图像的的支持。该部分分pluuginn.xmml定义义额外的的标签,科科和项目目管理控控制台框框架。抽抽样pllugiin.xxml文文件看起起来可能能如下:样本pllugiin.xxml orrg.eexammplee.ExxampplePPluggin 在这个例例子中,我我们定义义一个新新的标签签“范例”,一个个工具栏栏目“我的插插件”和一个个网页“我的插插件管理理”。我们们已经注注册的,插插件addminn.jssp页面面。您可可以覆盖盖现有的的标签,区区段,项项目利用用现有的的ID属性性值在自自己的定义义。管理控制制台最佳佳实践有几种最最佳做法法时,需需要考虑虑变更OOpenn
14、firre管理理控制台台通过一一个插件件。总的的主题是是无缝集集成的插插件应该该:集成到到现有的的标签和和侧栏节节只要有有可能不不是创建建自己的的。只有有创造新新标签的的非常重重要的新新功能。不要用用“插件”的名称称,标签签,siddebaars和和项目。例如,有有一个项项目叫做做“网关插插件”,也可可能是所所谓的“网关设设置”。尝试以以符合现现有的用用户界面面管理控控制台在在您的自自定义插插件的网网页。没有必必要建立立一个管管理控制制台进入入查看插插件元数数据。相相反,让让Opeenfiire告告知用户户有关该该插件安安装,并并提供插插件管理理。写作网页页管理控控制台Opennfirre使用
15、用Sittemeesh框框架装饰饰网页的的管理控控制台。全球定定义的装装修适用用于每个个网页,以以便使最最终产出出,如下下面的图图:建立网页页,与SSiteemessh是容容易的。只要创创建有效效的HTTML页页面,然然后使用用中继标标记来传传送指示示Sittemeesh。当渲渲染输出出,Siitemmeshh将使用用您所提提供的指指示,使使装修的的任何内内容,在在您的HHTMLL网页。以下元元标记可可用于:paggeIDD-的ID的网网页,其其中必须须符合入入境管理理控制台台中的XXML上上文所述述。要么么paggeIDD或subbPaggeIDD必须指定定。subbPaggeIDD-的ID
16、小组组网页,其其中必须须符合入入境管理理控制台台中的XXML上上文所述述。小组组网页用用于行政政行为涉涉及到父父页面编编号。例例如,编编辑或删删除某一一特定群群体。要要么paageIID或subbPaggeIDD必须指定定。exttraPParaams(可选选)-额外的的参数,应应通过网网页。例例如,在在网页上上删除一一组可能能的IDD集团。参数必必须是UURL编编码。装修(可可选)-覆写Siitemmeshh装修使使用的网网页。装装修没有有命名,将将可提供供简单的的网页没没有装修修。下面的HHTMLL代码段段显示了了有效的的网页:范例 Myy Pllugiin PPagee Boody he
17、rre! 在您使用用本土化化插件这有可能能把你的的插件成成多种语语言化(i18n)。为此,请使用下列程序进行:创创建一个个“i118n”目录的根目录中的插件。购购买每项项资源文文件,并并使用%pllugiin_nnamee%_i188n _ lannguaage .ppropperttiess。属属性”命名约约定,在在那里 pllugiin_nnamee 的的名字是是插件目目录中。见翻译译指南,详细细了解资资源包。字字符串转转换在您您的JSSP的文文件指的的是国际际钥匙。例如: . 国国际化在在你的JJavaa文件使使用LoocalleUttilss cllasss:orgg.jiivesso
18、fttwarre.uutill.LoocalleUttilss.geetLoocallizeedSttrinng(somme.kkey.namme, pluuginn_naame);国国际化ppluggin.xmll文件在在您使用用$(叶)格格式:$pllugiin.ddesccripptioon使用Oppenffiree构建脚脚本在Opeenfiire建建立脚本本将帮助助您建立立和发展展插件。它看起起来的插插件开发发目录格格式如下下:插件结构构mypllugiin/ |- pluuginn.xmml -插件定定义文件件 |- reaadmee.httml -插件自自述文件件 |- chaan
19、geelogg.httml-插插件修改改的日志志 |- icoon_ssmalll.ggif- 缩略图图片(116x116) |- iiconn_laargee.giif-图片片 (332x332) |- claassees/ -资源源的插件件需要(即即属性文文件) |- libb/ - 包 |- srcc/ |- daatabbasee -可可选的数数据库脚脚本的插插件 |- jaava - 插件件的Jaava源源代码 | |- ccom | |- myccomppanyy | |- *.javva |- weeb |- *.jssp - jjsp页页面 |- iimagges/- 图片片文
20、件 |- WWEB-INFF |- webb.xmml -可选选的文件件自定义义serrvleets可可以注册册构建脚本本将编译译源文件件和JSSPs,并建建立有效效的插件件结构和和JARR文件。把你的的插件目目录中的的srcc/插件目录录下的源源分布,然然后用aantpplugginss来建立立您的插插件。任何JAAR文件件的插件件需要在在汇编应应放到llib目目录。这这些JAAR文件件也将被被复制到到插件的的生成llib目目录的构构建过程程的一部部份。如果您创创建一个个srcc/weeb/WWEB-INFF/weeb.xxml,注注册seervlletss初始化化时启动动插件。只有注注册的
21、sservvlett和serrvleet的映映在weeb.xxml中中的文件件。注:此功能能是通过过合并执执行您的的自定义义webb.xmml中的的档案文文件的wweb.xmll中所产产生的JJSP的的汇编过过程。执行您的的插件插件完全全进入OOpennfirre的APII。这提提供了一一个巨大大的灵活活性,什什么插件件可以完完成。然然而,有有几个集集成点,这这是最常常见的:1. 注册一个个插件作作为一个个组成部部分。元件件接收所所有数据据包给某某一特定定子网域域。例如如,teest_m。因此此,数据据包发送送到jooettestt_coompoonennt.eexammplee.coom将交
22、交付给该该组件。请注意意,子域域定义为为组件无无关的DDNS条条目的子子域。所所有的XXMPPP协议路路由在套套接字级级别是使使用主服服务器域域(exaamplle.ccom在在上面的的例子);子域仅用于路由的XMPP协议的服务器。2. 注册一个个插件作作为IQQHanndleer。智商商处理回回应智商商包特别别元素的的名称和和命名空空间。下下面的代代码片断断演示了了如何注注册一个个IQHHanddlerr: IIQHaandller myHHanddlerr = neww MyyIQHHandder();IQRRoutter iqRRoutter = XXMPPPSerrverr.geetI
23、nnstaancee().gettIQRRoutter();iqRRoutter.adddHanndleer(mmyHaandller);3. 注册一个个插件作作为PaackeetInnterrcepptorr接收所所有数据据包被通通过该系系统,并并有选择择地予以以拒绝。例如,一一个拦截截可以拒拒绝所有有的邮件件或载亵亵渎国旗旗他们审审查的管管理员。4. 您可以储储存持续续插件设设置Oppenffiree属性使使用JiiveGGlobbalss.geetPrropeertyy(字符符串)和和JivveGllobaals.settProoperrty(字符符串,字字符串)的的方法。让您的的插件属
24、属性听众众收听改改变其性性质,执执行orrg.jjiveesofftwaare.utiil.PPropperttyEvventtLisstenner方方法。您您可以注注册您的的插件作作为一个个听者使使用PrropeertyyEveentDDisppatccherr.adddLiisteenerr(ProoperrtyEEvenntLiisteenerr)方法法。一定定要注册册您的插插件作为为听众在在您的插插件的ddesttroyyPluuginn()方方法。插件常见见问题解解答我是否可可以部署署一个插插件目录录不是一一jarr?不,所有有的插件件必须部部署Jaar文件件或WAAR文件件。当插插件的一一个jaar或warr不存在在,Opeenfiire假假设该文文件已被被删除,而而用户要要销毁插插件,所所以它也也删除了了目录。什么是插插件许可可协议受受?由于Oppenffiree是下发发布的开开源GPPL许可可,任何何插件发发达国家家也必须须在GPPL许可可下发布布或兼容容的开源源许可证证如果您您分发插插件以外外的组织织。这是是违反了了许可协协议,以以创建插插件分配配不开源源。请访访问jiive sofftwaare如如果您需需要不同同的授权权条款OOpennfirre的权权利,包包括建立立商业插插件。