WSO2 Esb任务启动和停止事件

时间:2012-12-05 13:41:43

标签: wso2 osgi wso2esb wso2carbon synapse

我目前正在wso2 esb中实现一个自定义任务,它会检查服务器上的某些进程,并在进程未启动时启动它们。但是,如果服务器上的wso2 carbon实例停止,我还需要停止这些进程。 Apache synapse任务接口只有execute方法。 apache synapse或wso2 carbon中是否有接口,它提供启动和停止等方法,或者是否可以将synapse调度程序任务转换为osgi包?

由于

1 个答案:

答案 0 :(得分:0)

<强>解决

希望这些信息对其他人有用。我的问题的第二部分“是否有可能将一个synapse调度程序任务转换为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启动和停止调用方法。

注意:这里maven bundle插件用于创建bundle,我的工作环境是WSO2 esb version 4.0.2