Eclipse下 Eclipse下OpenFire4.0.2源码配置+简单插件开发源码配置+简单插件开发

==============源码配置 begin==================
1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp
[img]http://dl2.iteye.com/upload/attachment/0118/5626/67ead496-f537-33bc-b74e-880c4058f0ce.png[/img]
2.解压到当前文件夹openfire_src,进入openfire_src>build>eclipse目录下,把里面settings、classpath、project三个文件拷贝到openfire_src目录,并用windows命令行重命名它们:
rename settings .settings、rename classpath .classpath、rename project .project。

[img]http://dl2.iteye.com/upload/attachment/0118/5630/43aa4d3b-f10a-3d60-9479-0e178e036ba3.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0118/5634/9a31c84f-f729-3349-bf39-557aa42f8ec7.png[/img]
3.导入工程到eclipse中,发现有些错误,一些jar包missing了。

[img]http://dl2.iteye.com/upload/attachment/0118/5636/420cbde8-e052-3f08-9c4f-082f58ec1d81.png[/img]

不用担心,直接把报错的jar包remove掉,然后把build>lib下的所有jar包括文件夹里面的jar都导进来。

这样,整个工程就不会报错了,OK。

4.在Build Path配置中把 /openfire_src/src/i18n 、/openfire_src/src/resources/jar 、/openfire_src/build/lib/dist 文件夹添加到 Source 中,如图:

[img]http://dl2.iteye.com/upload/attachment/0118/5642/dd357611-ebda-305e-ac6e-fd52d942c64e.jpg[/img]
余下来,按下面的图完成操作即可:
[img]http://dl2.iteye.com/upload/attachment/0118/5656/32c187b9-d7d1-32ea-afba-499b41242da7.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0118/5658/05f7284f-9d74-3838-adfb-0e7a3bf12d6c.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0118/5660/7d976916-c959-32f9-b4ef-7fc43ea2b272.png[/img]
-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"
注意:项目路径 ${workspace_loc:openfire_src}
[img]http://dl2.iteye.com/upload/attachment/0118/5662/9e03b956-c8cf-347e-bc64-6711036d0cb4.png[/img]
5.然后,把整个工程用ant编译一遍:

[img]http://dl2.iteye.com/upload/attachment/0118/5664/9428094c-6682-3a5a-8e35-e01abc6a9b1e.png[/img]

如果想单独编译某一个插件的话:
[img]http://dl2.iteye.com/upload/attachment/0118/5666/66b2b295-7da2-3452-bebe-f9f419e12648.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0118/5668/6b2a7e80-34eb-3c1e-b41c-2d473a90b8b2.png[/img]
==============源码配置 end==================

==============插件开发 begin==================
1、
介绍一下openfire插件的开发,因为在很多使用openfire的过程中,需要更改openfire默认的一些行为,这就涉及到插件的开发。这里我也是写一个HelloWorld的入门案例,希望起到一些抛砖引玉的作用,也算是对我工作,学习的一个总结吧,欢迎大家给我留言提出问题和不足,大家共同进步。

2、案例插件的功能

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

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

先来看一下当前openfire在eclipse中的目录结构:

[img]http://dl2.iteye.com/upload/attachment/0118/5670/edbaf305-aea7-3937-bb93-d428b2e25471.png[/img]
目录太长,我截取一部分,现在,我们开始写插件。在\openfire_src\src\plugins目录下新建一个helloWorld的文件夹,然后在helloWorld目录下新建一个src的文件夹,放页面和源文件,再新建一个lib目录放第三方的jar包,然后在src文件夹下面新建web,Java两个文件夹,web下面放置页面,在这个案例没有用到,可以不建,java文件夹下面放置java源文件,现在目录结构如下:

[img]http://dl2.iteye.com/upload/attachment/0118/5672/7a593126-1d01-3817-9025-89fbf2e8e0f7.png[/img]
changelog.html、plugin.xml、readme.html这三个文件分别是你的插件修改日志文件,插件文件和自述文件,其中plugin.xml这个文件很重要,后面我还要解释,先空着,logo_large.gif和logo_small.gif是插件的logo文件,我随便拷了两个。各位,做好上面的步骤以后,注意了,跟openfire自带插件的目录结构不一样,细心的朋友可能注意到了,我新建的src下面有个java目录,而openfire自带插件则没有,而是跑到上面去了,如下:
[img]http://dl2.iteye.com/upload/attachment/0118/5674/4d7decaf-8ffd-3649-afd2-0a958ed2bb95.png[/img]
不要着急,做完这一步,我们的插件就跟openfire自带插件一样了,步骤截图如下:
[img]http://dl2.iteye.com/upload/attachment/0118/5676/6443de90-127c-3b20-aa03-dfe087043104.png[/img]
这时,我们看到,src目录下的java目录不见了,而在上面的源码目录有了我们自己插件了,截图如下:
[img]http://dl2.iteye.com/upload/attachment/0118/5678/b1f8fc60-7942-3024-983e-a047fe1e0118.png[/img]
好了,我们先建一个包,如下:

