public ProcessRuntimeImpl(InternalKnowledgeRuntime kruntime) { this.kruntime = kruntime; TimerService timerService = kruntime.getTimerService(); if ( !(timerService.getTimerJobFactoryManager() instanceof CommandServiceTimerJobFactoryManager) ) { timerService.setTimerJobFactoryManager( new ThreadSafeTrackableTimeJobFactoryManager() ); } ((CompositeClassLoader) getRootClassLoader()).addClassLoader( getClass().getClassLoader() ); initProcessInstanceManager(); initSignalManager(); timerManager = new TimerManager(kruntime, kruntime.getTimerService()); processEventSupport = new ProcessEventSupport(); if (isActive()) { initProcessEventListeners(); initStartTimers(); } initProcessActivationListener(); }
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(); }
@Override public void init( KieSession ksession ) { // The ExecutableRunner for the TimerJobFactoryManager must be set before any timer jobs are scheduled. // Otherwise, if overdue jobs are scheduled (and then run before the .executorDelegate field can be set), // they will retrieve a null executorDelegate (instead of a reference to this) and fail. TimerJobFactoryManager timerJobFactoryManager = ((InternalKnowledgeRuntime) ksession ).getTimerService().getTimerJobFactoryManager(); if (timerJobFactoryManager instanceof CommandServiceTimerJobFactoryManager) { ( (CommandServiceTimerJobFactoryManager) timerJobFactoryManager ).setRunner( runner ); } } }
public ProcessRuntimeImpl(InternalKnowledgeRuntime kruntime) { this.kruntime = kruntime; TimerService timerService = kruntime.getTimerService(); if ( !(timerService.getTimerJobFactoryManager() instanceof CommandServiceTimerJobFactoryManager) ) { timerService.setTimerJobFactoryManager( new ThreadSafeTrackableTimeJobFactoryManager() ); } ((CompositeClassLoader) getRootClassLoader()).addClassLoader( getClass().getClassLoader() ); initProcessInstanceManager(); initSignalManager(); timerManager = new TimerManager(kruntime, kruntime.getTimerService()); processEventSupport = new ProcessEventSupport(); if (isActive()) { initProcessEventListeners(); initStartTimers(); } initProcessActivationListener(); }
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(); }
protected void initNewKnowledgeSession(KieBase kbase, KieSessionConfiguration conf) { this.sessionInfo = new SessionInfo(); // create session but bypass command service this.ksession = kbase.newKieSession( conf, this.env ); initKieSessionMBeans(this.ksession); this.marshallingHelper = new SessionMarshallingHelper( this.ksession, conf ); MarshallingConfigurationImpl config = (MarshallingConfigurationImpl) this.marshallingHelper.getMarshaller().getMarshallingConfiguration(); config.setMarshallProcessInstances( false ); config.setMarshallWorkItems( false ); this.sessionInfo.setJPASessionMashallingHelper( this.marshallingHelper ); ((InternalKnowledgeRuntime) this.ksession).setEndOperationListener( new EndOperationListenerImpl(this.txm, this.sessionInfo ) ); this.runner = new TransactionInterceptor(); TimerJobFactoryManager timerJobFactoryManager = ((InternalKnowledgeRuntime) ksession ).getTimerService().getTimerJobFactoryManager(); if (timerJobFactoryManager instanceof CommandServiceTimerJobFactoryManager) { ( (CommandServiceTimerJobFactoryManager) timerJobFactoryManager ).setRunner( this ); } }