Openfireプラグインとプラグイン間呼び出し(データ転送)簡単なテスト


新しい2つのプラグイン(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

2つのエラーが発生しました.
分析討論:openfire機能欠陥?安全要因?それとも...
Openfireプラグインの間で値を伝えて、呼び出して、高い人の解答を求めます!