spark插件开发简单实例(版本spark2.5.8)

    最近在研究openfire和spark,但是发现关于spark的插件开发的例子很少,而且做的也不是很简单。所以自己就小试牛刀,为大家做一个简单的入门级的spark插件开发实例。

    首先,看我建立的目录结构:

    com.jivesoftware.spark.bidlink.plugin下面包含两个文件,BidlinkPlugin.java是官方规定建立的插件类,而BidlinkPluginUtil.java是我自己写的方法实现类,本实例所实现的所有功能都将在此类中实现。

    我在plugins目录下建立了自己的文件夹,bidlink目录下包含bin,build,lib目录以及plugin.xml文件。bin目录是存放ant之后.class文件的存放目录(其中包含了包结构),build目录只存放build.xml文件,此文件为ant所需文件,lib目录是存放生成后的jar包所用,其可以为空,plugin.xml文件是一些关于插件的描述和BidlinkPlugin.java的路径指向。好了目录结构已经介绍好了,下面来分别介绍各个文件的内容吧。

 

 

 

 

    BinlinkPlugin.java

 

(这个类很简单,我什么都没做,只需要在 initialize()方法中引用下BidlinkPluginUtil.java中的addWorkspacePane()方法即可)

 

import org.jivesoftware.spark.plugin.Plugin;

public class BidlinkPlugin implements Plugin {

 @Override
 public boolean canShutDown() {
  // TODO Auto-generated method stub
  return false;
 }

 @Override
 public void initialize() {
  BidlinkPluginUtil.addWorkspacePane();

 }

 @Override
 public void shutdown() {
  // TODO Auto-generated method stub

 }

 @Override
 public void uninstall() {
  // TODO Auto-generated method stub

 }

}

 

 

BidlinkPluginUtil.java

 

(这个类里面是功能方法的具体实现,具体效果不再介绍,一会有图片相送)

 

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;

import javax.swing.Icon;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JTextPane;
import javax.swing.UIManager;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.plaf.FontUIResource;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;

import org.jivesoftware.MainWindow;
import org.jivesoftware.spark.SparkManager;
import org.jivesoftware.spark.Workspace;
import org.jivesoftware.spark.component.tabbedPane.SparkTab;
import org.jivesoftware.spark.component.tabbedPane.SparkTabbedPane;

public class BidlinkPluginUtil {

 /**
  * 添加WorkspacePane
  */
 public static void addWorkspacePane() {
  Workspace workspace = SparkManager.getWorkspace();

  SparkTabbedPane tabbedPane = workspace.getWorkspacePane();

  JTextPane textPane = new JTextPane();
  Document doc = textPane.getDocument();
  SimpleAttributeSet attrSet = new SimpleAttributeSet();
  // 颜色
  StyleConstants.setForeground(attrSet, Color.RED);
  // 加粗
  StyleConstants.setBold(attrSet, true);
  // 字体大小
  StyleConstants.setFontSize(attrSet, 25);

  StyleConstants.setBackground(attrSet, Color.YELLOW);

  String content = "必联采购网——互联网第一个采购管理平台,"
    + "由中国政府商务部、财政部授权的唯一招投标采购在线业务平台," + "成立于2001年3月。坐落于北京中关村软件园区,"
    + "是一家拥有自主软件版权的大型企业";
  try {
   doc.insertString(doc.getLength(), content, attrSet);
  } catch (BadLocationException e) {
   e.printStackTrace();
  }

  // Add own Tab.
  tabbedPane.addTab("必联介绍", new Icon() {

   @Override
   public void paintIcon(Component c, Graphics g, int x, int y) {
    // TODO Auto-generated method stub

   }

   @Override
   public int getIconWidth() {
    // TODO Auto-generated method stub
    return 0;
   }

   @Override
   public int getIconHeight() {
    // TODO Auto-generated method stub
    return 0;
   }
  }, textPane);

 }

}

 

 

 

build.xml

 

(这个是最重要的,它将完成编译,发布jar包的任务。红色标出的部分是比较重要的,因为BidlinkPlugin.java在编译的时候要引用其他类,所以必须指定引用jar包。spark.home 目录下有一个spark.jar,这个是spark最重要的资源包,pugin文件将会引用它,如果spark.home没有spark.jar文件,大家可以从安装版的spark的相应目录下拷贝到这个目录下,记住,要对应版本哦,这个实例是2.5.8的)

 

<?xml version="1.0" encoding="UTF-8"?>
<project name="bidlink" default="release" basedir="..">
 <property name="src.dir" value="src" />
 <property name="dest.dir" value="bin" />
 <property name="lib.dir" value="lib" />
 <property name="im.path" value="lib/dist" />


 <property name="spark.home" value="../../../target/build/lib" />


 <path id="lib.classpath">
  <fileset dir="${spark.home}" includes="**/*.jar, **/*.zip" />
 </path>

 <target name="clean">
  <delete dir="${dest.dir}" />
  <delete dir="${lib.dir}" />
  <delete dir="${im.path}" />
 </target>

 <target name="init" depends="clean">
  <mkdir dir="${dest.dir}" />
  <mkdir dir="${lib.dir}" />
  <mkdir dir="${im.path}" />
 </target>

 <target name="build" depends="init">
  <javac srcdir="${src.dir}" destdir="${dest.dir}" classpathref="lib.classpath" target="1.6" />
 </target>

 <!-- 最重要的是这里,打两次包 -->
 <target name="jar" depends="build">
  <jar jarfile="${lib.dir}/bidlink.jar" basedir="${dest.dir}" />
  <jar jarfile="${im.path}/bidlink.jar">
   <fileset dir=".">
    <include name="lib/*.jar" />
   </fileset>
   <fileset dir=".">
    <include name="plugin.xml" />
   </fileset>
  </jar>
 </target>
 <target name="release" depends="jar">
 </target>
</project>

 

 

plugin.xml

 

(这个文件里,最重要的内容我已经标出来了,其他的内容随便写,写错了也没啥大事)

 

<plugin>
    <name>bidlink Plugin</name>
    <version>1.0</version>
    <author>linyu</author>
    <homePage>http://www.bidlink.com</homePage>
    <email>linyu19872008@gmail.com</email>
    <description>Adds bidlink Desktop Search   to Spark.</description>
    <class>com.jivesoftware.spark.bidlink.plugin.BidlinkPlugin</class>
    <minSparkVersion>2.5.8</minSparkVersion>
</plugin>

 

 

具体ant过程我将不再介绍,大家可以查阅相关资料,以下链接是spark的部署过程,您可以参考它的ant过程

http://ljhmustang.blog.163.com/blog/static/421754472010102621345608/

 


如果您的部署一切顺利的话,您将可以看到如下的效果

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linyu19872008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值