http://redhacker.iteye.com/blog/1919329

一、说在前面

在继上篇Openfire3.8.2在eclipse中Debug方式启动最简单的方式后,我研究了openfire的插件开发,在研究过程中,参考了多位朋友的博客的内容,特别是csdn上这位同学的博客,里面有关于如何开发最简单的插件和聊天插件的内容,我按照博主的内容进行了插件开发,并改进了博主的插件打包脚本,自认为比较完美了,拿出来和大家分享一下。

二、示例插件的功能

这个插件很简单,就是在openfire Server启动时,和关闭时,在控制台打印出消息。

三、插件开发的目录结构设计

我们先看一下openfire源码的插件开发目录结构:

openfire自带的插件结构如下:

我们仿照openfire源码自己创建的插件项目目录结构如下(基本上保持和官方的一致)

四、插件程序

我们写了一个很简单的插件程序,如下所示:

五、插件打包及部署

看看我们插件的部署所要注意的事项:

打包脚本的位置及打包生成插件的位置:

进行打包:

打包成功的helloworld.jar部署到openfire服务器,部署很简单,只需要进行拷贝到特定的目录,如下所示:

这个插件测试很简单,只要启动openfire,就可以看到插件的运行结果如下:

结束语:

后续开发我们就按照这个标准的目录进行开发,不用再写任何打包脚本,打包脚本可以复用,只需要修改一个插件的名字,并将要打包的插件代码提升到源码目录就可以了(其他插件的源码路径必须移除),十分方便!我将代码传到博客,让我们一起开始openfire插件开发之旅吧!!

openfire插件开发之完美开发的更多相关文章

  1. openfire spark 二次 开发 服务插件

    ====================  废话 begin   ============================ 最近老大让我为研发平台增加即时通讯功能.告诉我用comet 在web端实现即 ...

  2. Openfire插件开发图解

    概述 Openfire插件开发是Openfire的精髓之一,支持插件热插拔,还可以方便的在web端进行管理插件.插件分为两种,一种是以服务为主的控制台插件,一种是包括页面或对外开放Servlet接口. ...

  3. (转)openfire插件开发(二) 基于web的插件开发

    转:http://blog.csdn.net/lovexieyuan520/article/details/38935137 在前面的博客中,我介绍了openfire插件开发,在那篇博客中我详细的说明 ...

  4. (转)openfire插件开发(一)

    转:http://blog.csdn.net/lovexieyuan520/article/details/37774909 1. 在上一篇博文中,我介绍了Openfire3.9.3源代码导入ecli ...

  5. openfire的组件(Component)开发

    在之前的文章<Openfire阶段实践总结>中提到过一种openfire的扩展模式Compoent.本文将主要探讨对这种模式的应用与开发方法. 内部与外部组件介绍 在openfire中的许 ...

  6. openfire插件开发入门1

    .案例插件的功能 这个插件很简单,就是在openfire Server启动时,和关闭时,在控制台打印出消息. 3.插件开发的目录结构设计 先来看一下当前openfire在eclipse中的目录结构: ...

  7. Xcode7插件开发:从开发到拉到恶魔岛

    Xcode很强大,但是有些封闭,官方并没有提供Xcode插件开发的文档.喵神的教程比较全,也比较适合入门.本文的教程只是作为我在开发FKConsole的过程中的总结,并不会很全面. FKConsole ...

  8. openfire插件开发的几点说明

    1.关于插件的目录结构 这个网上的资料很多,但是我觉得要看懂也不太容易,我这里上一个包括了jsp和servlet的图,希望大家能马上看懂: ME的Navigator视图下的截图: build path ...

  9. Sonar Java 规则插件开发 (基于阿里开发手册)

    引言 最近在做Sonar静态代码扫描管理,以此顺手接了Sonar的插件开发,基于阿里开发手册进行开发,在整体开发过程中,其中还是遇到不少坑位,也以此给大家做相应借鉴官网Demo演示插件开发地址:htt ...

随机推荐

  1. s3c6410_u-boot-2010.03移植

    开发环境: 开发板 FriendlyARM Tiny6410 主机 CentOS release 6.4 (Final) 参考: http://www.cnblogs.com/plinx/archiv ...

  2. 当局部变量遇上全局变量——extern及花括号用法举例

    请阅读以下代码并说出它的输出结果. #include <stdio.h> ; int foo() { ; { extern int val; printf("val_foo = ...

  3. GitHub 里面有大量优秀的第三方框架

    写iOS 程序的时候往往需要很多第三方框架的支持,可以大大减少工作量,讲重点放在软件本身的逻辑实现上. GitHub 里面有大量优秀的第三方框架,而且 License 对商业很友好.一下摘录一下几乎每 ...

  4. tomcat 配置文件下载目录

    tomcat可提供文件的直接下载.有两种方式. 第1种 放到ROOT 目录下 然后在网址中访问: http://ip:8080/download.zip 便可下载 第2种 希望使用自己的文件路径. 在 ...

  5. JQuery ajax返回JSON时的处理方式

    最近在使用JQuery的ajax方法时,要求返回的数据为json数据,在处理的过程中遇到下面的几个问题,那就是采用不同的方式来生成json数据的时候,在$.ajax方法中应该是如何来处理的,下面依次来 ...

  6. php 显示内存 释放内存

    <?php //这只是个例子,下面的数字取决于你的系统 echo memory_get_usage() . "\n"; // 36640 $a = str_repeat(&q ...

  7. 分享:PHP获取MAC地址的实现代码

    原文地址:http://www.jbxue.com/article/12635.html发布:thatboy   来源:Net     [大 中 小] 分享一例php取得机器mac地址的代码,学习下p ...

  8. HOOK API 在多线程时应该注意的问题点

    在使用INLINE HOOK API实现对系统API的拦截时,正常情况下并没有太大问题,但一旦涉及到多线程,不管是修改IAT还是JMP,2种方法均会出现不可预料的问题,特别是在HOOK一些复杂的大型系 ...

  9. python 内存管理

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 语言的内存管理是语言设计的一个重要方面.它是决定语言性能的重要因素.无论是C语言的 ...

  10. plantuml

    brew install graphviz https://github.com/jvantuyl/sublime_diagram_plugin