openfire 插件开发

此blog可行http://www.blogjava.net/jyleon/articles/255623.html

补充几点:

下载的openfire包目录/openfire/documentation/plugin-dev-guide.html中介绍了怎么开发插件.

要将源代码放在openfire的源代码目录中用其build.xml来编译。

在3.6.3中,最终打成的包是.pack文件,似乎插件里面getResourseAsSream方法不能用。

在3.6.4中,最终打成的包是.jar( zip格式),penfire启动后会解压缩生成目录,可看到插件被作为一个jar包放在lib目录下。所以只要第一次使用build命令打包,在以后直接将工程打成jar包放到lib目录下即可:测试是可行的。

但是注意,不能将发布的插件jar包删除,删除了的话,对应的文件夹也会被openfire自动删除。

两个可能有用的方法:

JiveGlobals.getHomeDirectory()

Log.getLogDirectory()

 

再回过来详细介绍一下,之前做过的又忘了,好些东西都重来了一遍。

现在已目前最新的包openfire-3.7.1为例:

将源码下下来66M多,不知为什么一下增加这么多了。

期目录结构如下图:

Snap1

将我们的插件以文档(documentation\docs\plugin-dev-guide.html#Using the Openfire Build Script)规定的格式存放,

Plugin Structure

myplugin/
 |- plugin.xml      <- Plugin definition file
 |- readme.html     <- Optional readme file for plugin
 |- changelog.html  <- Optional changelog file for plugin
 |- logo_small.gif  <- Optional small (16x16) icon associated with the plugin (can also be a .png file)
 |- logo_large.gif  <- Optional large (32x32) icon associated with the plugin (can also be a .png file)
 |- classes/        <- Resources your plugin needs (i.e., a properties file)
 |- lib/            <- Libraries your plugin needs
 |- src/
     |- database    <- Optional database scripts for your plugin
     |- java        <- Java source code for your plugin
     |   |- com
     |       |- mycompany
     |           |- *.java
     |- web
         |- *.jsp      <- JSPs your plugin uses for the admin console
         |- images/    <- Any images your JSP pages need (optional)
         |- WEB-INF
             |- web.xml    <- Optional file where custom servlets can be registered

将myplugin整个文件夹放在src\plugins中。

然后在其build文件夹中可找到build.xml,使用如下命令可单独编译单个plugin,但应在编译单个plugin之前至少运行一次plugins任务,负责无法编译单个plugin,报错为lib文件夹找不到,webapp目录找不到 :

ant plugin -Dplugin=myplugin

运行命令即可在work\plugins中找到编译好的plugin。

如果你在eclipse中,可右键点击build.xml, run as/Ant Build …/ 注意是三个点的那个才有更多选项。

Snap3

Snap4

这样配置和上面的命令行方式效果一样。

 

openfire提供离线消息发送,但是不提供历史消息存储。因此需要写插件来保存历史记录。


Total views.

© 2013 - 2018. All rights reserved.

Powered by Hydejack v6.6.1