domain specific flowのつづき

今度はruntime編。独自workitemの振る舞いを指定するには、以下の手順のみ。
1. WorkitemHandlerを実装するクラスを用意
2. statefulesessionからworkitemManager経由で独自workitemをregisterする
以上
例えば

public class AutoHandler implements WorkItemHandler {

  @Override
  public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
  }

  @Override
  public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
    String msg = (String) workItem.getParameter("Message");
    manager.completeWorkItem(workItem.getId(), null);
    System.out.println("executed!!!");
  }
}

でフローが遷移すればこれが呼ばれます。
呼び出す前にはちゃんと

ksession.getWorkItemManager().registerWorkItemHandler(
                                "system", new AutoHandler());

// start a new process instance
ksession.startProcess("com.sample.ruleflow");

ってやる必要があります、うーん、こんなのsession毎にregisterするのはどうなんでしょかね。。。でもこれだけで独自workItemのフロー描画と実行ができます。