Openfire 是由Jive Software 主导开发的一套功能非常强大的开源im 服务器(前身是wildfire),它基于XMPP 协议,完全用java实现,是一款非常优秀的服务器端软件。
最近参与了一个开源项目thinksns,负责im部分,于是准备研究一下openfire的源码,想要测试和编写自己的代码,首先要配置好源码的运行环境,本文正是基于这个目的而写的,希望能和志同道合的朋友多交流,共同学习。
计划不定期的将自己的学习笔记和心得贴上来,一方面督促自己,一方面希望与感兴趣的同仁多交流,不过由于最近一直很忙,时间有限,所以可能周期会比较长。
感兴趣的话可以给我留言,也可以发送邮件与我交流: zhenyucheung@163.com
一. 安装JDK(我使用的是JDK1.6), 不再详述
二. 安装 Eclipse 3.3(不再详述)
三. 安装Subversive插件
Subversive是一款不错的svn插件,具体安装方法请参看我的另一篇文章《Eclipse中安装svn插件Subversive 》,链接 http://blog.csdn.net/zhenyucheung/archive/2008/03/19/2195518.aspx
四. check out openfire 源码
1. 在eclipse中点击Windows->Open Perspective->Other
2. 在弹出窗口中点击SVN Repository Exploring 然后点OK
3. 在SVN Repositories 点右键,选择 New->Repository Location...
4. 在弹出的New Repository Location页面,将http://svn.igniterealtime.org/svn/repos输入URL文本框,点Finish. 你将会看到页面出现URL地址.
5. 展开URL地址
6. 展开openfire树形结构
7. 在trunk上点击右键,选择Check Out
剩下的就是等待check out完成了 :)
五. 创建openfire工程
对使用过eclipse的人来说,这一步不用多说,这里仅列出几个需要注意的地方.
1. check out完毕后,eclipse会自动创建一个openfire工程,请把它删除(注意删除时不要删除content),否则你将不得不手动配置一些开发环境。
2. 用Create project from existing source新建工程,注意工程名要用openfire。
六. Build openfire
openfire是用ant构建的,所以要先设置使得eclipse中每次编译都使用内置的ant工具,保证编译的正确执行。
1. eclipse中点击Window->Show View->Ant
2. 在Ant 页面点右键,选择 Add Buildfiles...
3. 展开openfire/build文件夹,选择build.xml, 点 OK.
4. 在Ant页面, 展开Openfire XMPP Server,双击 openfire ant 任务
七. 创建项目Builder
1. 点击Run->Open Run Dialog...
2. 选择Java Application,点击 New 按钮
3. 在Run窗口的Main选项卡中, 修改Name文本框中的值,改成Openfire,其他名字亦可
4. 点Browse按钮,选择openfire, 点ok
5. 点Search按钮,选择Main class为org.jivesoftware.openfire.starter.ServerStarter,点OK。(这是openfire的启动类)
6. 点击进入Arguments选项卡
7. 在VM arguments文本框中输入
-DopenfireHome="${workspace_loc:openfire}/target/openfire",这个是用于eclipse执
行java命令时传递的参数,这样openfire程序可以通过System.getProperty(“openfireHome”)得到
openfire的本地位置。
8. 点击进入Classpath选项卡
9. 点选User Entries,这样Advanced...就处于可用状态
10. 点击Advanced...按钮
11. 在Advanced Options页面,选择Add Folders, 点ok.
12. 选择openfire"src"i18n, 点ok将这个文件夹加入到class path,同样的方式把openfire"src"resources"jar也加到class path中。
13. 在Common选项卡中,点选Run复选框。
设置完毕,这样以后在run这个工程的时候就会按照正确的配置进行了,debug的设置和run的设置类似,不再多说。
参考文章: http://www.igniterealtime.org/community/docs/DOC-1020