@Override public RequestContext createContext() { if (this.commandService instanceof SelfExecutionCommandService) { return new TaskContext(); } return new TaskContext(commandService.createContext(), environment, taskEventSupport); }
/** * Retrieves a list of tasks that the users are currently assigned to, and which * are waiting to be worked on or are being worked on * @param users The list of users that we are interested in * @param context The TaskContext which is associated with the new task * @return A list of TaskInfo objects */ private synchronized List<TaskInfo> getUserActiveTaskLists(List<User> users, TaskContext context) { TaskPersistenceContext taskContext = ((org.jbpm.services.task.commands.TaskContext)context).getPersistenceContext(); Map<String, Object> params = new HashMap<>(); params.put("owners", users); return taskContext.queryStringWithParametersInTransaction(TASK_LIST_QUERY, params, ClassUtil.<List<TaskInfo>>castClass(List.class)); }
public Void execute(Context cntxt) { TaskContext context = (TaskContext) cntxt; doCallbackUserOperation(userId, context, true); groupIds = doUserGroupCallbackOperation(userId, null, context); context.set("local:groups", groupIds); context.getTaskInstanceService().activate(taskId, userId); return null; }
@Override public Void execute(Context ctx ) { TaskContext context = (TaskContext) ctx; Task task = context.getTaskQueryService().getTaskInstanceById(taskId); context.getTaskRuleService().executeRules(task, userId, data, scope); return null; }
@Override public List<TaskSummary> execute(Context cntxt) { TaskContext context = (TaskContext) cntxt; return context.getTaskQueryService().query(userId, queryWhere); }
doCallbackUserOperation(userId, context, true); groupIds = doUserGroupCallbackOperation(userId, null, context); context.set("local:groups", groupIds); Task task = context.getTaskQueryService().getTaskInstanceById(taskId); if (task == null) { throw new PermissionDeniedException("Task '" + taskId + "' not found"); context.loadTaskVariables(task); context.getTaskRuleService().executeRules(task, userId, data, TaskRuleService.COMPLETE_TASK_SCOPE); ((InternalTaskData)task.getTaskData()).setTaskOutputVariables(data); TaskInstanceService instanceService = context.getTaskInstanceService(); instanceService.complete(taskId, userId, data); return null;
public Void execute(Context cntxt) { TaskContext context = (TaskContext) cntxt; doCallbackUserOperation(userId, context, true); groupIds = doUserGroupCallbackOperation(userId, null, context); context.set("local:groups", groupIds); context.getTaskInstanceService().release(taskId, userId); Task task = context.getPersistenceContext().findTask(taskId); if(task.getTaskData().getPreviousStatus().equals(Status.InProgress)) { DeadlineSchedulerHelper.rescheduleDeadlinesForTask((InternalTask) task, context, DeadlineType.START); } return null; }
TaskDeadlinesService deadlineService = context.getTaskDeadlinesService(); TaskQueryService queryService = context.getTaskQueryService(); TaskPersistenceContext persistenceContext = context.getPersistenceContext();
@Before public void initialize() { when(taskContext.getUserGroupCallback()).thenReturn(userGroupCallback); when(taskContext.getTaskQueryService()).thenReturn(taskQueryService); when(taskQueryService.getTaskInstanceById(TASK_ID)).thenReturn(task); when(task.getPeopleAssignments()).thenReturn(peopleAssignments); command = new GetUserTaskCommand(USER_ID, TASK_ID); }
public static void rescheduleDeadlinesForTask(final InternalTask task, TaskContext taskContext, DeadlineType ...types) { Environment environment = taskContext.getTaskContentService().getMarshallerContext(task).getEnvironment(); TaskPersistenceContext persistenceContext = taskContext.getPersistenceContext(); taskContext.loadTaskVariables(task); PeopleAssignments peopleAssignments = task.getPeopleAssignments(); List<OrganizationalEntity> businessAdministrators = peopleAssignments.getBusinessAdministrators(); List<DeadlineType> deadlineTypes = Arrays.asList(types); Deadlines deadlines = HumanTaskHandlerHelper.setDeadlines(task.getTaskData().getTaskInputVariables(), businessAdministrators, environment); if(deadlineTypes.contains(DeadlineType.START)) { for(Deadline deadline : deadlines.getStartDeadlines()) { task.getDeadlines().getStartDeadlines().add(deadline); persistenceContext.persistDeadline(deadline); } } if(deadlineTypes.contains(DeadlineType.END)) { for(Deadline deadline : deadlines.getEndDeadlines()) { task.getDeadlines().getEndDeadlines().add(deadline); persistenceContext.persistDeadline(deadline); } } persistenceContext.updateTask(task); scheduleDeadlinesForTask(task, taskContext, types); }
public Void execute(Context cntxt) { TaskContext context = (TaskContext) cntxt; doCallbackUserOperation(userId, context, true); doUserGroupCallbackOperation(userId, null, context); context.getTaskInstanceService().deleteOutput(taskId, userId); return null; } }
TaskInstanceService mockTaskService = mock(TaskInstanceService.class); UserGroupCallback mockUserGroupCallback = mock(UserGroupCallback.class); when(mockContext.getTaskInstanceService()).thenReturn(mockTaskService); when(mockContext.getUserGroupCallback()).thenReturn(mockUserGroupCallback); when(mockUserGroupCallback.existsUser(anyString())).thenReturn(false);
TaskInstanceService instanceService = context.getTaskInstanceService(); TaskQueryService queryService = context.getTaskQueryService();
UserInfo userInfo = (UserInfo) context.get(EnvironmentName.TASK_USER_INFO); TaskPersistenceContext persistenceContext = ctx.getPersistenceContext(); ContentMarshallerContext mContext = ctx.getTaskContentService().getMarshallerContext(task); Object objectFromBytes = ContentMarshallerHelper.unmarshall(content.getContent(), mContext.getEnvironment(), mContext.getClassloader()); TaskEventSupport taskEventSupport = ctx.getTaskEventSupport();
@Test public void testGetUserTaskLoad() { // Prepare and claim 6 tasks by The Emperor for (int x = 0; x < 6; x++) { TaskFluent task = new TaskFluent() .setName("CalculatorTask1") .addPotentialUser(DARTH_VADER) .setDeploymentID(DEPLOYMENT_ID) .setProcessId(PROCESS_ID) .setAdminUser(ADMIN); createTaskWithoutAssert(task); } User userVader = new UserImpl(DARTH_VADER); TaskContext ctx = new TaskContext(); EntityManager em = emf.createEntityManager(); ctx.setPersistenceContext(new JPATaskPersistenceContext(em)); LoadCalculator calculator = new TotalCompletionTimeLoadCalculator(); Double userTaskLoad = calculator.getUserTaskLoad(userVader, ctx).getCalculatedLoad(); Double userTaskLoads = calculator.getUserTaskLoads(Collections.singletonList(userVader), ctx).iterator().next().getCalculatedLoad(); Assertions.assertThat(userTaskLoad).isGreaterThanOrEqualTo(840.0); Assertions.assertThat(userTaskLoads).isEqualTo(userTaskLoad); em.close(); }
@SuppressWarnings("unchecked") public Map<String, Object> execute(Context cntxt ) { TaskContext context = (TaskContext) cntxt; Task taskById = context.getTaskQueryService().getTaskInstanceById(taskId); if (taskById == null) { throw new IllegalStateException("Unable to find task with id " + taskId); } TaskContentService contentService = context.getTaskContentService(); Content contentById = contentService.getContentById(taskById.getTaskData().getDocumentContentId()); ContentMarshallerContext mContext = contentService.getMarshallerContext(taskById); Object unmarshalledObject = ContentMarshallerHelper.unmarshall(contentById.getContent(), mContext.getEnvironment(), mContext.getClassloader()); if (!(unmarshalledObject instanceof Map)) { logger.debug(" The Task Content is not of type Map, it was: {} so packaging it into new map under Content key ", unmarshalledObject.getClass()); Map<String, Object> content = new HashMap<String, Object>(); content.put("Content", unmarshalledObject); return content; } Map<String, Object> content = (Map<String, Object>) unmarshalledObject; return content; }
UserInfo userInfo = (UserInfo) ((org.jbpm.services.task.commands.TaskContext)context).get(EnvironmentName.TASK_USER_INFO); if (userInfo != null) { logger.debug("Groups going to be resolved by {}", userInfo); TaskPersistenceContext persistenceContext = ((org.jbpm.services.task.commands.TaskContext)context).getPersistenceContext(); Map<String, Object> params = new HashMap<>(); params.put("owners", resolvedUsers);
@Override public Void execute(Context context) { TaskContext ctx = (TaskContext) context; TaskPersistenceContext persistenceContext = ctx.getPersistenceContext(); TaskDeadlinesService deadlineService = ctx.getTaskDeadlinesService(); try { long now = System.currentTimeMillis(); List<DeadlineSummary> resultList = persistenceContext.queryInTransaction("UnescalatedStartDeadlines", ClassUtil.<List<DeadlineSummary>>castClass(List.class)); for (DeadlineSummary summary : resultList) { long delay = summary.getDate().getTime() - now; deadlineService.schedule(summary.getTaskId(), summary.getDeadlineId(), delay, DeadlineType.START); } resultList = persistenceContext.queryInTransaction("UnescalatedEndDeadlines", ClassUtil.<List<DeadlineSummary>>castClass(List.class)); for (DeadlineSummary summary : resultList) { long delay = summary.getDate().getTime() - now; deadlineService.schedule(summary.getTaskId(), summary.getDeadlineId(), delay, DeadlineType.END); } } catch (Exception e) { logger.error("Error when executing deadlines", e); } return null; }
UserInfo userInfo = (UserInfo) context.get(EnvironmentName.TASK_USER_INFO); TaskPersistenceContext persistenceContext = ctx.getPersistenceContext(); TaskEventSupport taskEventSupport = ctx.getTaskEventSupport();
public Long execute(Context cntxt) { TaskContext context = (TaskContext) cntxt; Attachment attachmentImpl = attachment; if (attachmentImpl == null) { attachmentImpl = jaxbAttachment; } Content contentImpl = content; if (contentImpl == null) { contentImpl = jaxbContent; } if (rawContent != null && contentImpl == null) { Task task = context.getPersistenceContext().findTask(taskId); contentImpl = TaskModelProvider.getFactory().newContent(); ContentMarshallerContext ctx = TaskContentRegistry.get().getMarshallerContext(task.getTaskData().getDeploymentId()); ((InternalContent)contentImpl).setContent(ContentMarshallerHelper.marshallContent(task, rawContent, ctx.getEnvironment())); ((InternalAttachment)attachmentImpl).setSize(contentImpl.getContent().length); } doCallbackOperationForAttachment(attachmentImpl, context); return context.getTaskAttachmentService().addAttachment(taskId, attachmentImpl, contentImpl); }