/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.wordpress.salaboy.services.workitemhandlers; import com.wordpress.salaboy.messaging.MessageFactory; import com.wordpress.salaboy.messaging.MessageProducer; import com.wordpress.salaboy.model.Call; import com.wordpress.salaboy.model.Emergency; import com.wordpress.salaboy.model.messages.AsyncProcedureStartMessage; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import org.drools.runtime.process.WorkItem; import org.drools.runtime.process.WorkItemHandler; import org.drools.runtime.process.WorkItemManager; import org.hornetq.api.core.HornetQException; /** * * @author salaboy */ public class AsyncStartProcedureWorkItemHandler implements WorkItemHandler, Serializable{ @Override public void executeWorkItem(WorkItem wi, WorkItemManager wim) { //Call Tracking Component for process?? or the ProcedureMGMTService can take care of that? Call call = (Call) wi.getParameter("call"); String procedureName = (String) wi.getParameter("procedureName"); Emergency emergency = (Emergency) wi.getParameter("emergency"); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("call", call); parameters.put("emergency", emergency); // ProceduresMGMTService.getInstance().newRequestedProcedure(emergency.getId(), procedureName, parameters); System.out.println("LET'S CREATE a new procedure name in a remote location = "+procedureName+" for emergency "+emergency); try { MessageFactory.sendMessage(new AsyncProcedureStartMessage(emergency.getId(), wi.getId(), procedureName, parameters)); } catch (HornetQException ex) { Logger.getLogger(AsyncStartProcedureWorkItemHandler.class.getName()).log(Level.SEVERE, null, ex); } wim.completeWorkItem(wi.getId(), null); } @Override public void abortWorkItem(WorkItem wi, WorkItemManager wim) { throw new UnsupportedOperationException("Not supported yet."); } }