/** * Retrieve the {@link ProcessInstanceManager} object from the ObjectOutput- or ObjectInputStream. * The stream object will secretly also either be a {@link MarshallerReaderContext} or a * {@link MarshallerWriteContext}. * </p> * The knowledge runtime object is useful in order to reconnect the process instance to the * process and the knowledge runtime object. * @param streamContext The marshaller stream/context. * @return A {@link InternalKnowledgeRuntime} object. */ public static InternalKnowledgeRuntime retrieveKnowledgeRuntime(Object streamContext) { InternalKnowledgeRuntime kruntime = null; if ( streamContext instanceof MarshallerWriteContext ) { MarshallerWriteContext context = (MarshallerWriteContext) streamContext; kruntime = ((InternalWorkingMemory) context.wm).getKnowledgeRuntime(); } else if ( streamContext instanceof MarshallerReaderContext ) { MarshallerReaderContext context = (MarshallerReaderContext) streamContext; kruntime = ((InternalWorkingMemory) context.wm).getKnowledgeRuntime(); } else { throw new UnsupportedOperationException( "Unable to retrieve " + ProcessInstanceManager.class.getSimpleName() + " from " + streamContext.getClass().getName() ); } return kruntime; }
@Override public void execute(InternalWorkingMemory workingMemory) { initTimer(workingMemory.getKnowledgeRuntime()); }
processInstance.setKnowledgeRuntime(wm.getKnowledgeRuntime());
public ProcessRuntimeImpl(InternalWorkingMemory workingMemory) { TimerService timerService = workingMemory.getTimerService(); if ( !(timerService.getTimerJobFactoryManager() instanceof CommandServiceTimerJobFactoryManager) ) { timerService.setTimerJobFactoryManager( new ThreadSafeTrackableTimeJobFactoryManager() ); } this.kruntime = (InternalKnowledgeRuntime) workingMemory.getKnowledgeRuntime(); initProcessInstanceManager(); initSignalManager(); timerManager = new TimerManager(kruntime, kruntime.getTimerService()); processEventSupport = new ProcessEventSupport(); if (isActive()) { initProcessEventListeners(); initStartTimers(); } initProcessActivationListener(); }
public void deserialize(MarshallerReaderContext inCtx, Timer timer) throws ClassNotFoundException { JBPMMessages.ProcessTimer ptimer = timer.getExtension(JBPMMessages.procTimer); TimerService ts = inCtx.wm.getTimerService(); long processInstanceId = ptimer.getTimer().getProcessInstanceId(); Trigger trigger = ProtobufInputMarshaller.readTrigger(inCtx, ptimer.getTrigger()); TimerInstance timerInstance = ProtobufProcessMarshaller.readTimer(inCtx, ptimer.getTimer()); TimerManager tm = ((InternalProcessRuntime) inCtx.wm.getProcessRuntime()).getTimerManager(); // check if the timer instance is not already registered to avoid duplicated timers if (!tm.getTimerMap().containsKey(timerInstance.getId())) { ProcessJobContext pctx = new ProcessJobContext(timerInstance, trigger, processInstanceId, inCtx.wm.getKnowledgeRuntime(), false); Date date = trigger.hasNextFireTime(); if (date != null) { long then = date.getTime(); long now = pctx.getKnowledgeRuntime().getSessionClock().getCurrentTime(); // overdue timer if (then < now) { trigger = new OverdueTrigger(trigger, pctx.getKnowledgeRuntime()); } } JobHandle jobHandle = ts.scheduleJob(processJob, pctx, trigger); timerInstance.setJobHandle(jobHandle); pctx.setJobHandle(jobHandle); tm.getTimerMap().put(timerInstance.getId(), timerInstance); } } }
processInstance.setKnowledgeRuntime( wm.getKnowledgeRuntime() ); processInstance.internalSetNodeInstanceCounter( nodeInstanceCounter ); for( String completedNodeId : _instance.getCompletedNodeIdsList() ) {
processInstance.setKnowledgeRuntime(((InternalWorkingMemory) workingMemory).getKnowledgeRuntime()); processInstance.setId(1234); InternalProcessRuntime processRuntime = ((InternalProcessRuntime) ((InternalWorkingMemory) workingMemory).getProcessRuntime());
ProcessContext processContext = new ProcessContext( ((InternalWorkingMemory) wm).getKnowledgeRuntime() ); ((Action) actionNode.getAction().getMetaData("Action")).execute( processContext );
wm.setGlobal( "list", list ); ProcessContext processContext = new ProcessContext( ((InternalWorkingMemory) wm).getKnowledgeRuntime() ); ((Action) actionNode.getAction().getMetaData("Action")).execute( processContext );
ProcessContext processContext = new ProcessContext( ((InternalWorkingMemory) wm).getKnowledgeRuntime() ); ((MVELAction) actionNode.getAction().getMetaData("Action")).compile( data ); ((Action)actionNode.getAction().getMetaData("Action")).execute( processContext );
ProcessContext processContext = new ProcessContext( ((InternalWorkingMemory) wm).getKnowledgeRuntime() ); ((Action) actionNode.getAction().getMetaData("Action")).execute(processContext);
@Override public void execute(InternalWorkingMemory workingMemory) { initTimer(workingMemory.getKnowledgeRuntime()); }
/** * Retrieve the {@link ProcessInstanceManager} object from the ObjectOutput- or ObjectInputStream. * The stream object will secretly also either be a {@link MarshallerReaderContext} or a * {@link MarshallerWriteContext}. * </p> * The knowledge runtime object is useful in order to reconnect the process instance to the * process and the knowledge runtime object. * @param streamContext The marshaller stream/context. * @return A {@link InternalKnowledgeRuntime} object. */ public static InternalKnowledgeRuntime retrieveKnowledgeRuntime(Object streamContext) { InternalKnowledgeRuntime kruntime = null; if ( streamContext instanceof MarshallerWriteContext ) { MarshallerWriteContext context = (MarshallerWriteContext) streamContext; kruntime = ((InternalWorkingMemory) context.wm).getKnowledgeRuntime(); } else if ( streamContext instanceof MarshallerReaderContext ) { MarshallerReaderContext context = (MarshallerReaderContext) streamContext; kruntime = ((InternalWorkingMemory) context.wm).getKnowledgeRuntime(); } else { throw new UnsupportedOperationException( "Unable to retrieve " + ProcessInstanceManager.class.getSimpleName() + " from " + streamContext.getClass().getName() ); } return kruntime; }
processInstance.setKnowledgeRuntime(wm.getKnowledgeRuntime());
public void deserialize(MarshallerReaderContext inCtx, Timer timer) throws ClassNotFoundException { JBPMMessages.ProcessTimer ptimer = timer.getExtension(JBPMMessages.procTimer); TimerService ts = inCtx.wm.getTimerService(); long processInstanceId = ptimer.getTimer().getProcessInstanceId(); Trigger trigger = ProtobufInputMarshaller.readTrigger(inCtx, ptimer.getTrigger()); TimerInstance timerInstance = ProtobufProcessMarshaller.readTimer(inCtx, ptimer.getTimer()); TimerManager tm = ((InternalProcessRuntime) inCtx.wm.getProcessRuntime()).getTimerManager(); // check if the timer instance is not already registered to avoid duplicated timers if (!tm.getTimerMap().containsKey(timerInstance.getId())) { ProcessJobContext pctx = new ProcessJobContext(timerInstance, trigger, processInstanceId, inCtx.wm.getKnowledgeRuntime(), false); Date date = trigger.hasNextFireTime(); if (date != null) { long then = date.getTime(); long now = pctx.getKnowledgeRuntime().getSessionClock().getCurrentTime(); // overdue timer if (then < now) { trigger = new OverdueTrigger(trigger, pctx.getKnowledgeRuntime()); } } JobHandle jobHandle = ts.scheduleJob(processJob, pctx, trigger); timerInstance.setJobHandle(jobHandle); pctx.setJobHandle(jobHandle); tm.getTimerMap().put(timerInstance.getId(), timerInstance); } } }
public ProcessRuntimeImpl(InternalWorkingMemory workingMemory) { TimerService timerService = workingMemory.getTimerService(); if ( !(timerService.getTimerJobFactoryManager() instanceof CommandServiceTimerJobFactoryManager) ) { timerService.setTimerJobFactoryManager( new ThreadSafeTrackableTimeJobFactoryManager() ); } this.kruntime = (InternalKnowledgeRuntime) workingMemory.getKnowledgeRuntime(); initProcessInstanceManager(); initSignalManager(); timerManager = new TimerManager(kruntime, kruntime.getTimerService()); processEventSupport = new ProcessEventSupport(); if (isActive()) { initProcessEventListeners(); initStartTimers(); } initProcessActivationListener(); }
processInstance.setKnowledgeRuntime( wm.getKnowledgeRuntime() ); processInstance.internalSetNodeInstanceCounter( nodeInstanceCounter ); for( String completedNodeId : _instance.getCompletedNodeIdsList() ) {