public void FIXMEfutureRequestTest() throws InterruptedException { CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", UUID.randomUUID().toString()); Long requestId = executorService.scheduleRequest("org.jbpm.executor.commands.PrintOutCommand", new Date(new Date().getTime() + 10000), ctxCMD); Thread.sleep(5000); List<RequestInfo> runningRequests = executorService.getRunningRequests(); assertEquals(0, runningRequests.size()); List<RequestInfo> futureQueuedRequests = executorService.getFutureQueuedRequests(); assertEquals(1, futureQueuedRequests.size()); Thread.sleep(10000); List<RequestInfo> completedRequests = executorService.getCompletedRequests(); assertEquals(1, completedRequests.size()); }
@Test public void defaultRequestRetryTest() throws InterruptedException { CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", UUID.randomUUID().toString()); executorService.scheduleRequest("org.jbpm.executor.ThrowExceptionCommand", ctxCMD); Thread.sleep(12000); List<RequestInfo> inErrorRequests = executorService.getInErrorRequests(); assertEquals(1, inErrorRequests.size()); List<ErrorInfo> errors = executorService.getAllErrors(); System.out.println(" >>> Errors: " + errors); // Three retries means 4 executions in total 1(regular) + 3(retries) assertEquals(4, errors.size()); }
String callbacks = (String) workItem.getParameter("callbacks"); this.execKey = workItem.getName() + "_" + workItem.getProcessInstanceId() + "_" + workItemId + "@sessionId="+this.sessionId; CommandContext ctx = new CommandContext(); for (Map.Entry<String, Object> entry : workItem.getParameters().entrySet()) { if (entry.getValue() instanceof Object) {
@Test public void executorExceptionTest() throws InterruptedException { CommandContext commandContext = new CommandContext(); commandContext.setData("businessKey", UUID.randomUUID().toString()); cachedEntities.put((String) commandContext.getData("businessKey"), new AtomicLong(1)); commandContext.setData("callbacks", "org.jbpm.executor.SimpleIncrementCallback"); commandContext.setData("retries", 0); executorService.scheduleRequest("org.jbpm.executor.ThrowExceptionCommand", commandContext); System.out.println(System.currentTimeMillis() + " >>> Sleeping for 10 secs"); Thread.sleep(10000); List<RequestInfo> inErrorRequests = executorService.getInErrorRequests(); assertEquals(1, inErrorRequests.size()); System.out.println("Error: " + inErrorRequests.get(0)); List<ErrorInfo> errors = executorService.getAllErrors(); System.out.println(" >>> Errors: " + errors); assertEquals(1, errors.size()); }
@Test public void cancelRequestTest() throws InterruptedException { // The executor is on purpose not started to not fight against race condition // with the request cancelations. CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", UUID.randomUUID().toString()); Long requestId = executorService.scheduleRequest("org.jbpm.executor.commands.PrintOutCommand", ctxCMD); // cancel the task immediately executorService.cancelRequest(requestId); List<RequestInfo> cancelledRequests = executorService.getCancelledRequests(); assertEquals(1, cancelledRequests.size()); }
@Test public void simpleExcecutionTest() throws InterruptedException { CommandContext ctxCMD = new CommandContext(); ctxCMD.setData("businessKey", UUID.randomUUID().toString()); executorService.scheduleRequest("org.jbpm.executor.commands.PrintOutCommand", ctxCMD); Thread.sleep(10000); List<RequestInfo> inErrorRequests = executorService.getInErrorRequests(); assertEquals(0, inErrorRequests.size()); List<RequestInfo> queuedRequests = executorService.getQueuedRequests(); assertEquals(0, queuedRequests.size()); List<RequestInfo> executedRequests = executorService.getCompletedRequests(); assertEquals(1, executedRequests.size()); }
@Test public void callbackTest() throws InterruptedException { CommandContext commandContext = new CommandContext(); commandContext.setData("businessKey", UUID.randomUUID().toString()); cachedEntities.put((String) commandContext.getData("businessKey"), new AtomicLong(1)); commandContext.setData("callbacks", "org.jbpm.executor.SimpleIncrementCallback"); executorService.scheduleRequest("org.jbpm.executor.commands.PrintOutCommand", commandContext); Thread.sleep(10000); List<RequestInfo> inErrorRequests = executorService.getInErrorRequests(); assertEquals(0, inErrorRequests.size()); List<RequestInfo> queuedRequests = executorService.getQueuedRequests(); assertEquals(0, queuedRequests.size()); List<RequestInfo> executedRequests = executorService.getCompletedRequests(); assertEquals(1, executedRequests.size()); assertEquals(2, ((AtomicLong) cachedEntities.get((String) commandContext.getData("businessKey"))).longValue()); }