public void addTimerJobInstance(TimerJobInstance instance) { JobContext ctx = instance.getJobContext(); if (ctx instanceof SelfRemovalJobContext) { ctx = ((SelfRemovalJobContext) ctx).getJobContext(); } Map<Long, TimerJobInstance> instances = null; if (ctx instanceof ProcessJobContext) { long sessionId = ((ProcessJobContext)ctx).getSessionId(); instances = timerInstances.get(sessionId); if (instances == null) { instances = new ConcurrentHashMap<Long, TimerJobInstance>(); timerInstances.put(sessionId, instances); } } else { instances = singleTimerInstances; } instances.put( instance.getJobHandle().getId(), instance ); }
public void removeTimerJobInstance(TimerJobInstance instance) { Long sessionId = null; JobContext ctx = instance.getJobContext(); if (ctx instanceof SelfRemovalJobContext) { ctx = ((SelfRemovalJobContext) ctx).getJobContext(); } Map<Long, TimerJobInstance> instances = null; if (ctx instanceof ProcessJobContext) { sessionId = ((ProcessJobContext)ctx).getSessionId(); instances = timerInstances.get(sessionId); if (instances == null) { instances = new ConcurrentHashMap<Long, TimerJobInstance>(); timerInstances.put(sessionId, instances); } } else { instances = singleTimerInstances; } instances.remove( instance.getJobHandle().getId() ); if (sessionId != null && instances.isEmpty()) { timerInstances.remove(sessionId); } }
public long getTimerId() { JobContext ctx = this.getTimerJobInstance().getJobContext(); if (ctx instanceof SelfRemovalJobContext) { ctx = ((SelfRemovalJobContext) ctx).getJobContext(); } return ((ProcessJobContext)ctx).getTimer().getId(); }
public long getSessionId() { if (this.getTimerJobInstance() != null) { JobContext ctx = this.getTimerJobInstance().getJobContext(); if (ctx instanceof SelfRemovalJobContext) { ctx = ((SelfRemovalJobContext) ctx).getJobContext(); } if (ctx instanceof ProcessJobContext) { return ((ProcessJobContext)ctx).getSessionId(); } } return -1; }
public ExecutableRunner getRunner( JobContext jobContext ) { JobContext ctxorig = jobContext; if (ctxorig instanceof SelfRemovalJobContext) { ctxorig = ((SelfRemovalJobContext) ctxorig).getJobContext(); } ProcessJobContext ctx = null; if (ctxorig instanceof ProcessJobContext) { ctx = (ProcessJobContext) ctxorig; } else if(ctxorig instanceof NamedJobContext){ return getRunner( ((NamedJobContext)ctxorig).getProcessInstanceId(), ctx ); } else { return getRunner(); } return getRunner( ctx.getProcessInstanceId(), ctx ); }
protected Environment getEnvironment(JobContext jobContext) { JobContext ctxorig = jobContext; if (ctxorig instanceof SelfRemovalJobContext) { ctxorig = ((SelfRemovalJobContext) ctxorig).getJobContext(); } // first attempt to get knowledge runtime's environment if job context is a process one if (ctxorig instanceof ProcessJobContext) { return ((ProcessJobContext) ctxorig).getKnowledgeRuntime().getEnvironment(); } else { // next if we have manager set use it to get ksession's environment of active RuntimeEngine // while running this there must be an active RuntimeEngine present if (manager != null) { RuntimeEngine engine = manager.getRuntimeEngine(ProcessInstanceIdContext.get(getProcessInstancId(ctxorig))); return engine.getKieSession().getEnvironment(); } else { // last resort use the runtime environment's environment template return environment.getEnvironment(); } } }
@Override public boolean removeJob(JobHandle jobHandle) { if (jobHandle == null) { return false; } jobHandle.setCancel( true ); JobContext jobContext = ((GlobalJDKJobHandle) jobHandle).getTimerJobInstance().getJobContext(); try { ProcessJobContext processCtx = null; if (jobContext instanceof SelfRemovalJobContext) { processCtx = (ProcessJobContext) ((SelfRemovalJobContext) jobContext).getJobContext(); } else { processCtx = (ProcessJobContext) jobContext; } String jobname = processCtx.getSessionId() + "-" + processCtx.getProcessInstanceId() + "-" + processCtx.getTimer().getId(); if (processCtx instanceof StartProcessJobContext) { jobname = "StartProcess-"+((StartProcessJobContext) processCtx).getProcessId()+ "-" + processCtx.getTimer().getId(); } activeTimer.remove(jobname); globalTimerService.getTimerJobFactoryManager().removeTimerJobInstance( ((GlobalJDKJobHandle) jobHandle).getTimerJobInstance() ); } catch (ClassCastException e) { // do nothing in case ProcessJobContext was not given } boolean removed = this.scheduler.remove( (Runnable) ((GlobalJDKJobHandle) jobHandle).getFuture() ); return removed; }
public void removeTimerJobInstance(TimerJobInstance instance) { JobContext ctx = instance.getJobContext(); if (ctx instanceof SelfRemovalJobContext) { ctx = ((SelfRemovalJobContext) ctx).getJobContext(); } Map<Long, TimerJobInstance> instances = null; if (hasMethod(ctx.getClass(), "getSessionId")) { int sessionId = getMethodIntValue(ctx, "getSessionId"); instances = timerInstances.get(sessionId); if (instances == null) { instances = new ConcurrentHashMap<Long, TimerJobInstance>(); timerInstances.put(sessionId, instances); } } else { instances = singleTimerInstances; } instances.remove( instance.getJobHandle().getId() ); }
public void addTimerJobInstance(TimerJobInstance instance) { JobContext ctx = instance.getJobContext(); if (ctx instanceof SelfRemovalJobContext) { ctx = ((SelfRemovalJobContext) ctx).getJobContext(); } Map<Long, TimerJobInstance> instances = null; if (hasMethod(ctx.getClass() ,"getSessionId")) { int sessionId = getMethodIntValue(ctx, "sessionId"); instances = timerInstances.get(sessionId); if (instances == null) { instances = new ConcurrentHashMap<Long, TimerJobInstance>(); timerInstances.put(sessionId, instances); } } else { instances = singleTimerInstances; } instances.put( instance.getJobHandle().getId(), instance ); }
public long getTimerId() { JobContext ctx = this.getTimerJobInstance().getJobContext(); if (ctx instanceof SelfRemovalJobContext) { ctx = ((SelfRemovalJobContext) ctx).getJobContext(); } return ((ProcessJobContext)ctx).getTimer().getId(); }
public long getSessionId() { if (this.getTimerJobInstance() != null) { JobContext ctx = this.getTimerJobInstance().getJobContext(); if (ctx instanceof SelfRemovalJobContext) { ctx = ((SelfRemovalJobContext) ctx).getJobContext(); } if (ctx instanceof ProcessJobContext) { return ((ProcessJobContext)ctx).getSessionId(); } } return -1; }
public ExecutableRunner getRunner( JobContext jobContext ) { JobContext ctxorig = jobContext; if (ctxorig instanceof SelfRemovalJobContext) { ctxorig = ((SelfRemovalJobContext) ctxorig).getJobContext(); } ProcessJobContext ctx = null; if (ctxorig instanceof ProcessJobContext) { ctx = (ProcessJobContext) ctxorig; } else if(ctxorig instanceof NamedJobContext){ return getRunner( ((NamedJobContext)ctxorig).getProcessInstanceId(), ctx ); } else { return getRunner(); } return getRunner( ctx.getProcessInstanceId(), ctx ); }
protected Environment getEnvironment(JobContext jobContext) { JobContext ctxorig = jobContext; if (ctxorig instanceof SelfRemovalJobContext) { ctxorig = ((SelfRemovalJobContext) ctxorig).getJobContext(); } // first attempt to get knowledge runtime's environment if job context is a process one if (ctxorig instanceof ProcessJobContext) { return ((ProcessJobContext) ctxorig).getKnowledgeRuntime().getEnvironment(); } else { // next if we have manager set use it to get ksession's environment of active RuntimeEngine // while running this there must be an active RuntimeEngine present if (manager != null) { RuntimeEngine engine = manager.getRuntimeEngine(ProcessInstanceIdContext.get(getProcessInstancId(ctxorig))); return engine.getKieSession().getEnvironment(); } else { // last resort use the runtime environment's environment template return environment.getEnvironment(); } } }
@Override public boolean removeJob(JobHandle jobHandle) { if (jobHandle == null) { return false; } jobHandle.setCancel( true ); JobContext jobContext = ((GlobalJDKJobHandle) jobHandle).getTimerJobInstance().getJobContext(); try { ProcessJobContext processCtx = null; if (jobContext instanceof SelfRemovalJobContext) { processCtx = (ProcessJobContext) ((SelfRemovalJobContext) jobContext).getJobContext(); } else { processCtx = (ProcessJobContext) jobContext; } String jobname = processCtx.getSessionId() + "-" + processCtx.getProcessInstanceId() + "-" + processCtx.getTimer().getId(); if (processCtx instanceof StartProcessJobContext) { jobname = "StartProcess-"+((StartProcessJobContext) processCtx).getProcessId()+ "-" + processCtx.getTimer().getId(); } activeTimer.remove(jobname); globalTimerService.getTimerJobFactoryManager().removeTimerJobInstance( ((GlobalJDKJobHandle) jobHandle).getTimerJobInstance() ); } catch (ClassCastException e) { // do nothing in case ProcessJobContext was not given } boolean removed = this.scheduler.remove( (Runnable) ((GlobalJDKJobHandle) jobHandle).getFuture() ); return removed; }