From 06636d3a80e224881d1a89ca0d1eb9888826142e Mon Sep 17 00:00:00 2001 From: Tijs Rademakers Date: Tue, 18 Aug 2015 18:15:12 +0200 Subject: [PATCH] More backwards compatibility work --- .../Activiti5CompatibilityHandler.java | 26 +++ .../engine/impl/ManagementServiceImpl.java | 6 +- .../cfg/ProcessEngineConfigurationImpl.java | 7 +- ...ddIdentityLinkForProcessDefinitionCmd.java | 8 + .../AddIdentityLinkForProcessInstanceCmd.java | 8 + .../engine/impl/cmd/CancelJobCmd.java | 36 ---- .../engine/impl/cmd/ClaimTaskCmd.java | 9 +- .../impl/cmd/DeleteIdentityLinkCmd.java | 10 + ...teIdentityLinkForProcessDefinitionCmd.java | 8 + ...leteIdentityLinkForProcessInstanceCmd.java | 8 + .../engine/impl/cmd/DeleteJobCmd.java | 25 ++- .../engine/impl/cmd/SetJobRetriesCmd.java | 9 + .../cmd/SetProcessDefinitionCategoryCmd.java | 8 + .../cmd/SetProcessInstanceBusinessKeyCmd.java | 6 + .../engine/impl/cmd/SetTaskDueDateCmd.java | 8 + .../engine/impl/cmd/SetTaskPriorityCmd.java | 8 + .../persistence/entity/TaskEntityManager.java | 12 +- .../DefaultActiviti5CompatibilityHandler.java | 185 ++++++++++++++++-- .../engine/impl/cmd/ExecuteJobsCmd.java | 8 +- .../test/api/event/AttachmentEventsTest.java | 2 +- .../test/api/event/GroupEventsTest.java | 28 ++- .../api/event/IdentityLinkEventsTest.java | 7 +- .../engine/test/api/event/JobEventsTest.java | 174 +++++++++------- .../test/api/event/ModelEventsTest.java | 20 +- .../event/ProcessDefinitionEventsTest.java | 35 ++-- .../api/event/ProcessInstanceEventsTest.java | 44 ++--- .../engine/test/api/event/TaskEventsTest.java | 182 +++-------------- .../api/event/TaskStandaloneEventsTest.java | 152 ++++++++++++++ .../TestActiviti6EntityEventListener.java | 53 +++++ .../api/event/TestActiviti6EventListener.java | 47 +++++ .../engine/test/api/mgmt/JobQueryTest.java | 72 ++++--- .../test/api/mgmt/ManagementServiceTest.java | 15 +- .../test/api/runtime/ExecutionQueryTest.java | 2 + .../engine/test/bpmn/async/AsyncTaskTest.java | 20 +- ...TimerEventRepeatWithEndExpressionTest.java | 7 +- ...AsyncTaskTest.testAsyncEndEvent.bpmn20.xml | 2 +- ...Test.testAsyncServiceConcurrent.bpmn20.xml | 2 +- ...kTest.testAsyncServiceListeners.bpmn20.xml | 4 +- ...t.testAsyncServiceMultiInstance.bpmn20.xml | 2 +- ...est.testAsyncServiceNoListeners.bpmn20.xml | 2 +- ...testAsyncServiceSubProcessTimer.bpmn20.xml | 2 +- ...AsyncTaskTest.testAsyncUserTask.bpmn20.xml | 4 +- ...avaDelegateOnCallActivity-child.bpmn20.xml | 2 +- ...avaDelegateOnEmbeddedSubProcess.bpmn20.xml | 2 +- ...teOnEmbeddedSubProcessInduction.bpmn20.xml | 2 +- ...ultiInstanceServiceTaskParallel.bpmn20.xml | 2 +- ...tiInstanceServiceTaskSequential.bpmn20.xml | 2 +- ...rownByJavaDelegateOnServiceTask.bpmn20.xml | 2 +- ...eOnServiceTaskNotCancelActivity.bpmn20.xml | 2 +- ...egateOnServiceTaskWithErrorCode.bpmn20.xml | 2 +- ...legateNotCaughtByOtherEventType.bpmn20.xml | 2 +- 51 files changed, 856 insertions(+), 435 deletions(-) delete mode 100755 modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/CancelJobCmd.java create mode 100644 modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TaskStandaloneEventsTest.java create mode 100644 modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TestActiviti6EntityEventListener.java create mode 100644 modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TestActiviti6EventListener.java diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/compatibility/Activiti5CompatibilityHandler.java b/modules/activiti-engine/src/main/java/org/activiti/engine/compatibility/Activiti5CompatibilityHandler.java index 1759b1eec8..4db8ce738e 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/compatibility/Activiti5CompatibilityHandler.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/compatibility/Activiti5CompatibilityHandler.java @@ -39,10 +39,16 @@ public interface Activiti5CompatibilityHandler { ProcessDefinition getProcessDefinitionByKey(String processDefinitionKey); + void addCandidateStarter(String processDefinitionId, String userId, String groupId); + + void deleteCandidateStarter(String processDefinitionId, String userId, String groupId); + void suspendProcessDefinition(String processDefinitionId, String processDefinitionKey, boolean suspendProcessInstances, Date suspensionDate, String tenantId); void activateProcessDefinition(String processDefinitionId, String processDefinitionKey, boolean activateProcessInstances, Date activationDate, String tenantId); + void setProcessDefinitionCategory(String processDefinitionId, String category); + Deployment deploy(DeploymentBuilderImpl deploymentBuilder); void setDeploymentCategory(String deploymentId, String category); @@ -51,14 +57,28 @@ public interface Activiti5CompatibilityHandler { ProcessInstance startProcessInstance(String processDefinitionKey, String processDefinitionId, Map variables, String businessKey, String tenantId, String processInstanceName); + void updateBusinessKey(String processInstanceId, String businessKey); + void suspendProcessInstance(String processInstanceId); void activateProcessInstance(String processInstanceId); + void addIdentityLinkForProcessInstance(String processInstanceId, String userId, String groupId, String identityLinkType); + + void deleteIdentityLinkForProcessInstance(String processInstanceId, String userId, String groupId, String identityLinkType); + void deleteProcessInstance(String processInstanceId, String deleteReason); void completeTask(TaskEntity taskEntity, Map variables, boolean localScope); + void claimTask(String taskId, String userId); + + void setTaskDueDate(String taskId, Date dueDate); + + void setTaskPriority(String taskId, int priority); + + void deleteTask(String taskId, String deleteReason, boolean cascade); + ProcessInstance submitStartFormData(String processDefinitionId, String businessKey, Map properties); void submitTaskFormData(String taskId, Map properties, boolean completeTask); @@ -67,6 +87,8 @@ public interface Activiti5CompatibilityHandler { void addIdentityLink(String taskId, String identityId, int identityIdType, String identityType); + void deleteIdentityLink(String taskId, String userId, String groupId, String identityLinkType); + Attachment createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, InputStream content, String url); void trigger(String executionId, Map processVariables); @@ -81,6 +103,10 @@ public interface Activiti5CompatibilityHandler { void executeJobWithLockAndRetry(JobEntity job); + void deleteJob(String jobId); + + void setJobRetries(String jobId, int retries); + void addEventListener(Object listener); void removeEventListener(Object listener); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/ManagementServiceImpl.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/ManagementServiceImpl.java index aca4b055d0..a0e45579af 100755 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/ManagementServiceImpl.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/ManagementServiceImpl.java @@ -21,9 +21,9 @@ import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.JobNotFoundException; import org.activiti.engine.ManagementService; import org.activiti.engine.event.EventLogEntry; -import org.activiti.engine.impl.cmd.CancelJobCmd; import org.activiti.engine.impl.cmd.CustomSqlExecution; import org.activiti.engine.impl.cmd.DeleteEventLogEntry; +import org.activiti.engine.impl.cmd.DeleteJobCmd; import org.activiti.engine.impl.cmd.ExecuteCustomSqlCmd; import org.activiti.engine.impl.cmd.ExecuteJobsCmd; import org.activiti.engine.impl.cmd.GetEventLogEntriesCmd; @@ -76,7 +76,7 @@ public class ManagementServiceImpl extends ServiceImpl implements ManagementServ try { commandExecutor.execute(new ExecuteJobsCmd(jobId)); } - catch(RuntimeException e) { + catch (RuntimeException e) { if ((e instanceof JobNotFoundException)) { throw e; } else { @@ -88,7 +88,7 @@ public class ManagementServiceImpl extends ServiceImpl implements ManagementServ } public void deleteJob(String jobId) { - commandExecutor.execute(new CancelJobCmd(jobId)); + commandExecutor.execute(new DeleteJobCmd(jobId)); } public void setJobRetries(String jobId, int retries) { diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfigurationImpl.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfigurationImpl.java index 1e010a3ecf..d9251c3a19 100755 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfigurationImpl.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfigurationImpl.java @@ -2178,7 +2178,12 @@ public abstract class ProcessEngineConfigurationImpl extends ProcessEngineConfig } public ProcessEngineConfigurationImpl setClock(Clock clock) { - this.clock = clock; + if (this.clock == null) { + this.clock = clock; + } else { + this.clock.setCurrentCalendar(clock.getCurrentCalendar()); + } + if (isActiviti5CompatibilityEnabled) { getActiviti5CompatibilityHandler().setClock(clock); } diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddIdentityLinkForProcessDefinitionCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddIdentityLinkForProcessDefinitionCmd.java index aaf5303fa4..64e8621ee7 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddIdentityLinkForProcessDefinitionCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddIdentityLinkForProcessDefinitionCmd.java @@ -16,9 +16,11 @@ import java.io.Serializable; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.ActivitiObjectNotFoundException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity; +import org.activiti.engine.impl.util.Activiti5Util; import org.activiti.engine.repository.ProcessDefinition; /** @@ -57,6 +59,12 @@ public class AddIdentityLinkForProcessDefinitionCmd implements Command, Se if (processDefinition == null) { throw new ActivitiObjectNotFoundException("Cannot find process definition with id " + processDefinitionId, ProcessDefinition.class); } + + if (Activiti5Util.isActiviti5ProcessDefinition(commandContext, processDefinition)) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.addCandidateStarter(processDefinitionId, userId, groupId); + return null; + } processDefinition.addIdentityLink(userId, groupId); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddIdentityLinkForProcessInstanceCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddIdentityLinkForProcessInstanceCmd.java index 85e4c1b532..1aa6853338 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddIdentityLinkForProcessInstanceCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddIdentityLinkForProcessInstanceCmd.java @@ -16,9 +16,11 @@ import java.io.Serializable; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.ActivitiObjectNotFoundException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.ExecutionEntity; +import org.activiti.engine.impl.util.Activiti5Util; /** * @author Marcus Klimstra @@ -66,6 +68,12 @@ public class AddIdentityLinkForProcessInstanceCmd implements Command, Seri if (processInstance == null) { throw new ActivitiObjectNotFoundException("Cannot find process instance with id " + processInstanceId, ExecutionEntity.class); } + + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, processInstance.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.addIdentityLinkForProcessInstance(processInstanceId, userId, groupId, type); + return null; + } processInstance.addIdentityLink(userId, groupId, type); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/CancelJobCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/CancelJobCmd.java deleted file mode 100755 index 580073be70..0000000000 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/CancelJobCmd.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.activiti.engine.impl.cmd; - -import org.activiti.engine.delegate.event.ActivitiEventType; -import org.activiti.engine.delegate.event.impl.ActivitiEventBuilder; -import org.activiti.engine.impl.context.Context; -import org.activiti.engine.impl.interceptor.CommandContext; -import org.activiti.engine.impl.persistence.entity.JobEntity; - -/** - * Command that dispatches a JOB_CANCELLED event and deletes the job entity. - */ -public class CancelJobCmd extends DeleteJobCmd { - - private static final long serialVersionUID = 1L; - - public CancelJobCmd(String jobId) { - super(jobId); - } - - @Override - public Object execute(CommandContext commandContext) { - JobEntity jobToDelete = getJobToDelete(commandContext); - - sendCancelEvent(jobToDelete); - - jobToDelete.delete(); - return null; - } - - private void sendCancelEvent(JobEntity jobToDelete) { - if (Context.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { - Context.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent(ActivitiEventBuilder.createEntityEvent(ActivitiEventType.JOB_CANCELED, jobToDelete)); - } - } - -} diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/ClaimTaskCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/ClaimTaskCmd.java index 2e1847d646..76bc664ac9 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/ClaimTaskCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/ClaimTaskCmd.java @@ -13,8 +13,10 @@ package org.activiti.engine.impl.cmd; import org.activiti.engine.ActivitiTaskAlreadyClaimedException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.TaskEntity; +import org.activiti.engine.impl.util.Activiti5Util; /** * @author Joram Barrez @@ -31,7 +33,12 @@ public class ClaimTaskCmd extends NeedsActiveTaskCmd { } protected Void execute(CommandContext commandContext, TaskEntity task) { - + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, task.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.claimTask(taskId, userId); + return null; + } + if (userId != null) { if (task.getAssignee() != null) { if (!task.getAssignee().equals(userId)) { diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteIdentityLinkCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteIdentityLinkCmd.java index c06ddcc97d..73d4aa5a09 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteIdentityLinkCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteIdentityLinkCmd.java @@ -14,8 +14,10 @@ package org.activiti.engine.impl.cmd; import org.activiti.engine.ActivitiIllegalArgumentException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.TaskEntity; +import org.activiti.engine.impl.util.Activiti5Util; import org.activiti.engine.task.IdentityLinkType; /** @@ -26,6 +28,9 @@ import org.activiti.engine.task.IdentityLinkType; public class DeleteIdentityLinkCmd extends NeedsActiveTaskCmd { private static final long serialVersionUID = 1L; + + public static int IDENTITY_USER = 1; + public static int IDENTITY_GROUP = 2; protected String userId; @@ -65,6 +70,11 @@ public class DeleteIdentityLinkCmd extends NeedsActiveTaskCmd { } protected Void execute(CommandContext commandContext, TaskEntity task) { + if (task.getProcessDefinitionId() != null && Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, task.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.deleteIdentityLink(taskId, userId, groupId, type); + return null; + } if (IdentityLinkType.ASSIGNEE.equals(type)) { task.setAssignee(null, true, true); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteIdentityLinkForProcessDefinitionCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteIdentityLinkForProcessDefinitionCmd.java index a80ecf80ac..ff7d522b32 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteIdentityLinkForProcessDefinitionCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteIdentityLinkForProcessDefinitionCmd.java @@ -17,9 +17,11 @@ import java.io.Serializable; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.ActivitiObjectNotFoundException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity; +import org.activiti.engine.impl.util.Activiti5Util; import org.activiti.engine.repository.ProcessDefinition; /** @@ -58,6 +60,12 @@ public class DeleteIdentityLinkForProcessDefinitionCmd implements Command, if (processInstance == null) { throw new ActivitiObjectNotFoundException("Cannot find process instance with id " + processInstanceId, ExecutionEntity.class); } + + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, processInstance.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.deleteIdentityLinkForProcessInstance(processInstanceId, userId, groupId, type); + return null; + } processInstance.deleteIdentityLink(userId, groupId, type); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteJobCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteJobCmd.java index 45822bd686..39e3f30d1d 100755 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteJobCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteJobCmd.java @@ -5,9 +5,14 @@ import java.io.Serializable; import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.ActivitiObjectNotFoundException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; +import org.activiti.engine.delegate.event.ActivitiEventType; +import org.activiti.engine.delegate.event.impl.ActivitiEventBuilder; +import org.activiti.engine.impl.context.Context; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.JobEntity; +import org.activiti.engine.impl.util.Activiti5Util; import org.activiti.engine.runtime.Job; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,11 +35,25 @@ public class DeleteJobCmd implements Command, Serializable { public Object execute(CommandContext commandContext) { JobEntity jobToDelete = getJobToDelete(commandContext); + + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, jobToDelete.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.deleteJob(jobToDelete.getId()); + return null; + } + + sendCancelEvent(jobToDelete); jobToDelete.delete(); return null; } + protected void sendCancelEvent(JobEntity jobToDelete) { + if (Context.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { + Context.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent(ActivitiEventBuilder.createEntityEvent(ActivitiEventType.JOB_CANCELED, jobToDelete)); + } + } + protected JobEntity getJobToDelete(CommandContext commandContext) { if (jobId == null) { throw new ActivitiIllegalArgumentException("jobId is null"); @@ -48,10 +67,8 @@ public class DeleteJobCmd implements Command, Serializable { throw new ActivitiObjectNotFoundException("No job found with id '" + jobId + "'", Job.class); } - // We need to check if the job was locked, ie acquired by the job - // acquisition thread - // This happens if the the job was already acquired, but not yet - // executed. + // We need to check if the job was locked, ie acquired by the job acquisition thread + // This happens if the the job was already acquired, but not yet executed. // In that case, we can't allow to delete the job. if (job.getLockOwner() != null) { throw new ActivitiException("Cannot delete job when the job is being executed. Try again later."); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetJobRetriesCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetJobRetriesCmd.java index 4bab38c41f..8f3aa4676f 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetJobRetriesCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetJobRetriesCmd.java @@ -17,11 +17,13 @@ import java.io.Serializable; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.ActivitiObjectNotFoundException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.delegate.event.ActivitiEventType; import org.activiti.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.JobEntity; +import org.activiti.engine.impl.util.Activiti5Util; import org.activiti.engine.runtime.Job; /** @@ -48,6 +50,13 @@ public class SetJobRetriesCmd implements Command, Serializable { public Void execute(CommandContext commandContext) { JobEntity job = commandContext.getJobEntityManager().findJobById(jobId); if (job != null) { + + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, job.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.setJobRetries(job.getId(), retries); + return null; + } + job.setRetries(retries); if (commandContext.getEventDispatcher().isEnabled()) { diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetProcessDefinitionCategoryCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetProcessDefinitionCategoryCmd.java index e15a9b1109..22f1440827 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetProcessDefinitionCategoryCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetProcessDefinitionCategoryCmd.java @@ -14,6 +14,7 @@ package org.activiti.engine.impl.cmd; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.ActivitiObjectNotFoundException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.delegate.event.ActivitiEventType; import org.activiti.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti.engine.impl.interceptor.Command; @@ -21,6 +22,7 @@ import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.deploy.DeploymentCache; import org.activiti.engine.impl.persistence.deploy.ProcessDefinitionCacheEntry; import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity; +import org.activiti.engine.impl.util.Activiti5Util; import org.activiti.engine.repository.ProcessDefinition; /** @@ -47,6 +49,12 @@ public class SetProcessDefinitionCategoryCmd implements Command { if (processDefinition == null) { throw new ActivitiObjectNotFoundException("No process definition found for id = '" + processDefinitionId + "'", ProcessDefinition.class); } + + if (Activiti5Util.isActiviti5ProcessDefinition(commandContext, processDefinition)) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.setProcessDefinitionCategory(processDefinitionId, category); + return null; + } // Update category processDefinition.setCategory(category); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetProcessInstanceBusinessKeyCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetProcessInstanceBusinessKeyCmd.java index 44e16159b1..e4f39bba9f 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetProcessInstanceBusinessKeyCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetProcessInstanceBusinessKeyCmd.java @@ -21,6 +21,7 @@ import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.ExecutionEntity; import org.activiti.engine.impl.persistence.entity.ExecutionEntityManager; +import org.activiti.engine.impl.util.Activiti5Util; import org.activiti.engine.runtime.ProcessInstance; /** @@ -56,6 +57,11 @@ public class SetProcessInstanceBusinessKeyCmd implements Command, Serializ throw new ActivitiIllegalArgumentException("A process instance id is required, but the provided id " + "'" + processInstanceId + "' " + "points to a child execution of process instance " + "'" + processInstance.getProcessInstanceId() + "'. " + "Please invoke the " + getClass().getSimpleName() + " with a root execution id."); } + + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, processInstance.getProcessDefinitionId())) { + commandContext.getProcessEngineConfiguration().getActiviti5CompatibilityHandler().updateBusinessKey(processInstanceId, businessKey); + return null; + } processInstance.updateProcessBusinessKey(businessKey); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskDueDateCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskDueDateCmd.java index 2819ca9bb2..a55ef7586f 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskDueDateCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskDueDateCmd.java @@ -12,8 +12,10 @@ */ package org.activiti.engine.impl.cmd; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.TaskEntity; +import org.activiti.engine.impl.util.Activiti5Util; import java.util.Date; @@ -32,6 +34,12 @@ public class SetTaskDueDateCmd extends NeedsActiveTaskCmd { } protected Void execute(CommandContext commandContext, TaskEntity task) { + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, task.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.setTaskDueDate(taskId, dueDate); + return null; + } + task.setDueDate(dueDate, true); return null; } diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskPriorityCmd.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskPriorityCmd.java index 1b7e1e03de..e046aa8903 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskPriorityCmd.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskPriorityCmd.java @@ -12,8 +12,10 @@ */ package org.activiti.engine.impl.cmd; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.TaskEntity; +import org.activiti.engine.impl.util.Activiti5Util; /** * @author Joram Barrez @@ -30,6 +32,12 @@ public class SetTaskPriorityCmd extends NeedsActiveTaskCmd { } protected Void execute(CommandContext commandContext, TaskEntity task) { + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, task.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.setTaskPriority(taskId, priority); + return null; + } + task.setPriority(priority, true); return null; } diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityManager.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityManager.java index 8651ce1719..0739d5a0f0 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityManager.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/TaskEntityManager.java @@ -20,6 +20,7 @@ import java.util.Map; import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiIllegalArgumentException; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.delegate.event.ActivitiEventType; import org.activiti.engine.delegate.event.impl.ActivitiEventBuilder; @@ -28,6 +29,7 @@ import org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior; import org.activiti.engine.impl.context.Context; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.CachedEntityMatcher; +import org.activiti.engine.impl.util.Activiti5Util; import org.activiti.engine.task.Task; /** @@ -118,7 +120,6 @@ public class TaskEntityManager extends AbstractEntityManager { return (TaskEntity) getDbSqlSession().selectById(TaskEntity.class, id); } - @SuppressWarnings("unchecked") public List findTasksByExecutionId(final String executionId) { return getList("selectTasksByExecutionId", executionId, new CachedEntityMatcher() { @@ -193,12 +194,19 @@ public class TaskEntityManager extends AbstractEntityManager { } public void deleteTask(String taskId, String deleteReason, boolean cascade) { - TaskEntity task = Context.getCommandContext().getTaskEntityManager().findTaskById(taskId); + CommandContext commandContext = Context.getCommandContext(); + TaskEntity task = commandContext.getTaskEntityManager().findTaskById(taskId); if (task != null) { if (task.getExecutionId() != null) { throw new ActivitiException("The task cannot be deleted because is part of a running process"); } + + if (Activiti5Util.isActiviti5ProcessDefinitionId(commandContext, task.getProcessDefinitionId())) { + Activiti5CompatibilityHandler activiti5CompatibilityHandler = Activiti5Util.getActiviti5CompatibilityHandler(commandContext); + activiti5CompatibilityHandler.deleteTask(taskId, deleteReason, cascade); + return; + } String reason = (deleteReason == null || deleteReason.length() == 0) ? TaskEntity.DELETE_REASON_DELETED : deleteReason; deleteTask(task, reason, cascade); diff --git a/modules/activiti5-compatibility/src/main/java/org/activiti/compatibility/DefaultActiviti5CompatibilityHandler.java b/modules/activiti5-compatibility/src/main/java/org/activiti/compatibility/DefaultActiviti5CompatibilityHandler.java index f0842486e9..1767f1aae2 100644 --- a/modules/activiti5-compatibility/src/main/java/org/activiti/compatibility/DefaultActiviti5CompatibilityHandler.java +++ b/modules/activiti5-compatibility/src/main/java/org/activiti/compatibility/DefaultActiviti5CompatibilityHandler.java @@ -46,10 +46,12 @@ import org.activiti.engine.runtime.Job; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Attachment; import org.activiti5.engine.ProcessEngine; +import org.activiti5.engine.ProcessEngineConfiguration; import org.activiti5.engine.delegate.event.ActivitiEventListener; import org.activiti5.engine.impl.asyncexecutor.AsyncJobUtil; import org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl; import org.activiti5.engine.impl.cmd.AddEventListenerCommand; +import org.activiti5.engine.impl.cmd.ExecuteJobsCmd; import org.activiti5.engine.impl.cmd.RemoveEventListenerCommand; import org.activiti5.engine.impl.interceptor.Command; import org.activiti5.engine.impl.interceptor.CommandContext; @@ -99,6 +101,30 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil return wrapper; } + public void addCandidateStarter(String processDefinitionId, String userId, String groupId) { + try { + if (userId != null) { + getProcessEngine().getRepositoryService().addCandidateStarterUser(processDefinitionId, userId); + } else { + getProcessEngine().getRepositoryService().addCandidateStarterGroup(processDefinitionId, groupId); + } + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + + public void deleteCandidateStarter(String processDefinitionId, String userId, String groupId) { + try { + if (userId != null) { + getProcessEngine().getRepositoryService().deleteCandidateStarterUser(processDefinitionId, userId); + } else { + getProcessEngine().getRepositoryService().deleteCandidateStarterGroup(processDefinitionId, groupId); + } + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + public void suspendProcessDefinition(String processDefinitionId, String processDefinitionKey, boolean suspendProcessInstances, Date suspensionDate, String tenantId) { try { if (processDefinitionId != null) { @@ -123,6 +149,15 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil } } + public void setProcessDefinitionCategory(String processDefinitionId, String category) { + try { + getProcessEngine().getRepositoryService().setProcessDefinitionCategory(processDefinitionId, category); + + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + public Deployment deploy(DeploymentBuilderImpl activiti6DeploymentBuilder) { try { DeploymentBuilder deploymentBuilder = getProcessEngine().getRepositoryService().createDeployment(); @@ -176,7 +211,11 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil } public void setDeploymentCategory(String deploymentId, String category) { - getProcessEngine().getRepositoryService().setDeploymentCategory(deploymentId, category); + try { + getProcessEngine().getRepositoryService().setDeploymentCategory(deploymentId, category); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } } public void deleteDeployment(String deploymentId, boolean cascade) { @@ -207,16 +246,60 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil } } + public void updateBusinessKey(String processInstanceId, String businessKey) { + try { + getProcessEngine().getRuntimeService().updateBusinessKey(processInstanceId, businessKey); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + public void suspendProcessInstance(String processInstanceId) { - getProcessEngine().getRuntimeService().suspendProcessInstanceById(processInstanceId); + try { + getProcessEngine().getRuntimeService().suspendProcessInstanceById(processInstanceId); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } } public void activateProcessInstance(String processInstanceId) { - getProcessEngine().getRuntimeService().activateProcessInstanceById(processInstanceId); + try { + getProcessEngine().getRuntimeService().activateProcessInstanceById(processInstanceId); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } } public void deleteProcessInstance(String processInstanceId, String deleteReason) { - getProcessEngine().getRuntimeService().deleteProcessInstance(processInstanceId, deleteReason); + try { + getProcessEngine().getRuntimeService().deleteProcessInstance(processInstanceId, deleteReason); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + + public void addIdentityLinkForProcessInstance(String processInstanceId, String userId, String groupId, String identityLinkType) { + try { + if (userId != null) { + getProcessEngine().getRuntimeService().addUserIdentityLink(processInstanceId, userId, identityLinkType); + } else { + getProcessEngine().getRuntimeService().addGroupIdentityLink(processInstanceId, groupId, identityLinkType); + } + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + + public void deleteIdentityLinkForProcessInstance(String processInstanceId, String userId, String groupId, String identityLinkType) { + try { + if (userId != null) { + getProcessEngine().getRuntimeService().deleteUserIdentityLink(processInstanceId, userId, identityLinkType); + } else { + getProcessEngine().getRuntimeService().deleteGroupIdentityLink(processInstanceId, groupId, identityLinkType); + } + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } } public void completeTask(TaskEntity taskEntity, Map variables, boolean localScope) { @@ -230,6 +313,45 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil } } + public void claimTask(String taskId, String userId) { + if (Authentication.getAuthenticatedUserId() != null) { + org.activiti5.engine.impl.identity.Authentication.setAuthenticatedUserId(Authentication.getAuthenticatedUserId()); + } + try { + getProcessEngine().getTaskService().claim(taskId, userId); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + + public void setTaskDueDate(String taskId, Date dueDate) { + try { + getProcessEngine().getTaskService().setDueDate(taskId, dueDate); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + + public void setTaskPriority(String taskId, int priority) { + try { + getProcessEngine().getTaskService().setPriority(taskId, priority); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + + public void deleteTask(String taskId, String deleteReason, boolean cascade) { + try { + if (deleteReason != null) { + getProcessEngine().getTaskService().deleteTask(taskId, deleteReason); + } else { + getProcessEngine().getTaskService().deleteTask(taskId, cascade); + } + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + public ProcessInstance submitStartFormData(String processDefinitionId, String businessKey, Map properties) { if (Authentication.getAuthenticatedUserId() != null) { org.activiti5.engine.impl.identity.Authentication.setAuthenticatedUserId(Authentication.getAuthenticatedUserId()); @@ -258,8 +380,12 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil } public void saveTask(TaskEntity task) { - org.activiti5.engine.impl.persistence.entity.TaskEntity activiti5Task = convertToActiviti5TaskEntity(task); - getProcessEngine().getTaskService().saveTask(activiti5Task); + try { + org.activiti5.engine.impl.persistence.entity.TaskEntity activiti5Task = convertToActiviti5TaskEntity(task); + getProcessEngine().getTaskService().saveTask(activiti5Task); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } } public void addIdentityLink(String taskId, String identityId, int identityIdType, String identityType) { @@ -270,6 +396,14 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil } } + public void deleteIdentityLink(String taskId, String userId, String groupId, String identityLinkType) { + if (userId != null) { + getProcessEngine().getTaskService().deleteCandidateUser(taskId, userId); + } else { + getProcessEngine().getTaskService().deleteGroupIdentityLink(taskId, groupId, identityLinkType); + } + } + public Attachment createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, InputStream content, String url) { try { if (Authentication.getAuthenticatedUserId() != null) { @@ -343,15 +477,8 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil public void executeJob(Job job) { if (job == null) return; final ProcessEngineConfigurationImpl processEngineConfig = (ProcessEngineConfigurationImpl) getProcessEngine().getProcessEngineConfiguration(); - final org.activiti5.engine.impl.persistence.entity.JobEntity activity5Job = convertToActiviti5JobEntity((JobEntity) job); - processEngineConfig.getCommandExecutor().execute(new Command() { - - @Override - public Void execute(CommandContext commandContext) { - activity5Job.execute(commandContext); - return null; - } - }); + final org.activiti5.engine.impl.persistence.entity.JobEntity activiti5Job = convertToActiviti5JobEntity((JobEntity) job); + processEngineConfig.getCommandExecutor().execute(new ExecuteJobsCmd(activiti5Job)); } public void executeJobWithLockAndRetry(JobEntity job) { @@ -361,6 +488,22 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil AsyncJobUtil.executeJob(activity5Job, processEngineConfig.getCommandExecutor()); } + public void deleteJob(String jobId) { + try { + getProcessEngine().getManagementService().deleteJob(jobId); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + + public void setJobRetries(String jobId, int retries) { + try { + getProcessEngine().getManagementService().setJobRetries(jobId, retries); + } catch (org.activiti5.engine.ActivitiException e) { + handleActivitiException(e); + } + } + public void addEventListener(Object listener) { if (listener instanceof ActivitiEventListener == false) { throw new ActivitiException("listener does not implement org.activiti5.engine.delegate.event.ActivitiEventListener interface"); @@ -380,9 +523,15 @@ public class DefaultActiviti5CompatibilityHandler implements Activiti5Compatibil } public void setClock(Clock clock) { - org.activiti5.engine.runtime.Clock activiti5Clock = new org.activiti5.engine.impl.util.DefaultClockImpl(); - activiti5Clock.setCurrentCalendar(clock.getCurrentCalendar()); - getProcessEngine().getProcessEngineConfiguration().setClock(activiti5Clock); + ProcessEngineConfiguration processEngineConfig = getProcessEngine().getProcessEngineConfiguration(); + if (processEngineConfig.getClock() == null) { + org.activiti5.engine.runtime.Clock activiti5Clock = new org.activiti5.engine.impl.util.DefaultClockImpl(); + activiti5Clock.setCurrentCalendar(clock.getCurrentCalendar()); + getProcessEngine().getProcessEngineConfiguration().setClock(activiti5Clock); + } else { + org.activiti5.engine.runtime.Clock activiti5Clock = processEngineConfig.getClock(); + activiti5Clock.setCurrentCalendar(clock.getCurrentCalendar()); + } } public Object getRawProcessConfiguration() { diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/ExecuteJobsCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/ExecuteJobsCmd.java index a6fde00ef6..b17881b604 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/ExecuteJobsCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/ExecuteJobsCmd.java @@ -79,7 +79,7 @@ public class ExecuteJobsCmd implements Command, Serializable { FailedJobListener failedJobListener = null; try { // When transaction is rolled back, decrement retries - failedJobListener = new FailedJobListener(commandContext.getProcessEngineConfiguration().getCommandExecutor(), jobId); + failedJobListener = new FailedJobListener(commandContext.getProcessEngineConfiguration().getCommandExecutor(), job.getId()); commandContext.getTransactionContext().addTransactionListener( TransactionState.ROLLED_BACK, failedJobListener @@ -107,7 +107,11 @@ public class ExecuteJobsCmd implements Command, Serializable { } // Finally, Throw the exception to indicate the ExecuteJobCmd failed - throw new ActivitiException("Job " + jobId + " failed", exception); + if (exception instanceof ActivitiException == false) { + throw new ActivitiException("Job " + jobId + " failed", exception); + } else { + throw (ActivitiException) exception; + } } finally { if (jobExecutorContext != null) { jobExecutorContext.setCurrentJob(null); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/AttachmentEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/AttachmentEventsTest.java index d16aebb723..e46b4d05e6 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/AttachmentEventsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/AttachmentEventsTest.java @@ -190,7 +190,7 @@ public class AttachmentEventsTest extends PluggableActivitiTestCase { } public void testAttachmentEntityEventsOnHistoricTaskDelete() throws Exception { - if(processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.ACTIVITY)) { + if (processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.ACTIVITY)) { Task task = null; try { task = taskService.newTask(); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/GroupEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/GroupEventsTest.java index 0bddc21d93..d0235b9f1e 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/GroupEventsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/GroupEventsTest.java @@ -12,12 +12,12 @@ */ package org.activiti5.engine.test.api.event; +import org.activiti.engine.delegate.event.ActivitiEntityEvent; +import org.activiti.engine.delegate.event.ActivitiEvent; +import org.activiti.engine.delegate.event.ActivitiEventType; +import org.activiti.engine.delegate.event.ActivitiMembershipEvent; import org.activiti.engine.identity.Group; import org.activiti.engine.identity.User; -import org.activiti5.engine.delegate.event.ActivitiEntityEvent; -import org.activiti5.engine.delegate.event.ActivitiEvent; -import org.activiti5.engine.delegate.event.ActivitiEventType; -import org.activiti5.engine.delegate.event.ActivitiMembershipEvent; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; /** @@ -27,7 +27,7 @@ import org.activiti5.engine.impl.test.PluggableActivitiTestCase; */ public class GroupEventsTest extends PluggableActivitiTestCase { - private TestActivitiEntityEventListener listener; + private TestActiviti6EntityEventListener listener; /** * Test create, update and delete events of Groups. @@ -94,10 +94,8 @@ public class GroupEventsTest extends PluggableActivitiTestCase { * Test create, update and delete events of Groups. */ public void testGroupMembershipEvents() throws Exception { - TestActivitiEventListener membershipListener = new TestActivitiEventListener(); - org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) - processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); - activiti5ProcessConfig.getEventDispatcher().addEventListener(membershipListener); + TestActiviti6EventListener membershipListener = new TestActiviti6EventListener(); + processEngineConfiguration.getEventDispatcher().addEventListener(membershipListener); User user = null; Group group = null; @@ -151,7 +149,7 @@ public class GroupEventsTest extends PluggableActivitiTestCase { assertNull(event.getProcessInstanceId()); membershipListener.clearEventsReceived(); } finally { - activiti5ProcessConfig.getEventDispatcher().removeEventListener(membershipListener); + processEngineConfiguration.getEventDispatcher().removeEventListener(membershipListener); if(user != null) { identityService.deleteUser(user.getId()); } @@ -164,10 +162,8 @@ public class GroupEventsTest extends PluggableActivitiTestCase { @Override protected void setUp() throws Exception { super.setUp(); - org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) - processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); - listener = new TestActivitiEntityEventListener(Group.class); - activiti5ProcessConfig.getEventDispatcher().addEventListener(listener); + listener = new TestActiviti6EntityEventListener(Group.class); + processEngineConfiguration.getEventDispatcher().addEventListener(listener); } @Override @@ -175,9 +171,7 @@ public class GroupEventsTest extends PluggableActivitiTestCase { super.tearDown(); if (listener != null) { - org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) - processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); - activiti5ProcessConfig.getEventDispatcher().removeEventListener(listener); + processEngineConfiguration.getEventDispatcher().removeEventListener(listener); } } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/IdentityLinkEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/IdentityLinkEventsTest.java index 96c5e6cd67..caeda7362b 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/IdentityLinkEventsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/IdentityLinkEventsTest.java @@ -14,13 +14,13 @@ package org.activiti5.engine.test.api.event; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; -import org.activiti.engine.task.IdentityLink; import org.activiti.engine.task.Task; import org.activiti.engine.test.Deployment; import org.activiti5.engine.delegate.event.ActivitiEntityEvent; import org.activiti5.engine.delegate.event.ActivitiEvent; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; +import org.activiti5.engine.task.IdentityLink; /** * Test case for all {@link ActivitiEvent}s related to process definitions. @@ -130,8 +130,7 @@ public class IdentityLinkEventsTest extends PluggableActivitiTestCase { public void testTaskIdentityLinks() throws Exception { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); - Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()) - .singleResult(); + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); assertNotNull(task); // Add identity link @@ -220,7 +219,7 @@ public class IdentityLinkEventsTest extends PluggableActivitiTestCase { org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); - listener = new TestActivitiEntityEventListener(IdentityLink.class); + listener = new TestActivitiEntityEventListener(org.activiti5.engine.task.IdentityLink.class); activiti5ProcessConfig.getEventDispatcher().addEventListener(listener); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/JobEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/JobEventsTest.java index 8167646fac..5068d330d5 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/JobEventsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/JobEventsTest.java @@ -16,7 +16,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; -import org.activiti.engine.impl.util.DefaultClockImpl; +import org.activiti.engine.repository.DeploymentProperties; import org.activiti.engine.runtime.Clock; import org.activiti.engine.runtime.Job; import org.activiti.engine.runtime.ProcessInstance; @@ -41,6 +41,9 @@ public class JobEventsTest extends PluggableActivitiTestCase { */ @Deployment public void testJobEntityEvents() throws Exception { + Clock clock = processEngineConfiguration.getClock(); + Date previousTime = clock.getCurrentTime(); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testJobEvents"); Job theJob = managementService.createJobQuery().processInstanceId(processInstance.getId()).singleResult(); assertNotNull(theJob); @@ -62,7 +65,7 @@ public class JobEventsTest extends PluggableActivitiTestCase { assertEquals(1, listener.getEventsReceived().size()); event = listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - Job updatedJob = (Job) ((ActivitiEntityEvent) event).getEntity(); + org.activiti5.engine.runtime.Job updatedJob = (org.activiti5.engine.runtime.Job) ((ActivitiEntityEvent) event).getEntity(); assertEquals(5, updatedJob.getRetries()); checkEventContext(event, theJob, true); @@ -71,7 +74,8 @@ public class JobEventsTest extends PluggableActivitiTestCase { // Force timer to fire Calendar tomorrow = Calendar.getInstance(); tomorrow.add(Calendar.DAY_OF_YEAR, 1); - processEngineConfiguration.getClock().setCurrentTime(tomorrow.getTime()); + clock.setCurrentCalendar(tomorrow); + processEngineConfiguration.setClock(clock); waitForJobExecutorToProcessAllJobs(2000, 100); // Check delete-event has been dispatched @@ -91,6 +95,9 @@ public class JobEventsTest extends PluggableActivitiTestCase { event = listener.getEventsReceived().get(2); assertEquals(ActivitiEventType.JOB_EXECUTION_SUCCESS, event.getType()); checkEventContext(event, theJob, true); + + clock.setCurrentTime(previousTime); + processEngineConfiguration.setClock(clock); } /** @@ -98,14 +105,13 @@ public class JobEventsTest extends PluggableActivitiTestCase { */ @Deployment public void testRepetitionJobEntityEvents() throws Exception { - Clock previousClock = processEngineConfiguration.getClock(); - - Clock testClock = new DefaultClockImpl(); - - processEngineConfiguration.setClock(testClock); + Clock clock = processEngineConfiguration.getClock(); + Date previousTime = clock.getCurrentTime(); Date now = new Date(); - testClock.setCurrentTime(now); + clock.setCurrentTime(now); + processEngineConfiguration.setClock(clock); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testRepetitionJobEvents"); Job theJob = managementService.createJobQuery().processInstanceId(processInstance.getId()).singleResult(); assertNotNull(theJob); @@ -123,28 +129,31 @@ public class JobEventsTest extends PluggableActivitiTestCase { listener.clearEventsReceived(); try { - waitForJobExecutorToProcessAllJobs(2000, 100); - fail("a new job must be prepared because there are 2 repeats"); - }catch (Exception ex){ + waitForJobExecutorToProcessAllJobs(2000, 100); + fail("a new job must be prepared because there are 2 repeats"); + } catch (Exception ex){ //expected exception because a new job is prepared - } + } - testClock.setCurrentTime(new Date(now.getTime() + 10000L)); + clock.setCurrentTime(new Date(now.getTime() + 10000L)); + processEngineConfiguration.setClock(clock); try { waitForJobExecutorToProcessAllJobs(2000, 100); fail("a new job must be prepared because there are 2 repeats"); - }catch (Exception ex){ + } catch (Exception ex){ //expected exception because a new job is prepared } - testClock.setCurrentTime(new Date(now.getTime() + 20000L)); + clock.setCurrentTime(new Date(now.getTime() + 20000L)); + processEngineConfiguration.setClock(clock); try { waitForJobExecutorToProcessAllJobs(2000, 100); }catch (Exception ex){ fail("There must be no jobs remaining"); } - testClock.setCurrentTime(new Date(now.getTime() + 30000L)); + clock.setCurrentTime(new Date(now.getTime() + 30000L)); + processEngineConfiguration.setClock(clock); try { waitForJobExecutorToProcessAllJobs(2000, 100); }catch (Exception ex){ @@ -159,18 +168,20 @@ public class JobEventsTest extends PluggableActivitiTestCase { } } listener.clearEventsReceived(); - processEngineConfiguration.setClock(previousClock); assertEquals(2, timerFiredCount); + + clock.setCurrentTime(previousTime); + processEngineConfiguration.setClock(clock); } @Deployment public void testJobCanceledEventOnBoundaryEvent() throws Exception { - Clock testClock = new DefaultClockImpl(); - - processEngineConfiguration.setClock(testClock); + Clock clock = processEngineConfiguration.getClock(); + Date previousTime = clock.getCurrentTime(); - testClock.setCurrentTime(new Date()); + clock.setCurrentTime(new Date()); + processEngineConfiguration.setClock(clock); runtimeService.startProcessInstanceByKey("testTimerCancelledEvent"); listener.clearEventsReceived(); @@ -179,12 +190,14 @@ public class JobEventsTest extends PluggableActivitiTestCase { taskService.complete(task.getId()); checkEventCount(1, ActivitiEventType.JOB_CANCELED); + + clock.setCurrentTime(previousTime); + processEngineConfiguration.setClock(clock); } @Deployment(resources = "org/activiti5/engine/test/api/event/JobEventsTest.testJobCanceledEventOnBoundaryEvent.bpmn20.xml") public void testJobCanceledEventByManagementService() throws Exception { // GIVEN - processEngineConfiguration.getClock().setCurrentTime(new Date()); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testTimerCancelledEvent"); listener.clearEventsReceived(); @@ -200,11 +213,19 @@ public class JobEventsTest extends PluggableActivitiTestCase { public void testJobCanceledEventOnProcessRedeploy() throws Exception { // GIVEN // deploy process definition - String deployment1 = repositoryService.createDeployment().addClasspathResource("org/activiti5/engine/test/api/event/JobEventsTest.testTimerFiredForTimerStart.bpmn20.xml").deploy().getId(); + String deployment1 = repositoryService.createDeployment() + .addClasspathResource("org/activiti5/engine/test/api/event/JobEventsTest.testTimerFiredForTimerStart.bpmn20.xml") + .deploymentProperty(DeploymentProperties.DEPLOY_AS_ACTIVITI5_PROCESS_DEFINITION, Boolean.TRUE) + .deploy() + .getId(); listener.clearEventsReceived(); // WHEN - String deployment2 = repositoryService.createDeployment().addClasspathResource("org/activiti5/engine/test/api/event/JobEventsTest.testTimerFiredForTimerStart.bpmn20.xml").deploy().getId(); + String deployment2 = repositoryService.createDeployment() + .addClasspathResource("org/activiti5/engine/test/api/event/JobEventsTest.testTimerFiredForTimerStart.bpmn20.xml") + .deploymentProperty(DeploymentProperties.DEPLOY_AS_ACTIVITI5_PROCESS_DEFINITION, Boolean.TRUE) + .deploy() + .getId(); // THEN checkEventCount(1, ActivitiEventType.JOB_CANCELED); @@ -225,48 +246,63 @@ public class JobEventsTest extends PluggableActivitiTestCase { } /** + * Test TIMER_FIRED event for timer start bpmn event. + */ + @Deployment + public void testTimerFiredForTimerStart() throws Exception { + Clock clock = processEngineConfiguration.getClock(); + Date previousTime = clock.getCurrentTime(); + + // there should be one job after process definition deployment + + // Force timer to start the process + Calendar tomorrow = Calendar.getInstance(); + tomorrow.add(Calendar.DAY_OF_YEAR, 1); + clock.setCurrentCalendar(tomorrow); + processEngineConfiguration.setClock(clock); + waitForJobExecutorToProcessAllJobs(2000, 200); + + // Check Timer fired event has been dispatched + assertEquals(3, listener.getEventsReceived().size()); + assertEquals(ActivitiEventType.TIMER_FIRED, listener.getEventsReceived().get(0).getType()); + checkEventCount(0, ActivitiEventType.JOB_CANCELED); + + clock.setCurrentTime(previousTime); + processEngineConfiguration.setClock(clock); + } - /** - * Test TIMER_FIRED event for timer start bpmn event. - */ - @Deployment - public void testTimerFiredForTimerStart() throws Exception { - // there should be one job after process definition deployment - - // Force timer to start the process - Calendar tomorrow = Calendar.getInstance(); - tomorrow.add(Calendar.DAY_OF_YEAR, 1); - processEngineConfiguration.getClock().setCurrentTime(tomorrow.getTime()); - waitForJobExecutorToProcessAllJobs(2000, 100); - - // Check Timer fired event has been dispatched - assertEquals(3, listener.getEventsReceived().size()); - assertEquals(ActivitiEventType.TIMER_FIRED, listener.getEventsReceived().get(0).getType()); - checkEventCount(0, ActivitiEventType.JOB_CANCELED); - } - - /** - * Test TIMER_FIRED event for intermediate timer bpmn event. - */ - @Deployment - public void testTimerFiredForIntermediateTimer() throws Exception { - runtimeService.startProcessInstanceByKey("testTimerFiredForIntermediateTimer"); - - // Force timer to start the process - Calendar tomorrow = Calendar.getInstance(); - tomorrow.add(Calendar.DAY_OF_YEAR, 1); - processEngineConfiguration.getClock().setCurrentTime(tomorrow.getTime()); - waitForJobExecutorToProcessAllJobs(2000, 100); - - checkEventCount(0, ActivitiEventType.JOB_CANCELED); - checkEventCount(1, ActivitiEventType.TIMER_FIRED); - } + /** + * Test TIMER_FIRED event for intermediate timer bpmn event. + */ + @Deployment + public void testTimerFiredForIntermediateTimer() throws Exception { + Clock clock = processEngineConfiguration.getClock(); + Date previousTime = clock.getCurrentTime(); + + runtimeService.startProcessInstanceByKey("testTimerFiredForIntermediateTimer"); + + // Force timer to start the process + Calendar tomorrow = Calendar.getInstance(); + tomorrow.add(Calendar.DAY_OF_YEAR, 1); + clock.setCurrentCalendar(tomorrow); + processEngineConfiguration.setClock(clock); + waitForJobExecutorToProcessAllJobs(2000, 200); + + checkEventCount(0, ActivitiEventType.JOB_CANCELED); + checkEventCount(1, ActivitiEventType.TIMER_FIRED); + + clock.setCurrentTime(previousTime); + processEngineConfiguration.setClock(clock); + } - /** + /** * Test create, update and delete events of jobs entities. */ @Deployment public void testJobEntityEventsException() throws Exception { + Clock clock = processEngineConfiguration.getClock(); + Date previousTime = clock.getCurrentTime(); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testJobEvents"); Job theJob = managementService.createJobQuery().processInstanceId(processInstance.getId()).singleResult(); assertNotNull(theJob); @@ -279,7 +315,8 @@ public class JobEventsTest extends PluggableActivitiTestCase { // Force timer to fire Calendar tomorrow = Calendar.getInstance(); tomorrow.add(Calendar.DAY_OF_YEAR, 1); - processEngineConfiguration.getClock().setCurrentTime(tomorrow.getTime()); + clock.setCurrentCalendar(tomorrow); + processEngineConfiguration.setClock(clock); try { managementService.executeJob(theJob.getId()); fail("Expected exception"); @@ -312,14 +349,17 @@ public class JobEventsTest extends PluggableActivitiTestCase { event = listener.getEventsReceived().get(4); assertEquals(ActivitiEventType.JOB_RETRIES_DECREMENTED, event.getType()); - assertEquals(0, ((Job) ((ActivitiEntityEvent) event).getEntity()).getRetries()); + assertEquals(0, ((org.activiti5.engine.runtime.Job) ((ActivitiEntityEvent) event).getEntity()).getRetries()); checkEventContext(event, theJob, true); + + clock.setCurrentTime(previousTime); + processEngineConfiguration.setClock(clock); } protected void checkEventContext(ActivitiEvent event, Job entity, boolean scopeExecutionExpected) { assertEquals(entity.getProcessInstanceId(), event.getProcessInstanceId()); assertEquals(entity.getProcessDefinitionId(), event.getProcessDefinitionId()); - if(scopeExecutionExpected) { + if (scopeExecutionExpected) { assertEquals(entity.getExecutionId(), event.getExecutionId()); } else { assertEquals(entity.getProcessInstanceId(), event.getExecutionId()); @@ -327,8 +367,8 @@ public class JobEventsTest extends PluggableActivitiTestCase { assertTrue(event instanceof ActivitiEntityEvent); ActivitiEntityEvent entityEvent = (ActivitiEntityEvent) event; - assertTrue(entityEvent.getEntity() instanceof Job); - assertEquals(entity.getId(), ((Job) entityEvent.getEntity()).getId()); + assertTrue(entityEvent.getEntity() instanceof org.activiti5.engine.runtime.Job); + assertEquals(entity.getId(), ((org.activiti5.engine.runtime.Job) entityEvent.getEntity()).getId()); } @Override @@ -336,7 +376,7 @@ public class JobEventsTest extends PluggableActivitiTestCase { super.setUp(); org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); - listener = new TestActivitiEntityEventListener(Job.class); + listener = new TestActivitiEntityEventListener(org.activiti5.engine.runtime.Job.class); activiti5ProcessConfig.getEventDispatcher().addEventListener(listener); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ModelEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ModelEventsTest.java index 31d395250d..b63d98afb3 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ModelEventsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ModelEventsTest.java @@ -12,10 +12,10 @@ */ package org.activiti5.engine.test.api.event; +import org.activiti.engine.delegate.event.ActivitiEntityEvent; +import org.activiti.engine.delegate.event.ActivitiEvent; +import org.activiti.engine.delegate.event.ActivitiEventType; import org.activiti.engine.repository.Model; -import org.activiti5.engine.delegate.event.ActivitiEntityEvent; -import org.activiti5.engine.delegate.event.ActivitiEvent; -import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; /** @@ -25,7 +25,7 @@ import org.activiti5.engine.impl.test.PluggableActivitiTestCase; */ public class ModelEventsTest extends PluggableActivitiTestCase { - private TestActivitiEntityEventListener listener; + private TestActiviti6EntityEventListener listener; /** * Test create, update and delete events of model entities. @@ -73,7 +73,7 @@ public class ModelEventsTest extends PluggableActivitiTestCase { listener.clearEventsReceived(); } finally { - if(model != null && repositoryService.getModel(model.getId()) != null) { + if (model != null && repositoryService.getModel(model.getId()) != null) { repositoryService.deleteModel(model.getId()); } } @@ -82,10 +82,8 @@ public class ModelEventsTest extends PluggableActivitiTestCase { @Override protected void setUp() throws Exception { super.setUp(); - org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) - processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); - listener = new TestActivitiEntityEventListener(Model.class); - activiti5ProcessConfig.getEventDispatcher().addEventListener(listener); + listener = new TestActiviti6EntityEventListener(Model.class); + processEngineConfiguration.getEventDispatcher().addEventListener(listener); } @Override @@ -93,9 +91,7 @@ public class ModelEventsTest extends PluggableActivitiTestCase { super.tearDown(); if (listener != null) { - org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) - processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); - activiti5ProcessConfig.getEventDispatcher().removeEventListener(listener); + processEngineConfiguration.getEventDispatcher().removeEventListener(listener); } } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ProcessDefinitionEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ProcessDefinitionEventsTest.java index 686af032b0..df92a1ed6b 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ProcessDefinitionEventsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ProcessDefinitionEventsTest.java @@ -12,14 +12,14 @@ */ package org.activiti5.engine.test.api.event; -import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity; -import org.activiti.engine.impl.persistence.entity.TimerEntity; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.test.Deployment; import org.activiti5.engine.delegate.event.ActivitiEntityEvent; import org.activiti5.engine.delegate.event.ActivitiEvent; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; +import org.activiti5.engine.impl.persistence.entity.ProcessDefinitionEntity; +import org.activiti5.engine.impl.persistence.entity.TimerEntity; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; /** @@ -48,11 +48,11 @@ public class ProcessDefinitionEventsTest extends PluggableActivitiTestCase { ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertEquals(processDefinition.getId(), ((ProcessDefinition) event.getEntity()).getId()); + assertEquals(processDefinition.getId(), ((org.activiti5.engine.repository.ProcessDefinition) event.getEntity()).getId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_INITIALIZED, event.getType()); - assertEquals(processDefinition.getId(), ((ProcessDefinition) event.getEntity()).getId()); + assertEquals(processDefinition.getId(), ((org.activiti5.engine.repository.ProcessDefinition) event.getEntity()).getId()); listener.clearEventsReceived(); // Check update event when category is updated @@ -62,8 +62,8 @@ public class ProcessDefinitionEventsTest extends PluggableActivitiTestCase { event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - assertEquals(processDefinition.getId(), ((ProcessDefinition) event.getEntity()).getId()); - assertEquals("test", ((ProcessDefinition) event.getEntity()).getCategory()); + assertEquals(processDefinition.getId(), ((org.activiti5.engine.repository.ProcessDefinition) event.getEntity()).getId()); + assertEquals("test", ((org.activiti5.engine.repository.ProcessDefinition) event.getEntity()).getCategory()); listener.clearEventsReceived(); // Check update event when suspended/activated @@ -72,11 +72,11 @@ public class ProcessDefinitionEventsTest extends PluggableActivitiTestCase { assertEquals(2, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(processDefinition.getId(), ((ProcessDefinition) event.getEntity()).getId()); + assertEquals(processDefinition.getId(), ((org.activiti5.engine.repository.ProcessDefinition) event.getEntity()).getId()); assertEquals(ActivitiEventType.ENTITY_SUSPENDED, event.getType()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_ACTIVATED, event.getType()); - assertEquals(processDefinition.getId(), ((ProcessDefinition) event.getEntity()).getId()); + assertEquals(processDefinition.getId(), ((org.activiti5.engine.repository.ProcessDefinition) event.getEntity()).getId()); listener.clearEventsReceived(); // Check delete event when category is updated @@ -88,7 +88,7 @@ public class ProcessDefinitionEventsTest extends PluggableActivitiTestCase { event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); - assertEquals(processDefinition.getId(), ((ProcessDefinition) event.getEntity()).getId()); + assertEquals(processDefinition.getId(), ((org.activiti5.engine.repository.ProcessDefinition) event.getEntity()).getId()); listener.clearEventsReceived(); } @@ -97,11 +97,14 @@ public class ProcessDefinitionEventsTest extends PluggableActivitiTestCase { */ @Deployment(resources= {"org/activiti5/engine/test/bpmn/event/timer/StartTimerEventTest.testDurationStartTimerEvent.bpmn20.xml"}) public void testTimerStartEventDeployment() { - ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) repositoryService. - createProcessDefinitionQuery().processDefinitionKey("startTimerEventExample").singleResult(); + org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) + processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); + + ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) activiti5ProcessConfig.getRepositoryService(). + createProcessDefinitionQuery().processDefinitionKey("startTimerEventExample").singleResult(); ActivitiEntityEvent processDefinitionCreated = ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, processDefinition); - TimerEntity timer = (TimerEntity) managementService.createJobQuery().singleResult(); + TimerEntity timer = (TimerEntity) activiti5ProcessConfig.getManagementService().createJobQuery().singleResult(); ActivitiEntityEvent timerCreated = ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, timer); assertSequence(processDefinitionCreated, timerCreated); listener.clearEventsReceived(); @@ -113,10 +116,12 @@ public class ProcessDefinitionEventsTest extends PluggableActivitiTestCase { for (int index = 0; index < listener.getEventsReceived().size(); index++) { ActivitiEvent activitiEvent = listener.getEventsReceived().get(index); - if (isEqual(before, activitiEvent)) + if (isEqual(before, activitiEvent)) { beforeIndex = index; - if (isEqual(after, activitiEvent)) + } + if (isEqual(after, activitiEvent)) { afterIndex = index; + } } assertTrue(beforeIndex < afterIndex); } @@ -144,7 +149,7 @@ public class ProcessDefinitionEventsTest extends PluggableActivitiTestCase { listener = new TestMultipleActivitiEventListener(); listener.setEventClasses(ActivitiEntityEvent.class); - listener.setEntityClasses(ProcessDefinition.class, TimerEntity.class); + listener.setEntityClasses(org.activiti5.engine.repository.ProcessDefinition.class, org.activiti5.engine.impl.persistence.entity.TimerEntity.class); activiti5ProcessConfig.getEventDispatcher().addEventListener(listener); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ProcessInstanceEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ProcessInstanceEventsTest.java index 391a8aa6cb..b2711b9aa4 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ProcessInstanceEventsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/ProcessInstanceEventsTest.java @@ -60,21 +60,21 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_INITIALIZED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(2); assertEquals(ActivitiEventType.PROCESS_STARTED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); @@ -89,14 +89,14 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { assertEquals(2, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(ActivitiEventType.ENTITY_SUSPENDED, event.getType()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_ACTIVATED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); @@ -108,14 +108,14 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { assertEquals(2, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(ActivitiEventType.ENTITY_SUSPENDED, event.getType()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_ACTIVATED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); @@ -125,7 +125,7 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { runtimeService.updateBusinessKey(processInstance.getId(), "thekey"); assertEquals(1, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); @@ -159,18 +159,18 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_INITIALIZED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(2); assertEquals(ActivitiEventType.PROCESS_STARTED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getId()); assertEquals(processInstance.getId(), event.getProcessInstanceId()); assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); @@ -180,26 +180,26 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { event = (ActivitiEntityEvent) listener.getEventsReceived().get(3); assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getParentId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getParentId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(4); assertEquals(ActivitiEventType.ENTITY_INITIALIZED, event.getType()); - assertEquals(processInstance.getId(), ((ProcessInstance) event.getEntity()).getParentId()); + assertEquals(processInstance.getId(), ((org.activiti5.engine.runtime.ProcessInstance) event.getEntity()).getParentId()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(5); assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertEquals("simpleSubProcess", ((ExecutionEntity) event.getEntity()).getProcessDefinition().getKey()); + assertEquals("simpleSubProcess", ((org.activiti5.engine.impl.persistence.entity.ExecutionEntity) event.getEntity()).getProcessDefinition().getKey()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(6); assertEquals(ActivitiEventType.ENTITY_INITIALIZED, event.getType()); - assertEquals("simpleSubProcess", ((ExecutionEntity) event.getEntity()).getProcessDefinition().getKey()); + assertEquals("simpleSubProcess", ((org.activiti5.engine.impl.persistence.entity.ExecutionEntity) event.getEntity()).getProcessDefinition().getKey()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(7); assertEquals(ActivitiEventType.PROCESS_STARTED, event.getType()); - assertEquals("simpleSubProcess", ((ExecutionEntity) event.getEntity()).getProcessDefinition().getKey()); + assertEquals("simpleSubProcess", ((org.activiti5.engine.impl.persistence.entity.ExecutionEntity) event.getEntity()).getProcessDefinition().getKey()); assertTrue(event instanceof ActivitiProcessStartedEvent); - assertEquals(processInstance.getProcessDefinitionId(), ((ActivitiProcessStartedEvent)event).getNestedProcessDefinitionId()); - assertEquals(processInstance.getId(), ((ActivitiProcessStartedEvent)event).getNestedProcessInstanceId()); + assertEquals(processInstance.getProcessDefinitionId(), ((ActivitiProcessStartedEvent) event).getNestedProcessDefinitionId()); + assertEquals(processInstance.getId(), ((ActivitiProcessStartedEvent) event).getNestedProcessInstanceId()); listener.clearEventsReceived(); } @@ -507,10 +507,10 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { @Override public void onEvent(ActivitiEvent event) { - if (event instanceof ActivitiEntityEvent && ProcessInstance.class.isAssignableFrom(((ActivitiEntityEvent) event).getEntity().getClass())) { - // check whether entity in the event is initialized before adding to the list. - assertNotNull(((ExecutionEntity) ((ActivitiEntityEvent) event).getEntity()).getId()); - eventsReceived.add(event); + if (event instanceof ActivitiEntityEvent && org.activiti5.engine.runtime.ProcessInstance.class.isAssignableFrom(((ActivitiEntityEvent) event).getEntity().getClass())) { + // check whether entity in the event is initialized before adding to the list. + assertNotNull(((ExecutionEntity) ((ActivitiEntityEvent) event).getEntity()).getId()); + eventsReceived.add(event); } else if (ActivitiEventType.PROCESS_CANCELLED.equals(event.getType()) || ActivitiEventType.ACTIVITY_CANCELLED.equals(event.getType())) { eventsReceived.add(event); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TaskEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TaskEventsTest.java index 4c139da133..e2bec5de95 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TaskEventsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TaskEventsTest.java @@ -14,7 +14,6 @@ package org.activiti5.engine.test.api.event; import java.util.Date; -import org.activiti.engine.impl.persistence.entity.TaskEntity; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.test.Deployment; @@ -48,22 +47,22 @@ public class TaskEventsTest extends PluggableActivitiTestCase { assertEquals(3, listener.getEventsReceived().size()); ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - Task taskFromEvent = (Task) event.getEntity(); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); + org.activiti5.engine.task.Task taskFromEvent = (org.activiti5.engine.task.Task) event.getEntity(); assertEquals(task.getId(), taskFromEvent.getId()); assertExecutionDetails(event, processInstance); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_INITIALIZED, event.getType()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(2); - assertEquals(ActivitiEventType.TASK_CREATED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); - assertEquals(task.getId(), taskFromEvent.getId()); - assertExecutionDetails(event, processInstance); + event = (ActivitiEntityEvent) listener.getEventsReceived().get(2); + assertEquals(ActivitiEventType.TASK_CREATED, event.getType()); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); + taskFromEvent = (org.activiti5.engine.task.Task) event.getEntity(); + assertEquals(task.getId(), taskFromEvent.getId()); + assertExecutionDetails(event, processInstance); - listener.clearEventsReceived(); + listener.clearEventsReceived(); // Update duedate, owner and priority should trigger update-event taskService.setDueDate(task.getId(), new Date()); @@ -107,7 +106,7 @@ public class TaskEventsTest extends PluggableActivitiTestCase { event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.TASK_COMPLETED, event.getType()); assertExecutionDetails(event, processInstance); - TaskEntity taskEntity = (TaskEntity) event.getEntity(); + org.activiti5.engine.impl.persistence.entity.TaskEntity taskEntity = (org.activiti5.engine.impl.persistence.entity.TaskEntity) event.getEntity(); assertNotNull(taskEntity.getDueDate()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); @@ -129,36 +128,35 @@ public class TaskEventsTest extends PluggableActivitiTestCase { assertEquals(2, listener.getEventsReceived().size()); ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.TASK_ASSIGNED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - Task taskFromEvent = (Task) event.getEntity(); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); + org.activiti5.engine.task.Task taskFromEvent = (org.activiti5.engine.task.Task) event.getEntity(); assertEquals(task.getId(), taskFromEvent.getId()); assertEquals("kermit", taskFromEvent.getAssignee()); assertExecutionDetails(event, processInstance); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - assertTrue(event.getEntity() instanceof Task); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); assertExecutionDetails(event, processInstance); listener.clearEventsReceived(); // Set assignee through updateTask - task = taskService.createTaskQuery().processInstanceId(processInstance.getId()) - .singleResult(); + task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); task.setAssignee("newAssignee"); taskService.saveTask(task); assertEquals(2, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.TASK_ASSIGNED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); + taskFromEvent = (org.activiti5.engine.task.Task) event.getEntity(); assertEquals(task.getId(), taskFromEvent.getId()); assertEquals("newAssignee", taskFromEvent.getAssignee()); assertExecutionDetails(event, processInstance); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - assertTrue(event.getEntity() instanceof Task); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); assertExecutionDetails(event, processInstance); listener.clearEventsReceived(); @@ -167,15 +165,15 @@ public class TaskEventsTest extends PluggableActivitiTestCase { assertEquals(2, listener.getEventsReceived().size()); event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.TASK_ASSIGNED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); + taskFromEvent = (org.activiti5.engine.task.Task) event.getEntity(); assertEquals(task.getId(), taskFromEvent.getId()); assertEquals(null, taskFromEvent.getAssignee()); assertExecutionDetails(event, processInstance); event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - assertTrue(event.getEntity() instanceof Task); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); assertExecutionDetails(event, processInstance); listener.clearEventsReceived(); } @@ -199,144 +197,10 @@ public class TaskEventsTest extends PluggableActivitiTestCase { assertEquals(1, listener.getEventsReceived().size()); ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - Task taskFromEvent = (Task) event.getEntity(); + assertTrue(event.getEntity() instanceof org.activiti5.engine.task.Task); + org.activiti5.engine.task.Task taskFromEvent = (org.activiti5.engine.task.Task) event.getEntity(); assertEquals(task.getId(), taskFromEvent.getId()); assertExecutionDetails(event, processInstance); - - try { - task = taskService.newTask(); - task.setCategory("123"); - task.setDescription("Description"); - taskService.saveTask(task); - listener.clearEventsReceived(); - - // Delete standalone task, only a delete-event should be dispatched - taskService.deleteTask(task.getId()); - - - assertEquals(1, listener.getEventsReceived().size()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); - assertEquals(task.getId(), taskFromEvent.getId()); - assertNull(event.getProcessDefinitionId()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - - } finally { - if(task != null) { - String taskId = task.getId(); - task = taskService.createTaskQuery().taskId(taskId).singleResult(); - if(task != null) { - // If task still exists, delete it to have a clean DB after test - taskService.deleteTask(taskId); - } - historyService.deleteHistoricTaskInstance(taskId); - } - } - } - - - /** - * Check all events for tasks not related to a process-instance - */ - public void testStandaloneTaskEvents() throws Exception { - - Task task = null; - try { - task = taskService.newTask(); - task.setCategory("123"); - task.setDescription("Description"); - taskService.saveTask(task); - - assertEquals(3, listener.getEventsReceived().size()); - - ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - Task taskFromEvent = (Task) event.getEntity(); - assertEquals(task.getId(), taskFromEvent.getId()); - assertNull(event.getProcessDefinitionId()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - - event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); - assertEquals(ActivitiEventType.ENTITY_INITIALIZED, event.getType()); - - event = (ActivitiEntityEvent) listener.getEventsReceived().get(2); - assertEquals(ActivitiEventType.TASK_CREATED, event.getType()); - listener.clearEventsReceived(); - - // Update task - taskService.setOwner(task.getId(), "owner"); - assertEquals(1, listener.getEventsReceived().size()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); - assertEquals(task.getId(), taskFromEvent.getId()); - assertEquals("owner", taskFromEvent.getOwner()); - assertNull(event.getProcessDefinitionId()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - listener.clearEventsReceived(); - - // Assign task - taskService.setAssignee(task.getId(), "kermit"); - assertEquals(2, listener.getEventsReceived().size()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.TASK_ASSIGNED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); - assertEquals(task.getId(), taskFromEvent.getId()); - assertEquals("kermit", taskFromEvent.getAssignee()); - assertNull(event.getProcessDefinitionId()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); - assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); - assertEquals(task.getId(), taskFromEvent.getId()); - assertNull(event.getProcessDefinitionId()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - listener.clearEventsReceived(); - - // Complete task - taskService.complete(task.getId()); - assertEquals(2, listener.getEventsReceived().size()); - event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); - assertEquals(ActivitiEventType.TASK_COMPLETED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); - assertEquals(task.getId(), taskFromEvent.getId()); - assertNull(event.getProcessDefinitionId()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - - event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); - assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); - assertTrue(event.getEntity() instanceof Task); - taskFromEvent = (Task) event.getEntity(); - assertEquals(task.getId(), taskFromEvent.getId()); - assertNull(event.getProcessDefinitionId()); - assertNull(event.getProcessInstanceId()); - assertNull(event.getExecutionId()); - - } finally { - if(task != null) { - String taskId = task.getId(); - task = taskService.createTaskQuery().taskId(taskId).singleResult(); - if(task != null) { - // If task still exists, delete it to have a clean DB after test - taskService.deleteTask(taskId); - } - historyService.deleteHistoricTaskInstance(taskId); - } - } } protected void assertExecutionDetails(ActivitiEvent event, ProcessInstance processInstance) { @@ -350,7 +214,7 @@ public class TaskEventsTest extends PluggableActivitiTestCase { super.setUp(); org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5ProcessConfig = (org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl) processEngineConfiguration.getActiviti5CompatibilityHandler().getRawProcessConfiguration(); - listener = new TestActivitiEntityEventListener(Task.class); + listener = new TestActivitiEntityEventListener(org.activiti5.engine.task.Task.class); activiti5ProcessConfig.getEventDispatcher().addEventListener(listener); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TaskStandaloneEventsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TaskStandaloneEventsTest.java new file mode 100644 index 0000000000..62ebe81fff --- /dev/null +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TaskStandaloneEventsTest.java @@ -0,0 +1,152 @@ +/* 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. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.activiti5.engine.test.api.event; + +import org.activiti.engine.delegate.event.ActivitiEntityEvent; +import org.activiti.engine.delegate.event.ActivitiEvent; +import org.activiti.engine.delegate.event.ActivitiEventType; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.activiti5.engine.impl.test.PluggableActivitiTestCase; + +/** + * Test case for all {@link ActivitiEvent}s related to tasks. + * + * @author Frederik Heremans + */ +public class TaskStandaloneEventsTest extends PluggableActivitiTestCase { + + private TestActiviti6EntityEventListener listener; + + /** + * Check all events for tasks not related to a process-instance + */ + public void testStandaloneTaskEvents() throws Exception { + + Task task = null; + try { + task = taskService.newTask(); + task.setCategory("123"); + task.setDescription("Description"); + taskService.saveTask(task); + + assertEquals(3, listener.getEventsReceived().size()); + + ActivitiEntityEvent event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.ENTITY_CREATED, event.getType()); + assertTrue(event.getEntity() instanceof Task); + Task taskFromEvent = (Task) event.getEntity(); + assertEquals(task.getId(), taskFromEvent.getId()); + assertNull(event.getProcessDefinitionId()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + + event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); + assertEquals(ActivitiEventType.ENTITY_INITIALIZED, event.getType()); + + event = (ActivitiEntityEvent) listener.getEventsReceived().get(2); + assertEquals(ActivitiEventType.TASK_CREATED, event.getType()); + listener.clearEventsReceived(); + + // Update task + taskService.setOwner(task.getId(), "owner"); + assertEquals(1, listener.getEventsReceived().size()); + event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); + assertTrue(event.getEntity() instanceof Task); + taskFromEvent = (Task) event.getEntity(); + assertEquals(task.getId(), taskFromEvent.getId()); + assertEquals("owner", taskFromEvent.getOwner()); + assertNull(event.getProcessDefinitionId()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + listener.clearEventsReceived(); + + // Assign task + taskService.setAssignee(task.getId(), "kermit"); + assertEquals(2, listener.getEventsReceived().size()); + event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.TASK_ASSIGNED, event.getType()); + assertTrue(event.getEntity() instanceof Task); + taskFromEvent = (Task) event.getEntity(); + assertEquals(task.getId(), taskFromEvent.getId()); + assertEquals("kermit", taskFromEvent.getAssignee()); + assertNull(event.getProcessDefinitionId()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); + assertEquals(ActivitiEventType.ENTITY_UPDATED, event.getType()); + assertTrue(event.getEntity() instanceof Task); + taskFromEvent = (Task) event.getEntity(); + assertEquals(task.getId(), taskFromEvent.getId()); + assertNull(event.getProcessDefinitionId()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + listener.clearEventsReceived(); + + // Complete task + taskService.complete(task.getId()); + assertEquals(2, listener.getEventsReceived().size()); + event = (ActivitiEntityEvent) listener.getEventsReceived().get(0); + assertEquals(ActivitiEventType.TASK_COMPLETED, event.getType()); + assertTrue(event.getEntity() instanceof Task); + taskFromEvent = (Task) event.getEntity(); + assertEquals(task.getId(), taskFromEvent.getId()); + assertNull(event.getProcessDefinitionId()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + + event = (ActivitiEntityEvent) listener.getEventsReceived().get(1); + assertEquals(ActivitiEventType.ENTITY_DELETED, event.getType()); + assertTrue(event.getEntity() instanceof Task); + taskFromEvent = (Task) event.getEntity(); + assertEquals(task.getId(), taskFromEvent.getId()); + assertNull(event.getProcessDefinitionId()); + assertNull(event.getProcessInstanceId()); + assertNull(event.getExecutionId()); + + } finally { + if(task != null) { + String taskId = task.getId(); + task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if(task != null) { + // If task still exists, delete it to have a clean DB after test + taskService.deleteTask(taskId); + } + historyService.deleteHistoricTaskInstance(taskId); + } + } + } + + protected void assertExecutionDetails(ActivitiEvent event, ProcessInstance processInstance) { + assertEquals(processInstance.getId(), event.getProcessInstanceId()); + assertEquals(processInstance.getId(), event.getExecutionId()); + assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + listener = new TestActiviti6EntityEventListener(Task.class); + processEngineConfiguration.getEventDispatcher().addEventListener(listener); + } + + @Override + protected void tearDown() throws Exception { + super.tearDown(); + + if (listener != null) { + processEngineConfiguration.getEventDispatcher().removeEventListener(listener); + } + } +} diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TestActiviti6EntityEventListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TestActiviti6EntityEventListener.java new file mode 100644 index 0000000000..2854adfbd7 --- /dev/null +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TestActiviti6EntityEventListener.java @@ -0,0 +1,53 @@ +/* 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. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.activiti5.engine.test.api.event; + +import java.util.ArrayList; +import java.util.List; + +import org.activiti.engine.delegate.event.ActivitiEntityEvent; +import org.activiti.engine.delegate.event.ActivitiEvent; +import org.activiti.engine.delegate.event.ActivitiEventListener; + +public class TestActiviti6EntityEventListener implements ActivitiEventListener { + + private List eventsReceived; + private Class entityClass; + + public TestActiviti6EntityEventListener(Class entityClass) { + this.entityClass = entityClass; + + eventsReceived = new ArrayList(); + } + + public List getEventsReceived() { + return eventsReceived; + } + + public void clearEventsReceived() { + eventsReceived.clear(); + } + + @Override + public void onEvent(ActivitiEvent event) { + if (event instanceof ActivitiEntityEvent && entityClass.isAssignableFrom(((ActivitiEntityEvent) event).getEntity().getClass())) { + eventsReceived.add(event); + } + } + + @Override + public boolean isFailOnException() { + return true; + } + +} diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TestActiviti6EventListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TestActiviti6EventListener.java new file mode 100644 index 0000000000..2ac0b9c12e --- /dev/null +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/TestActiviti6EventListener.java @@ -0,0 +1,47 @@ +/* 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. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.activiti5.engine.test.api.event; + +import java.util.ArrayList; +import java.util.List; + +import org.activiti.engine.delegate.event.ActivitiEvent; +import org.activiti.engine.delegate.event.ActivitiEventListener; + +public class TestActiviti6EventListener implements ActivitiEventListener { + + private List eventsReceived; + + public TestActiviti6EventListener() { + eventsReceived = new ArrayList(); + } + + public List getEventsReceived() { + return eventsReceived; + } + + public void clearEventsReceived() { + eventsReceived.clear(); + } + + @Override + public void onEvent(ActivitiEvent event) { + eventsReceived.add(event); + } + + @Override + public boolean isFailOnException() { + return false; + } + +} diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/mgmt/JobQueryTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/mgmt/JobQueryTest.java index e0b878aff6..5ffb728b0c 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/mgmt/JobQueryTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/mgmt/JobQueryTest.java @@ -22,6 +22,7 @@ import java.util.UUID; import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiIllegalArgumentException; +import org.activiti.engine.runtime.Clock; import org.activiti.engine.runtime.Job; import org.activiti.engine.runtime.JobQuery; import org.activiti.engine.runtime.ProcessInstance; @@ -32,7 +33,6 @@ import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.interceptor.CommandExecutor; import org.activiti5.engine.impl.persistence.entity.JobEntity; import org.activiti5.engine.impl.persistence.entity.JobEntityManager; -import org.activiti5.engine.impl.persistence.entity.MessageEntity; import org.activiti5.engine.impl.persistence.entity.TimerEntity; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; @@ -48,6 +48,7 @@ public class JobQueryTest extends PluggableActivitiTestCase { private CommandExecutor commandExecutor; private TimerEntity timerEntity; + private Date previousTime; private Date testStartTime; private Date timerOneFireTime; private Date timerTwoFireTime; @@ -69,6 +70,9 @@ public class JobQueryTest extends PluggableActivitiTestCase { protected void setUp() throws Exception { super.setUp(); + Clock clock = processEngineConfiguration.getClock(); + previousTime = clock.getCurrentTime(); + this.commandExecutor = (CommandExecutor) processEngineConfiguration.getActiviti5CompatibilityHandler().getRawCommandExecutor(); deploymentId = repositoryService.createDeployment() @@ -81,7 +85,8 @@ public class JobQueryTest extends PluggableActivitiTestCase { startTime.set(Calendar.MILLISECOND, 0); Date t1 = startTime.getTime(); - processEngineConfiguration.getClock().setCurrentTime(t1); + clock.setCurrentTime(t1); + processEngineConfiguration.setClock(clock); processInstanceIdOne = runtimeService.startProcessInstanceByKey("timerOnTask").getId(); testStartTime = t1; @@ -90,37 +95,35 @@ public class JobQueryTest extends PluggableActivitiTestCase { // Create proc inst that has timer that will fire on t2 + 1 hour startTime.add(Calendar.HOUR_OF_DAY, 1); Date t2 = startTime.getTime(); // t2 = t1 + 1 hour - processEngineConfiguration.getClock().setCurrentTime(t2); + clock.setCurrentTime(t2); + processEngineConfiguration.setClock(clock); processInstanceIdTwo = runtimeService.startProcessInstanceByKey("timerOnTask").getId(); timerTwoFireTime = new Date(t2.getTime() + ONE_HOUR); // Create proc inst that has timer that will fire on t3 + 1 hour startTime.add(Calendar.HOUR_OF_DAY, 1); Date t3 = startTime.getTime(); // t3 = t2 + 1 hour - processEngineConfiguration.getClock().setCurrentTime(t3); + clock.setCurrentTime(t3); + processEngineConfiguration.setClock(clock); processInstanceIdThree = runtimeService.startProcessInstanceByKey("timerOnTask").getId(); timerThreeFireTime = new Date(t3.getTime() + ONE_HOUR); - - // Create one message - messageId = commandExecutor.execute(new Command() { - public String execute(CommandContext commandContext) { - MessageEntity message = new MessageEntity(); - commandContext.getJobEntityManager().send(message); - return message.getId(); - } - }); } @Override protected void tearDown() throws Exception { repositoryService.deleteDeployment(deploymentId, true); commandExecutor.execute(new CancelJobsCmd(messageId)); + + Clock clock = processEngineConfiguration.getClock(); + clock.setCurrentTime(previousTime); + processEngineConfiguration.setClock(clock); + super.tearDown(); } public void testQueryByNoCriteria() { JobQuery query = managementService.createJobQuery(); - verifyQueryResults(query, 4); + verifyQueryResults(query, 3); } public void testQueryByProcessInstanceId() { @@ -157,21 +160,21 @@ public class JobQueryTest extends PluggableActivitiTestCase { public void testQueryByRetriesLeft() { JobQuery query = managementService.createJobQuery().withRetriesLeft(); - verifyQueryResults(query, 4); + verifyQueryResults(query, 3); setRetries(processInstanceIdOne, 0); // Re-running the query should give only 3 jobs now, since one job has retries=0 - verifyQueryResults(query, 3); + verifyQueryResults(query, 2); } public void testQueryByExecutable() { processEngineConfiguration.getClock().setCurrentTime(new Date(timerThreeFireTime.getTime() + ONE_SECOND)); // all jobs should be executable at t3 + 1hour.1second JobQuery query = managementService.createJobQuery().executable(); - verifyQueryResults(query, 4); + verifyQueryResults(query, 3); // Setting retries of one job to 0, makes it non-executable setRetries(processInstanceIdOne, 0); - verifyQueryResults(query, 3); + verifyQueryResults(query, 2); // Setting the clock before the start of the process instance, makes none of the jobs executable processEngineConfiguration.getClock().setCurrentTime(testStartTime); @@ -183,11 +186,6 @@ public class JobQueryTest extends PluggableActivitiTestCase { verifyQueryResults(query, 3); } - public void testQueryByOnlyMessages() { - JobQuery query = managementService.createJobQuery().messages(); - verifyQueryResults(query, 1); - } - public void testInvalidOnlyTimersUsage() { try { managementService.createJobQuery().timers().messages().list(); @@ -208,18 +206,18 @@ public class JobQueryTest extends PluggableActivitiTestCase { verifyQueryResults(query, 2); query = managementService.createJobQuery().duedateLowerThan(new Date(timerThreeFireTime.getTime() + ONE_SECOND)); - verifyQueryResults(query, 4); + verifyQueryResults(query, 3); } public void testQueryByDuedateHigherThan() { JobQuery query = managementService.createJobQuery().duedateHigherThan(testStartTime); - verifyQueryResults(query, 4); + verifyQueryResults(query, 3); query = managementService.createJobQuery().duedateHigherThan(timerOneFireTime); - verifyQueryResults(query, 3); + verifyQueryResults(query, 2); query = managementService.createJobQuery().duedateHigherThan(timerTwoFireTime); - verifyQueryResults(query, 2); + verifyQueryResults(query, 1); query = managementService.createJobQuery().duedateHigherThan(timerThreeFireTime); verifyQueryResults(query, 0); @@ -297,18 +295,18 @@ public class JobQueryTest extends PluggableActivitiTestCase { public void testQuerySorting() { // asc - assertEquals(4, managementService.createJobQuery().orderByJobId().asc().count()); - assertEquals(4, managementService.createJobQuery().orderByJobDuedate().asc().count()); - assertEquals(4, managementService.createJobQuery().orderByExecutionId().asc().count()); - assertEquals(4, managementService.createJobQuery().orderByProcessInstanceId().asc().count()); - assertEquals(4, managementService.createJobQuery().orderByJobRetries().asc().count()); + assertEquals(3, managementService.createJobQuery().orderByJobId().asc().count()); + assertEquals(3, managementService.createJobQuery().orderByJobDuedate().asc().count()); + assertEquals(3, managementService.createJobQuery().orderByExecutionId().asc().count()); + assertEquals(3, managementService.createJobQuery().orderByProcessInstanceId().asc().count()); + assertEquals(3, managementService.createJobQuery().orderByJobRetries().asc().count()); // desc - assertEquals(4, managementService.createJobQuery().orderByJobId().desc().count()); - assertEquals(4, managementService.createJobQuery().orderByJobDuedate().desc().count()); - assertEquals(4, managementService.createJobQuery().orderByExecutionId().desc().count()); - assertEquals(4, managementService.createJobQuery().orderByProcessInstanceId().desc().count()); - assertEquals(4, managementService.createJobQuery().orderByJobRetries().desc().count()); + assertEquals(3, managementService.createJobQuery().orderByJobId().desc().count()); + assertEquals(3, managementService.createJobQuery().orderByJobDuedate().desc().count()); + assertEquals(3, managementService.createJobQuery().orderByExecutionId().desc().count()); + assertEquals(3, managementService.createJobQuery().orderByProcessInstanceId().desc().count()); + assertEquals(3, managementService.createJobQuery().orderByJobRetries().desc().count()); // sorting on multiple fields setRetries(processInstanceIdTwo, 2); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/mgmt/ManagementServiceTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/mgmt/ManagementServiceTest.java index 8b911235ed..090279be02 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/mgmt/ManagementServiceTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/mgmt/ManagementServiceTest.java @@ -19,13 +19,14 @@ import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.ActivitiObjectNotFoundException; import org.activiti.engine.JobNotFoundException; +import org.activiti.engine.impl.persistence.entity.EventSubscriptionEntity; import org.activiti.engine.management.TableMetaData; +import org.activiti.engine.runtime.Clock; import org.activiti.engine.runtime.Job; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.test.Deployment; import org.activiti5.engine.impl.cmd.AcquireTimerJobsCmd; import org.activiti5.engine.impl.interceptor.CommandExecutor; -import org.activiti5.engine.impl.persistence.entity.EventSubscriptionEntity; import org.activiti5.engine.impl.persistence.entity.JobEntity; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; @@ -57,7 +58,7 @@ public class ManagementServiceTest extends PluggableActivitiTestCase { managementService.executeJob(null); fail("ActivitiException expected"); } catch (ActivitiIllegalArgumentException re) { - assertTextPresent("jobId and job is null", re.getMessage()); + assertTextPresent("JobId is null", re.getMessage()); } } @@ -216,13 +217,16 @@ public class ManagementServiceTest extends PluggableActivitiTestCase { @Deployment(resources = { "org/activiti5/engine/test/api/mgmt/timerOnTask.bpmn20.xml" }) public void testDeleteJobThatWasAlreadyAcquired() { - processEngineConfiguration.getClock().setCurrentTime(new Date()); + Clock clock = processEngineConfiguration.getClock(); + clock.setCurrentTime(new Date()); + processEngineConfiguration.setClock(clock); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("timerOnTask"); Job timerJob = managementService.createJobQuery().processInstanceId(processInstance.getId()).singleResult(); // We need to move time at least one hour to make the timer executable - processEngineConfiguration.getClock().setCurrentTime(new Date(processEngineConfiguration.getClock().getCurrentTime().getTime() + 7200000L)); + clock.setCurrentTime(new Date(processEngineConfiguration.getClock().getCurrentTime().getTime() + 7200000L)); + processEngineConfiguration.setClock(clock); // Acquire job by running the acquire command manually AcquireTimerJobsCmd acquireJobsCmd = new AcquireTimerJobsCmd("testLockOwner", 60000, 5); @@ -239,6 +243,9 @@ public class ManagementServiceTest extends PluggableActivitiTestCase { // Clean up managementService.executeJob(timerJob.getId()); + + clock.setCurrentTime(new Date()); + processEngineConfiguration.setClock(clock); } // https://activiti.atlassian.net/browse/ACT-1816: diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/runtime/ExecutionQueryTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/runtime/ExecutionQueryTest.java index 276e9c6eb8..ab2381e025 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/runtime/ExecutionQueryTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/runtime/ExecutionQueryTest.java @@ -40,6 +40,7 @@ import java.util.Set; import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.impl.persistence.entity.ExecutionEntity; +import org.activiti.engine.repository.DeploymentProperties; import org.activiti.engine.runtime.Execution; import org.activiti.engine.runtime.ExecutionQuery; import org.activiti.engine.runtime.ProcessInstance; @@ -66,6 +67,7 @@ public class ExecutionQueryTest extends PluggableActivitiTestCase { repositoryService.createDeployment() .addClasspathResource("org/activiti5/engine/test/api/runtime/oneTaskProcess.bpmn20.xml") .addClasspathResource("org/activiti5/engine/test/api/runtime/concurrentExecution.bpmn20.xml") + .deploymentProperty(DeploymentProperties.DEPLOY_AS_ACTIVITI5_PROCESS_DEFINITION, Boolean.TRUE) .deploy(); concurrentProcessInstanceIds = new ArrayList(); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.java index 6f6ee51e1d..b44baa8a15 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.java @@ -44,7 +44,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { // the service was not invoked: assertFalse(INVOCATION); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // the service was invoked assertTrue(INVOCATION); @@ -59,7 +59,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { // the listener was not yet invoked: assertNull(runtimeService.getVariable(pid, "listener")); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); assertEquals(0, managementService.createJobQuery().count()); } @@ -74,7 +74,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { // the service was not invoked: assertFalse(INVOCATION); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // the service was invoked assertTrue(INVOCATION); @@ -92,7 +92,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { // the service was not invoked: assertFalse(INVOCATION); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // the service was invoked assertTrue(INVOCATION); @@ -140,7 +140,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { assertEquals(2, managementService.createJobQuery().count()); // let 'max-retires' on the message be reached - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // the service failed: the execution is still sitting in the service task: Execution execution = runtimeService.createExecutionQuery().singleResult(); @@ -152,7 +152,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { // now the timer triggers: Context.getProcessEngineConfiguration().getClock().setCurrentTime(new Date(System.currentTimeMillis() + 10000)); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // and we are done: assertNull(runtimeService.createExecutionQuery().singleResult()); @@ -171,7 +171,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { // the service was not invoked: assertFalse(INVOCATION); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // the service was invoked assertTrue(INVOCATION); @@ -187,7 +187,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { assertEquals(1, managementService.createJobQuery().count()); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // both the timer and the message are cancelled assertEquals(0, managementService.createJobQuery().count()); @@ -201,7 +201,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { // now there should be one job in the database: assertEquals(1, managementService.createJobQuery().count()); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // the job is done assertEquals(0, managementService.createJobQuery().count()); @@ -248,7 +248,7 @@ public class AsyncTaskTest extends PluggableActivitiTestCase { String eid = runtimeService.createExecutionQuery().singleResult().getId(); assertNull(runtimeService.getVariable(eid, "invoked")); - waitForJobExecutorToProcessAllJobs(10000L, 100L); + waitForJobExecutorToProcessAllJobs(10000L, 300L); // and the job is done assertEquals(0, managementService.createJobQuery().count()); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/timer/StartTimerEventRepeatWithEndExpressionTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/timer/StartTimerEventRepeatWithEndExpressionTest.java index a504eaf051..c9aad4587d 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/timer/StartTimerEventRepeatWithEndExpressionTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/timer/StartTimerEventRepeatWithEndExpressionTest.java @@ -18,6 +18,7 @@ import java.util.Date; import java.util.List; import org.activiti.engine.impl.util.DefaultClockImpl; +import org.activiti.engine.repository.DeploymentProperties; import org.activiti.engine.runtime.Clock; import org.activiti.engine.runtime.Job; import org.activiti.engine.runtime.ProcessInstance; @@ -68,8 +69,10 @@ public class StartTimerEventRepeatWithEndExpressionTest extends PluggableActivit processEngineConfiguration.setClock(testClock); //deploy the process - repositoryService.createDeployment().addClasspathResource( - "org/activiti5/engine/test/bpmn/event/timer/StartTimerEventRepeatWithEndExpressionTest.testCycleDateStartTimerEvent.bpmn20.xml").deploy(); + repositoryService.createDeployment() + .addClasspathResource("org/activiti5/engine/test/bpmn/event/timer/StartTimerEventRepeatWithEndExpressionTest.testCycleDateStartTimerEvent.bpmn20.xml") + .deploymentProperty(DeploymentProperties.DEPLOY_AS_ACTIVITI5_PROCESS_DEFINITION, Boolean.TRUE) + .deploy(); assertEquals(1, repositoryService.createProcessDefinitionQuery().count()); //AFTER DEPLOYMENT diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncEndEvent.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncEndEvent.bpmn20.xml index 8aa01e74c7..e1428dae0f 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncEndEvent.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncEndEvent.bpmn20.xml @@ -16,7 +16,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceConcurrent.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceConcurrent.bpmn20.xml index a3f5c957e0..c222746b82 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceConcurrent.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceConcurrent.bpmn20.xml @@ -14,7 +14,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceListeners.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceListeners.bpmn20.xml index f6fa6255da..7097b38379 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceListeners.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceListeners.bpmn20.xml @@ -9,9 +9,9 @@ - + - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceMultiInstance.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceMultiInstance.bpmn20.xml index 9bf8d76270..fe927bf189 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceMultiInstance.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceMultiInstance.bpmn20.xml @@ -9,7 +9,7 @@ - + 5 diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceNoListeners.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceNoListeners.bpmn20.xml index 353922073b..64967ede89 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceNoListeners.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceNoListeners.bpmn20.xml @@ -9,7 +9,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceSubProcessTimer.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceSubProcessTimer.bpmn20.xml index c4e8d45ca1..930c99b897 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceSubProcessTimer.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncServiceSubProcessTimer.bpmn20.xml @@ -12,7 +12,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncUserTask.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncUserTask.bpmn20.xml index 1ac1056f40..91942d90cd 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncUserTask.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/async/AsyncTaskTest.testAsyncUserTask.bpmn20.xml @@ -12,8 +12,8 @@ - - + + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnCallActivity-child.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnCallActivity-child.bpmn20.xml index 3cf9bdbaa1..1c690f37df 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnCallActivity-child.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnCallActivity-child.bpmn20.xml @@ -9,7 +9,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnEmbeddedSubProcess.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnEmbeddedSubProcess.bpmn20.xml index b9c71faf72..a740941eeb 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnEmbeddedSubProcess.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnEmbeddedSubProcess.bpmn20.xml @@ -12,7 +12,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnEmbeddedSubProcessInduction.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnEmbeddedSubProcessInduction.bpmn20.xml index 9aba693a75..5f70494e13 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnEmbeddedSubProcessInduction.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnEmbeddedSubProcessInduction.bpmn20.xml @@ -15,7 +15,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnMultiInstanceServiceTaskParallel.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnMultiInstanceServiceTaskParallel.bpmn20.xml index 62ce5bb3b7..05ed19b17b 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnMultiInstanceServiceTaskParallel.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnMultiInstanceServiceTaskParallel.bpmn20.xml @@ -9,7 +9,7 @@ - + 3 diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnMultiInstanceServiceTaskSequential.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnMultiInstanceServiceTaskSequential.bpmn20.xml index 0e15e5f593..15c73d9442 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnMultiInstanceServiceTaskSequential.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnMultiInstanceServiceTaskSequential.bpmn20.xml @@ -9,7 +9,7 @@ - + 3 diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTask.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTask.bpmn20.xml index 58d306bb21..04cf4e8c42 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTask.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTask.bpmn20.xml @@ -9,7 +9,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTaskNotCancelActivity.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTaskNotCancelActivity.bpmn20.xml index 7b4cb91a38..77909f0aa4 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTaskNotCancelActivity.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTaskNotCancelActivity.bpmn20.xml @@ -9,7 +9,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTaskWithErrorCode.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTaskWithErrorCode.bpmn20.xml index b67aeca61f..ed9b04d533 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTaskWithErrorCode.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testCatchErrorThrownByJavaDelegateOnServiceTaskWithErrorCode.bpmn20.xml @@ -12,7 +12,7 @@ - + diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testErrorThrownByJavaDelegateNotCaughtByOtherEventType.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testErrorThrownByJavaDelegateNotCaughtByOtherEventType.bpmn20.xml index 61bb769b0e..742136461b 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testErrorThrownByJavaDelegateNotCaughtByOtherEventType.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/bpmn/event/error/BoundaryErrorEventTest.testErrorThrownByJavaDelegateNotCaughtByOtherEventType.bpmn20.xml @@ -17,7 +17,7 @@ - + -- GitLab