spark plugin开发
两年前开发过spark,那时是改源码,当时改的很头疼,感觉它的代码很乱,一个功能的修改需要触动很多地方的代码,这么个基本的归纳结构都没做好。它的plugin设计的不好,我们没法只好改源码。
然而,我发现现在脑子里已完全不记得当时的细节了,哎……, 只能重新来过了。
目前是2.6.3:
主页: http://www.igniterealtime.org/projects/spark/sparkplug-kit.jsp
插件开发手册:http://www.igniterealtime.org/builds/sparkplug_kit/docs/latest/sparkplug_dev_guide.html
源码: http://www.igniterealtime.org/downloads/source.jsp
其中spark源码:
Spark:
svn co http://svn.igniterealtime.org/svn/repos/spark/trunk spark
之前的版本可以这样获得:http://svn.igniterealtime.org/svn/repos/spark/tags/spark_2_6_0
现在可以直接在Eclipse中开发插件而不需要发布到spark中,它提供的sparkplugkit提供调试环境。
To setup a project to run Spark within your IDE, you will need to the following:
- It is required that you use the 1.4 JRE to build Spark.
- Add all *.jar files in the Sparkplugs/spark/lib and Sparkplugs/spark/lib/windows directories to your classpath.
- Add the resource directory (Sparkplugins/spark/resource) to your classpath for the native libraries.
- Main Class - org.jivesoftware.Spark
- VM Parameters - -Dplugin=path_to_your_plugin.xml file. This allows you to run your plugins within your IDE without deploying.
- That's it.
建好工程后引用Sparkplugs/spark/lib and Sparkplugs/spark/lib/windows 里面的所有jar包。
还要添加Sparkplugins/spark/resource中的资源。
启动类是org.jivesoftware.Spark
需要添加vm参数 -Dplugin=path_to_your_plugin.xml
我下载其example,运行不起来,报错:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.jivesoftware.LoginDialog$ImagePanel.getPreferredSize(LoginDialog.java:815)
网上查不到原因,即使是官方论坛也没人回答,最后我用了一天时间从它的svn上用比蜗牛还慢的速度下了下来,从它的源码里面终于跑了起来。它的引用包在源码的build\lib中,带着一堆报错,终于看到登陆界面了。
另外一个问题是,没有找到哪里下载之前版本的sparkplug_kit, 这样如果代码是依赖之前的spark api,那就悲剧了,你不能用最新的sparkplug_kit来写plugin。
我真不知道这样的更新方式怎么用得起来!而且我是依赖2.6.0的api,到2.6.3就改的一塌糊涂,这TM还叫api吗?