您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > Openfire插件开发人员指南
Openfire插件开发人员指南导言插件是增强Openfire功能。这份文件是一个开发人员创建插件指南。结构的一个插件插件存放在插件openfireHome目录。当部署一个jar或war插件文件,它会自动解压安装。该文件在插件目录结构如下:插件结构myplugin/|-plugin.xml插件定义文件|-readme.html任择自述文件的插件,它会显示给最终用户|-changelog.html任择修改文件的插件,它会显示给最终用户|-icon_small.gif可选小(16x16)图标与插件(也可以是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管理控制台。进一步的细节如下。在plugin.xml文件规定的主要插件类。样本文件看起来可能如下:样本plugin.xml?xmlversion=1.0encoding=UTF-8?plugin!—需要的插件类--classorg.example.ExamplePlugin/class!--插件元数据--nameExamplePlugin/namedescriptionThisisanexampleplugin./descriptionauthorJiveSoftware/authorversion1.0/versiondate07/01/2006/dateurl!--管理控制台的条目--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-数据库版本号(如果数据库模式的定义)。新的插件与数据库架构应该开始在版本。如果将来插件版本的需要更新,这些更新可以定义创建子目录中的升级数据库目录为每个版本。例如,目录database/upgrade/1和database/upgrade/2将包含脚本,如“foo_mysql.sql”和“foo_oracle.sql”中包含相关的数据库,为每一个版本的变化。每个脚本应该更新版本中的信息ofVersion表,例如:UPDATEofVersionsetversion=1wherename='foo';parentPlugin-父层插件(作为“foo”的“foo.jar”插件)。当一个插件有一个父插件,插件的类加载器将被使用来而不是建立一个新的类加载器。这可让插件更加紧密地协同工作。子插件将不会影响其父插件。“licenseType”:显示许可协议,该插件是由。有效值如下:o“commercial”:commercial“商业”:插件是下发布的商业许可协议。o“gpl”:“通用公共许可证”:插件发布使用GNU公共授权(GPL)。o“apache”:该插件发布的Apache许可证。o“internal”:(内部)插件是供内部使用的一个组织只,并不会重新分配。o“other”:(其他)插件是许可下发布agrement不属于其中的其他类别。许可协议的细节应该在插件的自述。如果许可证类型未设置,这是假定其他。一些额外的文件都可以在该插件提供更多资料,以最终用户(所有放置在主要的插件目录):readme.html-可选自述文件的插件,它会显示给最终用户。changelog.html-可选修改文件的插件,它会显示给最终用户。icon_small.png-可选小(16x16)图标相关插件。也可以是。GIF文件。icon_large.png-可选大(32x32)图标相关插件。也可以是。GIF文件。interfacefromtheOpenfireAPIaswellashaveadefault(noargument)contructor.您的插件类必须执行插件接口从Openfire的API,以及有一个缺省(无参数)contructor。插件接口方法初始化和销毁插件。采样插件执行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是不同的,您可能会开始投放到一些冲突在这里和那里的类名。尤其是当工作与聚类。。修改管理控制台插件可以添加标签,区段,和网页的管理控制台。有几个步骤,以完成这项:第一个adminconsole/必须添加到plugin.xml文件。JSP的文件必须编制和实施的类路径的插件。阿web.xml中的汇编文件,其中包含的JSPservlet的条目必须付诸网页/目录下的插件。注:Openfire建立脚本可以协助编制JSPs和创造web.xml中。这是详细说明如下。任何图像所需的JSP页面必须住在网页/图像/目录。只有GIF和PNG图像的支持。该adminconsole/部分plugin.xml定义额外的标签,科和项目管理控制台框架。抽样plugin.xml文件看起来可能如下:样本plugin.xml?xmlversion=1.0encoding=UTF-8?plugin!--主要插件类--classorg.example.ExamplePlugin/class!--管理控制台的条目--adminconsoletabid=mytabname=Exampleurl=my-plugin-admin.jspdescription=Clicktomanage...sidebarid=mysidebarname=MyPluginitemid=my-pluginname=MyPluginAdminurl=my-plugin-admin.jspdescription=Clicktoadministersettingsformyplugin//sidebar/tab/adminconsole/plugin在这个例子中,我们定义一个新的标签“范例”,一个工具栏目“我的插件”和一个网页“我的插件管理”。我们已经注册的,插件admin.jsp页面。您可以覆盖现有的标签,区段,项目利用现有的ID属性值在自己的adminconsole定义。管理控制台最佳实践有几种最佳做法时,需要考虑变更Openfire管理控制台通过一个插件。总的主题是无缝集成的插件应该:集成到现有的标签和侧栏节只要有可能不是创建自己的。只有创造新标签的非常重要的新功能。不要用“插件”的名称,标签,sidebars和项目。例如,有一个项目叫做“网关插件”,也可能是所谓的“网关设置”。尝试以符合现有的用户界面管理控制台在您的自定义插件的网页。没有必要建立一个管理控制台进入查看插件元数据。相反,让Openfire告知用户有关该插件安装,并提供插件管理。写作网页管理控制台Openfire使用Sitemesh框架装饰网页的管理控制台。全球定义的装修适用于每个网页,以便使最终产出,如下面的图:建立网页,与Sitemesh是容易的。只要创建有效的HTML页面,然后使用中继标记来传送指示Sitemesh。当渲染输出,Sitemesh将使用您所提供的指示,使装修的任何内容,在您的HTML网页。以下元标记可用于:pageID-的ID的网页,其中必须符合入境管理控制台中的XML上文所述。要么pageID或subPageID必须指定。subPageID-的ID小组网页,其中必须符合入境管理控制台中的XML上文所述。小组网页用于行政行为涉及到父页面编号。例如,编辑或删除某一特定群体。要么pageID或subPageID必须指定。extraParams(可选)-额外的参数,应通过网页。例如,在网页上删除一组可能的ID集团。参数必须是URL编码。装修(可选)-覆写Sitemesh装修使用的网页。装修没有命名,将可提供简单的网页没有装修。下面的HTML代码段显示了有效的网页:范例htmlheadtitleMyPluginPage/titlemetaname=pageIDcontent=myPluginPage//headbodyBodyhere!/body/html在您使用本土化插件这有可能把你的插件成多种语言化(i18n)。为此,请使用下列程序进行:创建一个“i18n”目录的根目录中的插件。购买每项资源文件,并使用%[plugin_name]%_i18n_language.properties。属性”命名约定,在那里[plugin_name]的名字是插件目录中。见翻译指南,详细了解资源包。字符串转换在您的JSP的文件指的是国际钥匙。例如:%@tagliburi==c%%@tagliburi==fmt%...fmt:messagekey=some.key.name/国际化在你的Java文件使用LocaleUtilsclass:org.jivesoftware.util.LocaleUtils.getLocalizedString(som
本文标题:Openfire插件开发人员指南
链接地址:https://www.777doc.com/doc-1013866 .html