Openfire 插件开发记录

Openfire是个实时协作服务器,它使用XMPP协议,易于管理和维护,安全稳定性好,而且可以添加插件拓展功能。

Openfire插件开发指导,这是官网文件,内容较少,看之前最好先看一看源码构建指导,里面涉及一些构建插件构建方法,就是用apache的ant。

下载的Openfire源码中含有ant构建需要的文件(build.xml),按照源码构建指导安装好jdk和ant。

插件的目录结构是很重要的,开发指导中有详细的讲解。注意其中的目录结构提到了两种,一个是plugin源码的的目录结构,一个是构建之后的目录结构。如下所示(未列出所有,测试程序用这些足够):

Plugin生成Jar包的目录结构

myplugin/
 |- plugin.xml      <- Plugin definition file
 |- lib/            <- Libraries (JAR files) your plugin needs
 |- web             <- Resources for Admin Console integration, if any
     |- WEB-INF/

Plugin源码的目录结构
myplugin/
 |- plugin.xml      <- Plugin definition file
 |- lib/            <- Libraries your plugin needs
 |- src/
     |- java        <- Java source code for your plugin
     |   |- com
     |       |- mycompany
     |           |- *.java
     |- web
         |- *.jsp      <- JSPs your plugin uses for the admin console
         |- WEB-INF

其中Plugin.xml由源码构建之后没有变化,源码中请注意这几个文件夹:/src/java/里的java文件,/lib/里的jar文件 和 /web/里的jsp文件,在构建之后会被打成jar包放到构建目录的 /lib/ 下。

以下是一个简单的插件示例,只在Openfire控制台显示一行字符。

plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
    <!-- Main plugin class -->
    <class>com.mycompany.TestPrint</class>

    <!-- Plugin meta-data -->
    <name>TestPrint</name>
    <description>First plugin, test print line.</description>
    <author>Bing</author>

    <version>1.0</version>
    <date>11/08/2011</date>
    <url>http://localhost:9090/openfire/plugins.jsp</url>
    <minServerVersion>3.4.1</minServerVersion>
    <licenseType>gpl</licenseType>

    <!-- Admin console entries -->
    <adminconsole>
        <!-- More on this below -->
    </adminconsole>
</plugin>
TestPrint.java

package com.mycompany;

import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;

import java.io.File;
/**
 * Test Print
 */
public class TestPrint implements Plugin {
    /**
     * Constructs a new client control plugin.
     */
    public TestPrint() {
    }

    // Plugin Interface

    public void initializePlugin(PluginManager manager, File pluginDirectory) {
        System.out.println("Test Print, My First Openfire Plugin");
    }
    
    public void destroyPlugin() {
    }
}
构建方法:

将以上两个文件存到Openfire源码src/plugins目录下,目录结构如下:

plugins

└─testPrint
    │ plugin.xml
    │
    └─src
        └─java
            └─com
                └─mycompany

                        TestPrint.java

控制台或shell操作,cd到Openfire源码build目录下,运行命令:ant plugins

构建完成后,源码文件夹中生成了一个目录/target/openfire/plugins,其中有testPrint.jar文件,拷到可运行的Openfire的plugin目录中,重启Openfire,这时Openfire控制台显示程序中的字符,效果如图:

Openfire 插件开发记录_第1张图片

你可能感兴趣的:(java,ant,jar,plugins,resources,encoding)