From 93d4b93254ce1781d49350ff6205df9c463a4d14 Mon Sep 17 00:00:00 2001 From: Miguel Ruiz Date: Mon, 2 Dec 2019 07:19:00 +0000 Subject: [PATCH] [AAE-785] Add application version field to processes and tasks in Activiti Core (#3001) * AAE-785: Added appVersion, refactor, tests * AAE-785: Fixed schema version number * AAE-785: Increased value column size * AAE-785: Addressed CRs --- .../impl/APIProcessDefinitionConverter.java | 3 + .../impl/APIProcessInstanceConverter.java | 5 +- .../APIProcessDefinitionConverterTest.java | 25 +- .../impl/APIProcessInstanceConverterTest.java | 50 ++-- .../impl/MockProcessDefinitionBuilder.java | 5 + .../api/model/impl/APITaskConverter.java | 3 + .../api/model/impl/APITaskConverterTest.java | 20 +- .../api/model/impl/MockTaskBuilder.java | 5 + .../org/activiti/engine/ProcessEngine.java | 16 +- .../engine/delegate/DelegateExecution.java | 28 +- .../behavior/UserTaskActivityBehavior.java | 70 ++--- .../impl/bpmn/deployer/BpmnDeployer.java | 11 + .../activiti/engine/impl/cmd/DeployCmd.java | 2 +- .../activiti/engine/impl/cmd/NewTaskCmd.java | 39 +-- .../activiti/engine/impl/db/DbSqlSession.java | 60 +---- .../persistence/entity/ExecutionEntity.java | 40 ++- .../entity/ExecutionEntityImpl.java | 127 ++++----- .../entity/ExecutionEntityManagerImpl.java | 178 ++++++------- .../entity/ProcessDefinitionEntity.java | 4 - .../entity/ProcessDefinitionEntityImpl.java | 13 +- .../persistence/entity/TaskEntityImpl.java | 10 + .../entity/TaskEntityManagerImpl.java | 1 + .../impl/util/ProcessInstanceHelper.java | 63 ++--- .../engine/repository/ProcessDefinition.java | 4 + .../engine/runtime/ProcessInstance.java | 4 + .../java/org/activiti/engine/task/Task.java | 4 + .../db/create/activiti.db2.create.engine.sql | 239 ++++++++--------- .../db/create/activiti.h2.create.engine.sql | 107 ++++---- .../db/create/activiti.hsql.create.engine.sql | 107 ++++---- .../create/activiti.mssql.create.engine.sql | 221 ++++++++-------- .../create/activiti.mysql.create.engine.sql | 241 +++++++++--------- .../create/activiti.mysql55.create.engine.sql | 235 ++++++++--------- .../create/activiti.oracle.create.engine.sql | 217 ++++++++-------- .../activiti.postgres.create.engine.sql | 227 +++++++++-------- .../activiti/db/mapping/entity/Execution.xml | 226 ++++++++-------- .../db/mapping/entity/ProcessDefinition.xml | 11 +- .../org/activiti/db/mapping/entity/Task.xml | 191 +++++++------- ...iti.h2.upgradestep.7000.to.7100.engine.sql | 2 + ...ti.h2.upgradestep.7100.to.710M6.engine.sql | 5 + ...stgres.upgradestep.7000.to.7100.engine.sql | 2 +- ...tgres.upgradestep.7100.to.710M6.engine.sql | 5 + .../examples/mgmt/ManagementServiceTest.java | 10 +- .../spring/boot/process/ProcessRuntimeIT.java | 72 ++++-- .../boot/process/ProcessRuntimeTasksIT.java | 71 ++++++ .../boot/tasks/TaskRuntimeAppVersionIT.java | 54 ++++ 45 files changed, 1646 insertions(+), 1387 deletions(-) create mode 100644 activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.h2.upgradestep.7100.to.710M6.engine.sql create mode 100644 activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.postgres.upgradestep.7100.to.710M6.engine.sql create mode 100644 activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/process/ProcessRuntimeTasksIT.java create mode 100644 activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/tasks/TaskRuntimeAppVersionIT.java diff --git a/activiti-api-impl/activiti-api-process-runtime-impl/src/main/java/org/activiti/runtime/api/model/impl/APIProcessDefinitionConverter.java b/activiti-api-impl/activiti-api-process-runtime-impl/src/main/java/org/activiti/runtime/api/model/impl/APIProcessDefinitionConverter.java index e29dd8c54d..f355a75c4e 100644 --- a/activiti-api-impl/activiti-api-process-runtime-impl/src/main/java/org/activiti/runtime/api/model/impl/APIProcessDefinitionConverter.java +++ b/activiti-api-impl/activiti-api-process-runtime-impl/src/main/java/org/activiti/runtime/api/model/impl/APIProcessDefinitionConverter.java @@ -16,6 +16,8 @@ package org.activiti.runtime.api.model.impl; +import java.util.Objects; + import org.activiti.api.process.model.ProcessDefinition; import org.activiti.api.runtime.model.impl.ProcessDefinitionImpl; import org.activiti.bpmn.model.BpmnModel; @@ -37,6 +39,7 @@ public class APIProcessDefinitionConverter extends ListConverter *
  • * {@link org.activiti.engine.RuntimeService}: Allows the creation of {@link org.activiti.engine.repository.Deployment}s and the starting of and searching on @@ -29,17 +29,17 @@ import org.activiti.engine.api.internal.Internal; *
  • * {@link org.activiti.engine.HistoryService}: Service exposing information about ongoing and past process instances.
  • * - * + * * Typically, there will be only one central ProcessEngine instance needed in a end-user application. Building a ProcessEngine is done through a {@link ProcessEngineConfiguration} instance and is a * costly operation which should be avoided. For that purpose, it is advised to store it in a static field or JNDI location (or something similar). This is a thread-safe object, so no special * precautions need to be taken. - * + * */ @Internal public interface ProcessEngine { /** the version of the activiti library */ - public static String VERSION = "7.1.0.0"; // Note the extra .x at the end. To cater for snapshot releases with different database changes + public static String VERSION = "7.1.0-M6"; // Note the extra -x at the end. To cater for snapshot releases with different database changes /** * The name as specified in 'process-engine-name' in the activiti.cfg.xml configuration file. The default name for a process engine is 'default @@ -47,7 +47,7 @@ public interface ProcessEngine { String getName(); void close(); - + RepositoryService getRepositoryService(); RuntimeService getRuntimeService(); @@ -57,7 +57,7 @@ public interface ProcessEngine { HistoryService getHistoryService(); ManagementService getManagementService(); - + DynamicBpmnService getDynamicBpmnService(); ProcessEngineConfiguration getProcessEngineConfiguration(); diff --git a/activiti-engine/src/main/java/org/activiti/engine/delegate/DelegateExecution.java b/activiti-engine/src/main/java/org/activiti/engine/delegate/DelegateExecution.java index 06801cd462..3b4a845f8c 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/delegate/DelegateExecution.java +++ b/activiti-engine/src/main/java/org/activiti/engine/delegate/DelegateExecution.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,7 +20,7 @@ import org.activiti.bpmn.model.FlowElement; /** * Execution used in {@link JavaDelegate}s and {@link ExecutionListener}s. - * + * */ @@ -33,7 +33,7 @@ public interface DelegateExecution extends VariableScope { /** Reference to the overall process instance */ String getProcessInstanceId(); - + /** * The 'root' process instance. When using call activity for example, the processInstance * set will not always be the root. This method returns the topmost process instance. @@ -44,9 +44,9 @@ public interface DelegateExecution extends VariableScope { * Will contain the event name in case this execution is passed in for an {@link ExecutionListener}. */ String getEventName(); - + /** - * Sets the current event (typically when execution an {@link ExecutionListener}). + * Sets the current event (typically when execution an {@link ExecutionListener}). */ void setEventName(String eventName); @@ -79,26 +79,26 @@ public interface DelegateExecution extends VariableScope { * Returns the tenant id, if any is set before on the process definition or process instance. */ String getTenantId(); - + /** - * The BPMN element where the execution currently is at. + * The BPMN element where the execution currently is at. */ FlowElement getCurrentFlowElement(); /** - * Change the current BPMN element the execution is at. + * Change the current BPMN element the execution is at. */ void setCurrentFlowElement(FlowElement flowElement); - + /** * Returns the {@link ActivitiListener} instance matching an {@link ExecutionListener} - * if currently an execution listener is being execution. + * if currently an execution listener is being execution. * Returns null otherwise. */ ActivitiListener getCurrentActivitiListener(); /** - * Called when an {@link ExecutionListener} is being executed. + * Called when an {@link ExecutionListener} is being executed. */ void setCurrentActivitiListener(ActivitiListener currentActivitiListener); @@ -160,12 +160,12 @@ public interface DelegateExecution extends VariableScope { * Changes whether this execution is a scope or not. */ void setScope(boolean isScope); - + /** * Returns whather this execution is the root of a multi instance execution. */ boolean isMultiInstanceRoot(); - + /** * Changes whether this execution is a multi instance root or not. * @param isMultiInstanceRoot diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/UserTaskActivityBehavior.java b/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/UserTaskActivityBehavior.java index 592becfb09..9cd6d66248 100755 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/UserTaskActivityBehavior.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/UserTaskActivityBehavior.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -55,7 +55,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { private static final long serialVersionUID = 1L; private static final Logger LOGGER = LoggerFactory.getLogger(UserTaskActivityBehavior.class); - + protected UserTask userTask; public UserTaskActivityBehavior(UserTask userTask) { @@ -65,9 +65,10 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { public void execute(DelegateExecution execution) { CommandContext commandContext = Context.getCommandContext(); TaskEntityManager taskEntityManager = commandContext.getTaskEntityManager(); - + TaskEntity task = taskEntityManager.create(); - task.setExecution((ExecutionEntity) execution); + ExecutionEntity executionEntity = (ExecutionEntity) execution; + task.setExecution(executionEntity); task.setTaskDefinitionKey(userTask.getId()); String activeTaskName = null; @@ -81,10 +82,10 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { String activeTaskOwner = null; List activeTaskCandidateUsers = null; List activeTaskCandidateGroups = null; - + ProcessEngineConfigurationImpl processEngineConfiguration = Context.getProcessEngineConfiguration(); ExpressionManager expressionManager = processEngineConfiguration.getExpressionManager(); - + if (Context.getProcessEngineConfiguration().isEnableProcessDefinitionInfoCache()) { ObjectNode taskElementProperties = Context.getBpmnOverrideElementProperties(userTask.getId(), execution.getProcessDefinitionId()); activeTaskName = getActiveValue(userTask.getName(), DynamicBpmnConstants.USER_TASK_NAME, taskElementProperties); @@ -98,7 +99,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { activeTaskOwner = getActiveValue(userTask.getOwner(), DynamicBpmnConstants.USER_TASK_OWNER, taskElementProperties); activeTaskCandidateUsers = getActiveValueList(userTask.getCandidateUsers(), DynamicBpmnConstants.USER_TASK_CANDIDATE_USERS, taskElementProperties); activeTaskCandidateGroups = getActiveValueList(userTask.getCandidateGroups(), DynamicBpmnConstants.USER_TASK_CANDIDATE_GROUPS, taskElementProperties); - + } else { activeTaskName = userTask.getName(); activeTaskDescription = userTask.getDocumentation(); @@ -123,7 +124,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { } task.setName(name); } - + if (StringUtils.isNotEmpty(activeTaskDescription)) { String description = null; try { @@ -147,17 +148,17 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { } else { businessCalendarName = DueDateBusinessCalendar.NAME; } - + BusinessCalendar businessCalendar = Context.getProcessEngineConfiguration().getBusinessCalendarManager() .getBusinessCalendar(businessCalendarName); task.setDueDate(businessCalendar.resolveDuedate((String) dueDate)); - + } else { throw new ActivitiIllegalArgumentException("Due date expression does not resolve to a Date or Date string: " + activeTaskDueDate); } } } - + if (StringUtils.isNotEmpty(activeTaskPriority)) { final Object priority = expressionManager.createExpression(activeTaskPriority).getValue(execution); if (priority != null) { @@ -185,7 +186,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { } } } - + if (StringUtils.isNotEmpty(activeTaskFormKey)) { final Object formKey = expressionManager.createExpression(activeTaskFormKey).getValue(execution); if (formKey != null) { @@ -197,26 +198,27 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { } } + task.setAppVersion(executionEntity.getProcessInstance().getAppVersion()); - taskEntityManager.insert(task, (ExecutionEntity) execution); + taskEntityManager.insert(task, executionEntity); task.setVariablesLocal(calculateInputVariables(execution)); boolean skipUserTask = false; if (StringUtils.isNotEmpty(activeTaskSkipExpression)) { Expression skipExpression = expressionManager.createExpression(activeTaskSkipExpression); - skipUserTask = SkipExpressionUtil.isSkipExpressionEnabled(execution, skipExpression) + skipUserTask = SkipExpressionUtil.isSkipExpressionEnabled(execution, skipExpression) && SkipExpressionUtil.shouldSkipFlowElement(execution, skipExpression); } - + // Handling assignments need to be done after the task is inserted, to have an id if (!skipUserTask) { - handleAssignments(taskEntityManager, activeTaskAssignee, activeTaskOwner, + handleAssignments(taskEntityManager, activeTaskAssignee, activeTaskOwner, activeTaskCandidateUsers, activeTaskCandidateGroups, task, expressionManager, execution); } - + processEngineConfiguration.getListenerNotificationHelper().executeTaskListeners(task, TaskListener.EVENTNAME_CREATE); - + // All properties set, now fire events if (Context.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { ActivitiEventDispatcher eventDispatcher = Context.getProcessEngineConfiguration().getEventDispatcher(); @@ -227,7 +229,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { ActivitiEventBuilder.createEntityEvent(ActivitiEventType.TASK_ASSIGNED, task)); } } - + if (skipUserTask) { taskEntityManager.deleteTask(task, null, false, false); leave(execution); @@ -243,7 +245,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { return Collections.emptyMap(); } } - + protected Map calculateOutBoundVariables(DelegateExecution execution, Map taskVariables) { CommandContext commandContext = Context.getCommandContext(); @@ -255,7 +257,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { public void trigger(DelegateExecution execution, String signalName, Object signalData) { CommandContext commandContext = Context.getCommandContext(); - + TaskEntityManager taskEntityManager = commandContext.getTaskEntityManager(); List taskEntities = taskEntityManager.findTasksByExecutionId(execution.getId()); // Should be only one for (TaskEntity taskEntity : taskEntities) { @@ -292,7 +294,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { @SuppressWarnings({ "unchecked", "rawtypes" }) protected void handleAssignments(TaskEntityManager taskEntityManager, String assignee, String owner, List candidateUsers, List candidateGroups, TaskEntity task, ExpressionManager expressionManager, DelegateExecution execution) { - + if (StringUtils.isNotEmpty(assignee)) { Object assigneeExpressionValue = expressionManager.createExpression(assignee).getValue(execution); String assigneeValue = null; @@ -342,9 +344,9 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { } } } - + if (userTask.getCustomUserIdentityLinks() != null && !userTask.getCustomUserIdentityLinks().isEmpty()) { - + for (String customUserIdentityLinkType : userTask.getCustomUserIdentityLinks().keySet()) { for (String userIdentityLink : userTask.getCustomUserIdentityLinks().get(customUserIdentityLinkType)) { Expression idExpression = expressionManager.createExpression(userIdentityLink); @@ -362,17 +364,17 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { } else { throw new ActivitiException("Expression did not resolve to a string or collection of strings"); } - + } } - + } if (userTask.getCustomGroupIdentityLinks() != null && !userTask.getCustomGroupIdentityLinks().isEmpty()) { - + for (String customGroupIdentityLinkType : userTask.getCustomGroupIdentityLinks().keySet()) { for (String groupIdentityLink : userTask.getCustomGroupIdentityLinks().get(customGroupIdentityLinkType)) { - + Expression idExpression = expressionManager.createExpression(groupIdentityLink); Object value = idExpression.getValue(execution); if (value instanceof String) { @@ -388,17 +390,17 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { } else { throw new ActivitiException("Expression did not resolve to a string or collection of strings"); } - + } } - + } - + } - + /** * Extract a candidate list from a string. - * + * * @param str * @return */ diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java b/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java index cccf704ca2..fd7d97444f 100755 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/deployer/BpmnDeployer.java @@ -80,6 +80,8 @@ public class BpmnDeployer implements Deployer { getPreviousVersionsOfProcessDefinitions(parsedDeployment); setProcessDefinitionVersionsAndIds(parsedDeployment, mapOfNewProcessDefinitionToPreviousVersion); + setProcessDefinitionAppVersion(parsedDeployment); + persistProcessDefinitionsAndAuthorizations(parsedDeployment); updateTimersAndEvents(parsedDeployment, mapOfNewProcessDefinitionToPreviousVersion); @@ -437,6 +439,15 @@ public class BpmnDeployer implements Deployer { return isEqual; } + private void setProcessDefinitionAppVersion(ParsedDeployment parsedDeployment) { + if (parsedDeployment.getDeployment().getProjectReleaseVersion() != null) { + Integer version = parsedDeployment.getDeployment().getVersion(); + for (ProcessDefinitionEntity processDefinition : parsedDeployment.getAllProcessDefinitions()) { + processDefinition.setAppVersion(version); + } + } + } + protected boolean localizeDataObjectElements(List dataObjects, ObjectNode infoNode) { boolean localizationValuesChanged = false; diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeployCmd.java b/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeployCmd.java index d5ffd4697c..cf7e06d825 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeployCmd.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeployCmd.java @@ -82,7 +82,7 @@ public class DeployCmd implements Command, Serializable { existingDeployment)) { return existingDeployment; } else { - deployment.setVersion(existingDeployment.getVersion() != null? existingDeployment.getVersion() + 1 : 2); + deployment.setVersion(existingDeployment.getVersion() + 1); } } } diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/NewTaskCmd.java b/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/NewTaskCmd.java index 7926f9f419..a3784b2dbb 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/NewTaskCmd.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/NewTaskCmd.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -13,30 +13,37 @@ package org.activiti.engine.impl.cmd; import java.io.Serializable; +import java.util.Optional; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; +import org.activiti.engine.impl.persistence.entity.DeploymentEntity; +import org.activiti.engine.impl.persistence.entity.DeploymentEntityManager; import org.activiti.engine.impl.persistence.entity.TaskEntity; import org.activiti.engine.task.Task; -/** - - */ public class NewTaskCmd implements Command, Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - protected String taskId; + private final String taskId; - public NewTaskCmd(String taskId) { - this.taskId = taskId; - } + public NewTaskCmd(String taskId) { + this.taskId = taskId; + } - public Task execute(CommandContext commandContext) { - TaskEntity task = commandContext.getTaskEntityManager().create(); - task.setId(taskId); - task.setRevision(0); - return task; - } + public Task execute(CommandContext commandContext) { + TaskEntity task = commandContext.getTaskEntityManager().create(); + task.setId(taskId); + task.setRevision(0); + findAppVersionFromDeployment(commandContext.getDeploymentEntityManager()) + .ifPresent(task::setAppVersion); + return task; + } + private Optional findAppVersionFromDeployment(DeploymentEntityManager deploymentEntityManager) { + DeploymentEntity deployment = deploymentEntityManager.findLatestDeploymentByName("SpringAutoDeployment"); + return Optional.ofNullable(deployment) + .map(DeploymentEntity::getVersion); + } } diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java b/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java index 6f0a812c90..e79e573700 100755 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -32,8 +32,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiOptimisticLockingException; @@ -68,16 +66,10 @@ import org.apache.ibatis.session.SqlSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** - - - */ public class DbSqlSession implements Session { private static final Logger log = LoggerFactory.getLogger(DbSqlSession.class); - protected static final Pattern CLEAN_VERSION_REGEX = Pattern.compile("\\d\\.\\d*"); - protected static final String LAST_V5_VERSION = "5.99.0.0"; protected static final List ACTIVITI_VERSIONS = new ArrayList(); @@ -118,11 +110,11 @@ public class DbSqlSession implements Session { ACTIVITI_VERSIONS.add(new ActivitiVersion("5.20.0.1")); ACTIVITI_VERSIONS.add(new ActivitiVersion("5.20.0.2")); ACTIVITI_VERSIONS.add(new ActivitiVersion("5.21.0.0")); - + /* * Version 5.18.0.1 is the latest v5 version in the list here, although if you would look at the v5 code, * you'll see there are a few other releases afterwards. - * + * * The reasoning is as follows: after 5.18.0.1, no database changes were done anymore. * And if there would be database changes, they would have been part of both 5.x _and_ 6.x upgrade scripts. * The logic below will assume it's one of these releases in case it isn't found in the list here @@ -141,6 +133,7 @@ public class DbSqlSession implements Session { // Version 7 ACTIVITI_VERSIONS.add(new ActivitiVersion("7.0.0.0")); + ACTIVITI_VERSIONS.add(new ActivitiVersion("7.1.0.0")); /* Current */ ACTIVITI_VERSIONS.add(new ActivitiVersion(ProcessEngine.VERSION)); @@ -1191,49 +1184,6 @@ public class DbSqlSession implements Session { } } - protected boolean isUpgradeNeeded(String versionInDatabase) { - if (ProcessEngine.VERSION.equals(versionInDatabase)) { - return false; - } - - String cleanDbVersion = getCleanVersion(versionInDatabase); - String[] cleanDbVersionSplitted = cleanDbVersion.split("\\."); - int dbMajorVersion = Integer.valueOf(cleanDbVersionSplitted[0]); - int dbMinorVersion = Integer.valueOf(cleanDbVersionSplitted[1]); - - String cleanEngineVersion = getCleanVersion(ProcessEngine.VERSION); - String[] cleanEngineVersionSplitted = cleanEngineVersion.split("\\."); - int engineMajorVersion = Integer.valueOf(cleanEngineVersionSplitted[0]); - int engineMinorVersion = Integer.valueOf(cleanEngineVersionSplitted[1]); - - if ((dbMajorVersion > engineMajorVersion) || ((dbMajorVersion <= engineMajorVersion) && (dbMinorVersion > engineMinorVersion))) { - throw new ActivitiException("Version of activiti database (" + versionInDatabase + ") is more recent than the engine (" + ProcessEngine.VERSION + ")"); - } else if (cleanDbVersion.compareTo(cleanEngineVersion) == 0) { - // Versions don't match exactly, possibly snapshot is being used - log.warn("Engine-version is the same, but not an exact match: {} vs. {}. Not performing database-upgrade.", - versionInDatabase, - ProcessEngine.VERSION); - return false; - } - return true; - } - - protected String getCleanVersion(String versionString) { - Matcher matcher = CLEAN_VERSION_REGEX.matcher(versionString); - if (!matcher.find()) { - throw new ActivitiException("Illegal format for version: " + versionString); - } - - String cleanString = matcher.group(); - try { - Double.parseDouble(cleanString); // try to parse it, to see if it is - // really a number - return cleanString; - } catch (NumberFormatException nfe) { - throw new ActivitiException("Illegal format for version: " + versionString); - } - } - protected String prependDatabaseTablePrefix(String tableName) { return dbSqlSessionFactory.getDatabaseTablePrefix() + tableName; } diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntity.java b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntity.java index 69fa0f9c5e..a4e481b842 100755 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntity.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntity.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -22,11 +22,9 @@ import org.activiti.engine.impl.db.HasRevision; import org.activiti.engine.runtime.Execution; import org.activiti.engine.runtime.ProcessInstance; -/** - */ @Internal public interface ExecutionEntity extends DelegateExecution, Execution, ProcessInstance, Entity, HasRevision { - + void setBusinessKey(String businessKey); void setProcessDefinitionId(String processDefinitionId); @@ -42,7 +40,7 @@ public interface ExecutionEntity extends DelegateExecution, Execution, ProcessIn ExecutionEntity getProcessInstance(); void setProcessInstance(ExecutionEntity processInstance); - + ExecutionEntity getParent(); void setParent(ExecutionEntity parent); @@ -56,25 +54,25 @@ public interface ExecutionEntity extends DelegateExecution, Execution, ProcessIn void setSubProcessInstance(ExecutionEntity subProcessInstance); void setRootProcessInstanceId(String rootProcessInstanceId); - + public void setParentProcessInstanceId(String parentProcessInstanceId); - + ExecutionEntity getRootProcessInstance(); - + void setRootProcessInstance(ExecutionEntity rootProcessInstance); - + List getExecutions(); - + void addChildExecution(ExecutionEntity executionEntity); - + List getTasks(); List getEventSubscriptions(); List getJobs(); - + List getTimerJobs(); - + List getIdentityLinks(); void setProcessInstanceId(String processInstanceId); @@ -96,19 +94,19 @@ public interface ExecutionEntity extends DelegateExecution, Execution, ProcessIn boolean isEventScope(); void setEventScope(boolean isEventScope); - + boolean isMultiInstanceRoot(); - + void setMultiInstanceRoot(boolean isMultiInstanceRoot); void setName(String name); - + void setDescription(String description); void setLocalizedName(String localizedName); - + void setLocalizedDescription(String localizedDescription); - + void setTenantId(String tenantId); Date getLockTime(); @@ -118,7 +116,7 @@ public interface ExecutionEntity extends DelegateExecution, Execution, ProcessIn boolean isDeleted(); void setDeleted(boolean isDeleted); - + void forceUpdate(); String getStartUserId(); @@ -128,5 +126,5 @@ public interface ExecutionEntity extends DelegateExecution, Execution, ProcessIn Date getStartTime(); void setStartTime(Date startTime); - + } diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityImpl.java b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityImpl.java index ca30d75d96..ac4fdb5b91 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityImpl.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityImpl.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -31,21 +31,13 @@ import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.CountingExecutionEntity; import org.activiti.engine.impl.util.ProcessDefinitionUtil; -/** - - - - - - */ - public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionEntity, CountingExecutionEntity { private static final long serialVersionUID = 1L; // current position ///////////////////////////////////////////////////////// - protected FlowElement currentFlowElement; + protected FlowElement currentFlowElement; protected ActivitiListener currentActivitiListener; // Only set when executing an execution listener /** @@ -75,7 +67,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE protected Date lockTime; // state/type of execution ////////////////////////////////////////////////// - + protected boolean isActive = true; protected boolean isScope = true; protected boolean isConcurrent; @@ -85,7 +77,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE protected boolean isCountEnabled; // events /////////////////////////////////////////////////////////////////// - + // TODO: still needed in v6? protected String eventName; @@ -102,13 +94,13 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE // cascade deletion //////////////////////////////////////////////////////// protected String deleteReason; - + protected int suspensionState = SuspensionState.ACTIVE.getStateCode(); - + protected String startUserId; protected Date startTime; - - // CountingExecutionEntity + + // CountingExecutionEntity protected int eventSubscriptionCount; protected int taskCount; protected int jobCount; @@ -120,7 +112,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE /** * persisted reference to the processDefinition. - * + * * @see #processDefinition * @see #setProcessDefinition(ProcessDefinitionImpl) * @see #getProcessDefinition() @@ -149,7 +141,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE /** * persisted reference to the current position in the diagram within the {@link #processDefinition}. - * + * * @see #activity * @see #setActivity(ActivityImpl) * @see #getActivity() @@ -163,7 +155,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE /** * persisted reference to the process instance. - * + * * @see #getProcessInstance() */ protected String processInstanceId; @@ -175,7 +167,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE /** * persisted reference to the parent of this execution. - * + * * @see #getParent() * @see #setParentId(String) */ @@ -183,27 +175,29 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE /** * persisted reference to the super execution of this execution - * + * * @See {@link #getSuperExecution()} * @see #setSuperExecution(ExecutionEntityImpl) */ protected String superExecutionId; - + protected String rootProcessInstanceId; protected ExecutionEntityImpl rootProcessInstance; protected boolean forcedUpdate; protected List queryVariables; - + protected boolean isDeleted; // TODO: should be in entity superclass probably protected String parentProcessInstanceId; - public ExecutionEntityImpl() { - + private Integer appVersion; + + public ExecutionEntityImpl() { + } - + /** * Static factory method: to be used when a new execution is created for the very first time/ * Calling this will make sure no extra db fetches are needed later on, as all collections @@ -221,8 +215,8 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE execution.identityLinks = new ArrayList(1); return execution; } - - + + //persistent state ///////////////////////////////////////////////////////// public Object getPersistentState() { @@ -255,7 +249,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE persistentState.put("identityLinkCount", identityLinkCount); return persistentState; } - + // The current flow element, will be filled during operation execution public FlowElement getCurrentFlowElement() { @@ -277,7 +271,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE this.activityId = null; } } - + public ActivitiListener getCurrentActivitiListener() { return currentActivitiListener; } @@ -293,7 +287,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE ensureExecutionsInitialized(); return executions; } - + @Override public void addChildExecution(ExecutionEntity executionEntity) { ensureExecutionsInitialized(); @@ -421,7 +415,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public void setParentProcessInstanceId(String parentProcessInstanceId) { this.parentProcessInstanceId = parentProcessInstanceId; } - + // super- and subprocess executions ///////////////////////////////////////// public String getSuperExecutionId() { @@ -441,7 +435,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE if (superExecution != null) { this.superExecutionId = ((ExecutionEntityImpl) superExecution).getId(); - this.parentProcessInstanceId = superExecution.getProcessInstanceId(); + this.parentProcessInstanceId = superExecution.getProcessInstanceId(); } else { this.superExecutionId = null; this.parentProcessInstanceId = null; @@ -468,18 +462,18 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE subProcessInstance = (ExecutionEntityImpl) Context.getCommandContext().getExecutionEntityManager().findSubProcessInstanceBySuperExecutionId(id); } } - + public ExecutionEntity getRootProcessInstance() { ensureRootProcessInstanceInitialized(); return rootProcessInstance; } - + protected void ensureRootProcessInstanceInitialized() { if (rootProcessInstanceId == null) { rootProcessInstance = (ExecutionEntityImpl) Context.getCommandContext().getExecutionEntityManager().findById(rootProcessInstanceId); } } - + public void setRootProcessInstance(ExecutionEntity rootProcessInstance) { this.rootProcessInstance = (ExecutionEntityImpl) rootProcessInstance; @@ -489,11 +483,11 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE this.rootProcessInstanceId = null; } } - + public String getRootProcessInstanceId() { return rootProcessInstanceId; } - + public void setRootProcessInstanceId(String rootProcessInstanceId) { this.rootProcessInstanceId = rootProcessInstanceId; } @@ -511,11 +505,11 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public void forceUpdate() { this.forcedUpdate = true; } - + // VariableScopeImpl methods ////////////////////////////////////////////////////////////////// - - // TODO: this should ideally move to another place + + // TODO: this should ideally move to another place @Override protected void initializeVariableInstanceBackPointer(VariableInstanceEntity variableInstance) { if (processInstanceId != null) { @@ -558,7 +552,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE } return result; } - + @Override protected void updateVariableInstance(VariableInstanceEntity variableInstance, Object value, ExecutionEntity sourceActivityExecution) { super.updateVariableInstance(variableInstance, value, sourceActivityExecution); @@ -614,18 +608,18 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE ensureJobsInitialized(); return jobs; } - + protected void ensureJobsInitialized() { if (jobs == null) { jobs = Context.getCommandContext().getJobEntityManager().findJobsByExecutionId(id); } } - + public List getTimerJobs() { ensureTimerJobsInitialized(); return timerJobs; } - + protected void ensureTimerJobsInitialized() { if (timerJobs == null) { timerJobs = Context.getCommandContext().getTimerJobEntityManager().findJobsByExecutionId(id); @@ -695,7 +689,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public void setActive(boolean isActive) { this.isActive = isActive; } - + public void inactivate() { this.isActive = false; } @@ -703,7 +697,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public boolean isEnded() { return isEnded; } - + public void setEnded(boolean isEnded) { this.isEnded = isEnded; } @@ -743,17 +737,17 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public void setEventScope(boolean isEventScope) { this.isEventScope = isEventScope; } - + @Override public boolean isMultiInstanceRoot() { return isMultiInstanceRoot; } - + @Override public void setMultiInstanceRoot(boolean isMultiInstanceRoot) { this.isMultiInstanceRoot = isMultiInstanceRoot; } - + @Override public boolean isCountEnabled() { return isCountEnabled; @@ -788,23 +782,23 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE return description; } } - + public void setDescription(String description) { this.description = description; } - + public String getLocalizedName() { return localizedName; } - + public void setLocalizedName(String localizedName) { this.localizedName = localizedName; } - + public String getLocalizedDescription() { return localizedDescription; } - + public void setLocalizedDescription(String localizedDescription) { this.localizedDescription = localizedDescription; } @@ -855,7 +849,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public void setDeleted(boolean isDeleted) { this.isDeleted = isDeleted; } - + public String getActivityName() { return activityName; } @@ -875,7 +869,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public void setStartTime(Date startTime) { this.startTime = startTime; } - + public int getEventSubscriptionCount() { return eventSubscriptionCount; } @@ -899,7 +893,7 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public void setJobCount(int jobCount) { this.jobCount = jobCount; } - + public int getTimerJobCount() { return timerJobCount; } @@ -931,15 +925,24 @@ public class ExecutionEntityImpl extends VariableScopeImpl implements ExecutionE public void setVariableCount(int variableCount) { this.variableCount = variableCount; } - + public int getIdentityLinkCount() { return identityLinkCount; } - + public void setIdentityLinkCount(int identityLinkCount) { this.identityLinkCount = identityLinkCount; - } + } + @Override + public void setAppVersion(Integer appVersion) { + this.appVersion = appVersion; + } + + @Override + public Integer getAppVersion() { + return appVersion; + } //toString ///////////////////////////////////////////////////////////////// diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java index 3d0139f5a4..d2d63370f2 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntityManagerImpl.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -47,11 +47,11 @@ import org.slf4j.LoggerFactory; */ public class ExecutionEntityManagerImpl extends AbstractEntityManager implements ExecutionEntityManager { - + private static final Logger logger = LoggerFactory.getLogger(ExecutionEntityManagerImpl.class); - + protected ExecutionDataManager executionDataManager; - + public ExecutionEntityManagerImpl(ProcessEngineConfigurationImpl processEngineConfiguration, ExecutionDataManager executionDataManager) { super(processEngineConfiguration); this.executionDataManager = executionDataManager; @@ -61,20 +61,20 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager getDataManager() { return executionDataManager; } - + // Overriding the default delete methods to set the 'isDeleted' flag - + @Override public void delete(ExecutionEntity entity) { delete(entity, true); } - + @Override public void delete(ExecutionEntity entity, boolean fireDeleteEvent) { super.delete(entity, fireDeleteEvent); entity.setDeleted(true); } - + // FIND METHODS @Override @@ -106,7 +106,7 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager findExecutionsByQueryCriteria(ExecutionQueryImpl executionQuery, Page page) { return executionDataManager.findExecutionsByQueryCriteria(executionQuery, page); } - + @Override public long findProcessInstanceCountByQueryCriteria(ProcessInstanceQueryImpl executionQuery) { return executionDataManager.findProcessInstanceCountByQueryCriteria(executionQuery); @@ -116,14 +116,14 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager findProcessInstanceByQueryCriteria(ProcessInstanceQueryImpl executionQuery) { return executionDataManager.findProcessInstanceByQueryCriteria(executionQuery); } - + @Override public ExecutionEntity findByRootProcessInstanceId(String rootProcessInstanceId) { List executions = executionDataManager.findExecutionsByRootProcessInstanceId(rootProcessInstanceId); return processExecutionTree(rootProcessInstanceId, executions); - + } - + /** * Processes a collection of {@link ExecutionEntity} instances, which form on execution tree. * All the executions share the same rootProcessInstanceId (which is provided). @@ -132,7 +132,7 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager executions) { ExecutionEntity rootExecution = null; - + // Collect executions Map executionMap = new HashMap(executions.size()); for (ExecutionEntity executionEntity : executions) { @@ -141,38 +141,38 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager findProcessInstanceAndVariablesByQueryCriteria(ProcessInstanceQueryImpl executionQuery) { return executionDataManager.findProcessInstanceAndVariablesByQueryCriteria(executionQuery); @@ -182,12 +182,12 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager findInactiveExecutionsByProcessInstanceId(final String processInstanceId) { return executionDataManager.findInactiveExecutionsByProcessInstanceId(processInstanceId); } - + @Override public Collection findInactiveExecutionsByActivityIdAndProcessInstanceId(final String activityId, final String processInstanceId) { return executionDataManager.findInactiveExecutionsByActivityIdAndProcessInstanceId(activityId, processInstanceId); } - + @Override public List findExecutionsByNativeQuery(Map parameterMap, int firstResult, int maxResults) { return executionDataManager.findExecutionsByNativeQuery(parameterMap, firstResult, maxResults); @@ -208,15 +208,16 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager childExecutions = collectChildren(execution.getProcessInstance()); for (int i=childExecutions.size()-1; i>=0; i--) { ExecutionEntity childExecutionEntity = childExecutions.get(i); deleteExecutionAndRelatedData(childExecutionEntity, deleteReason, false); } - + deleteExecutionAndRelatedData(execution, deleteReason, false); if (deleteHistory) { getHistoricProcessInstanceEntityManager().delete(execution.getId()); } - + getHistoryManager().recordProcessInstanceEnd(processInstanceExecutionEntity.getId(), deleteReason, null); processInstanceExecutionEntity.setDeleted(true); } - + @Override public void deleteExecutionAndRelatedData(ExecutionEntity executionEntity, String deleteReason, boolean cancel) { getHistoryManager().recordActivityEnd(executionEntity, deleteReason); deleteDataForExecution(executionEntity, deleteReason, cancel); delete(executionEntity); } - + @Override - public void deleteProcessInstanceExecutionEntity(String processInstanceId, + public void deleteProcessInstanceExecutionEntity(String processInstanceId, String currentFlowElementId, String deleteReason, boolean cascade, boolean cancel) { - + ExecutionEntity processInstanceEntity = findById(processInstanceId); - + if (processInstanceEntity == null) { throw new ActivitiObjectNotFoundException("No process instance found for id '" + processInstanceId + "'", ProcessInstance.class); } - + if (processInstanceEntity.isDeleted()) { return; } - + // Call activities for (ExecutionEntity subExecutionEntity : processInstanceEntity.getExecutions()) { if (subExecutionEntity.getSubProcessInstance() != null && !subExecutionEntity.isEnded()) { @@ -451,15 +453,15 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager childExecutions = collectChildren(executionEntity); for (int i = childExecutions.size() - 1; i>= 0; i--) { ExecutionEntity childExecutionEntity = childExecutions.get(i); @@ -483,15 +485,15 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager collectChildren(ExecutionEntity executionEntity) { List childExecutions = new ArrayList(); collectChildren(executionEntity, childExecutions); return childExecutions; } - + protected void collectChildren(ExecutionEntity executionEntity, List collectedChildExecution) { List childExecutions = (List) executionEntity.getExecutions(); if (childExecutions != null && childExecutions.size() > 0) { @@ -502,14 +504,14 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager 0))) { IdentityLinkEntityManager identityLinkEntityManager = getIdentityLinkEntityManager(); Collection identityLinks = identityLinkEntityManager.findIdentityLinksByProcessInstanceId(executionEntity.getProcessInstanceId()); @@ -563,13 +565,13 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager 0)) { Collection executionVariables = executionEntity.getVariableInstancesLocal().values(); for (VariableInstance variableInstance : executionVariables) { if (variableInstance instanceof VariableInstanceEntity) { VariableInstanceEntity variableInstanceEntity = (VariableInstanceEntity) variableInstance; - + VariableInstanceEntityManager variableInstanceEntityManager = getVariableInstanceEntityManager(); variableInstanceEntityManager.delete(variableInstanceEntity); if (variableInstanceEntity.getByteArrayRef() != null && variableInstanceEntity.getByteArrayRef().getId() != null) { @@ -580,7 +582,7 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager 0)) { TaskEntityManager taskEntityManager = getTaskEntityManager(); Collection tasksForExecution = taskEntityManager.findTasksByExecutionId(executionEntity.getId()); @@ -590,8 +592,8 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager 0)) { TimerJobEntityManager timerJobEntityManager = getTimerJobEntityManager(); Collection timerJobsForExecution = timerJobEntityManager.findJobsByExecutionId(executionEntity.getId()); @@ -602,8 +604,8 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager 0)) { JobEntityManager jobEntityManager = getJobEntityManager(); Collection jobsForExecution = jobEntityManager.findJobsByExecutionId(executionEntity.getId()); @@ -614,7 +616,7 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager 0)) { SuspendedJobEntityManager suspendedJobEntityManager = getSuspendedJobEntityManager(); @@ -626,7 +628,7 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager 0)) { DeadLetterJobEntityManager deadLetterJobEntityManager = getDeadLetterJobEntityManager(); @@ -640,7 +642,7 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager 0)) { EventSubscriptionEntityManager eventSubscriptionEntityManager = getEventSubscriptionEntityManager(); List eventSubscriptions = eventSubscriptionEntityManager.findEventSubscriptionsByExecution(executionEntity.getId()); @@ -648,7 +650,7 @@ public class ExecutionEntityManagerImpl extends AbstractEntityManager definitionIdentityLinkEntities = new ArrayList(); protected IOSpecification ioSpecification; + protected Integer appVersion; // Backwards compatibility protected String engineVersion; @@ -218,4 +215,12 @@ public class ProcessDefinitionEntityImpl extends AbstractEntity implements Proce return "ProcessDefinitionEntity[" + id + "]"; } + public void setAppVersion(Integer appVersion){ + this.appVersion = appVersion; + } + + public Integer getAppVersion(){ + return this.appVersion; + } + } diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityImpl.java b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityImpl.java index b8f8a05be4..d55a3622d4 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityImpl.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityImpl.java @@ -92,6 +92,8 @@ public class TaskEntityImpl extends VariableScopeImpl implements TaskEntity, Ser protected Date claimTime; + protected Integer appVersion; + public TaskEntityImpl() { } @@ -600,6 +602,14 @@ public class TaskEntityImpl extends VariableScopeImpl implements TaskEntity, Ser this.claimTime = claimTime; } + public Integer getAppVersion(){ + return this.appVersion; + } + + public void setAppVersion (Integer appVersion){ + this.appVersion = appVersion; + } + public String toString() { return "Task[id=" + id + ", name=" + name + "]"; } diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityManagerImpl.java b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityManagerImpl.java index fe328330c6..ee9370e477 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityManagerImpl.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityManagerImpl.java @@ -80,6 +80,7 @@ public class TaskEntityManagerImpl extends AbstractEntityManager imp taskEntity.setExecutionId(execution.getId()); taskEntity.setProcessInstanceId(execution.getProcessInstanceId()); taskEntity.setProcessDefinitionId(execution.getProcessDefinitionId()); + taskEntity.setAppVersion(execution.getAppVersion()); getHistoryManager().recordTaskExecutionIdChange(taskEntity.getId(), taskEntity.getExecutionId()); } diff --git a/activiti-engine/src/main/java/org/activiti/engine/impl/util/ProcessInstanceHelper.java b/activiti-engine/src/main/java/org/activiti/engine/impl/util/ProcessInstanceHelper.java index 448f57887a..8daa8412a9 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/impl/util/ProcessInstanceHelper.java +++ b/activiti-engine/src/main/java/org/activiti/engine/impl/util/ProcessInstanceHelper.java @@ -132,9 +132,9 @@ public class ProcessInstanceHelper { // Map message payload variables before creating process instance Map processVariables = commandContext.getProcessEngineConfiguration() .getEventSubscriptionPayloadMappingProvider() - .apply(messageVariables, + .apply(messageVariables, eventSubscription); - + // Create process instance with executions but defer to start process after dispatching ACTIVITY_MESSAGE_RECEIVED ExecutionEntity processInstance = createProcessInstanceWithInitialFlowElement(processDefinition, businessKey, @@ -145,13 +145,13 @@ public class ProcessInstanceHelper { transientVariables); // Dispatch message received event dispatchStartMessageReceivedEvent(processInstance, messageName, messageVariables); - - // Finally start the process + + // Finally start the process startProcessInstance(processInstance, commandContext, processVariables); - + return processInstance; } - + public ProcessInstance createAndStartProcessInstanceWithInitialFlowElement(ProcessDefinition processDefinition, String businessKey, String processInstanceName, FlowElement initialFlowElement, Process process, Map variables, Map transientVariables, boolean startProcessInstance) { @@ -164,8 +164,8 @@ public class ProcessInstanceHelper { variables, transientVariables); if (startProcessInstance) { - CommandContext commandContext = Context.getCommandContext(); - + CommandContext commandContext = Context.getCommandContext(); + startProcessInstance(processInstance, commandContext, variables); } @@ -196,19 +196,19 @@ public class ProcessInstanceHelper { ExecutionEntity messageExecution = commandContext.getExecutionEntityManager().createChildExecution(processInstance); messageExecution.setCurrentFlowElement(startEvent); messageExecution.setEventScope(true); - - String messageName = getMessageName(commandContext, - messageEventDefinition, + + String messageName = getMessageName(commandContext, + messageEventDefinition, messageExecution); - + MessageEventSubscriptionEntity subscription = commandContext.getEventSubscriptionEntityManager() .insertMessageEvent(messageName, - messageExecution); - Optional correlationKey = getCorrelationKey(commandContext, - messageEventDefinition, + messageExecution); + Optional correlationKey = getCorrelationKey(commandContext, + messageEventDefinition, messageExecution); correlationKey.ifPresent(subscription::setConfiguration); - + messageEventSubscriptions.add(subscription); } } @@ -216,14 +216,17 @@ public class ProcessInstanceHelper { } } } - + ExecutionEntity execution = processInstance.getExecutions().get(0); // There will always be one child execution created + + execution.setAppVersion(processInstance.getAppVersion()); + commandContext.getAgenda().planContinueProcessOperation(execution); if (Context.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { ActivitiEventDispatcher eventDispatcher = Context.getProcessEngineConfiguration().getEventDispatcher(); eventDispatcher.dispatchEvent(ActivitiEventBuilder.createProcessStartedEvent(execution, variables, false)); - + for (MessageEventSubscriptionEntity messageEventSubscription : messageEventSubscriptions) { commandContext.getProcessEngineConfiguration().getEventDispatcher() .dispatchEvent(ActivitiEventBuilder.createMessageWaitingEvent(messageEventSubscription.getExecution(), @@ -243,39 +246,39 @@ public class ProcessInstanceHelper { } return variablesMap; } - + protected Optional getCorrelationKey(CommandContext commandContext, MessageEventDefinition messageEventDefinition, DelegateExecution execution) { ExpressionManager expressionManager = commandContext.getProcessEngineConfiguration() .getExpressionManager(); - + return Optional.ofNullable(messageEventDefinition.getCorrelationKey()) .map(correlationKey -> { Expression expression = expressionManager.createExpression(messageEventDefinition.getCorrelationKey()); return expression.getValue(execution) .toString(); - }); + }); } - + protected String getMessageName(CommandContext commandContext, MessageEventDefinition messageEventDefinition, DelegateExecution execution) { ExpressionManager expressionManager = commandContext.getProcessEngineConfiguration() .getExpressionManager(); - - + + String messageName = Optional.ofNullable(messageEventDefinition.getMessageRef()) .orElse(messageEventDefinition.getMessageExpression()); - + Expression expression = expressionManager.createExpression(messageName); return expression.getValue(execution) .toString(); } - + public ExecutionEntity createProcessInstanceWithInitialFlowElement(ProcessDefinition processDefinition, String businessKey, @@ -345,19 +348,19 @@ public class ProcessInstanceHelper { Map variables) { // Dispatch message received event if (Context.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { - - // There will always be one child execution created + + // There will always be one child execution created DelegateExecution execution = processInstance.getExecutions() .get(0); ActivitiEventDispatcher eventDispatcher = Context.getProcessEngineConfiguration() .getEventDispatcher(); - + eventDispatcher.dispatchEvent(ActivitiEventBuilder.createMessageReceivedEvent(execution, messageName, null, variables)); } } - + } diff --git a/activiti-engine/src/main/java/org/activiti/engine/repository/ProcessDefinition.java b/activiti-engine/src/main/java/org/activiti/engine/repository/ProcessDefinition.java index 64455cb1fe..67ce89f924 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/repository/ProcessDefinition.java +++ b/activiti-engine/src/main/java/org/activiti/engine/repository/ProcessDefinition.java @@ -78,4 +78,8 @@ public interface ProcessDefinition { /** The engine version for this process definition (5 or 6) */ String getEngineVersion(); + void setAppVersion(Integer appVersion); + + Integer getAppVersion(); + } diff --git a/activiti-engine/src/main/java/org/activiti/engine/runtime/ProcessInstance.java b/activiti-engine/src/main/java/org/activiti/engine/runtime/ProcessInstance.java index e8c985fff3..2f1e2a2d43 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/runtime/ProcessInstance.java +++ b/activiti-engine/src/main/java/org/activiti/engine/runtime/ProcessInstance.java @@ -99,4 +99,8 @@ public interface ProcessInstance extends Execution { * Returns the user id of this process instance. */ String getStartUserId(); + + void setAppVersion(Integer appVersion); + + Integer getAppVersion(); } diff --git a/activiti-engine/src/main/java/org/activiti/engine/task/Task.java b/activiti-engine/src/main/java/org/activiti/engine/task/Task.java index f952cc32cf..d98d2815ee 100644 --- a/activiti-engine/src/main/java/org/activiti/engine/task/Task.java +++ b/activiti-engine/src/main/java/org/activiti/engine/task/Task.java @@ -79,4 +79,8 @@ public interface Task extends TaskInfo { /** Indicates whether this task is suspended or not. */ boolean isSuspended(); + Integer getAppVersion(); + + void setAppVersion(Integer appVersion); + } diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.db2.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.db2.create.engine.sql index 9a33eb7229..46b9a776b2 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.db2.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.db2.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '7.0.0.0', 1); +values ('schema.version', '7.1.0-M6', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(7.0.0.0)', 1); +values ('schema.history', 'create(7.1.0-M6)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -32,7 +32,7 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ varchar(255) default '', DEPLOY_TIME_ timestamp, ENGINE_VERSION_ varchar(255), - VERSION_ integer, + VERSION_ integer default 1, PROJECT_RELEASE_VERSION_ varchar(255), primary key (ID_) ); @@ -77,14 +77,15 @@ create table ACT_RU_EXECUTION ( START_USER_ID_ varchar(255), LOCK_TIME_ timestamp, IS_COUNT_ENABLED_ smallint check(IS_COUNT_ENABLED_ in (1,0)), - EVT_SUBSCR_COUNT_ integer, - TASK_COUNT_ integer, - JOB_COUNT_ integer, + EVT_SUBSCR_COUNT_ integer, + TASK_COUNT_ integer, + JOB_COUNT_ integer, TIMER_JOB_COUNT_ integer, SUSP_JOB_COUNT_ integer, DEADLETTER_JOB_COUNT_ integer, - VAR_COUNT_ integer, + VAR_COUNT_ integer, ID_LINK_COUNT_ integer, + APP_VERSION_ integer, primary key (ID_) ); @@ -183,6 +184,7 @@ create table ACT_RE_PROCDEF ( SUSPENSION_STATE_ integer, TENANT_ID_ varchar(255) not null default '', ENGINE_VERSION_ varchar(255), + APP_VERSION_ integer, primary key (ID_) ); @@ -207,6 +209,7 @@ create table ACT_RU_TASK ( TENANT_ID_ varchar(255) default '', FORM_KEY_ varchar(255), CLAIM_TIME_ timestamp, + APP_VERSION_ integer, primary key (ID_) ); @@ -328,67 +331,67 @@ create index ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID on ACT_RU_DEADLETTER_JOB( create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_); alter table ACT_GE_BYTEARRAY - add constraint ACT_FK_BYTEARR_DEPL - foreign key (DEPLOYMENT_ID_) + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) references ACT_RE_DEPLOYMENT (ID_); alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCINST - foreign key (PROC_INST_ID_) + add constraint ACT_FK_EXE_PROCINST + foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PARENT - foreign key (PARENT_ID_) + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_SUPER - foreign key (SUPER_EXEC_) - references ACT_RU_EXECUTION (ID_); - + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) + references ACT_RU_EXECUTION (ID_); + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCDEF - foreign key (PROC_DEF_ID_) - references ACT_RE_PROCDEF (ID_); - + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + alter table ACT_RU_IDENTITYLINK - add constraint ACT_FK_TSKASS_TASK - foreign key (TASK_ID_) + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) references ACT_RU_TASK (ID_); alter table ACT_RU_IDENTITYLINK - add constraint ACT_FK_ATHRZ_PROCEDEF - foreign key (PROC_DEF_ID_) + add constraint ACT_FK_ATHRZ_PROCEDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_IDL_PROCINST - foreign key (PROC_INST_ID_) - references ACT_RU_EXECUTION (ID_); + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_EXE - foreign key (EXECUTION_ID_) + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); alter table ACT_RU_VARIABLE @@ -396,121 +399,121 @@ alter table ACT_RU_VARIABLE foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION(ID_); -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_BYTEARRAY - foreign key (BYTEARRAY_ID_) +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY (ID_); - + alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXECUTION - foreign key (EXECUTION_ID_) + add constraint ACT_FK_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_JOB + +alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_TIMER_JOB + +alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_SUSPENDED_JOB + +alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_DEADLETTER_JOB + +alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - + alter table ACT_RU_EVENT_SUBSCR add constraint ACT_FK_EVENT_EXEC foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION(ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE - foreign key (EDITOR_SOURCE_VALUE_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE_EXTRA - foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_DEPLOYMENT - foreign key (DEPLOYMENT_ID_) - references ACT_RE_DEPLOYMENT (ID_); - -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_JSON_BA - foreign key (INFO_JSON_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_PROCDEF - foreign key (PROC_DEF_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_); diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql index 7964d98e96..28f950a385 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '7.1.0.0', 1); +values ('schema.version', '7.1.0-M6', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(7.1.0.0)', 1); +values ('schema.history', 'create(7.1.0-M6)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -32,7 +32,7 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ varchar(255) default '', DEPLOY_TIME_ timestamp, ENGINE_VERSION_ varchar(255), - VERSION_ integer, + VERSION_ integer default 1, PROJECT_RELEASE_VERSION_ varchar(255), primary key (ID_) ); @@ -77,14 +77,15 @@ create table ACT_RU_EXECUTION ( START_USER_ID_ varchar(255), LOCK_TIME_ timestamp, IS_COUNT_ENABLED_ bit, - EVT_SUBSCR_COUNT_ integer, - TASK_COUNT_ integer, - JOB_COUNT_ integer, + EVT_SUBSCR_COUNT_ integer, + TASK_COUNT_ integer, + JOB_COUNT_ integer, TIMER_JOB_COUNT_ integer, SUSP_JOB_COUNT_ integer, DEADLETTER_JOB_COUNT_ integer, - VAR_COUNT_ integer, + VAR_COUNT_ integer, ID_LINK_COUNT_ integer, + APP_VERSION_ integer, primary key (ID_) ); @@ -183,6 +184,7 @@ create table ACT_RE_PROCDEF ( SUSPENSION_STATE_ integer, TENANT_ID_ varchar(255) default '', ENGINE_VERSION_ varchar(255), + APP_VERSION_ integer, primary key (ID_) ); @@ -207,6 +209,7 @@ create table ACT_RU_TASK ( TENANT_ID_ varchar(255) default '', FORM_KEY_ varchar(255), CLAIM_TIME_ timestamp, + APP_VERSION_ integer, primary key (ID_) ); @@ -304,7 +307,7 @@ alter table ACT_GE_BYTEARRAY alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); - + alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PROCINST foreign key (PROC_INST_ID_) @@ -314,17 +317,17 @@ alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PARENT foreign key (PARENT_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_SUPER - foreign key (SUPER_EXEC_) + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) references ACT_RU_EXECUTION; - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCDEF - foreign key (PROC_DEF_ID_) - references ACT_RE_PROCDEF (ID_); - + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_TSKASS_TASK foreign key (TASK_ID_) @@ -334,11 +337,11 @@ alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_ATHRZ_PROCEDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF; - + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_IDL_PROCINST - foreign key (PROC_INST_ID_) - references ACT_RU_EXECUTION (ID_); + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE @@ -369,42 +372,42 @@ alter table ACT_RU_VARIABLE add constraint ACT_FK_VAR_BYTEARRAY foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY; - + alter table ACT_RU_JOB add constraint ACT_FK_JOB_EXECUTION foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROCESS_INSTANCE foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROC_DEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF; - + alter table ACT_RU_JOB add constraint ACT_FK_JOB_EXCEPTION foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY; - + alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_EXECUTION foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROC_DEF foreign key (PROC_DEF_ID_) - references ACT_RE_PROCDEF; - + references ACT_RE_PROCDEF; + alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_EXCEPTION foreign key (EXCEPTION_STACK_ID_) @@ -414,17 +417,17 @@ alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_EXECUTION foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF; - + alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION foreign key (EXCEPTION_STACK_ID_) @@ -434,12 +437,12 @@ alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_EXECUTION foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF foreign key (PROC_DEF_ID_) @@ -455,31 +458,31 @@ alter table ACT_RU_EVENT_SUBSCR foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE - foreign key (EDITOR_SOURCE_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE_EXTRA - foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_DEPLOYMENT - foreign key (DEPLOYMENT_ID_) - references ACT_RE_DEPLOYMENT (ID_); - -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_JSON_BA - foreign key (INFO_JSON_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_PROCDEF - foreign key (PROC_DEF_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_); diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.hsql.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.hsql.create.engine.sql index 2f1d7a5917..3278e3bafc 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.hsql.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.hsql.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '7.0.0.0', 1); +values ('schema.version', '7.1.0-M6', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(7.0.0.0)', 1); +values ('schema.history', 'create(7.1.0-M6)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -32,7 +32,7 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ varchar(255) default '', DEPLOY_TIME_ timestamp, ENGINE_VERSION_ varchar(255), - VERSION_ integer, + VERSION_ integer DEFAULT 1, PROJECT_RELEASE_VERSION_ varchar(255), primary key (ID_) ); @@ -77,14 +77,15 @@ create table ACT_RU_EXECUTION ( START_USER_ID_ varchar(255), LOCK_TIME_ timestamp, IS_COUNT_ENABLED_ bit, - EVT_SUBSCR_COUNT_ integer, - TASK_COUNT_ integer, - JOB_COUNT_ integer, + EVT_SUBSCR_COUNT_ integer, + TASK_COUNT_ integer, + JOB_COUNT_ integer, TIMER_JOB_COUNT_ integer, SUSP_JOB_COUNT_ integer, DEADLETTER_JOB_COUNT_ integer, - VAR_COUNT_ integer, + VAR_COUNT_ integer, ID_LINK_COUNT_ integer, + APP_VERSION_ integer, primary key (ID_) ); @@ -183,6 +184,7 @@ create table ACT_RE_PROCDEF ( SUSPENSION_STATE_ integer, TENANT_ID_ varchar(255) default '', ENGINE_VERSION_ varchar(255), + APP_VERSION_ integer, primary key (ID_) ); @@ -207,6 +209,7 @@ create table ACT_RU_TASK ( TENANT_ID_ varchar(255) default '', FORM_KEY_ varchar(255), CLAIM_TIME_ timestamp, + APP_VERSION_ integer, primary key (ID_) ); @@ -304,7 +307,7 @@ alter table ACT_GE_BYTEARRAY alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); - + alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PROCINST foreign key (PROC_INST_ID_) @@ -314,17 +317,17 @@ alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PARENT foreign key (PARENT_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_SUPER - foreign key (SUPER_EXEC_) + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) references ACT_RU_EXECUTION; - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCDEF - foreign key (PROC_DEF_ID_) - references ACT_RE_PROCDEF (ID_); - + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_TSKASS_TASK foreign key (TASK_ID_) @@ -334,11 +337,11 @@ alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_ATHRZ_PROCEDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF; - + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_IDL_PROCINST - foreign key (PROC_INST_ID_) - references ACT_RU_EXECUTION (ID_); + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE @@ -369,42 +372,42 @@ alter table ACT_RU_VARIABLE add constraint ACT_FK_VAR_BYTEARRAY foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY; - + alter table ACT_RU_JOB add constraint ACT_FK_JOB_EXECUTION foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROCESS_INSTANCE foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROC_DEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF; - + alter table ACT_RU_JOB add constraint ACT_FK_JOB_EXCEPTION foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY; - + alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_EXECUTION foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROC_DEF foreign key (PROC_DEF_ID_) - references ACT_RE_PROCDEF; - + references ACT_RE_PROCDEF; + alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_EXCEPTION foreign key (EXCEPTION_STACK_ID_) @@ -414,17 +417,17 @@ alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_EXECUTION foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF; - + alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION foreign key (EXCEPTION_STACK_ID_) @@ -434,12 +437,12 @@ alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_EXECUTION foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION; - + alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF foreign key (PROC_DEF_ID_) @@ -455,31 +458,31 @@ alter table ACT_RU_EVENT_SUBSCR foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION; -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE - foreign key (EDITOR_SOURCE_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE_EXTRA - foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_DEPLOYMENT - foreign key (DEPLOYMENT_ID_) - references ACT_RE_DEPLOYMENT (ID_); - -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_JSON_BA - foreign key (INFO_JSON_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_PROCDEF - foreign key (PROC_DEF_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_); diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mssql.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mssql.create.engine.sql index 8438ba335c..15e2d2d5b9 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mssql.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mssql.create.engine.sql @@ -77,14 +77,15 @@ create table ACT_RU_EXECUTION ( START_USER_ID_ nvarchar(255), LOCK_TIME_ datetime, IS_COUNT_ENABLED_ tinyint, - EVT_SUBSCR_COUNT_ int, - TASK_COUNT_ int, - JOB_COUNT_ int, + EVT_SUBSCR_COUNT_ int, + TASK_COUNT_ int, + JOB_COUNT_ int, TIMER_JOB_COUNT_ int, SUSP_JOB_COUNT_ int, DEADLETTER_JOB_COUNT_ int, - VAR_COUNT_ int, + VAR_COUNT_ int, ID_LINK_COUNT_ int, + APP_VERSION_ int, primary key (ID_) ); @@ -183,6 +184,7 @@ create table ACT_RE_PROCDEF ( SUSPENSION_STATE_ tinyint, TENANT_ID_ nvarchar(255) default '', ENGINE_VERSION_ nvarchar(255), + APP_VERSION_ int, primary key (ID_) ); @@ -207,6 +209,7 @@ create table ACT_RU_TASK ( TENANT_ID_ nvarchar(255) default '', FORM_KEY_ nvarchar(255), CLAIM_TIME_ datetime, + APP_VERSION_ int, primary key (ID_) ); @@ -328,62 +331,62 @@ create index ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID on ACT_RU_DEADLETTER_JOB( create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_); alter table ACT_GE_BYTEARRAY - add constraint ACT_FK_BYTEARR_DEPL - foreign key (DEPLOYMENT_ID_) + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) references ACT_RE_DEPLOYMENT (ID_); alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PARENT - foreign key (PARENT_ID_) + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_SUPER - foreign key (SUPER_EXEC_) + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) references ACT_RU_EXECUTION (ID_); alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCDEF - foreign key (PROC_DEF_ID_) + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); alter table ACT_RU_IDENTITYLINK - add constraint ACT_FK_TSKASS_TASK - foreign key (TASK_ID_) + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) references ACT_RU_TASK (ID_); - + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_ATHRZ_PROCEDEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_IDL_PROCINST - foreign key (PROC_INST_ID_) - references ACT_RU_EXECUTION (ID_); - + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_EXE - foreign key (EXECUTION_ID_) + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); alter table ACT_RU_VARIABLE @@ -391,121 +394,121 @@ alter table ACT_RU_VARIABLE foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION(ID_); -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_BYTEARRAY - foreign key (BYTEARRAY_ID_) +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_JOB + +alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_TIMER_JOB + +alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_SUSPENDED_JOB + +alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_DEADLETTER_JOB + +alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - + alter table ACT_RU_EVENT_SUBSCR add constraint ACT_FK_EVENT_EXEC foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION(ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE - foreign key (EDITOR_SOURCE_VALUE_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE_EXTRA - foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_DEPLOYMENT - foreign key (DEPLOYMENT_ID_) - references ACT_RE_DEPLOYMENT (ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_JSON_BA - foreign key (INFO_JSON_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_PROCDEF - foreign key (PROC_DEF_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_); diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql.create.engine.sql index 53256fe8a6..38e002c109 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; insert into ACT_GE_PROPERTY -values ('schema.version', '7.0.0.0', 1); +values ('schema.version', '7.1.0-M6', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(7.0.0.0)', 1); +values ('schema.history', 'create(7.1.0-M6)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -32,7 +32,7 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ varchar(255) default '', DEPLOY_TIME_ timestamp(3) NULL, ENGINE_VERSION_ varchar(255), - VERSION_ integer, + VERSION_ integer default 1, PROJECT_RELEASE_VERSION_ varchar(255), primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -77,14 +77,15 @@ create table ACT_RU_EXECUTION ( START_USER_ID_ varchar(255), LOCK_TIME_ timestamp(3) NULL, IS_COUNT_ENABLED_ TINYINT, - EVT_SUBSCR_COUNT_ integer, - TASK_COUNT_ integer, - JOB_COUNT_ integer, + EVT_SUBSCR_COUNT_ integer, + TASK_COUNT_ integer, + JOB_COUNT_ integer, TIMER_JOB_COUNT_ integer, SUSP_JOB_COUNT_ integer, DEADLETTER_JOB_COUNT_ integer, - VAR_COUNT_ integer, + VAR_COUNT_ integer, ID_LINK_COUNT_ integer, + APP_VERSION_ integer, primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -183,6 +184,7 @@ create table ACT_RE_PROCDEF ( SUSPENSION_STATE_ integer, TENANT_ID_ varchar(255) default '', ENGINE_VERSION_ varchar(255), + APP_VERSION_ integer, primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -207,6 +209,7 @@ create table ACT_RU_TASK ( TENANT_ID_ varchar(255) default '', FORM_KEY_ varchar(255), CLAIM_TIME_ datetime(3), + APP_VERSION_ integer, primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -218,7 +221,7 @@ create table ACT_RU_IDENTITYLINK ( USER_ID_ varchar(255), TASK_ID_ varchar(64), PROC_INST_ID_ varchar(64), - PROC_DEF_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -298,67 +301,67 @@ create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_); alter table ACT_GE_BYTEARRAY - add constraint ACT_FK_BYTEARR_DEPL - foreign key (DEPLOYMENT_ID_) + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) references ACT_RE_DEPLOYMENT (ID_); alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCINST - foreign key (PROC_INST_ID_) + add constraint ACT_FK_EXE_PROCINST + foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade; alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PARENT - foreign key (PARENT_ID_) + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) references ACT_RU_EXECUTION (ID_) on delete cascade; - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_SUPER - foreign key (SUPER_EXEC_) + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) references ACT_RU_EXECUTION (ID_) on delete cascade; - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCDEF - foreign key (PROC_DEF_ID_) + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_RU_IDENTITYLINK - add constraint ACT_FK_TSKASS_TASK - foreign key (TASK_ID_) + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) references ACT_RU_TASK (ID_); - + alter table ACT_RU_IDENTITYLINK - add constraint ACT_FK_ATHRZ_PROCEDEF - foreign key (PROC_DEF_ID_) + add constraint ACT_FK_ATHRZ_PROCEDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF(ID_); - + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_IDL_PROCINST - foreign key (PROC_INST_ID_) - references ACT_RU_EXECUTION (ID_); - + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_EXE - foreign key (EXECUTION_ID_) + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); alter table ACT_RU_VARIABLE @@ -366,121 +369,121 @@ alter table ACT_RU_VARIABLE foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION(ID_); -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_BYTEARRAY - foreign key (BYTEARRAY_ID_) +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_JOB + +alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_TIMER_JOB + +alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_SUSPENDED_JOB + +alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_DEADLETTER_JOB + +alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); alter table ACT_RU_EVENT_SUBSCR add constraint ACT_FK_EVENT_EXEC foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION(ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE - foreign key (EDITOR_SOURCE_VALUE_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE_EXTRA - foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_DEPLOYMENT - foreign key (DEPLOYMENT_ID_) - references ACT_RE_DEPLOYMENT (ID_); - -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_JSON_BA - foreign key (INFO_JSON_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_PROCDEF - foreign key (PROC_DEF_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_); diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql55.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql55.create.engine.sql index 67c5d25090..0263dbaffd 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql55.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql55.create.engine.sql @@ -32,7 +32,7 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ varchar(255) default '', DEPLOY_TIME_ timestamp NULL, ENGINE_VERSION_ varchar(255), - VERSION_ integer, + VERSION_ integer default 1, PROJECT_RELEASE_VERSION_ varchar(255), primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -77,14 +77,15 @@ create table ACT_RU_EXECUTION ( START_USER_ID_ varchar(255), LOCK_TIME_ timestamp NULL, IS_COUNT_ENABLED_ TINYINT, - EVT_SUBSCR_COUNT_ integer, - TASK_COUNT_ integer, - JOB_COUNT_ integer, + EVT_SUBSCR_COUNT_ integer, + TASK_COUNT_ integer, + JOB_COUNT_ integer, TIMER_JOB_COUNT_ integer, SUSP_JOB_COUNT_ integer, DEADLETTER_JOB_COUNT_ integer, - VAR_COUNT_ integer, + VAR_COUNT_ integer, ID_LINK_COUNT_ integer, + APP_VERSION_ integer, primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -183,6 +184,7 @@ create table ACT_RE_PROCDEF ( SUSPENSION_STATE_ integer, TENANT_ID_ varchar(255) default '', ENGINE_VERSION_ varchar(255), + APP_VERSION_ integer, primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -207,6 +209,7 @@ create table ACT_RU_TASK ( TENANT_ID_ varchar(255) default '', FORM_KEY_ varchar(255), CLAIM_TIME_ datetime, + APP_VERSION_ integer, primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -218,7 +221,7 @@ create table ACT_RU_IDENTITYLINK ( USER_ID_ varchar(255), TASK_ID_ varchar(64), PROC_INST_ID_ varchar(64), - PROC_DEF_ID_ varchar(64), + PROC_DEF_ID_ varchar(64), primary key (ID_) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; @@ -298,67 +301,67 @@ create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_); alter table ACT_GE_BYTEARRAY - add constraint ACT_FK_BYTEARR_DEPL - foreign key (DEPLOYMENT_ID_) + add constraint ACT_FK_BYTEARR_DEPL + foreign key (DEPLOYMENT_ID_) references ACT_RE_DEPLOYMENT (ID_); alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCINST - foreign key (PROC_INST_ID_) + add constraint ACT_FK_EXE_PROCINST + foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade; alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PARENT - foreign key (PARENT_ID_) + add constraint ACT_FK_EXE_PARENT + foreign key (PARENT_ID_) references ACT_RU_EXECUTION (ID_) on delete cascade; - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_SUPER - foreign key (SUPER_EXEC_) + add constraint ACT_FK_EXE_SUPER + foreign key (SUPER_EXEC_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCDEF - foreign key (PROC_DEF_ID_) + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_RU_IDENTITYLINK - add constraint ACT_FK_TSKASS_TASK - foreign key (TASK_ID_) + add constraint ACT_FK_TSKASS_TASK + foreign key (TASK_ID_) references ACT_RU_TASK (ID_); - + alter table ACT_RU_IDENTITYLINK - add constraint ACT_FK_ATHRZ_PROCEDEF - foreign key (PROC_DEF_ID_) + add constraint ACT_FK_ATHRZ_PROCEDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF(ID_); - + alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_IDL_PROCINST - foreign key (PROC_INST_ID_) - references ACT_RU_EXECUTION (ID_); - + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); - + alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_EXE - foreign key (EXECUTION_ID_) + +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_EXE + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); alter table ACT_RU_VARIABLE @@ -366,121 +369,121 @@ alter table ACT_RU_VARIABLE foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION(ID_); -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_BYTEARRAY - foreign key (BYTEARRAY_ID_) +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXECUTION - foreign key (EXECUTION_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_JOB + +alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_TIMER_JOB + +alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_SUSPENDED_JOB + +alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXECUTION - foreign key (EXECUTION_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -alter table ACT_RU_DEADLETTER_JOB + +alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); alter table ACT_RU_EVENT_SUBSCR add constraint ACT_FK_EVENT_EXEC foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION(ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE - foreign key (EDITOR_SOURCE_VALUE_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE_EXTRA - foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); - -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_DEPLOYMENT - foreign key (DEPLOYMENT_ID_) - references ACT_RE_DEPLOYMENT (ID_); - -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_JSON_BA - foreign key (INFO_JSON_ID_) + +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) references ACT_GE_BYTEARRAY (ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_PROCDEF - foreign key (PROC_DEF_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_); diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.oracle.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.oracle.create.engine.sql index 3a237c486e..116c2df4b9 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.oracle.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.oracle.create.engine.sql @@ -32,7 +32,7 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ NVARCHAR2(255) DEFAULT '', DEPLOY_TIME_ TIMESTAMP(6), ENGINE_VERSION_ NVARCHAR2(255), - VERSION_ INTEGER, + VERSION_ INTEGER DEFAULT 1, PROJECT_RELEASE_VERSION_ NVARCHAR2(255), primary key (ID_) ); @@ -77,14 +77,15 @@ create table ACT_RU_EXECUTION ( START_USER_ID_ NVARCHAR2(255), LOCK_TIME_ TIMESTAMP(6), IS_COUNT_ENABLED_ NUMBER(1,0) CHECK (IS_COUNT_ENABLED_ IN (1,0)), - EVT_SUBSCR_COUNT_ INTEGER, - TASK_COUNT_ INTEGER, - JOB_COUNT_ INTEGER, + EVT_SUBSCR_COUNT_ INTEGER, + TASK_COUNT_ INTEGER, + JOB_COUNT_ INTEGER, TIMER_JOB_COUNT_ INTEGER, SUSP_JOB_COUNT_ INTEGER, DEADLETTER_JOB_COUNT_ INTEGER, - VAR_COUNT_ INTEGER, + VAR_COUNT_ INTEGER, ID_LINK_COUNT_ INTEGER, + APP_VERSION_ INTEGER, primary key (ID_) ); @@ -183,6 +184,7 @@ create table ACT_RE_PROCDEF ( SUSPENSION_STATE_ INTEGER, TENANT_ID_ NVARCHAR2(255) DEFAULT '', ENGINE_VERSION_ NVARCHAR2(255), + APP_VERSION_ INTEGER, primary key (ID_) ); @@ -207,6 +209,7 @@ create table ACT_RU_TASK ( TENANT_ID_ NVARCHAR2(255) DEFAULT '', FORM_KEY_ NVARCHAR2(255), CLAIM_TIME_ TIMESTAMP(6), + APP_VERSION_ INTEGER, primary key (ID_) ); @@ -300,77 +303,77 @@ create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); create index ACT_IDX_BYTEAR_DEPL on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_); alter table ACT_GE_BYTEARRAY add constraint ACT_FK_BYTEARR_DEPL - foreign key (DEPLOYMENT_ID_) + foreign key (DEPLOYMENT_ID_) references ACT_RE_DEPLOYMENT (ID_); alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); - + create index ACT_IDX_EXE_PROCINST on ACT_RU_EXECUTION(PROC_INST_ID_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PROCINST - foreign key (PROC_INST_ID_) + foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_EXE_PARENT on ACT_RU_EXECUTION(PARENT_ID_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PARENT - foreign key (PARENT_ID_) + foreign key (PARENT_ID_) references ACT_RU_EXECUTION (ID_); - + create index ACT_IDX_EXE_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_SUPER - foreign key (SUPER_EXEC_) + foreign key (SUPER_EXEC_) references ACT_RU_EXECUTION (ID_); - + create index ACT_IDX_EXE_PROCDEF on ACT_RU_EXECUTION(PROC_DEF_ID_); alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCDEF - foreign key (PROC_DEF_ID_) - references ACT_RE_PROCDEF (ID_); + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); create index ACT_IDX_TSKASS_TASK on ACT_RU_IDENTITYLINK(TASK_ID_); alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_TSKASS_TASK - foreign key (TASK_ID_) + foreign key (TASK_ID_) references ACT_RU_TASK (ID_); create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_ATHRZ_PROCEDEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + create index ACT_IDX_IDL_PROCINST on ACT_RU_IDENTITYLINK(PROC_INST_ID_); alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_IDL_PROCINST - foreign key (PROC_INST_ID_) - references ACT_RU_EXECUTION (ID_); + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - + create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); - + create index ACT_IDX_TASK_PROCDEF on ACT_RU_TASK(PROC_DEF_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + create index ACT_IDX_VAR_EXE on ACT_RU_VARIABLE(EXECUTION_ID_); -alter table ACT_RU_VARIABLE +alter table ACT_RU_VARIABLE add constraint ACT_FK_VAR_EXE - foreign key (EXECUTION_ID_) + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_VAR_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_); @@ -380,107 +383,107 @@ alter table ACT_RU_VARIABLE references ACT_RU_EXECUTION(ID_); create index ACT_IDX_VAR_BYTEARRAY on ACT_RU_VARIABLE(BYTEARRAY_ID_); -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_BYTEARRAY - foreign key (BYTEARRAY_ID_) +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY (ID_); - + create index ACT_IDX_JOB_EXECUTION_ID on ACT_RU_JOB(EXECUTION_ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXECUTION - foreign key (EXECUTION_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_JOB_PROC_INST_ID on ACT_RU_JOB(PROCESS_INSTANCE_ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_JOB_PROC_DEF_ID on ACT_RU_JOB(PROC_DEF_ID_); -alter table ACT_RU_JOB +alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); create index ACT_IDX_JOB_EXCEPTION on ACT_RU_JOB(EXCEPTION_STACK_ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_TJOB_EXECUTION_ID on ACT_RU_TIMER_JOB(EXECUTION_ID_); -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TJOB_EXECUTION - foreign key (EXECUTION_ID_) +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TJOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_TJOB_PROC_INST_ID on ACT_RU_TIMER_JOB(PROCESS_INSTANCE_ID_); -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TJOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TJOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_TJOB_PROC_DEF_ID on ACT_RU_TIMER_JOB(PROC_DEF_ID_); -alter table ACT_RU_TIMER_JOB +alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TJOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); -create index ACT_IDX_TJOB_EXCEPTION on ACT_RU_TIMER_JOB(EXCEPTION_STACK_ID_); -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TJOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +create index ACT_IDX_TJOB_EXCEPTION on ACT_RU_TIMER_JOB(EXCEPTION_STACK_ID_); +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TJOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); -create index ACT_IDX_SJOB_EXECUTION_ID on ACT_RU_SUSPENDED_JOB(EXECUTION_ID_); -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SJOB_EXECUTION - foreign key (EXECUTION_ID_) +create index ACT_IDX_SJOB_EXECUTION_ID on ACT_RU_SUSPENDED_JOB(EXECUTION_ID_); +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SJOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -create index ACT_IDX_SJOB_PROC_INST_ID on ACT_RU_SUSPENDED_JOB(PROCESS_INSTANCE_ID_); -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SJOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +create index ACT_IDX_SJOB_PROC_INST_ID on ACT_RU_SUSPENDED_JOB(PROCESS_INSTANCE_ID_); +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SJOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); -create index ACT_IDX_SJOB_PROC_DEF_ID on ACT_RU_SUSPENDED_JOB(PROC_DEF_ID_); -alter table ACT_RU_SUSPENDED_JOB +create index ACT_IDX_SJOB_PROC_DEF_ID on ACT_RU_SUSPENDED_JOB(PROC_DEF_ID_); +alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SJOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); -create index ACT_IDX_SJOB_EXCEPTION on ACT_RU_SUSPENDED_JOB(EXCEPTION_STACK_ID_); -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SJOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +create index ACT_IDX_SJOB_EXCEPTION on ACT_RU_SUSPENDED_JOB(EXCEPTION_STACK_ID_); +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SJOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); -create index ACT_IDX_DJOB_EXECUTION_ID on ACT_RU_DEADLETTER_JOB(EXECUTION_ID_); -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DJOB_EXECUTION - foreign key (EXECUTION_ID_) +create index ACT_IDX_DJOB_EXECUTION_ID on ACT_RU_DEADLETTER_JOB(EXECUTION_ID_); +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DJOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -create index ACT_IDX_DJOB_PROC_INST_ID on ACT_RU_DEADLETTER_JOB(PROCESS_INSTANCE_ID_); -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DJOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +create index ACT_IDX_DJOB_PROC_INST_ID on ACT_RU_DEADLETTER_JOB(PROCESS_INSTANCE_ID_); +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DJOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -create index ACT_IDX_DJOB_PROC_DEF_ID on ACT_RU_DEADLETTER_JOB(PROC_DEF_ID_); -alter table ACT_RU_DEADLETTER_JOB + +create index ACT_IDX_DJOB_PROC_DEF_ID on ACT_RU_DEADLETTER_JOB(PROC_DEF_ID_); +alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DJOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -create index ACT_IDX_DJOB_EXCEPTION on ACT_RU_DEADLETTER_JOB(EXCEPTION_STACK_ID_); -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DJOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +create index ACT_IDX_DJOB_EXCEPTION on ACT_RU_DEADLETTER_JOB(EXCEPTION_STACK_ID_); +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DJOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); - + create index ACT_IDX_EVENT_SUBSCR on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_); alter table ACT_RU_EVENT_SUBSCR add constraint ACT_FK_EVENT_EXEC @@ -488,35 +491,35 @@ alter table ACT_RU_EVENT_SUBSCR references ACT_RU_EXECUTION(ID_); create index ACT_IDX_MODEL_SOURCE on ACT_RE_MODEL(EDITOR_SOURCE_VALUE_ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE - foreign key (EDITOR_SOURCE_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_MODEL_SOURCE_EXTRA on ACT_RE_MODEL(EDITOR_SOURCE_EXTRA_VALUE_ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE_EXTRA - foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); - -create index ACT_IDX_MODEL_DEPLOYMENT on ACT_RE_MODEL(DEPLOYMENT_ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_DEPLOYMENT - foreign key (DEPLOYMENT_ID_) - references ACT_RE_DEPLOYMENT (ID_); - + +create index ACT_IDX_MODEL_DEPLOYMENT on ACT_RE_MODEL(DEPLOYMENT_ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); + create index ACT_IDX_PROCDEF_INFO_JSON on ACT_PROCDEF_INFO(INFO_JSON_ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_JSON_BA - foreign key (INFO_JSON_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_PROCDEF_INFO_PROC on ACT_PROCDEF_INFO(PROC_DEF_ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_PROCDEF - foreign key (PROC_DEF_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_); diff --git a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql index 323924a98a..d7cfa6fb1d 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '7.0.0.0', 1); +values ('schema.version', '7.1.0-M6', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(7.0.0.0)', 1); +values ('schema.history', 'create(7.1.0-M6)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); @@ -32,7 +32,7 @@ create table ACT_RE_DEPLOYMENT ( TENANT_ID_ varchar(255) default '', DEPLOY_TIME_ timestamp, ENGINE_VERSION_ varchar(255), - VERSION_ integer, + VERSION_ integer default 1, PROJECT_RELEASE_VERSION_ varchar(255), primary key (ID_) ); @@ -77,14 +77,15 @@ create table ACT_RU_EXECUTION ( START_USER_ID_ varchar(255), LOCK_TIME_ timestamp, IS_COUNT_ENABLED_ boolean, - EVT_SUBSCR_COUNT_ integer, - TASK_COUNT_ integer, - JOB_COUNT_ integer, + EVT_SUBSCR_COUNT_ integer, + TASK_COUNT_ integer, + JOB_COUNT_ integer, TIMER_JOB_COUNT_ integer, SUSP_JOB_COUNT_ integer, DEADLETTER_JOB_COUNT_ integer, - VAR_COUNT_ integer, + VAR_COUNT_ integer, ID_LINK_COUNT_ integer, + APP_VERSION_ integer, primary key (ID_) ); @@ -183,6 +184,7 @@ create table ACT_RE_PROCDEF ( SUSPENSION_STATE_ integer, TENANT_ID_ varchar(255) default '', ENGINE_VERSION_ varchar(255), + APP_VERSION_ integer, primary key (ID_) ); @@ -207,6 +209,7 @@ create table ACT_RU_TASK ( TENANT_ID_ varchar(255) default '', FORM_KEY_ varchar(255), CLAIM_TIME_ timestamp, + APP_VERSION_ integer, primary key (ID_) ); @@ -297,79 +300,79 @@ create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_); create index ACT_IDX_BYTEAR_DEPL on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_); alter table ACT_GE_BYTEARRAY add constraint ACT_FK_BYTEARR_DEPL - foreign key (DEPLOYMENT_ID_) + foreign key (DEPLOYMENT_ID_) references ACT_RE_DEPLOYMENT (ID_); alter table ACT_RE_PROCDEF add constraint ACT_UNIQ_PROCDEF unique (KEY_,VERSION_, TENANT_ID_); - + create index ACT_IDX_EXE_PROCINST on ACT_RU_EXECUTION(PROC_INST_ID_); alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCINST - foreign key (PROC_INST_ID_) + add constraint ACT_FK_EXE_PROCINST + foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_EXE_PARENT on ACT_RU_EXECUTION(PARENT_ID_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_PARENT - foreign key (PARENT_ID_) + foreign key (PARENT_ID_) references ACT_RU_EXECUTION (ID_); - + create index ACT_IDX_EXE_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_); alter table ACT_RU_EXECUTION add constraint ACT_FK_EXE_SUPER - foreign key (SUPER_EXEC_) + foreign key (SUPER_EXEC_) references ACT_RU_EXECUTION (ID_); - -create index ACT_IDX_EXE_PROCDEF on ACT_RU_EXECUTION(PROC_DEF_ID_); + +create index ACT_IDX_EXE_PROCDEF on ACT_RU_EXECUTION(PROC_DEF_ID_); alter table ACT_RU_EXECUTION - add constraint ACT_FK_EXE_PROCDEF - foreign key (PROC_DEF_ID_) - references ACT_RE_PROCDEF (ID_); - + add constraint ACT_FK_EXE_PROCDEF + foreign key (PROC_DEF_ID_) + references ACT_RE_PROCDEF (ID_); + create index ACT_IDX_TSKASS_TASK on ACT_RU_IDENTITYLINK(TASK_ID_); alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_TSKASS_TASK - foreign key (TASK_ID_) + foreign key (TASK_ID_) references ACT_RU_TASK (ID_); - + create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_); alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_ATHRZ_PROCEDEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + create index ACT_IDX_IDL_PROCINST on ACT_RU_IDENTITYLINK(PROC_INST_ID_); alter table ACT_RU_IDENTITYLINK add constraint ACT_FK_IDL_PROCINST - foreign key (PROC_INST_ID_) - references ACT_RU_EXECUTION (ID_); - + foreign key (PROC_INST_ID_) + references ACT_RU_EXECUTION (ID_); + create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_EXE foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - + create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCINST foreign key (PROC_INST_ID_) references ACT_RU_EXECUTION (ID_); - + create index ACT_IDX_TASK_PROCDEF on ACT_RU_TASK(PROC_DEF_ID_); alter table ACT_RU_TASK add constraint ACT_FK_TASK_PROCDEF foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + create index ACT_IDX_VAR_EXE on ACT_RU_VARIABLE(EXECUTION_ID_); -alter table ACT_RU_VARIABLE +alter table ACT_RU_VARIABLE add constraint ACT_FK_VAR_EXE - foreign key (EXECUTION_ID_) + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_VAR_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_); @@ -379,105 +382,105 @@ alter table ACT_RU_VARIABLE references ACT_RU_EXECUTION(ID_); create index ACT_IDX_VAR_BYTEARRAY on ACT_RU_VARIABLE(BYTEARRAY_ID_); -alter table ACT_RU_VARIABLE - add constraint ACT_FK_VAR_BYTEARRAY - foreign key (BYTEARRAY_ID_) +alter table ACT_RU_VARIABLE + add constraint ACT_FK_VAR_BYTEARRAY + foreign key (BYTEARRAY_ID_) references ACT_GE_BYTEARRAY (ID_); - + create index ACT_IDX_JOB_EXECUTION_ID on ACT_RU_JOB(EXECUTION_ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXECUTION - foreign key (EXECUTION_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_JOB_PROCESS_INSTANCE_ID on ACT_RU_JOB(PROCESS_INSTANCE_ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_JOB_PROC_DEF_ID on ACT_RU_JOB(PROC_DEF_ID_); -alter table ACT_RU_JOB +alter table ACT_RU_JOB add constraint ACT_FK_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); create index ACT_IDX_JOB_EXCEPTION on ACT_RU_JOB(EXCEPTION_STACK_ID_); -alter table ACT_RU_JOB - add constraint ACT_FK_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +alter table ACT_RU_JOB + add constraint ACT_FK_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_TIMER_JOB_EXECUTION_ID on ACT_RU_TIMER_JOB(EXECUTION_ID_); -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXECUTION - foreign key (EXECUTION_ID_) +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_TIMER_JOB_PROCESS_INSTANCE_ID on ACT_RU_TIMER_JOB(PROCESS_INSTANCE_ID_); -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); create index ACT_IDX_TIMER_JOB_PROC_DEF_ID on ACT_RU_TIMER_JOB(PROC_DEF_ID_); -alter table ACT_RU_TIMER_JOB +alter table ACT_RU_TIMER_JOB add constraint ACT_FK_TIMER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); -create index ACT_IDX_TIMER_JOB_EXCEPTION on ACT_RU_TIMER_JOB(EXCEPTION_STACK_ID_); -alter table ACT_RU_TIMER_JOB - add constraint ACT_FK_TIMER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +create index ACT_IDX_TIMER_JOB_EXCEPTION on ACT_RU_TIMER_JOB(EXCEPTION_STACK_ID_); +alter table ACT_RU_TIMER_JOB + add constraint ACT_FK_TIMER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); -create index ACT_IDX_SUSPENDED_JOB_EXECUTION_ID on ACT_RU_SUSPENDED_JOB(EXECUTION_ID_); -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXECUTION - foreign key (EXECUTION_ID_) +create index ACT_IDX_SUSPENDED_JOB_EXECUTION_ID on ACT_RU_SUSPENDED_JOB(EXECUTION_ID_); +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -create index ACT_IDX_SUSPENDED_JOB_PROCESS_INSTANCE_ID on ACT_RU_SUSPENDED_JOB(PROCESS_INSTANCE_ID_); -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +create index ACT_IDX_SUSPENDED_JOB_PROCESS_INSTANCE_ID on ACT_RU_SUSPENDED_JOB(PROCESS_INSTANCE_ID_); +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); -create index ACT_IDX_SUSPENDED_JOB_PROC_DEF_ID on ACT_RU_SUSPENDED_JOB(PROC_DEF_ID_); -alter table ACT_RU_SUSPENDED_JOB +create index ACT_IDX_SUSPENDED_JOB_PROC_DEF_ID on ACT_RU_SUSPENDED_JOB(PROC_DEF_ID_); +alter table ACT_RU_SUSPENDED_JOB add constraint ACT_FK_SUSPENDED_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); -create index ACT_IDX_SUSPENDED_JOB_EXCEPTION on ACT_RU_SUSPENDED_JOB(EXCEPTION_STACK_ID_); -alter table ACT_RU_SUSPENDED_JOB - add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) +create index ACT_IDX_SUSPENDED_JOB_EXCEPTION on ACT_RU_SUSPENDED_JOB(EXCEPTION_STACK_ID_); +alter table ACT_RU_SUSPENDED_JOB + add constraint ACT_FK_SUSPENDED_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); -create index ACT_IDX_DEADLETTER_JOB_EXECUTION_ID on ACT_RU_DEADLETTER_JOB(EXECUTION_ID_); -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXECUTION - foreign key (EXECUTION_ID_) +create index ACT_IDX_DEADLETTER_JOB_EXECUTION_ID on ACT_RU_DEADLETTER_JOB(EXECUTION_ID_); +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXECUTION + foreign key (EXECUTION_ID_) references ACT_RU_EXECUTION (ID_); - -create index ACT_IDX_DEADLETTER_JOB_PROCESS_INSTANCE_ID on ACT_RU_DEADLETTER_JOB(PROCESS_INSTANCE_ID_); -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE - foreign key (PROCESS_INSTANCE_ID_) + +create index ACT_IDX_DEADLETTER_JOB_PROCESS_INSTANCE_ID on ACT_RU_DEADLETTER_JOB(PROCESS_INSTANCE_ID_); +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE + foreign key (PROCESS_INSTANCE_ID_) references ACT_RU_EXECUTION (ID_); - -create index ACT_IDX_DEADLETTER_JOB_PROC_DEF_ID on ACT_RU_DEADLETTER_JOB(PROC_DEF_ID_); -alter table ACT_RU_DEADLETTER_JOB + +create index ACT_IDX_DEADLETTER_JOB_PROC_DEF_ID on ACT_RU_DEADLETTER_JOB(PROC_DEF_ID_); +alter table ACT_RU_DEADLETTER_JOB add constraint ACT_FK_DEADLETTER_JOB_PROC_DEF - foreign key (PROC_DEF_ID_) + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - -create index ACT_IDX_DEADLETTER_JOB_EXCEPTION on ACT_RU_DEADLETTER_JOB(EXCEPTION_STACK_ID_); -alter table ACT_RU_DEADLETTER_JOB - add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION - foreign key (EXCEPTION_STACK_ID_) + +create index ACT_IDX_DEADLETTER_JOB_EXCEPTION on ACT_RU_DEADLETTER_JOB(EXCEPTION_STACK_ID_); +alter table ACT_RU_DEADLETTER_JOB + add constraint ACT_FK_DEADLETTER_JOB_EXCEPTION + foreign key (EXCEPTION_STACK_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_EVENT_SUBSCR on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_); @@ -487,35 +490,35 @@ alter table ACT_RU_EVENT_SUBSCR references ACT_RU_EXECUTION(ID_); create index ACT_IDX_MODEL_SOURCE on ACT_RE_MODEL(EDITOR_SOURCE_VALUE_ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE - foreign key (EDITOR_SOURCE_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE + foreign key (EDITOR_SOURCE_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_MODEL_SOURCE_EXTRA on ACT_RE_MODEL(EDITOR_SOURCE_EXTRA_VALUE_ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_SOURCE_EXTRA - foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_SOURCE_EXTRA + foreign key (EDITOR_SOURCE_EXTRA_VALUE_ID_) references ACT_GE_BYTEARRAY (ID_); - -create index ACT_IDX_MODEL_DEPLOYMENT on ACT_RE_MODEL(DEPLOYMENT_ID_); -alter table ACT_RE_MODEL - add constraint ACT_FK_MODEL_DEPLOYMENT - foreign key (DEPLOYMENT_ID_) - references ACT_RE_DEPLOYMENT (ID_); + +create index ACT_IDX_MODEL_DEPLOYMENT on ACT_RE_MODEL(DEPLOYMENT_ID_); +alter table ACT_RE_MODEL + add constraint ACT_FK_MODEL_DEPLOYMENT + foreign key (DEPLOYMENT_ID_) + references ACT_RE_DEPLOYMENT (ID_); create index ACT_IDX_PROCDEF_INFO_JSON on ACT_PROCDEF_INFO(INFO_JSON_ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_JSON_BA - foreign key (INFO_JSON_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_JSON_BA + foreign key (INFO_JSON_ID_) references ACT_GE_BYTEARRAY (ID_); create index ACT_IDX_PROCDEF_INFO_PROC on ACT_PROCDEF_INFO(PROC_DEF_ID_); -alter table ACT_PROCDEF_INFO - add constraint ACT_FK_INFO_PROCDEF - foreign key (PROC_DEF_ID_) +alter table ACT_PROCDEF_INFO + add constraint ACT_FK_INFO_PROCDEF + foreign key (PROC_DEF_ID_) references ACT_RE_PROCDEF (ID_); - + alter table ACT_PROCDEF_INFO add constraint ACT_UNIQ_INFO_PROCDEF unique (PROC_DEF_ID_); diff --git a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Execution.xml b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Execution.xml index 5e6f7a6fcf..e379bf569f 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Execution.xml +++ b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Execution.xml @@ -1,13 +1,13 @@ - + + + - - - insert into ${prefix}ACT_RU_EXECUTION (ID_, REV_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, ACT_ID_, IS_ACTIVE_, IS_CONCURRENT_, IS_SCOPE_,IS_EVENT_SCOPE_, IS_MI_ROOT_, PARENT_ID_, SUPER_EXEC_, ROOT_PROC_INST_ID_, SUSPENSION_STATE_, TENANT_ID_, NAME_, START_TIME_, START_USER_ID_, IS_COUNT_ENABLED_, EVT_SUBSCR_COUNT_, TASK_COUNT_, JOB_COUNT_, TIMER_JOB_COUNT_, SUSP_JOB_COUNT_, DEADLETTER_JOB_COUNT_, VAR_COUNT_, ID_LINK_COUNT_) + insert into ${prefix}ACT_RU_EXECUTION (ID_, REV_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, ACT_ID_, IS_ACTIVE_, IS_CONCURRENT_, IS_SCOPE_,IS_EVENT_SCOPE_, IS_MI_ROOT_, PARENT_ID_, SUPER_EXEC_, ROOT_PROC_INST_ID_, SUSPENSION_STATE_, TENANT_ID_, NAME_, START_TIME_, START_USER_ID_, IS_COUNT_ENABLED_, EVT_SUBSCR_COUNT_, TASK_COUNT_, JOB_COUNT_, TIMER_JOB_COUNT_, SUSP_JOB_COUNT_, DEADLETTER_JOB_COUNT_, VAR_COUNT_, ID_LINK_COUNT_, APP_VERSION_) values ( #{id ,jdbcType=VARCHAR}, 1, @@ -36,13 +36,14 @@ #{suspendedJobCount, jdbcType=INTEGER}, #{deadLetterJobCount, jdbcType=INTEGER}, #{variableCount, jdbcType=INTEGER}, - #{identityLinkCount, jdbcType=INTEGER} + #{identityLinkCount, jdbcType=INTEGER}, + #{appVersion, jdbcType=INTEGER} ) - insert into ${prefix}ACT_RU_EXECUTION (ID_, REV_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, ACT_ID_, IS_ACTIVE_, IS_CONCURRENT_, IS_SCOPE_,IS_EVENT_SCOPE_, IS_MI_ROOT_, PARENT_ID_, SUPER_EXEC_, ROOT_PROC_INST_ID_, SUSPENSION_STATE_, TENANT_ID_, NAME_, START_TIME_, START_USER_ID_, IS_COUNT_ENABLED_, EVT_SUBSCR_COUNT_, TASK_COUNT_, JOB_COUNT_, TIMER_JOB_COUNT_, SUSP_JOB_COUNT_, DEADLETTER_JOB_COUNT_, VAR_COUNT_, ID_LINK_COUNT_) - values + insert into ${prefix}ACT_RU_EXECUTION (ID_, REV_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, ACT_ID_, IS_ACTIVE_, IS_CONCURRENT_, IS_SCOPE_,IS_EVENT_SCOPE_, IS_MI_ROOT_, PARENT_ID_, SUPER_EXEC_, ROOT_PROC_INST_ID_, SUSPENSION_STATE_, TENANT_ID_, NAME_, START_TIME_, START_USER_ID_, IS_COUNT_ENABLED_, EVT_SUBSCR_COUNT_, TASK_COUNT_, JOB_COUNT_, TIMER_JOB_COUNT_, SUSP_JOB_COUNT_, DEADLETTER_JOB_COUNT_, VAR_COUNT_, ID_LINK_COUNT_, APP_VERSION_) + values (#{execution.id ,jdbcType=VARCHAR}, 1, @@ -71,12 +72,13 @@ #{execution.suspendedJobCount, jdbcType=INTEGER}, #{execution.deadLetterJobCount, jdbcType=INTEGER}, #{execution.variableCount, jdbcType=INTEGER}, - #{execution.identityLinkCount, jdbcType=INTEGER}) + #{execution.identityLinkCount, jdbcType=INTEGER}, + #{execution.appVersion, jdbcType=INTEGER}) - INSERT ALL + INSERT ALL into ${prefix}ACT_RU_EXECUTION (ID_, REV_, PROC_INST_ID_, BUSINESS_KEY_, PROC_DEF_ID_, ACT_ID_, IS_ACTIVE_, IS_CONCURRENT_, IS_SCOPE_,IS_EVENT_SCOPE_, IS_MI_ROOT_, PARENT_ID_, SUPER_EXEC_, ROOT_PROC_INST_ID_, SUSPENSION_STATE_, TENANT_ID_, NAME_, START_TIME_, START_USER_ID_, IS_COUNT_ENABLED_, EVT_SUBSCR_COUNT_, TASK_COUNT_, JOB_COUNT_, TIMER_JOB_COUNT_, SUSP_JOB_COUNT_, DEADLETTER_JOB_COUNT_, VAR_COUNT_, ID_LINK_COUNT_) VALUES @@ -113,7 +115,7 @@ - + update ${prefix}ACT_RU_EXECUTION set REV_ = #{revisionNext, jdbcType=INTEGER}, @@ -131,18 +133,19 @@ SUSPENSION_STATE_ = #{suspensionState, jdbcType=INTEGER}, NAME_ = #{name, jdbcType=VARCHAR}, IS_COUNT_ENABLED_ = #{isCountEnabled, jdbcType=BOOLEAN}, - EVT_SUBSCR_COUNT_ = #{eventSubscriptionCount, jdbcType=INTEGER}, - TASK_COUNT_ = #{taskCount, jdbcType=INTEGER}, + EVT_SUBSCR_COUNT_ = #{eventSubscriptionCount, jdbcType=INTEGER}, + TASK_COUNT_ = #{taskCount, jdbcType=INTEGER}, JOB_COUNT_ = #{jobCount, jdbcType=INTEGER}, TIMER_JOB_COUNT_ = #{timerJobCount, jdbcType=INTEGER}, SUSP_JOB_COUNT_ = #{suspendedJobCount, jdbcType=INTEGER}, DEADLETTER_JOB_COUNT_ = #{deadLetterJobCount, jdbcType=INTEGER}, VAR_COUNT_ = #{variableCount, jdbcType=INTEGER}, - ID_LINK_COUNT_ = #{identityLinkCount, jdbcType=INTEGER} + ID_LINK_COUNT_ = #{identityLinkCount, jdbcType=INTEGER}, + APP_VERSION_ = #{appVersion, jdbcType=INTEGER} where ID_ = #{id, jdbcType=VARCHAR} and REV_ = #{revision, jdbcType=INTEGER} - + update ${prefix}ACT_RU_EXECUTION set TENANT_ID_ = #{tenantId, jdbcType=VARCHAR} @@ -150,11 +153,11 @@ ID_ in ( SELECT E.ID_ from ${prefix}ACT_RU_EXECUTION E inner join ${prefix}ACT_RE_PROCDEF P on E.PROC_DEF_ID_ = P.ID_ - inner join ${prefix}ACT_RE_DEPLOYMENT D on P.DEPLOYMENT_ID_ = D.ID_ + inner join ${prefix}ACT_RE_DEPLOYMENT D on P.DEPLOYMENT_ID_ = D.ID_ where D.ID_ = #{deploymentId, jdbcType=VARCHAR} - ) + ) - + @@ -168,49 +171,49 @@ SELECT E.ID_ as tempId FROM ${prefix}ACT_RU_EXECUTION E inner join ${prefix}ACT_RE_PROCDEF P on E.PROC_DEF_ID_ = P.ID_ - inner join ${prefix}ACT_RE_DEPLOYMENT D on P.DEPLOYMENT_ID_ = D.ID_ + inner join ${prefix}ACT_RE_DEPLOYMENT D on P.DEPLOYMENT_ID_ = D.ID_ where D.ID_ = #{deploymentId, jdbcType=VARCHAR} - - ) AS tempExecution + + ) AS tempExecution ) - + - update ${prefix}ACT_RU_EXECUTION + update ${prefix}ACT_RU_EXECUTION set LOCK_TIME_ = #{lockTime, jdbcType=TIMESTAMP} where ID_ = #{id} and (LOCK_TIME_ is null OR LOCK_TIME_ < #{expirationTime, jdbcType=TIMESTAMP}) - + - update ${prefix}ACT_RU_EXECUTION + update ${prefix}ACT_RU_EXECUTION set LOCK_TIME_ = null where ID_ = #{id} - + - update ${prefix}ACT_RU_EXECUTION + update ${prefix}ACT_RU_EXECUTION set IS_COUNT_ENABLED_ = #{parameter, jdbcType=BOOLEAN} - + - + delete from ${prefix}ACT_RU_EXECUTION where ID_ = #{id} and REV_ = #{revision} - + delete from ${prefix}ACT_RU_EXECUTION where ID_ = #{execution.id, jdbcType=VARCHAR} - + - + @@ -240,22 +243,23 @@ + - + - + - + - + @@ -280,9 +284,10 @@ + - + @@ -329,7 +334,7 @@ - + @@ -364,6 +369,7 @@ + @@ -380,19 +386,19 @@ - + - - - select E.*, S.PROC_INST_ID_ AS PARENT_PROC_INST_ID_ - from ${prefix}ACT_RU_EXECUTION E LEFT OUTER JOIN ${prefix}ACT_RU_EXECUTION S ON E.SUPER_EXEC_ = S.ID_ + + + select E.*, S.PROC_INST_ID_ AS PARENT_PROC_INST_ID_ + from ${prefix}ACT_RU_EXECUTION E LEFT OUTER JOIN ${prefix}ACT_RU_EXECUTION S ON E.SUPER_EXEC_ = S.ID_ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + from ${prefix}ACT_RU_EXECUTION RES inner join ${prefix}ACT_RE_PROCDEF P on RES.PROC_DEF_ID_ = P.ID_ left outer join ${prefix}ACT_RU_EXECUTION S on RES.SUPER_EXEC_ = S.ID_ - + - + ${limitBefore} - + select distinct RES.*, P.KEY_ as ProcessDefinitionKey, P.ID_ as ProcessDefinitionId, P.NAME_ as ProcessDefinitionName, P.VERSION_ as ProcessDefinitionVersion, P.DEPLOYMENT_ID_ as DeploymentId, - S.PROC_INST_ID_ AS PARENT_PROC_INST_ID_, + S.PROC_INST_ID_ AS PARENT_PROC_INST_ID_, VAR.ID_ as VAR_ID_, VAR.NAME_ as VAR_NAME_, VAR.TYPE_ as VAR_TYPE_, VAR.REV_ as VAR_REV_, VAR.PROC_INST_ID_ as VAR_PROC_INST_ID_, VAR.EXECUTION_ID_ as VAR_EXECUTION_ID_, VAR.TASK_ID_ as VAR_TASK_ID_, - VAR.BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, VAR.DOUBLE_ as VAR_DOUBLE_, + VAR.BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, VAR.DOUBLE_ as VAR_DOUBLE_, VAR.TEXT_ as VAR_TEXT_, VAR.TEXT2_ as VAR_TEXT2_, VAR.LONG_ as VAR_LONG_ ${limitBetween} select distinct TEMPRES_ID_ as ID_, TEMPP_KEY_ as ProcessDefinitionKey, TEMPP_ID_ as ProcessDefinitionId, TEMPP_NAME_ as ProcessDefinitionName, TEMPP_VERSION_ as ProcessDefinitionVersion, TEMPP_DEPLOYMENT_ID_ as DeploymentId, - TEMPS_PARENT_PROC_INST_ID_ AS PARENT_PROC_INST_ID_, + TEMPS_PARENT_PROC_INST_ID_ AS PARENT_PROC_INST_ID_, TEMPRES_REV_ as REV_, TEMPRES_ACT_ID_ as ACT_ID_, TEMPRES_BUSINESS_KEY_ as BUSINESS_KEY_, TEMPRES_IS_ACTIVE_ as IS_ACTIVE_, TEMPRES_IS_CONCURRENT_ as IS_CONCURRENT_, TEMPRES_IS_SCOPE_ as IS_SCOPE_, - TEMPRES_IS_EVENT_SCOPE_ as IS_EVENT_SCOPE_, TEMPRES_IS_MI_ROOT_ as IS_MI_ROOT_, - TEMPRES_PARENT_ID_ as PARENT_ID_, TEMPRES_PROC_INST_ID_ as PROC_INST_ID_, - TEMPRES_SUPER_EXEC_ as SUPER_EXEC_, TEMPRES_PROC_DEF_ID_ as PROC_DEF_ID_, + TEMPRES_IS_EVENT_SCOPE_ as IS_EVENT_SCOPE_, TEMPRES_IS_MI_ROOT_ as IS_MI_ROOT_, + TEMPRES_PARENT_ID_ as PARENT_ID_, TEMPRES_PROC_INST_ID_ as PROC_INST_ID_, + TEMPRES_SUPER_EXEC_ as SUPER_EXEC_, TEMPRES_PROC_DEF_ID_ as PROC_DEF_ID_, TEMPRES_NAME_ as NAME_, TEMPRES_TENANT_ID_ as TENANT_ID_, TEMPRES_SUSPENSION_STATE_ as SUSPENSION_STATE_, TEMPRES_START_TIME_ as START_TIME_, TEMPRES_START_USER_ID_ as START_USER_ID_, TEMPRES_IS_COUNT_ENABLED_ as IS_COUNT_ENABLED_, - TEMPRES_EVT_SUBSCR_COUNT_ as EVT_SUBSCR_COUNT_, - TEMPRES_TASK_COUNT_ as TASK_COUNT_, - TEMPRES_JOB_COUNT_ as JOB_COUNT_, + TEMPRES_EVT_SUBSCR_COUNT_ as EVT_SUBSCR_COUNT_, + TEMPRES_TASK_COUNT_ as TASK_COUNT_, + TEMPRES_JOB_COUNT_ as JOB_COUNT_, TEMPRES_TIMER_JOB_ as TIMER_JOB_COUNT_, - TEMPRES_SUSP_JOB_COUNT_ as SUSP_JOB_COUNT_, - TEMPRES_DEADLETTER_JOB_COUNT_ as DEADLETTER_JOB_COUNT_, - TEMPRES_VAR_COUNT_ as VAR_COUNT_, + TEMPRES_SUSP_JOB_COUNT_ as SUSP_JOB_COUNT_, + TEMPRES_DEADLETTER_JOB_COUNT_ as DEADLETTER_JOB_COUNT_, + TEMPRES_VAR_COUNT_ as VAR_COUNT_, TEMPRES_ID_LINK_COUNT_ as ID_LINK_COUNT_, TEMPVAR_ID_ as VAR_ID_, TEMPVAR_NAME_ as VAR_NAME_, TEMPVAR_TYPE_ as VAR_TYPE_, TEMPVAR_REV_ as VAR_REV_, TEMPVAR_PROC_INST_ID_ as VAR_PROC_INST_ID_, TEMPVAR_EXECUTION_ID_ as VAR_EXECUTION_ID_, TEMPVAR_TASK_ID_ as VAR_TASK_ID_, - TEMPVAR_BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, TEMPVAR_DOUBLE_ as VAR_DOUBLE_, + TEMPVAR_BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, TEMPVAR_DOUBLE_ as VAR_DOUBLE_, TEMPVAR_TEXT_ as VAR_TEXT_, TEMPVAR_TEXT2_ as VAR_TEXT2_, TEMPVAR_LONG_ as VAR_LONG_ ${limitOuterJoinBetween} RES.ID_ as TEMPRES_ID_, RES.REV_ as TEMPRES_REV_, P.KEY_ as TEMPP_KEY_, P.ID_ as TEMPP_ID_, P.NAME_ as TEMPP_NAME_, P.VERSION_ as TEMPP_VERSION_, P.DEPLOYMENT_ID_ as TEMPP_DEPLOYMENT_ID_, - S.PROC_INST_ID_ AS TEMPS_PARENT_PROC_INST_ID_, - - RES.ACT_ID_ as TEMPRES_ACT_ID_, - RES.PROC_INST_ID_ as TEMPRES_PROC_INST_ID_, - RES.BUSINESS_KEY_ as TEMPRES_BUSINESS_KEY_, + S.PROC_INST_ID_ AS TEMPS_PARENT_PROC_INST_ID_, + + RES.ACT_ID_ as TEMPRES_ACT_ID_, + RES.PROC_INST_ID_ as TEMPRES_PROC_INST_ID_, + RES.BUSINESS_KEY_ as TEMPRES_BUSINESS_KEY_, RES.IS_ACTIVE_ as TEMPRES_IS_ACTIVE_, - RES.IS_CONCURRENT_ as TEMPRES_IS_CONCURRENT_, + RES.IS_CONCURRENT_ as TEMPRES_IS_CONCURRENT_, RES.IS_SCOPE_ as TEMPRES_IS_SCOPE_, - RES.IS_EVENT_SCOPE_ as TEMPRES_IS_EVENT_SCOPE_, + RES.IS_EVENT_SCOPE_ as TEMPRES_IS_EVENT_SCOPE_, RES.IS_MI_ROOT_ as TEMPRES_IS_MI_ROOT_, - RES.PARENT_ID_ as TEMPRES_PARENT_ID_, - RES.SUPER_EXEC_ as TEMPRES_SUPER_EXEC_, - RES.SUSPENSION_STATE_ as TEMPRES_SUSPENSION_STATE_, - RES.PROC_DEF_ID_ as TEMPRES_PROC_DEF_ID_, - RES.NAME_ as TEMPRES_NAME_, + RES.PARENT_ID_ as TEMPRES_PARENT_ID_, + RES.SUPER_EXEC_ as TEMPRES_SUPER_EXEC_, + RES.SUSPENSION_STATE_ as TEMPRES_SUSPENSION_STATE_, + RES.PROC_DEF_ID_ as TEMPRES_PROC_DEF_ID_, + RES.NAME_ as TEMPRES_NAME_, RES.TENANT_ID_ as TEMPRES_TENANT_ID_, - RES.START_TIME_ as TEMPRES_START_TIME_, + RES.START_TIME_ as TEMPRES_START_TIME_, RES.START_USER_ID_ as TEMPRES_START_USER_ID_, - + RES.IS_COUNT_ENABLED_ as TEMPRES_IS_COUNT_ENABLED_, RES.EVT_SUBSCR_COUNT_ as TEMPRES_EVT_SUBSCR_COUNT_, RES.TASK_COUNT_ as TEMPRES_TASK_COUNT_, @@ -558,15 +564,15 @@ RES.DEADLETTER_JOB_COUNT_ as TEMPRES_DEADLETTER_JOB_COUNT_, RES.VAR_COUNT_ as TEMPRES_VAR_COUNT_, RES.ID_LINK_COUNT_ as TEMPRES_ID_LINK_COUNT_, - + VAR.ID_ as TEMPVAR_ID_, VAR.NAME_ as TEMPVAR_NAME_, VAR.TYPE_ as TEMPVAR_TYPE_, VAR.REV_ as TEMPVAR_REV_, VAR.PROC_INST_ID_ as TEMPVAR_PROC_INST_ID_, VAR.EXECUTION_ID_ as TEMPVAR_EXECUTION_ID_, VAR.TASK_ID_ as TEMPVAR_TASK_ID_, - VAR.BYTEARRAY_ID_ as TEMPVAR_BYTEARRAY_ID_, VAR.DOUBLE_ as TEMPVAR_DOUBLE_, + VAR.BYTEARRAY_ID_ as TEMPVAR_BYTEARRAY_ID_, VAR.DOUBLE_ as TEMPVAR_DOUBLE_, VAR.TEXT_ as TEMPVAR_TEXT_, VAR.TEXT2_ as TEMPVAR_TEXT2_, VAR.LONG_ as TEMPVAR_LONG_ - - + + from ${prefix}ACT_RU_EXECUTION RES inner join ${prefix}ACT_RE_PROCDEF P on RES.PROC_DEF_ID_ = P.ID_ left outer join ${prefix}ACT_RU_EXECUTION S on RES.SUPER_EXEC_ = S.ID_ @@ -575,7 +581,7 @@ - + @@ -585,7 +591,7 @@ inner join ${prefix}ACT_RU_VARIABLE A${index} on RES.PROC_INST_ID_ = A${index}.PROC_INST_ID_ - + @@ -684,7 +690,7 @@ and DEPLOY_P.DEPLOYMENT_ID_ IN - #{deployment} @@ -797,11 +803,11 @@ - and (EVT${index}.EVENT_TYPE_ = #{eventSubscriptionValue.eventType} and EVT${index}.EVENT_NAME_ = #{eventSubscriptionValue.eventName}) + and (EVT${index}.EVENT_TYPE_ = #{eventSubscriptionValue.eventType} and EVT${index}.EVENT_NAME_ = #{eventSubscriptionValue.eventName}) - and + and P_OR${orIndex}.ID_ = #{orQueryObject.processDefinitionId} @@ -856,7 +862,7 @@ or DEPLOY_P_OR${orIndex}.DEPLOYMENT_ID_ IN - #{deployment} @@ -903,7 +909,7 @@ - or + or @@ -985,7 +991,7 @@ - + = @@ -998,19 +1004,19 @@ <= - + - + - - \ No newline at end of file + + + diff --git a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/ProcessDefinition.xml b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/ProcessDefinition.xml index d808442bb0..7a704ce6ff 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/ProcessDefinition.xml +++ b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/ProcessDefinition.xml @@ -7,7 +7,7 @@ - insert into ${prefix}ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, HAS_GRAPHICAL_NOTATION_ , SUSPENSION_STATE_, TENANT_ID_, ENGINE_VERSION_) + insert into ${prefix}ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, HAS_GRAPHICAL_NOTATION_ , SUSPENSION_STATE_, TENANT_ID_, ENGINE_VERSION_, APP_VERSION_) values (#{id, jdbcType=VARCHAR}, 1, #{category, jdbcType=VARCHAR}, @@ -22,11 +22,12 @@ #{isGraphicalNotationDefined, jdbcType=BOOLEAN}, #{suspensionState, jdbcType=INTEGER}, #{tenantId, jdbcType=VARCHAR}, - #{engineVersion, jdbcType=VARCHAR}) + #{engineVersion, jdbcType=VARCHAR}, + #{appVersion, jdbcType=INTEGER}) - INSERT INTO ${prefix}ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, HAS_GRAPHICAL_NOTATION_ , SUSPENSION_STATE_, TENANT_ID_, ENGINE_VERSION_) + INSERT INTO ${prefix}ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, HAS_GRAPHICAL_NOTATION_ , SUSPENSION_STATE_, TENANT_ID_, ENGINE_VERSION_, APP_VERSION_) VALUES (#{processDefinition.id, jdbcType=VARCHAR}, @@ -43,7 +44,8 @@ #{processDefinition.isGraphicalNotationDefined, jdbcType=BOOLEAN}, #{processDefinition.suspensionState, jdbcType=INTEGER}, #{processDefinition.tenantId, jdbcType=VARCHAR}, - #{processDefinition.engineVersion, jdbcType=VARCHAR}) + #{processDefinition.engineVersion, jdbcType=VARCHAR}, + #{processDefinition.appVersion, jdbcType=INTEGER}) @@ -117,6 +119,7 @@ + diff --git a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Task.xml b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Task.xml index d06b8234c0..1d5e05796d 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Task.xml +++ b/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Task.xml @@ -15,15 +15,15 @@ --> - - + + - + insert into ${prefix}ACT_RU_TASK (ID_, REV_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, PRIORITY_, CREATE_TIME_, OWNER_, - ASSIGNEE_, DELEGATION_, EXECUTION_ID_, PROC_INST_ID_, PROC_DEF_ID_, TASK_DEF_KEY_, DUE_DATE_, CATEGORY_, SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_, CLAIM_TIME_) + ASSIGNEE_, DELEGATION_, EXECUTION_ID_, PROC_INST_ID_, PROC_DEF_ID_, TASK_DEF_KEY_, DUE_DATE_, CATEGORY_, SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_, CLAIM_TIME_, APP_VERSION_) values (#{id, jdbcType=VARCHAR}, 1, #{name, jdbcType=VARCHAR}, @@ -43,15 +43,16 @@ #{suspensionState, jdbcType=INTEGER}, #{tenantId, jdbcType=VARCHAR}, #{formKey, jdbcType=VARCHAR}, - #{claimTime, jdbcType=TIMESTAMP} + #{claimTime, jdbcType=TIMESTAMP}, + #{appVersion, jdbcType=INTEGER} ) INSERT INTO ${prefix}ACT_RU_TASK (ID_, REV_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, PRIORITY_, CREATE_TIME_, OWNER_, - ASSIGNEE_, DELEGATION_, EXECUTION_ID_, PROC_INST_ID_, PROC_DEF_ID_, TASK_DEF_KEY_, DUE_DATE_, CATEGORY_, SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_, CLAIM_TIME_) - VALUES - + ASSIGNEE_, DELEGATION_, EXECUTION_ID_, PROC_INST_ID_, PROC_DEF_ID_, TASK_DEF_KEY_, DUE_DATE_, CATEGORY_, SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_, CLAIM_TIME_, APP_VERSION_) + VALUES + (#{task.id, jdbcType=VARCHAR}, 1, #{task.name, jdbcType=VARCHAR}, @@ -71,16 +72,17 @@ #{task.suspensionState, jdbcType=INTEGER}, #{task.tenantId, jdbcType=VARCHAR}, #{task.formKey, jdbcType=VARCHAR}, - #{task.claimTime, jdbcType=TIMESTAMP}) + #{task.claimTime, jdbcType=TIMESTAMP}, + #{task.appVersion, jdbcType=INTEGER}) - INSERT ALL + INSERT ALL INTO ${prefix}ACT_RU_TASK (ID_, REV_, NAME_, PARENT_TASK_ID_, DESCRIPTION_, PRIORITY_, CREATE_TIME_, OWNER_, ASSIGNEE_, DELEGATION_, EXECUTION_ID_, PROC_INST_ID_, PROC_DEF_ID_, TASK_DEF_KEY_, DUE_DATE_, CATEGORY_, - SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_, CLAIM_TIME_) VALUES + SUSPENSION_STATE_, TENANT_ID_, FORM_KEY_, CLAIM_TIME_, APP_VERSION_) VALUES (#{task.id, jdbcType=VARCHAR}, 1, #{task.name, jdbcType=VARCHAR}, @@ -100,13 +102,14 @@ #{task.suspensionState, jdbcType=INTEGER}, #{task.tenantId, jdbcType=VARCHAR}, #{task.formKey, jdbcType=VARCHAR}, - #{task.claimTime, jdbcType=TIMESTAMP}) + #{task.claimTime, jdbcType=TIMESTAMP}, + #{task.appVersion, jdbcType=INTEGER}) SELECT * FROM dual - + - + update ${prefix}ACT_RU_TASK @@ -130,7 +133,7 @@ where ID_= #{id, jdbcType=VARCHAR} and REV_ = #{revision, jdbcType=INTEGER} - + update ${prefix}ACT_RU_TASK set TENANT_ID_ = #{tenantId, jdbcType=VARCHAR} @@ -138,11 +141,11 @@ ID_ in ( SELECT T.ID_ from ${prefix}ACT_RU_TASK T inner join ${prefix}ACT_RE_PROCDEF P on T.PROC_DEF_ID_ = P.ID_ - inner join ${prefix}ACT_RE_DEPLOYMENT D on P.DEPLOYMENT_ID_ = D.ID_ + inner join ${prefix}ACT_RE_DEPLOYMENT D on P.DEPLOYMENT_ID_ = D.ID_ where D.ID_ = #{deploymentId, jdbcType=VARCHAR} - ) + ) - + @@ -156,28 +159,28 @@ SELECT T.ID_ as tempId FROM ${prefix}ACT_RU_TASK T inner join ${prefix}ACT_RE_PROCDEF P on T.PROC_DEF_ID_ = P.ID_ - inner join ${prefix}ACT_RE_DEPLOYMENT D on P.DEPLOYMENT_ID_ = D.ID_ + inner join ${prefix}ACT_RE_DEPLOYMENT D on P.DEPLOYMENT_ID_ = D.ID_ where D.ID_ = #{deploymentId, jdbcType=VARCHAR} - - ) AS tempTask + + ) AS tempTask ) - + delete from ${prefix}ACT_RU_TASK where ID_ = #{id} and REV_ = #{revision} - + - delete from ${prefix}ACT_RU_TASK where + delete from ${prefix}ACT_RU_TASK where ID_ = #{task.id, jdbcType=VARCHAR} - + - + @@ -199,8 +202,9 @@ + - + @@ -222,6 +226,7 @@ + @@ -238,12 +243,12 @@ - + - + @@ -253,18 +258,18 @@ from ${prefix}ACT_RU_TASK T where T.EXECUTION_ID_ = #{parameter} - + - + @@ -273,26 +278,26 @@ select count(distinct RES.ID_) - - + + from ${prefix}ACT_RU_TASK RES - + - + ${limitBefore} select RES.*, VAR.ID_ as VAR_ID_, VAR.NAME_ as VAR_NAME_, VAR.TYPE_ as VAR_TYPE_, VAR.REV_ as VAR_REV_, VAR.PROC_INST_ID_ as VAR_PROC_INST_ID_, VAR.EXECUTION_ID_ as VAR_EXECUTION_ID_, VAR.TASK_ID_ as VAR_TASK_ID_, - VAR.BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, VAR.DOUBLE_ as VAR_DOUBLE_, + VAR.BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, VAR.DOUBLE_ as VAR_DOUBLE_, VAR.TEXT_ as VAR_TEXT_, VAR.TEXT2_ as VAR_TEXT2_, VAR.LONG_ as VAR_LONG_ ${limitBetween} @@ -306,7 +311,7 @@ TEMPRES_DUE_DATE_ as DUE_DATE_, TEMPRES_SUSPENSION_STATE_ as SUSPENSION_STATE_, TEMPRES_CATEGORY_ as CATEGORY_, TEMPVAR_ID_ as VAR_ID_, TEMPVAR_NAME_ as VAR_NAME_, TEMPVAR_TYPE_ as VAR_TYPE_, TEMPVAR_REV_ as VAR_REV_, TEMPVAR_PROC_INST_ID_ as VAR_PROC_INST_ID_, TEMPVAR_EXECUTION_ID_ as VAR_EXECUTION_ID_, TEMPVAR_TASK_ID_ as VAR_TASK_ID_, - TEMPVAR_BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, TEMPVAR_DOUBLE_ as VAR_DOUBLE_, + TEMPVAR_BYTEARRAY_ID_ as VAR_BYTEARRAY_ID_, TEMPVAR_DOUBLE_ as VAR_DOUBLE_, TEMPVAR_TEXT_ as VAR_TEXT_, TEMPVAR_TEXT2_ as VAR_TEXT2_, TEMPVAR_LONG_ as VAR_LONG_ ${limitOuterJoinBetween} RES.ID_ as TEMPRES_ID_, RES.REV_ as TEMPRES_REV_, RES.NAME_ as TEMPRES_NAME_, @@ -318,12 +323,12 @@ RES.DUE_DATE_ as TEMPRES_DUE_DATE_, RES.SUSPENSION_STATE_ as TEMPRES_SUSPENSION_STATE_, RES.CATEGORY_ as TEMPRES_CATEGORY_, VAR.ID_ as TEMPVAR_ID_, VAR.NAME_ as TEMPVAR_NAME_, VAR.TYPE_ as TEMPVAR_TYPE_, VAR.REV_ as TEMPVAR_REV_, VAR.PROC_INST_ID_ as TEMPVAR_PROC_INST_ID_, VAR.EXECUTION_ID_ as TEMPVAR_EXECUTION_ID_, VAR.TASK_ID_ as TEMPVAR_TASK_ID_, - VAR.BYTEARRAY_ID_ as TEMPVAR_BYTEARRAY_ID_, VAR.DOUBLE_ as TEMPVAR_DOUBLE_, + VAR.BYTEARRAY_ID_ as TEMPVAR_BYTEARRAY_ID_, VAR.DOUBLE_ as TEMPVAR_DOUBLE_, VAR.TEXT_ as TEMPVAR_TEXT_, VAR.TEXT2_ as TEMPVAR_TEXT2_, VAR.LONG_ as TEMPVAR_LONG_ - - + + from ${prefix}ACT_RU_TASK RES @@ -340,7 +345,7 @@ - + @@ -352,12 +357,12 @@ - inner join ${prefix}ACT_RU_VARIABLE A${index} on RES.ID_ = A${index}.TASK_ID_ + inner join ${prefix}ACT_RU_VARIABLE A${index} on RES.ID_ = A${index}.TASK_ID_ - inner join ${prefix}ACT_RU_VARIABLE A${index} on RES.PROC_INST_ID_ = A${index}.PROC_INST_ID_ + inner join ${prefix}ACT_RU_VARIABLE A${index} on RES.PROC_INST_ID_ = A${index}.PROC_INST_ID_ - + @@ -380,16 +385,16 @@ left outer join ${prefix}ACT_RE_PROCDEF D_OR${orIndex} on RES.PROC_DEF_ID_ = D_OR${orIndex}.ID_ - + inner join ${prefix}ACT_RU_EXECUTION E_OR${orIndex} on RES.PROC_INST_ID_ = E_OR${orIndex}.ID_ - + left outer join ${prefix}ACT_RE_PROCDEF DEPLOY_P_OR${orIndex} ON RES.PROC_DEF_ID_ = DEPLOY_P_OR${orIndex}.ID_ - + inner join ${prefix}ACT_RE_PROCDEF D on RES.PROC_DEF_ID_ = D.ID_ @@ -399,7 +404,7 @@ left outer join ${prefix}ACT_RE_PROCDEF DEPLOY_P ON RES.PROC_DEF_ID_ = DEPLOY_P.ID_ - + RES.ID_ = #{taskId} @@ -437,13 +442,13 @@ and RES.PRIORITY_ = #{priority} - + and RES.PRIORITY_ >= #{minPriority} - + and RES.PRIORITY_ <= #{maxPriority} - + and RES.ASSIGNEE_ = #{assignee} @@ -455,7 +460,7 @@ and RES.ASSIGNEE_ IN - #{assigneeId} @@ -486,7 +491,7 @@ and RES.PROC_INST_ID_ IN - #{processInstance} @@ -496,10 +501,10 @@ and E.BUSINESS_KEY_ like #{processInstanceBusinessKeyLike}${wildcardEscapeClause} - + and lower(E.BUSINESS_KEY_) like #{processInstanceBusinessKeyLikeIgnoreCase}${wildcardEscapeClause} - + and RES.EXECUTION_ID_ = #{executionId} @@ -561,7 +566,7 @@ and DEPLOY_P.DEPLOYMENT_ID_ IN - #{deployment} @@ -590,17 +595,17 @@ and RES.ASSIGNEE_ is null and I.TYPE_ = 'candidate' - and - ( + and + ( - I.USER_ID_ = #{candidateUser} + I.USER_ID_ = #{candidateUser} or I.GROUP_ID_ IN - #{group} @@ -641,7 +646,7 @@ and A${index}.TYPE_ = #{var.type} - + @@ -651,22 +656,22 @@ and A${index}.TEXT_ - + LIKE - + #{var.textValue} ${wildcardEscapeClause} - and A${index}.TEXT2_ + and A${index}.TEXT2_ LIKE - + #{var.textValue2} ${wildcardEscapeClause} @@ -678,7 +683,7 @@ #{var.longValue} - and A${index}.DOUBLE_ + and A${index}.DOUBLE_ #{var.doubleValue} @@ -691,7 +696,7 @@ and A${index}.TEXT_ is null and A${index}.TEXT2_ is null and A${index}.LONG_ is null and A${index}.DOUBLE_ is null and A${index}.BYTEARRAY_ID_ is null - + @@ -736,7 +741,7 @@ - and + and RES.ID_ = #{orQueryObject.taskId} @@ -775,13 +780,13 @@ or RES.PRIORITY_ = #{orQueryObject.priority} - + or RES.PRIORITY_ >= #{orQueryObject.minPriority} - + or RES.PRIORITY_ <= #{orQueryObject.maxPriority} - + or RES.ASSIGNEE_ = #{orQueryObject.assignee} @@ -793,7 +798,7 @@ or RES.ASSIGNEE_ IN - #{assigneeId} @@ -824,7 +829,7 @@ or RES.PROC_INST_ID_ IN - #{processInstance} @@ -834,10 +839,10 @@ or E_OR${orIndex}.BUSINESS_KEY_ like #{orQueryObject.processInstanceBusinessKeyLike}${wildcardEscapeClause} - + or lower(E.BUSINESS_KEY_) like #{orQueryObject.processInstanceBusinessKeyLikeIgnoreCase}${wildcardEscapeClause} - + or RES.EXECUTION_ID_ = #{orQueryObject.executionId} @@ -899,7 +904,7 @@ or DEPLOY_P_OR${orIndex}.DEPLOYMENT_ID_ IN - #{deployment} @@ -922,21 +927,21 @@ or RES.PARENT_TASK_ID_ IS NULL - + or (RES.ASSIGNEE_ is null and I_OR${orIndex}.TYPE_ = 'candidate' - and - ( + and + ( - I_OR${orIndex}.USER_ID_ = #{orQueryObject.candidateUser} + I_OR${orIndex}.USER_ID_ = #{orQueryObject.candidateUser} or I_OR${orIndex}.GROUP_ID_ IN - #{group} @@ -963,7 +968,7 @@ ) - or + or @@ -994,11 +999,11 @@ and A_${orLocal}OR${orIndex}.TEXT_ - + LIKE - + #{var.textValue} ${wildcardEscapeClause} @@ -1009,7 +1014,7 @@ LIKE - + #{var.textValue2} ${wildcardEscapeClause} @@ -1034,7 +1039,7 @@ and A_${orLocal}OR${orIndex}.TEXT_ is null and A_${orLocal}OR${orIndex}.TEXT2_ is null and A_${orLocal}OR${orIndex}.LONG_ is null and A_${orLocal}OR${orIndex}.DOUBLE_ is null and A_${orLocal}OR${orIndex}.BYTEARRAY_ID_ is null - + @@ -1083,7 +1088,7 @@ - + = @@ -1095,14 +1100,14 @@ < <= - + - + - \ No newline at end of file + diff --git a/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.h2.upgradestep.7000.to.7100.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.h2.upgradestep.7000.to.7100.engine.sql index 259f4c66de..90e1ccd803 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.h2.upgradestep.7000.to.7100.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.h2.upgradestep.7000.to.7100.engine.sql @@ -1,5 +1,7 @@ update ACT_GE_PROPERTY set VALUE_ = '7.1.0.0' where NAME_ = 'schema.version'; +alter table ACT_RE_DEPLOYMENT add column VERSION_ integer set default 1; +alter table ACT_RE_DEPLOYMENT add column PROJECT_RELEASE_VERSION_ varchar(255); diff --git a/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.h2.upgradestep.7100.to.710M6.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.h2.upgradestep.7100.to.710M6.engine.sql new file mode 100644 index 0000000000..2e4859473f --- /dev/null +++ b/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.h2.upgradestep.7100.to.710M6.engine.sql @@ -0,0 +1,5 @@ +update ACT_GE_PROPERTY set VALUE_ = '7.1.0-M6' where NAME_ = 'schema.version'; + +alter table ACT_RE_PROCDEF add column APP_VERSION_ integer; +alter table ACT_RU_TASK add column APP_VERSION_ integer; +alter table ACT_RU_EXECUTION add column APP_VERSION_ integer; diff --git a/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.postgres.upgradestep.7000.to.7100.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.postgres.upgradestep.7000.to.7100.engine.sql index 03073a6669..355e719b98 100644 --- a/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.postgres.upgradestep.7000.to.7100.engine.sql +++ b/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.postgres.upgradestep.7000.to.7100.engine.sql @@ -1,6 +1,6 @@ update ACT_GE_PROPERTY set VALUE_ = '7.1.0.0' where NAME_ = 'schema.version'; -alter table ACT_RE_DEPLOYMENT add column VERSION_ integer; +alter table ACT_RE_DEPLOYMENT add column VERSION_ integer set default 1; alter table ACT_RE_DEPLOYMENT add column PROJECT_RELEASE_VERSION_ varchar(255); diff --git a/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.postgres.upgradestep.7100.to.710M6.engine.sql b/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.postgres.upgradestep.7100.to.710M6.engine.sql new file mode 100644 index 0000000000..2e4859473f --- /dev/null +++ b/activiti-engine/src/main/resources/org/activiti/db/upgrade/activiti.postgres.upgradestep.7100.to.710M6.engine.sql @@ -0,0 +1,5 @@ +update ACT_GE_PROPERTY set VALUE_ = '7.1.0-M6' where NAME_ = 'schema.version'; + +alter table ACT_RE_PROCDEF add column APP_VERSION_ integer; +alter table ACT_RU_TASK add column APP_VERSION_ integer; +alter table ACT_RU_EXECUTION add column APP_VERSION_ integer; diff --git a/activiti-engine/src/test/java/org/activiti/examples/mgmt/ManagementServiceTest.java b/activiti-engine/src/test/java/org/activiti/examples/mgmt/ManagementServiceTest.java index d4dfc31854..8c2930bc19 100644 --- a/activiti-engine/src/test/java/org/activiti/examples/mgmt/ManagementServiceTest.java +++ b/activiti-engine/src/test/java/org/activiti/examples/mgmt/ManagementServiceTest.java @@ -1,9 +1,9 @@ /* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,7 +21,7 @@ import org.activiti.engine.management.TableMetaData; /** * Test case for the various operations of the {@link ManagementService} - * + * */ @@ -44,10 +44,10 @@ public class ManagementServiceTest extends PluggableActivitiTestCase { public void testGetTableMetaData() { String tablePrefix = processEngineConfiguration.getDatabaseTablePrefix(); - + TableMetaData tableMetaData = managementService.getTableMetaData(tablePrefix+"ACT_RU_TASK"); assertEquals(tableMetaData.getColumnNames().size(), tableMetaData.getColumnTypes().size()); - assertEquals(20, tableMetaData.getColumnNames().size()); + assertEquals(21, tableMetaData.getColumnNames().size()); int assigneeIndex = tableMetaData.getColumnNames().indexOf("ASSIGNEE_"); int createTimeIndex = tableMetaData.getColumnNames().indexOf("CREATE_TIME_"); diff --git a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/process/ProcessRuntimeIT.java b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/process/ProcessRuntimeIT.java index ee421a61d5..06217f9af1 100644 --- a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/process/ProcessRuntimeIT.java +++ b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/process/ProcessRuntimeIT.java @@ -1,5 +1,8 @@ package org.activiti.spring.boot.process; +import java.util.List; +import java.util.stream.Collectors; + import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.catchThrowable; import static org.mockito.Mockito.spy; @@ -44,10 +47,10 @@ public class ProcessRuntimeIT { private static final String CATEGORIZE_PROCESS = "categorizeProcess"; private static final String CATEGORIZE_HUMAN_PROCESS = "categorizeHumanProcess"; private static final String ONE_STEP_PROCESS = "OneStepProcess"; - + private static final String SUB_PROCESS = "subProcess"; private static final String SUPER_PROCESS = "superProcess"; - + @Autowired private ProcessRuntime processRuntime; @@ -74,20 +77,20 @@ public class ProcessRuntimeIT { @Autowired private APIVariableInstanceConverter variableInstanceConverter; - + @Autowired ProcessVariablesPayloadValidator processVariablesValidator; @Autowired private ProcessRuntimeConfiguration configuration; - + @Autowired private ApplicationEventPublisher applicationEventPublisher; private ApplicationEventPublisher eventPublisher; - + private ProcessRuntime processRuntimeMock; - + private ProcessAdminRuntime processAdminRuntimeMock; @Autowired @@ -101,7 +104,7 @@ public class ProcessRuntimeIT { @Before public void init() { eventPublisher = spy(applicationEventPublisher); - + processRuntimeMock = spy(new ProcessRuntimeImpl(repositoryService, processDefinitionConverter, runtimeService, @@ -563,7 +566,7 @@ public class ProcessRuntimeIT { assertThat(deletedProcessInstance.getStatus()).isEqualTo(ProcessInstance.ProcessInstanceStatus.DELETED); } - + @Test public void getSubprocesses() { @@ -571,7 +574,7 @@ public class ProcessRuntimeIT { Page processInstancePage; ProcessInstance parentProcess,subProcess; - + //given // start a process with a business key to check filters parentProcess=processRuntime.start(ProcessPayloadBuilder.start() @@ -592,29 +595,29 @@ public class ProcessRuntimeIT { assertThat( processInstancePage.getContent().get(0).getProcessDefinitionKey()).isEqualTo(SUPER_PROCESS); assertThat( processInstancePage.getContent().get(1).getProcessDefinitionKey()).isEqualTo(SUB_PROCESS); - - + + //Check that parentProcess has 1 subprocess processInstancePage = processRuntime.processInstances(Pageable.of(0, 50), ProcessPayloadBuilder .subprocesses(parentProcess.getId())); - - + + assertThat(processInstancePage).isNotNull(); assertThat(processInstancePage.getContent()).hasSize(1); - + subProcess=processInstancePage.getContent().get(0); - + assertThat(subProcess.getProcessDefinitionKey()).isEqualTo(SUB_PROCESS); assertThat(subProcess.getParentId()).isEqualTo(parentProcess.getId()); assertThat(subProcess.getProcessDefinitionVersion()).isEqualTo(1); - + processRuntime.delete(ProcessPayloadBuilder.delete(subProcess)); processRuntime.delete(ProcessPayloadBuilder.delete(parentProcess)); - - + + } @@ -634,9 +637,9 @@ public class ProcessRuntimeIT { assertThat(processInstancePage).isNotNull(); assertThat(processInstancePage.getContent()).hasSize(1); assertThat(processInstancePage.getContent().get(0).getProcessDefinitionKey()).isEqualTo("processWithSignalStart1"); - + verify(eventPublisher).publishEvent(signalPayload); - + processRuntimeMock.delete(ProcessPayloadBuilder.delete(processInstancePage.getContent().get(0).getId())); } @@ -659,4 +662,33 @@ public class ProcessRuntimeIT { processAdminRuntimeMock.delete(ProcessPayloadBuilder.delete(processInstancePage.getContent().get(0).getId())); } + + @Test + public void should_processInstanceAlwaysHaveAppVersion(){ + securityUtil.logInAs("user"); + + ProcessInstance processInstance = processRuntime.start(ProcessPayloadBuilder.start() + .withProcessDefinitionKey(SUPER_PROCESS) + .build()); + assertThat(processInstance.getAppVersion()).isEqualTo("1"); + } + + @Test + public void should_processDefinitionAlwaysHaveAppVersion(){ + securityUtil.logInAs("user"); + + Page processDefinitionPage = processRuntime.processDefinitions(Pageable.of(0, + 50)); + assertThat(processDefinitionPage.getContent()).isNotEmpty(); + + List processDefinitions = processDefinitionPage.getContent().stream() + .filter(c -> c.getKey().equals(SUPER_PROCESS)) + .collect(Collectors.toList()); + assertThat(processDefinitions).hasSize(1); + + ProcessDefinition result = processDefinitions.get(0); + + assertThat(result.getAppVersion()).isEqualTo("1"); + } + } diff --git a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/process/ProcessRuntimeTasksIT.java b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/process/ProcessRuntimeTasksIT.java new file mode 100644 index 0000000000..77f3de875a --- /dev/null +++ b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/process/ProcessRuntimeTasksIT.java @@ -0,0 +1,71 @@ +package org.activiti.spring.boot.process; + +import org.activiti.api.process.model.ProcessInstance; +import org.activiti.api.process.model.builders.ProcessPayloadBuilder; +import org.activiti.api.process.runtime.ProcessRuntime; +import org.activiti.api.runtime.shared.query.Page; +import org.activiti.api.runtime.shared.query.Pageable; +import org.activiti.api.task.model.Task; +import org.activiti.api.task.model.builders.TaskPayloadBuilder; +import org.activiti.api.task.runtime.TaskRuntime; +import org.activiti.spring.boot.security.util.SecurityUtil; +import org.activiti.spring.boot.test.util.ProcessCleanUpUtil; +import org.activiti.spring.boot.test.util.TaskCleanUpUtil; +import org.junit.After; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) +public class ProcessRuntimeTasksIT { + + private static final String SINGLE_TASK_PROCESS = "SingleTaskProcess"; + + @Autowired + private ProcessRuntime processRuntime; + + @Autowired + private TaskRuntime taskRuntime; + + @Autowired + private SecurityUtil securityUtil; + + @Autowired + private ProcessCleanUpUtil processCleanUpUtil; + + @Autowired + private TaskCleanUpUtil taskCleanUpUtil; + + @After + public void cleanUp() { + processCleanUpUtil.cleanUpWithAdmin(); + taskCleanUpUtil.cleanUpWithAdmin(); + } + + @Test + public void should_taskAlwaysHaveAppVersion() { + securityUtil.logInAs("garth"); + + ProcessInstance processInstance = processRuntime.start(ProcessPayloadBuilder.start() + .withProcessDefinitionKey(SINGLE_TASK_PROCESS) + .build()); + + Page tasks = taskRuntime.tasks(Pageable.of(0, 50), + TaskPayloadBuilder + .tasks() + .withProcessInstanceId(processInstance.getId()) + .build()); + + assertThat(tasks.getContent()).hasSize(1); + + Task result = tasks.getContent().get(0); + + assertThat(result.getName()).isEqualTo("my-task"); + assertThat(result.getAppVersion()).isEqualTo("1"); + } +} diff --git a/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/tasks/TaskRuntimeAppVersionIT.java b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/tasks/TaskRuntimeAppVersionIT.java new file mode 100644 index 0000000000..d2b7df91c5 --- /dev/null +++ b/activiti-spring-boot-starter/src/test/java/org/activiti/spring/boot/tasks/TaskRuntimeAppVersionIT.java @@ -0,0 +1,54 @@ +package org.activiti.spring.boot.tasks; + +import org.activiti.api.runtime.shared.query.Page; +import org.activiti.api.runtime.shared.query.Pageable; +import org.activiti.api.task.model.Task; +import org.activiti.api.task.model.builders.TaskPayloadBuilder; +import org.activiti.api.task.runtime.TaskRuntime; +import org.activiti.spring.boot.security.util.SecurityUtil; +import org.activiti.spring.boot.test.util.TaskCleanUpUtil; +import org.junit.After; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) +public class TaskRuntimeAppVersionIT { + + @Autowired + private TaskRuntime taskRuntime; + + @Autowired + private SecurityUtil securityUtil; + + @Autowired + private TaskCleanUpUtil taskCleanUpUtil; + + @After + public void taskCleanUp() { + taskCleanUpUtil.cleanUpWithAdmin(); + } + + @Test + public void should_standaloneTaskAlwaysHaveAppVersion() { + securityUtil.logInAs("user"); + + taskRuntime.create(TaskPayloadBuilder.create() + .withName("new task") + .build()); + + Page tasks = taskRuntime.tasks(Pageable.of(0, 50)); + + assertThat(tasks.getContent()).hasSize(1); + + Task result = tasks.getContent().get(0); + + assertThat(result.getName()).isEqualTo("new task"); + assertThat(result.getAppVersion()).isEqualTo("1"); + } +} -- GitLab