解決済み
この情報が他の人に役立つことを願っています。私の質問の 2 番目の部分「シナプス スケジューラ タスクを osgi バンドルに変換することは可能ですか」が本当の質問であり、答えは「はい」です。wso2 では、独自のバンドルを作成して {carbon_server_path}/repository/component/dropins にドロップし、サーバーの起動時にバンドルをインストールできます。だからここに私の実装を示すいくつかのコードスニペットがあります:
タスクの実装
package com.fga.test.task;
import org.apache.synapse.task.Task;
public class ProcessChecker implements Task {
@Override
public void execute() {
//Check for processes and start them
}
}
バンドルアクティベーター
package com.ardic.arcsp.cluster.task;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
/**
* Initializes process list from configuration file
*/
@Override
public void start(BundleContext context) throws Exception {
//Do some initialization
}
/**
* Stops all processes
*/
@Override
public void stop(BundleContext context) throws Exception {
//Get process list from config file and stop them
}
Activator の start および stop 呼び出しメソッドは、サーバーの start および stop イベントでそれぞれ呼び出されます。
注: ここではバンドルの作成に Maven バンドル プラグインが使用され、私の作業環境は WSO2 esb バージョン 4.0.2 でした。