[img]http://dl2.iteye.com/upload/attachment/0118/5680/e053413a-cb71-390b-9533-281d455bd0c4.png[/img]
输入包名:
[img]http://dl2.iteye.com/upload/attachment/0118/5682/956f2b68-c584-3a4e-b927-4e4b7273021d.png[/img]
现在包建好了,我们在这个包中建一个java文件,名为:HelloWorldPlugin,我就不截图,这个学过java的人就应该知道,内容如下:
package com.helloworld;  

import java.io.File;

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

public class HelloWorldPlugin implements Plugin {
private XMPPServer server;

public HelloWorldPlugin() {

}

@Override
public void initializePlugin(PluginManager manager, File pluginDirectory) {
server = XMPPServer.getInstance();
System.out.println("HelloWorldPlugin----start");
System.out.println(server.getServerInfo());
}

@Override
public void destroyPlugin() {
System.out.println("HelloWorldPlugin----destroy");
}

}

内容很简单,就是在openfire启动和关闭时,在控制台打印出一条消息。保存好了,我们的java源文件就写好了,现在我们该来写plugin.xml文件了,内容如下:
<?xml version="1.0" encoding="UTF-8"?>  

<plugin>
<class>com.helloworld.HelloWorldPlugin</class>
<name>helloWorld</name>
<description>First Openfire Custom Plugin.</description>
<author>xieyuan</author>
<version>1.0.0</version>
<date>14/07/2014</date>
<minServerVersion>3.9.0</minServerVersion>

<adminconsole>
</adminconsole>

</plugin>

以及注意上面的class的配置,那个配置是最为重要的,配置的是插件的全路径;name是插件的名称,安装后的插件名称;author是插件作者;adminconsole是配置插件关联的页面的;这里不需要。
4、编译插件

展开\openfire_src\build目录,我们发现有一个build.properties.template文件,我们将其重命名为:build.properties,在这个build.properties中加上一行:plugin=helloWorld,截图如下:

[img]http://dl2.iteye.com/upload/attachment/0118/5685/f6527e6b-fd32-360e-80b2-5003d09e037d.png[/img]
使用ant编译插件,截图操作如下:

[img]http://dl2.iteye.com/upload/attachment/0118/5687/63b843be-fccc-315c-b804-f6a9eaab9c98.png[/img]
在弹出的target中选择build one plugin,点击Apply,Run:

[img]http://dl2.iteye.com/upload/attachment/0118/5689/4a2b0540-af7d-39fc-96e1-415c9f6029e5.png[/img]
之后,我们在控制台上看到:

[img]http://dl2.iteye.com/upload/attachment/0118/5691/7d0cae10-9483-35c7-8a84-41da5871533a.png[/img]
构建成功,我们在相应的目录下,可以看到,生成的插件包:helloWorld.jar

[img]http://dl2.iteye.com/upload/attachment/0118/5693/be32d29c-6612-37ef-9891-51df630f9c59.png[/img]
现在我们来运行我们的插件,看在控制台上能不能打印相应的信息,启动openfire,我们看到在控制台上一句:

[img]http://dl2.iteye.com/upload/attachment/0118/5695/b638e61d-4912-38ef-b3e1-bc763c2b36da.png[/img]
好了,大功告成,网上有很多人问,怎么调试插件,这不很简单,直接debug openfire不就行了:
[img]http://dl2.iteye.com/upload/attachment/0118/5698/9b3d2c2f-67ef-3a4a-899c-f76ec88d1083.png[/img]
终于完成了。
==============插件开发 end==================
原文:
http://blog.csdn.net/lc0817/article/details/51379432
http://www.51itong.net/openfire4-0-2-eclipse-19194.html
http://blog.csdn.net/lovexieyuan520/article/details/37774909#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值