protected Date calculateDueDate(CommandContext commandContext, int waitTimeInSeconds, Date oldDate) { Calendar newDateCal = new GregorianCalendar(); if (oldDate != null) { newDateCal.setTime(oldDate); } else { newDateCal.setTime(CommandContextUtil.getCmmnEngineConfiguration(commandContext).getClock().getCurrentTime()); } newDateCal.add(Calendar.SECOND, waitTimeInSeconds); return newDateCal.getTime(); }
protected Expression createExpression(String expressionString) { if (StringUtils.isEmpty(expressionString)) { return null; } return CommandContextUtil.getCmmnEngineConfiguration().getExpressionManager().createExpression(expressionString); }
@Override public void transformJson(HistoryJobEntity job, ObjectNode historicalData, CommandContext commandContext) { CmmnHistoryHelper.deleteHistoricCaseInstance(CommandContextUtil.getCmmnEngineConfiguration(commandContext), getStringFromJson(historicalData, CmmnAsyncHistoryConstants.FIELD_ID)); }
@Override public Object execute(CommandContext commandContext) { CommandContextUtil.getCmmnEngineConfiguration(commandContext).getSchemaManager().schemaDrop(); return null; } });
@Override public Void execute(CommandContext commandContext) { ((CmmnDbSchemaManager) CommandContextUtil.getCmmnEngineConfiguration(commandContext).getSchemaManager()).initSchema(); return null; }
@Override public CaseDefinition execute(CommandContext commandContext) { return CommandContextUtil.getCmmnEngineConfiguration().getDeploymentManager().findDeployedCaseDefinitionById(caseDefinitionId); } }
@Override public CaseInstance execute(CommandContext commandContext) { if (caseInstanceBuilder != null) { return CommandContextUtil.getCmmnEngineConfiguration(commandContext).getCaseInstanceHelper().startCaseInstance(caseInstanceBuilder); } else { throw new FlowableIllegalArgumentException("Cannot start case instance: no case instance builder provided"); } }
@Override public CaseInstance execute(CommandContext commandContext) { if (caseInstanceBuilder != null) { CaseInstanceEntity caseInstanceEntity = CommandContextUtil.getCmmnEngineConfiguration(commandContext).getCaseInstanceHelper() .startCaseInstanceAsync(caseInstanceBuilder); return caseInstanceEntity; } else { throw new FlowableIllegalArgumentException("Cannot start case instance: no case instance builder provided"); } }
protected PlanItemInstanceLifecycleListener createLifecycleListener(FlowableListener listener) { PlanItemInstanceLifecycleListener lifecycleListener = null; CmmnListenerFactory listenerFactory = CommandContextUtil.getCmmnEngineConfiguration().getListenerFactory(); if (ImplementationType.IMPLEMENTATION_TYPE_CLASS.equalsIgnoreCase(listener.getImplementationType())) { lifecycleListener = listenerFactory.createClassDelegateLifeCycleListener(listener); } else if (ImplementationType.IMPLEMENTATION_TYPE_EXPRESSION.equalsIgnoreCase(listener.getImplementationType())) { lifecycleListener = listenerFactory.createExpressionLifeCycleListener(listener); } else if (ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION.equalsIgnoreCase(listener.getImplementationType())) { lifecycleListener = listenerFactory.createDelegateExpressionLifeCycleListener(listener); } return lifecycleListener; }
@Override public Void execute(CommandContext commandContext) { if (changePlanItemStateBuilder.getMovePlanItemInstanceIdList().size() == 0 && changePlanItemStateBuilder.getMovePlanItemDefinitionIdList().size() == 0) { throw new FlowableIllegalArgumentException("No move plan item instance or plan item definition ids provided"); } else if (changePlanItemStateBuilder.getMovePlanItemDefinitionIdList().size() > 0 && changePlanItemStateBuilder.getCaseInstanceId() == null) { throw new FlowableIllegalArgumentException("Case instance id is required"); } CmmnDynamicStateManager dynamicStateManager = CommandContextUtil.getCmmnEngineConfiguration(commandContext).getDynamicStateManager(); dynamicStateManager.movePlanItemInstanceState(changePlanItemStateBuilder, commandContext); return null; } }
@Override public void schemaCheckVersion() { Liquibase liquibase = null; try { liquibase = createLiquibaseInstance(CommandContextUtil.getCmmnEngineConfiguration()); liquibase.validate(); } catch (Exception e) { throw new FlowableException("Error validating app engine schema", e); } finally { closeDatabase(liquibase); } }
public static CaseDefinition getCaseDefinition(String caseDefinitionId) { CmmnDeploymentManager deploymentManager = CommandContextUtil.getCmmnEngineConfiguration().getDeploymentManager(); CaseDefinitionCacheEntry cacheEntry = deploymentManager.getCaseDefinitionCache().get(caseDefinitionId); return getCaseDefinition(caseDefinitionId, deploymentManager, cacheEntry); }
public boolean shouldCreateDiagram(CaseDefinitionEntity caseDefinition, EngineDeployment deployment) { if (deployment.isNew() && caseDefinition.hasGraphicalNotation() && CommandContextUtil.getCmmnEngineConfiguration().isCreateDiagramOnDeploy()) { // If the 'getProcessDiagramResourceNameFromDeployment' call returns null, it means // no diagram image for the process definition was provided in the deployment resources. return ResourceNameUtil.getCaseDiagramResourceNameFromDeployment(caseDefinition, deployment.getResources()) == null; } return false; } }
protected void handleTerminateTransition(CommandContext commandContext, PlanItemInstanceEntity planItemInstanceEntity) { TimerJobEntityManager timerJobEntityManager = CommandContextUtil.getCmmnEngineConfiguration(commandContext).getJobServiceConfiguration().getTimerJobEntityManager(); List<TimerJobEntity> timerJobsEntities = timerJobEntityManager .findJobsByScopeIdAndSubScopeId(planItemInstanceEntity.getCaseInstanceId(), planItemInstanceEntity.getId()); for (TimerJobEntity timerJobEntity : timerJobsEntities) { timerJobEntityManager.delete(timerJobEntity); } }
public static void changeTaskAssignee(TaskEntity taskEntity, String assignee) { if ((taskEntity.getAssignee() != null && !taskEntity.getAssignee().equals(assignee)) || (taskEntity.getAssignee() == null && assignee != null)) { CommandContextUtil.getTaskService().changeTaskAssignee(taskEntity, assignee); CommandContextUtil.getCmmnEngineConfiguration().getListenerNotificationHelper().executeTaskListeners(taskEntity, TaskListener.EVENTNAME_ASSIGNMENT); if (taskEntity.getId() != null) { addAssigneeIdentityLinks(taskEntity); } } }
protected static void applyFieldExtension(FieldExtension fieldExtension, Object target, boolean throwExceptionOnMissingField) { Object value = null; if (fieldExtension.getStringValue() != null) { value = fieldExtension.getStringValue(); } else if (fieldExtension.getExpression() != null) { ExpressionManager expressionManager = CommandContextUtil.getCmmnEngineConfiguration().getExpressionManager(); value = expressionManager.createExpression(fieldExtension.getExpression()); } ReflectUtil.invokeSetterOrField(target, fieldExtension.getFieldName(), value, throwExceptionOnMissingField); }
public static CmmnModel getCmmnModel(String caseDefinitionId) { CmmnDeploymentManager deploymentManager = CommandContextUtil.getCmmnEngineConfiguration().getDeploymentManager(); CaseDefinitionCacheEntry cacheEntry = deploymentManager.getCaseDefinitionCache().get(caseDefinitionId); if (cacheEntry != null) { return cacheEntry.getCmmnModel(); } deploymentManager.findDeployedCaseDefinitionById(caseDefinitionId); return deploymentManager.getCaseDefinitionCache().get(caseDefinitionId).getCmmnModel(); }
protected void updateCachingAndArtifacts(CmmnParseResult parseResult) { CmmnEngineConfiguration cmmnEngineConfiguration = CommandContextUtil.getCmmnEngineConfiguration(); DeploymentCache<CaseDefinitionCacheEntry> caseDefinitionCache = cmmnEngineConfiguration.getCaseDefinitionCache(); CmmnDeploymentEntity deployment = (CmmnDeploymentEntity) parseResult.getDeployment(); for (CaseDefinitionEntity caseDefinitionEntity : parseResult.getAllCaseDefinitions()) { CmmnModel model = parseResult.getCmmnModelForCaseDefinition(caseDefinitionEntity); Case caze = parseResult.getCmmnCaseForCaseDefinition(caseDefinitionEntity); CaseDefinitionCacheEntry cacheEntry = new CaseDefinitionCacheEntry(caseDefinitionEntity, model, caze); caseDefinitionCache.add(caseDefinitionEntity.getId(), cacheEntry); deployment.addDeployedArtifact(caseDefinitionEntity); } }
public static void insertTask(TaskEntity taskEntity, boolean fireCreateEvent) { if (taskEntity.getOwner() != null) { addOwnerIdentityLink(taskEntity); } if (taskEntity.getAssignee() != null) { addAssigneeIdentityLinks(taskEntity); CommandContextUtil.getCmmnEngineConfiguration().getListenerNotificationHelper().executeTaskListeners(taskEntity, TaskListener.EVENTNAME_ASSIGNMENT); } CommandContextUtil.getTaskService().insertTask(taskEntity, fireCreateEvent); CommandContextUtil.getCmmnHistoryManager().recordTaskCreated(taskEntity); }
protected MilestoneInstanceEntity createMilestoneInstance(PlanItemInstanceEntity planItemInstanceEntity, CommandContext commandContext) { MilestoneInstanceEntityManager milestoneInstanceEntityManager = CommandContextUtil.getMilestoneInstanceEntityManager(commandContext); MilestoneInstanceEntity milestoneInstanceEntity = milestoneInstanceEntityManager.create(); milestoneInstanceEntity.setName(milestoneNameExpression.getValue(planItemInstanceEntity).toString()); milestoneInstanceEntity.setTimeStamp(CommandContextUtil.getCmmnEngineConfiguration(commandContext).getClock().getCurrentTime()); milestoneInstanceEntity.setCaseInstanceId(planItemInstanceEntity.getCaseInstanceId()); milestoneInstanceEntity.setCaseDefinitionId(planItemInstanceEntity.getCaseDefinitionId()); milestoneInstanceEntity.setElementId(planItemInstanceEntity.getElementId()); milestoneInstanceEntity.setTenantId(planItemInstanceEntity.getTenantId()); milestoneInstanceEntityManager.insert(milestoneInstanceEntity); return milestoneInstanceEntity; }