openfire 插件与插件之间调用(数据传值)简单测试

新建两个插件(1)、(2):

(1)、pluginInvokeFirstPlugin,主要源码如下:

package org.jivesoftware.openfire.plugin;

import java.io.File;

import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;

public class PluginInvokeFirstPlugin implements Plugin {
	
    private PluginInvokeSecondPlugin pluginInvokeSecondPlugin;
    private static PluginManager pluginManager;
    
    public PluginInvokeFirstPlugin() {
    	
    }

    public void initializePlugin(PluginManager manager, File pluginDirectory) {
        pluginManager = manager;
        pluginInvokeSecondPlugin=(PluginInvokeSecondPlugin) XMPPServer.getInstance().getPluginManager().getPlugin("pluginInvokeSecondPlugin");
        System.out.println("这里是第一个插件,下面开始调用第二个插件:");
        pluginInvokeSecondPlugin.sayHello();
        System.out.println("第二个插件调用完成,请看输出。");
    }    

    public void destroyPlugin() {
    	pluginInvokeSecondPlugin.destroyPlugin();
    }

    private static PluginManager getPluginManager() {
        return pluginManager;
    }    
  
}       

(2)、pluginInvokeSecondPlugin,主要源码如下:

package org.jivesoftware.openfire.plugin;

import java.io.File;

import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;

public class PluginInvokeSecondPlugin implements Plugin {	
	
    private static PluginManager pluginManager;
    
    public PluginInvokeSecondPlugin() {
    	
    }

    public void initializePlugin(PluginManager manager, File pluginDirectory) {
        pluginManager = manager;
    }
    
    public void sayHello() {
    	System.out.println("本插件由第一个插件调用!");
    	System.out.println("这是第二个插件测试===========");		
	}    
    
    public void destroyPlugin() {
       System.out.println(".......");
    }

    private static PluginManager getPluginManager() {
        return pluginManager;
    }
  
}       
首先编译源码(2)

Buildfile: D:\eclipse\Myeclipse\openfire_src\build\build.xml
plugin:
   [delete] Deleting directory D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin
   [delete] Deleting: D:\eclipse\Myeclipse\openfire_src\work\plugins\pluginInvokeSecondPlugin.jar
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\target
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\target\classes
    [javac] Compiling 1 source file to D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\target\classes
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\target\lib
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\work\lib\source
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\work\lib\classes
      [jar] Building jar: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\target\lib\plugin-pluginInvokeSecondPlugin.jar
   [delete] Deleting directory D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\work\lib\classes
   [delete] Deleting directory D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\work\lib\source
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\jar
     [copy] Copying 1 file to D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\jar
  [pack200] Building: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\target\lib\plugin-pluginInvokeSecondPlugin.jar.pack
  [pack200] Packing with Pack200
  [pack200] Source File :D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\target\lib\plugin-pluginInvokeSecondPlugin.jar
  [pack200] Dest.  File :D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\target\lib\plugin-pluginInvokeSecondPlugin.jar.pack
     [copy] Copying 1 file to D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\jar
      [jar] Building jar: D:\eclipse\Myeclipse\openfire_src\work\plugins\pluginInvokeSecondPlugin.jar
   [delete] Deleting directory D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeSecondPlugin\jar
openfireHome:
adminPlugin:
spank:
     [copy] Warning: pluginInvokeSecondPlugin.jar modified in the future.
     [copy] Copying 1 file to D:\eclipse\Myeclipse\openfire_src\target\openfire\plugins
BUILD SUCCESSFUL
Total time: 1 second

编译成功。

然后编译源码(1)

Buildfile: D:\eclipse\Myeclipse\openfire_src\build\build.xml
plugin:
   [delete] Deleting directory D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeFirstPlugin
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeFirstPlugin
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeFirstPlugin\target
    [mkdir] Created dir: D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeFirstPlugin\target\classes
    [javac] Compiling 1 source file to D:\eclipse\Myeclipse\openfire_src\work\plugins-dev\pluginInvokeFirstPlugin\target\classes
    [javac] D:\eclipse\Myeclipse\openfire_src\src\plugins\pluginInvokeFirstPlugin\src\java\org\jivesoftware\openfire\plugin\PluginInvokeFirstPlugin.java:12: 找不到符号
    [javac] 符号: 类 PluginInvokeSecondPlugin
    [javac] 位置: 类 org.jivesoftware.openfire.plugin.PluginInvokeFirstPlugin
    [javac] 	private PluginInvokeSecondPlugin pluginInvokeSecondPlugin;
    [javac] 	        ^
    [javac] D:\eclipse\Myeclipse\openfire_src\src\plugins\pluginInvokeFirstPlugin\src\java\org\jivesoftware\openfire\plugin\PluginInvokeFirstPlugin.java:21: 找不到符号
    [javac] 符号: 类 PluginInvokeSecondPlugin
    [javac] 位置: 类 org.jivesoftware.openfire.plugin.PluginInvokeFirstPlugin
    [javac]         pluginInvokeSecondPlugin=(PluginInvokeSecondPlugin) XMPPServer.getInstance().getPluginManager().getPlugin("pluginInvokeSecondPlugin");
    [javac]                                   ^
    [javac] 2 错误
 [trycatch] Caught exception: Compile failed; see the compiler error output for details.
     [echo] Error building plugin: pluginInvokeFirstPlugin. Exception:
     [echo] D:\eclipse\Myeclipse\openfire_src\build\build.xml:1310: Compile failed; see the compiler error output for details.
openfireHome:
adminPlugin:
spank:
BUILD SUCCESSFUL
Total time: 1 second

出现两个错误。

分析讨论:openfire功能缺陷安全因素?还是......

openfire插件之间传值、调用,求高人解答!

posted @ 2012-08-21 17:06  love25444  阅读(17)  评论(0)    收藏  举报