/** * Unregister a Process. */ public void unregisterProcess(Process proc) { log.debug("unregisterProcess: " + proc); procs.remove(proc.getID()); }
private RuntimeProcess getRuntimeProcess(Process proc, boolean createNew) { RuntimeProcess rtProcess; synchronized (runtimeProcesses) { rtProcess = runtimeProcesses.get(proc.getID()); if (rtProcess == null && createNew) { rtProcess = new RuntimeProcessImpl(proc); runtimeProcesses.put(proc.getID(), rtProcess); } } return rtProcess; }
public MessageSender(FlowObject fromFlowObject, Message messageRef) { ObjectName procID = fromFlowObject.getProcess().getID(); this.fromRef = new EntityImpl(procID); this.messageRef = messageRef; if (messageRef == null) throw new IllegalArgumentException("MessageRef cannot be null"); if (fromRef == null) throw new IllegalArgumentException("FromRef cannot be null"); }
/** * Register a Process. */ public void registerProcess(Process proc) { if (ProcessEngine.locateProcessEngine().isPrepareForShutdown()) throw new EngineShutdownException("Cannot register a process while engine is shutting down"); log.debug("registerProcess: " + proc); procs.put(proc.getID(), proc); }
private void startProcessPrepare(Process proc) { // Reset the process if already terminated ProcessImpl procImpl = (ProcessImpl)proc; if (isProcessTerminated(proc)) procImpl.resetProcess(); ProcessStatus procStatus = proc.getProcessStatus(); if (procStatus != ProcessStatus.Ready && procStatus != ProcessStatus.Active) throw new IllegalStateException("Cannot start process in state: " + procStatus); // Register the process if needed ProcessManager pm = ProcessManager.locateProcessManager(); if (pm.getProcessByID(proc.getID()) == null) pm.registerProcess(proc); }
@Override public void startProcess(Process proc, Attachments att) { ProcessImpl procImpl = (ProcessImpl)proc; procImpl.setProcessStatus(ProcessStatus.Active); ProcessDefinition jbpmProc = procImpl.getProcessDefinition(); SignalManager sigManager = SignalManager.locateSignalManager(); sigManager.throwSignal(new Signal(proc.getID(), SignalType.SYSTEM_PROCESS_ENTER)); try { Execution jbpmEx = new Execution(jbpmProc); while (jbpmEx.hasEnded() == false) { jbpmEx.signal(); } } finally { sigManager.throwSignal(new Signal(proc.getID(), SignalType.SYSTEM_PROCESS_EXIT)); } procImpl.setProcessStatus(ProcessStatus.Completed); }
ObjectName procID = proc.getID(); String procName = proc.getName(); try