1、 从Openfire SVN Server中dump出源码;
2、 Build: ant & ant plugins
3、 将build后的target/openfire作为openfire_home
4、 在target/openfire下建立两个目录:src和classes,将dump下来的源码copy到src路径下,将classes设置为eclipse编译后的输出路径
5、 将$openfire_home/lib下的openfire.jar中src中存在的部分删除,剩下的部分作为新的openfire.jar,注意,在ubuntu下之间打开openfire.jar时,直接将/org/jivesoftware/admin, /org/jivesoftware/openfire, /org/jivesoftware/util三个目录删除,而对于/org/jivesoftware/database目录,只将源码中有的那部分删除,/org/jivesoftware下面还有一个隐藏目录/org/jivesoftware/stringprep,不能删除,接下来,将$openfire_home/lib下的jar包作为工程的Referenced Libraries.
6、 将取出来的工程下src/web/WEB-INF/classes/openfire_init.xml导入到eclipse的查询路径里,如将src/web/WEB-INF/classes目录作为eclipse的源目录,这样openfire_init.xml自动copy到$openfire_home/classses下面,将openfire_init.xml中的openfireHome设置为$openfire_home
7、 修改org.jivesoftware.openfire.starter.ServerStarter中的如下两个field,
private static final String DEFAULT_LIB_DIR = "../lib";
private static final String DEFAULT_ADMIN_LIB_DIR = "../plugins/admin/webapp/WEB-INF/lib";
改成:
private static final String DIR_PREFIX = "$openfire_home"; // to be your own openfire_home
private static final String DEFAULT_LIB_DIR = DIR_PREFIX + "lib";
private static final String DEFAULT_ADMIN_LIB_DIR = DIR_PREFIX + "plugins/admin/webapp/WEB-INF/lib";