spark+openfire二次开发(一)
文章分类:Java编程
1.准备工作:
到官网上下载Openfire 3.6.4,并通过svn下载openfire、Spark和SparkWeb的源代码
官网地址如下:
http://www.igniterealtime.org/downloads/index.jsp
注意官网上最新的Spark版本是2.5.8,其jdk环境最好使用1.6的版本。
2.环境搭建——spark源码安装配置
双击openfire_3_6_4.exe进行openfire的安装,安装过程很简单,不介绍了。
本例的开发环境是基于Eclipse的。
1)选择File——New——Project——JavaProject。
输入项目工程名spark
Contents中选择 "Create project from existiing source",然后把spark文件所在的文件夹加进去.
点击Finish。
2)生成Spark:
点击Window::Show View::Ant
右击Ant面板,选择Add Buildfiles
展开spark::build文件夹,选择build.xml,点击"OK"
在Ant面板,展开Spark,双击"release",等一段时间,会提示"Build Successful"。
3)运行Spark:
点击Run::Open Debug Dialog...,出现"Run"窗口
选择"JavaApplication",右键点击"New"按钮.
在"Main"标签页,将New_configuration换成Spark.
点击Project::Browse按钮,选择Spark,再点OK.
点击Main class::Search按钮,选择main所在的类org.jivesoftware.launcher.Startup再点击OK
建议勾选Stop in main.
点击Classpath标签页,选择User Entries ,使得Advanced..按钮变的可用.点击Advanced按钮.在弹出来的Advanced Options窗口,选择Add Folders,再点OK,在FolderSelection窗口选择spark::src::resources 文件夹,点击OK
选择Common标签页,勾选Debug,Run前面的框
点击Apply,再点击Close
4)在run下选择spark,运行成功!
spark+openfire二次开发(二)
1.openfire源码部署
将下来的openfire_src_3_6_4.tar.gz解压后得到openfire_src文件夹,重命名为openfire。其源码部署方式请参照spark+openfire二次开发(一)中spark源码的部署方式。
2.openfire运行配置
1)点击Run::OpenDebug Dialog...,出现"Run"窗口
2)选择"JavaApplication",右键点击"New"按钮.
3)在"Main"标签页,将New_configuration换成openfire.
4)点击Project::Browse按钮,选择openfire,再点OK.
5)点击Main class::Search按钮,选择main所在的类ServerStarter再点击OK, 建议勾选Stop inmain.
6)Arguments页面。在VM arguments中加下内容
-DopenfireHome="${workspace_loc:Openfire}/target/openfire"。
7)点击Classpath标签页,选择User Entries ,使得Advanced..按钮变的可用.点击Advanced按钮.在弹出来的Advanced Options窗口,选择Add Folders,再点OK,在FolderSelection窗口选择Openfire/src/i18n文件夹,同样的方式选择Openfire/src/resources/jar文件夹,点击OK。
8)选择Common标签页,勾选Debug,Run前面的框
9)点击Apply,再点击Close
3.编译
1)将Openfire/src/i18n文件夹下的openfire_i18n_en.properties文件及Openfire/src/resources/jar文件夹下的admin-sidebar.xml文件拷贝到src\bin目录下,打开ANT面板,选择openfire【default】任务执行。
4.运行
运行openfire,控制台界面出现如下信息:
Openfire 3.6.4 [Mar 15, 20108:49:33 AM]
Admin console listening at http://127.0.0.1:9090
在浏览器中打开上面显示的地址,可进行openfire的管理配置。
spark+openfire二次开发(三)
文章分类:Java编程
spark的插件主要用来增强客户端的功能,下文主要介绍一下spark插件的开发过程。
1.最终完成效果如下:
增加一个My Plugin菜单,点击后显示hello面板。
2.开发流程
1)插件结构
插件的jar包结构如下示:
Java代码
example.jar
|- plugin.xml 插件定义文件
|- libs/ 包含所有运行此插件所需的classes文件
定义你的plugin.xml文件。spark会自动读取插件jar中的plugin.xml文件,进行插件加载工作。示例文件如下:
Java代码
<!-- Define your plugins-->
<plugin>
<name>Examples Plugin</name>
<version>1.0</version>
<author>Derek DeMoro</author>
<homePage>http://www.jivesoftware.com</homePage>
<email>[email protected]</email>
<description>Shows some simple waysto create plugins.</description>
<!--插件的接口实现类-->
<class>com.jivesoftware.spark.examples.ExamplePlugin</class>
<minSparkVersion>2.5.0</minSparkVersion>
</plugin>
2)开发你的插件
插件源码目录结构
Java代码
example
|- src 源代码
|- lib 支持此插件的额外jar文件
|- resources 图片等资源文件
|- build 编译文件
|-build.xml ant打包插件的配置文件
插件的实现类,你的类首先要实现Spark 提供的Plugin 接口,然后实现它的一些方法。
Java代码
packageorg.jivesoftware.spark.examples;
importorg.jivesoftware.spark.plugin.Plugin;
/**
* 通过实现方法的不同,来显示不同的插件功能
*/
public class ExamplePluginimplements Plugin {
/**
* 插件安装后,初始化插件
*/
public void initialize() {
System.out.println("Welcome ToSpark");
}
/**
*spark关闭的时候调用,来实现信息持久化或释放资源
*/
public void shutdown() {
}
/**
* 当用户请求关闭spark时,如果可以关闭返回真
*/
public boolean canShutDown() {
return true;
}
/**
* 插件卸载的时候调用,清除磁盘上的资源,如文件,图像等以及插件安装时留下的所有组件
*/
public void uninstall(){
// Remove all resources belonging tothis plugin.
}
}
开发流程待续,例子先放上