public UserOperationLogContextEntryBuilder inContextOf(ProcessDefinitionEntity processDefinition) { entry.setProcessDefinitionId(processDefinition.getId()); entry.setProcessDefinitionKey(processDefinition.getKey()); entry.setDeploymentId(processDefinition.getDeploymentId()); return this; }
public void parseProcess(Element processElement, ProcessDefinitionEntity processDefinition) { if (historyLevel.isHistoryEventProduced(HistoryEventTypes.PROCESS_INSTANCE_END, null)) { processDefinition.addBuiltInListener(PvmEvent.EVENTNAME_END, PROCESS_INSTANCE_END_LISTENER); } }
public ActivityImpl getTargetActivity(MigrationInstruction instruction) { if (instruction != null) { return targetProcessDefinition.findActivity(instruction.getTargetActivityId()); } else { return null; } }
@SuppressWarnings("unchecked") protected void addTimerDeclarations(ProcessDefinitionEntity processDefinition) { List<TimerDeclarationImpl> timerDeclarations = (List<TimerDeclarationImpl>) processDefinition.getProperty(BpmnParse.PROPERTYNAME_START_TIMER); if (timerDeclarations!=null) { for (TimerDeclarationImpl timerDeclaration : timerDeclarations) { String deploymentId = processDefinition.getDeploymentId(); timerDeclaration.createStartTimerInstance(deploymentId); } } }
protected boolean isLatestProcessDefinition(ProcessDefinitionEntity processDefinition) { ProcessDefinitionManager processDefinitionManager = Context.getCommandContext().getProcessDefinitionManager(); String key = processDefinition.getKey(); String tenantId = processDefinition.getTenantId(); ProcessDefinitionEntity latestProcessDefinition = processDefinitionManager.findLatestDefinitionByKeyAndTenantId(key, tenantId); return processDefinition.getId().equals(latestProcessDefinition.getId()); }
ProcessDefinitionEntity processDefinition = new ProcessDefinitionEntity(); processDefinition.setKey(processElement.attribute("id")); processDefinition.setName(processElement.attribute("name")); processDefinition.setCategory(rootElement.attribute("targetNamespace")); processDefinition.setProperty(PROPERTYNAME_DOCUMENTATION, parseDocumentation(processElement)); processDefinition.setTaskDefinitions(new HashMap<String, TaskDefinition>()); processDefinition.setDeploymentId(deployment.getId()); processDefinition.setProperty(PROPERTYNAME_JOB_PRIORITY, parsePriority(processElement, PROPERTYNAME_JOB_PRIORITY)); processDefinition.setProperty(PROPERTYNAME_TASK_PRIORITY, parsePriority(processElement, PROPERTYNAME_TASK_PRIORITY)); processDefinition.setVersionTag(processElement.attributeNS(CAMUNDA_BPMN_EXTENSIONS_NS, "versionTag")); processDefinition.setHistoryTimeToLive(ParseUtil.parseHistoryTimeToLive(historyTimeToLive)); processDefinition.setStartableInTasklist(isStartableInTasklist); LOG.parsingElement("process", processDefinition.getKey()); validateActivities(processDefinition.getActivities()); for (ActivityImpl activity : processDefinition.getActivities()) { activity.setDelegateAsyncAfterUpdate(null); activity.setDelegateAsyncBeforeUpdate(null);
.findDeployedProcessDefinitionByKeyVersionAndTenantId(currentProcessDefinition.getKey(), processDefinitionVersion, currentProcessDefinition.getTenantId()); commandContext.getJobDefinitionManager().findByProcessDefinitionId(currentProcessDefinition.getId()); List<JobDefinitionEntity> newVersionJobDefinitions = commandContext.getJobDefinitionManager().findByProcessDefinitionId(newProcessDefinition.getId()); PropertyChange change = new PropertyChange("processDefinitionVersion", currentProcessDefinition.getVersion(), processDefinitionVersion); commandContext.getOperationLogManager().logProcessInstanceOperation( UserOperationLogEntry.OPERATION_TYPE_MODIFY_PROCESS_INSTANCE,
@SuppressWarnings("unchecked") protected void parseTimerStartEventDefinition(Element timerEventDefinition, ActivityImpl timerActivity, ProcessDefinitionEntity processDefinition) { timerActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.START_EVENT_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, timerActivity, TimerStartEventJobHandler.TYPE); timerDeclaration.setRawJobHandlerConfiguration(processDefinition.getKey()); List<TimerDeclarationImpl> timerDeclarations = (List<TimerDeclarationImpl>) processDefinition.getProperty(PROPERTYNAME_START_TIMER); if (timerDeclarations == null) { timerDeclarations = new ArrayList<TimerDeclarationImpl>(); processDefinition.setProperty(PROPERTYNAME_START_TIMER, timerDeclarations); } timerDeclarations.add(timerDeclaration); }
@Override protected void definitionAddedToDeploymentCache(DeploymentEntity deployment, ProcessDefinitionEntity definition, Properties properties) { List<JobDeclaration<?, ?>> declarations = properties.get(JOB_DECLARATIONS_PROPERTY).get(definition.getKey()); updateJobDeclarations(declarations, definition, deployment.isNew()); ProcessDefinitionEntity latestDefinition = findLatestDefinitionByKeyAndTenantId(definition.getKey(), definition.getTenantId()); if (deployment.isNew()) { adjustStartEventSubscriptions(definition, latestDefinition); } // add "authorizations" addAuthorizations(definition); }
public void testDiagramCreationDisabled() { repositoryService.createDeployment().addClasspathResource("org/camunda/bpm/engine/test/bpmn/parse/BpmnParseTest.testParseDiagramInterchangeElements.bpmn20.xml").deploy(); // Graphical information is not yet exposed publicly, so we need to do some plumbing CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutorTxRequired(); ProcessDefinitionEntity processDefinitionEntity = commandExecutor.execute(new Command<ProcessDefinitionEntity>() { @Override public ProcessDefinitionEntity execute(CommandContext commandContext) { return Context.getProcessEngineConfiguration() .getDeploymentCache() .findDeployedLatestProcessDefinitionByKey("myProcess"); } }); assertNotNull(processDefinitionEntity); assertEquals(7, processDefinitionEntity.getActivities().size()); // Check that no diagram has been created List<String> resourceNames = repositoryService.getDeploymentResourceNames(processDefinitionEntity.getDeploymentId()); assertEquals(1, resourceNames.size()); repositoryService.deleteDeployment(repositoryService.createDeploymentQuery().singleResult().getId(), true); }
protected String getDeploymentId() { return getProcessDefinition().getDeploymentId(); } }
protected void logUserOperation(CommandContext commandContext, ProcessDefinitionEntity processDefinitionEntity) { PropertyChange propertyChange = new PropertyChange("historyTimeToLive", processDefinitionEntity.getHistoryTimeToLive(), historyTimeToLive); commandContext.getOperationLogManager() .logProcessDefinitionOperation(UserOperationLogEntry.OPERATION_TYPE_UPDATE_HISTORY_TIME_TO_LIVE, processDefinitionId, processDefinitionEntity.getKey(), propertyChange); }
public UserOperationLogContextEntryBuilder inContextOf(ExecutionEntity execution) { entry.setProcessInstanceId(execution.getProcessInstanceId()); entry.setRootProcessInstanceId(execution.getRootProcessInstanceId()); entry.setProcessDefinitionId(execution.getProcessDefinitionId()); ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) execution.getProcessDefinition(); entry.setProcessDefinitionKey(processDefinition.getKey()); entry.setDeploymentId(processDefinition.getDeploymentId()); return this; }
protected ProcessInstance instantiateProcess(CommandContext commandContext, ConditionHandlerResult result) { ProcessDefinitionEntity processDefinitionEntity = result.getProcessDefinition(); ActivityImpl startEvent = processDefinitionEntity.findActivity(result.getActivity().getActivityId()); ExecutionEntity processInstance = processDefinitionEntity.createProcessInstance(builder.getBusinessKey(), startEvent); processInstance.start(builder.getVariables()); return processInstance; }
protected void ensureTenantAuthorized(CommandContext commandContext, ProcessDefinitionEntity processDefinition) { if (!commandContext.getTenantManager().isAuthenticatedTenant(processDefinition.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("restart process instances of process definition '" + processDefinition.getId() + "'"); } } }
@Override public String getDescription() { return (String) getProperty(BpmnParse.PROPERTYNAME_DOCUMENTATION); }
protected void switchVersionOfJob(JobEntity jobEntity, ProcessDefinitionEntity newProcessDefinition, Map<String, String> jobDefinitionMapping) { jobEntity.setProcessDefinitionId(newProcessDefinition.getId()); jobEntity.setDeploymentId(newProcessDefinition.getDeploymentId()); String newJobDefinitionId = jobDefinitionMapping.get(jobEntity.getJobDefinitionId()); jobEntity.setJobDefinitionId(newJobDefinitionId); }
@Test public void getPreviousProcessDefinitionWithTenantId() { testRule.deployForTenant(TENANT_ONE, emptyProcess); testRule.deployForTenant(TENANT_ONE, emptyProcess); testRule.deployForTenant(TENANT_ONE, emptyProcess); testRule.deployForTenant(TENANT_TWO, emptyProcess); testRule.deployForTenant(TENANT_TWO, emptyProcess); List<ProcessDefinition> latestProcessDefinitions = repositoryService.createProcessDefinitionQuery() .latestVersion() .orderByTenantId() .asc() .list(); ProcessDefinitionEntity previousDefinitionTenantOne = getPreviousDefinition((ProcessDefinitionEntity) latestProcessDefinitions.get(0)); ProcessDefinitionEntity previousDefinitionTenantTwo = getPreviousDefinition((ProcessDefinitionEntity) latestProcessDefinitions.get(1)); assertThat(previousDefinitionTenantOne.getVersion(), is(2)); assertThat(previousDefinitionTenantOne.getTenantId(), is(TENANT_ONE)); assertThat(previousDefinitionTenantTwo.getVersion(), is(1)); assertThat(previousDefinitionTenantTwo.getTenantId(), is(TENANT_TWO)); }
protected String getProcessDefinitionKey(ExecutionEntity execution) { ProcessDefinitionEntity definition = execution.getProcessDefinition(); if (definition != null) { return definition.getKey(); } else { return null; } }
@Override public void checkDeleteProcessDefinitionById(String processDefinitionId) { if (getTenantManager().isTenantCheckEnabled()) { ProcessDefinitionEntity processDefinition = findLatestProcessDefinitionById(processDefinitionId); if (processDefinition != null && !getTenantManager().isAuthenticatedTenant(processDefinition.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("delete the process definition '"+ processDefinitionId + "'"); } } }