diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngine.java b/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngine.java index d7a86de39460e327eecc80eb01373382f496f8cc..3fc98994c28e4e78ff58ed9bff35e8f4c61b9ec7 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngine.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngine.java @@ -36,7 +36,7 @@ package org.activiti.engine; * @author Tom Baeyens * @author Joram Barrez */ -public interface ProcessEngine extends EngineServices { +public interface ProcessEngine { /** the version of the activiti library */ public static String VERSION = "6.0.0.0"; // Note the extra .x at the end. To cater for snapshot releases with different database changes @@ -47,4 +47,20 @@ public interface ProcessEngine extends EngineServices { String getName(); void close(); + + RepositoryService getRepositoryService(); + + RuntimeService getRuntimeService(); + + FormService getFormService(); + + TaskService getTaskService(); + + HistoryService getHistoryService(); + + IdentityService getIdentityService(); + + ManagementService getManagementService(); + + ProcessEngineConfiguration getProcessEngineConfiguration(); } diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngineConfiguration.java b/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngineConfiguration.java index 85a1888926fe348678194020490d12da6b4ca5ad..3493066b89d2d975d37cea1b6a74e00de39d60c4 100755 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngineConfiguration.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngineConfiguration.java @@ -76,7 +76,7 @@ import org.activiti.image.ProcessDiagramGenerator; * @see ProcessEngines * @author Tom Baeyens */ -public abstract class ProcessEngineConfiguration implements EngineServices { +public abstract class ProcessEngineConfiguration { /** * Checks the version of the DB schema against the library when the process engine is being created and throws an exception if the versions don't match. @@ -244,6 +244,22 @@ public abstract class ProcessEngineConfiguration implements EngineServices { // createJtaProcessEngineConfiguration() { // return new JtaProcessEngineConfiguration(); // } + + public abstract RepositoryService getRepositoryService(); + + public abstract RuntimeService getRuntimeService(); + + public abstract FormService getFormService(); + + public abstract TaskService getTaskService(); + + public abstract HistoryService getHistoryService(); + + public abstract IdentityService getIdentityService(); + + public abstract ManagementService getManagementService(); + + public abstract ProcessEngineConfiguration getProcessEngineConfiguration(); // getters and setters // ////////////////////////////////////////////////////// diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/DelegateExecution.java b/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/DelegateExecution.java index 409d1f147019030661c351f427eca9955b702e32..ad61841042af5290e8c1c5e49eedb5e21ed8575d 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/DelegateExecution.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/DelegateExecution.java @@ -16,7 +16,6 @@ package org.activiti.engine.delegate; import java.util.List; import org.activiti.bpmn.model.FlowElement; -import org.activiti.engine.EngineServices; /** * Execution used in {@link JavaDelegate}s and {@link ExecutionListener}s. @@ -70,11 +69,6 @@ public interface DelegateExecution extends VariableScope { * Returns the tenant id, if any is set before on the process definition or process instance. */ String getTenantId(); - - /** - * All Activiti services can be accessed through this interface. - */ - EngineServices getEngineServices(); FlowElement getCurrentFlowElement(); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/event/ActivitiEvent.java b/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/event/ActivitiEvent.java index 34f8395963a89170f853eac41ea94e5434760edc..1c85587bf83847cf620efe4d2a4dc18002aa9f0e 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/event/ActivitiEvent.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/event/ActivitiEvent.java @@ -12,7 +12,6 @@ */ package org.activiti.engine.delegate.event; -import org.activiti.engine.EngineServices; /** * Describes an event that occurred in the Activiti Engine which is dispatched to external listeners, if any. @@ -42,8 +41,4 @@ public interface ActivitiEvent { */ String getProcessDefinitionId(); - /** - * @return the {@link EngineServices} associated to the engine this event originated from. Returns null, when not called from within a listener call or when no Activiti context is active. - */ - EngineServices getEngineServices(); } diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/event/impl/ActivitiEventImpl.java b/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/event/impl/ActivitiEventImpl.java index b6777f17759324a410e94b88f0371f7c1c1edfc3..e1f917aa92d17be15a109d250c77d34d2d81a1b9 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/event/impl/ActivitiEventImpl.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/delegate/event/impl/ActivitiEventImpl.java @@ -13,10 +13,8 @@ package org.activiti.engine.delegate.event.impl; import org.activiti.engine.ActivitiIllegalArgumentException; -import org.activiti.engine.EngineServices; import org.activiti.engine.delegate.event.ActivitiEvent; import org.activiti.engine.delegate.event.ActivitiEventType; -import org.activiti.engine.impl.context.Context; /** * Base class for all {@link ActivitiEvent} implementations. @@ -82,11 +80,6 @@ public class ActivitiEventImpl implements ActivitiEvent { this.processInstanceId = processInstanceId; } - @Override - public EngineServices getEngineServices() { - return Context.getProcessEngineConfiguration(); - } - @Override public String toString() { return getClass() + " - " + type; diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/ServiceTaskDelegateExpressionActivityBehavior.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/ServiceTaskDelegateExpressionActivityBehavior.java index 40b8f0953ef3230b8badcf748df076bffe01e155..5707894ee264f992744a82110d9c5b37509cd06d 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/ServiceTaskDelegateExpressionActivityBehavior.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/ServiceTaskDelegateExpressionActivityBehavior.java @@ -14,6 +14,7 @@ package org.activiti.engine.impl.bpmn.behavior; import java.util.List; +import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.delegate.BpmnError; import org.activiti.engine.delegate.DelegateExecution; @@ -104,7 +105,7 @@ public class ServiceTaskDelegateExpressionActivityBehavior extends TaskActivityB if (error != null) { ErrorPropagation.propagateError(error, execution); } else { - throw new RuntimeException(exc); + throw new ActivitiException(exc.getMessage(), exc); } } diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/ServiceTaskExpressionActivityBehavior.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/ServiceTaskExpressionActivityBehavior.java index 36b9f932fc5cf9e5d9c00e02009629c2c4d83e2b..364176ae505b6ef3f6788baa24f6226a2366ccdb 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/ServiceTaskExpressionActivityBehavior.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/ServiceTaskExpressionActivityBehavior.java @@ -70,7 +70,7 @@ public class ServiceTaskExpressionActivityBehavior extends TaskActivityBehavior if (error != null) { ErrorPropagation.propagateError(error, execution); } else { - throw new ActivitiException("Could not execute service task expression",exc); + throw new ActivitiException("Could not execute service task expression", exc); } } } diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java index 4f6b092f67fb941bd6a55a939ede96148c878481..922aac48bd16b9452e44d4457c9bf197d1fc43a9 100755 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java @@ -115,6 +115,7 @@ public class DbSqlSession implements Session { ACTIVITI_VERSIONS.add(new ActivitiVersion("5.17.0.0")); ACTIVITI_VERSIONS.add(new ActivitiVersion("5.17.0.1")); ACTIVITI_VERSIONS.add(new ActivitiVersion("5.17.0.2")); + ACTIVITI_VERSIONS.add(new ActivitiVersion("5.18.0.0")); // This is the latest version of the 5 branch. It's a 'virtual' version cause it doesn't exist, but it is // there to make sure all previous version can upgrade to the 6 version correctly. diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntity.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntity.java index 4d4c47601b301c3b8eaf0c8a509157497e3772dc..67f4e88b216f9ce317ed5672f56a8e22a8c5d289 100755 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntity.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/ExecutionEntity.java @@ -21,7 +21,6 @@ import java.util.Map; import org.activiti.bpmn.model.FlowElement; import org.activiti.engine.ActivitiException; -import org.activiti.engine.EngineServices; import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.event.ActivitiEventType; @@ -428,13 +427,6 @@ public class ExecutionEntity extends VariableScopeImpl public void forceUpdate() { this.forcedUpdate = true; } - - // process engine convenience access ///////////////////////////////////////////////////////////////// - - public EngineServices getEngineServices() { - return Context.getProcessEngineConfiguration(); - } - // VariableScopeImpl methods ////////////////////////////////////////////////////////////////// diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/runtime/ProcessInstanceQueryTest.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/runtime/ProcessInstanceQueryTest.java index 9c8197bdce745396e6c04b5089d046697cafd28e..b51c63fd7d06c9f5ed91d169fd6d91d135816754 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/runtime/ProcessInstanceQueryTest.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/runtime/ProcessInstanceQueryTest.java @@ -12,6 +12,18 @@ */ package org.activiti.engine.test.api.runtime; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiIllegalArgumentException; import org.activiti.engine.history.HistoricVariableInstance; @@ -23,9 +35,6 @@ import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstanceQuery; import org.activiti.engine.test.Deployment; -import java.text.SimpleDateFormat; -import java.util.*; - /** * @author Joram Barrez * @author Tijs Rademakers diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/servicetask/CreateUserAndMembershipTestDelegate.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/servicetask/CreateUserAndMembershipTestDelegate.java index be41122d809534121846c0fc8cd09b47185d9cec..41ff5634b41cc1b0c285150e432daea37421cd2f 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/servicetask/CreateUserAndMembershipTestDelegate.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/servicetask/CreateUserAndMembershipTestDelegate.java @@ -17,6 +17,7 @@ import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.JavaDelegate; import org.activiti.engine.identity.Group; import org.activiti.engine.identity.User; +import org.activiti.engine.impl.context.Context; /** * @author Joram Barrez @@ -26,7 +27,7 @@ public class CreateUserAndMembershipTestDelegate implements JavaDelegate { @Override public void execute(DelegateExecution execution) { - IdentityService identityService = execution.getEngineServices().getIdentityService(); + IdentityService identityService = Context.getProcessEngineConfiguration().getIdentityService(); String username = "Kermit"; User user = identityService.newUser(username); diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/servicetask/StartProcessInstanceTestDelegate.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/servicetask/StartProcessInstanceTestDelegate.java index bbb1f73a3fa9f852f74afcff34da38077be9103e..e319d1d9c7688e221cd0dfcf145536da85bee454 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/servicetask/StartProcessInstanceTestDelegate.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/servicetask/StartProcessInstanceTestDelegate.java @@ -15,6 +15,7 @@ package org.activiti.engine.test.bpmn.servicetask; import org.activiti.engine.RuntimeService; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.JavaDelegate; +import org.activiti.engine.impl.context.Context; /** * @author Joram Barrez @@ -22,7 +23,7 @@ import org.activiti.engine.delegate.JavaDelegate; public class StartProcessInstanceTestDelegate implements JavaDelegate { public void execute(DelegateExecution execution) { - RuntimeService runtimeService = execution.getEngineServices().getRuntimeService(); + RuntimeService runtimeService = Context.getProcessEngineConfiguration().getRuntimeService(); runtimeService.startProcessInstanceByKey("oneTaskProcess"); } diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/db/GetVariableLocalTask.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/db/GetVariableLocalTask.java index cdd3cfb7329e941a84129dfc0fd557a675863666..1a63e0d41b4038ce63deee3d9dc290de9fd048fb 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/db/GetVariableLocalTask.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/db/GetVariableLocalTask.java @@ -3,11 +3,12 @@ package org.activiti.engine.test.db; import org.activiti.engine.RuntimeService; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.JavaDelegate; +import org.activiti.engine.impl.context.Context; public class GetVariableLocalTask implements JavaDelegate { @Override public void execute(DelegateExecution execution) { - RuntimeService runtimeService = execution.getEngineServices().getRuntimeService(); + RuntimeService runtimeService = Context.getProcessEngineConfiguration().getRuntimeService(); runtimeService.getVariableLocal(execution.getProcessInstanceId(), "Variable-That-Does-Not-Exist"); } } \ No newline at end of file diff --git a/modules/activiti-spring/src/main/java/org/activiti/spring/impl/test/SpringActivitiTestCase.java b/modules/activiti-spring/src/main/java/org/activiti/spring/impl/test/SpringActivitiTestCase.java index 4c766e643ce37ec86542b4e174a3ccf68a1237d1..4055d52f58a472cef36356a239f9f51738ed43c7 100644 --- a/modules/activiti-spring/src/main/java/org/activiti/spring/impl/test/SpringActivitiTestCase.java +++ b/modules/activiti-spring/src/main/java/org/activiti/spring/impl/test/SpringActivitiTestCase.java @@ -12,6 +12,9 @@ */ package org.activiti.spring.impl.test; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + import org.activiti.engine.ProcessEngine; import org.activiti.engine.impl.test.AbstractActivitiTestCase; import org.springframework.beans.factory.annotation.Autowired; @@ -22,9 +25,6 @@ import org.springframework.test.context.TestContextManager; import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - /** * @author Joram Barrez * @author Josh Long diff --git a/modules/activiti-spring/src/test/java/org/activiti/spring/test/servicetask/StartProcessInstanceTestDelegate.java b/modules/activiti-spring/src/test/java/org/activiti/spring/test/servicetask/StartProcessInstanceTestDelegate.java index b52240bf341359c074181911fcbeb31e5c254a59..8ab0bad55a4cfd0a7df69c3c60839158cf52a443 100644 --- a/modules/activiti-spring/src/test/java/org/activiti/spring/test/servicetask/StartProcessInstanceTestDelegate.java +++ b/modules/activiti-spring/src/test/java/org/activiti/spring/test/servicetask/StartProcessInstanceTestDelegate.java @@ -15,6 +15,7 @@ package org.activiti.spring.test.servicetask; import org.activiti.engine.RuntimeService; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.JavaDelegate; +import org.activiti.engine.impl.context.Context; /** * @author Joram Barrez @@ -22,7 +23,7 @@ import org.activiti.engine.delegate.JavaDelegate; public class StartProcessInstanceTestDelegate implements JavaDelegate { public void execute(DelegateExecution execution) { - RuntimeService runtimeService = execution.getEngineServices().getRuntimeService(); + RuntimeService runtimeService = Context.getProcessEngineConfiguration().getRuntimeService(); runtimeService.startProcessInstanceByKey("oneTaskProcess"); } diff --git a/modules/activiti5-compatibility-test/src/test/java/org/activiti/compatibility/test/delegate/SetVariableJavaDelegate.java b/modules/activiti5-compatibility-test/src/test/java/org/activiti/compatibility/test/delegate/SetVariableJavaDelegate.java index 3e1a82a19b1e043b5f2040a2e7a6701a2de32faf..e8e520bd0232962d90eb31d4933276e090472f93 100644 --- a/modules/activiti5-compatibility-test/src/test/java/org/activiti/compatibility/test/delegate/SetVariableJavaDelegate.java +++ b/modules/activiti5-compatibility-test/src/test/java/org/activiti/compatibility/test/delegate/SetVariableJavaDelegate.java @@ -14,8 +14,8 @@ package org.activiti.compatibility.test.delegate; import java.util.Random; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** * @author Joram Barrez @@ -23,7 +23,7 @@ import org.activiti5.engine.delegate.JavaDelegate; public class SetVariableJavaDelegate implements JavaDelegate { @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { execution.setVariable("testVarFromActiviti6", new Random().nextInt(100)); } diff --git a/modules/activiti5-compatibility-test/src/test/resources/activiti.cfg.xml b/modules/activiti5-compatibility-test/src/test/resources/activiti.cfg.xml index 03442b888caf3fe236d52a4b8a005ec9c731e1c7..7c1b051794dd6c5e526e117110e8be90c8880e04 100644 --- a/modules/activiti5-compatibility-test/src/test/resources/activiti.cfg.xml +++ b/modules/activiti5-compatibility-test/src/test/resources/activiti.cfg.xml @@ -7,7 +7,7 @@ - + diff --git a/modules/activiti5-compatibility-testdata/pom.xml b/modules/activiti5-compatibility-testdata/pom.xml index 45a5f289ac82f637deb4b2ccc252c3c32d7806be..8527db8c4af36ec5ba941286470ca67ec255cbf5 100755 --- a/modules/activiti5-compatibility-testdata/pom.xml +++ b/modules/activiti5-compatibility-testdata/pom.xml @@ -17,7 +17,7 @@ org.activiti activiti-engine - 5.17.0 + 5.18.0 mysql @@ -78,7 +78,7 @@ - org.activiti.compatibility.testdata.Main + org.activiti.compatibility.Main diff --git a/modules/activiti5-compatibility-testdata/src/main/resources/activiti5.cfg.xml b/modules/activiti5-compatibility-testdata/src/main/resources/activiti5.cfg.xml index 3481f07ce658d48737f8dbe7e4f8ba376fb64dea..57cb8d6981942e54f77c2d2fc91397601842ca62 100644 --- a/modules/activiti5-compatibility-testdata/src/main/resources/activiti5.cfg.xml +++ b/modules/activiti5-compatibility-testdata/src/main/resources/activiti5.cfg.xml @@ -7,7 +7,7 @@ - + diff --git a/modules/activiti5-compatibility/src/main/java/org/activiti/compatibility/DefaultProcessEngineFactory.java b/modules/activiti5-compatibility/src/main/java/org/activiti/compatibility/DefaultProcessEngineFactory.java index 7856104b10383720cfc500ea679cedf976ca2d8c..8330985d4bba2c189b1f21ad25201d32738d6c85 100644 --- a/modules/activiti5-compatibility/src/main/java/org/activiti/compatibility/DefaultProcessEngineFactory.java +++ b/modules/activiti5-compatibility/src/main/java/org/activiti/compatibility/DefaultProcessEngineFactory.java @@ -40,144 +40,145 @@ public class DefaultProcessEngineFactory { /** * Takes in an Activiti 6 process engine config, gives back an Activiti 5 Process engine. */ - @SuppressWarnings("unchecked") public ProcessEngine buildProcessEngine(ProcessEngineConfigurationImpl activiti6Configuration) { - - // TODO: jta/spring/custom type - org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5Configuration = null; if (activiti6Configuration instanceof StandaloneProcessEngineConfiguration) { activiti5Configuration = new org.activiti5.engine.impl.cfg.StandaloneProcessEngineConfiguration(); - - if (activiti6Configuration.getIdGeneratorDataSource() != null) { - activiti5Configuration.setIdGeneratorDataSource(activiti6Configuration.getIdGeneratorDataSource()); - } else if (activiti6Configuration.getIdGeneratorDataSourceJndiName() != null) { - activiti5Configuration.setIdGeneratorDataSourceJndiName(activiti6Configuration.getIdGeneratorDataSourceJndiName()); - } else { - activiti5Configuration.setDataSource(activiti6Configuration.getDataSource()); - } - - if (activiti6Configuration.getJdbcDriver() != null) { - activiti5Configuration.setJdbcDriver(activiti6Configuration.getJdbcDriver()); - } - if (activiti6Configuration.getJdbcUrl() != null) { - activiti5Configuration.setJdbcUrl(activiti6Configuration.getJdbcUrl()); - } - if (activiti6Configuration.getJdbcUsername() != null) { - activiti5Configuration.setJdbcUsername(activiti6Configuration.getJdbcUsername()); - } - if (activiti6Configuration.getJdbcPassword() != null) { - activiti5Configuration.setJdbcPassword(activiti6Configuration.getJdbcPassword()); - } - - if (activiti6Configuration.getIdBlockSize() > 0) { - activiti5Configuration.setIdBlockSize(activiti6Configuration.getIdBlockSize()); - } - - if (activiti6Configuration.getJdbcMaxActiveConnections() > 0) { - activiti5Configuration.setJdbcMaxActiveConnections(activiti6Configuration.getJdbcMaxActiveConnections()); + copyConfigItems(activiti6Configuration, activiti5Configuration); + return activiti5Configuration.buildProcessEngine(); + } else { + throw new ActivitiException("Unsupported process engine configuration"); + } + } + + @SuppressWarnings("unchecked") + protected void copyConfigItems(ProcessEngineConfigurationImpl activiti6Configuration, org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5Configuration) { + if (activiti6Configuration.getIdGeneratorDataSource() != null) { + activiti5Configuration.setIdGeneratorDataSource(activiti6Configuration.getIdGeneratorDataSource()); + } else if (activiti6Configuration.getIdGeneratorDataSourceJndiName() != null) { + activiti5Configuration.setIdGeneratorDataSourceJndiName(activiti6Configuration.getIdGeneratorDataSourceJndiName()); + } else { + activiti5Configuration.setDataSource(activiti6Configuration.getDataSource()); + } + + if (activiti6Configuration.getJdbcDriver() != null) { + activiti5Configuration.setJdbcDriver(activiti6Configuration.getJdbcDriver()); + } + if (activiti6Configuration.getJdbcUrl() != null) { + activiti5Configuration.setJdbcUrl(activiti6Configuration.getJdbcUrl()); + } + if (activiti6Configuration.getJdbcUsername() != null) { + activiti5Configuration.setJdbcUsername(activiti6Configuration.getJdbcUsername()); + } + if (activiti6Configuration.getJdbcPassword() != null) { + activiti5Configuration.setJdbcPassword(activiti6Configuration.getJdbcPassword()); + } + + if (activiti6Configuration.getIdBlockSize() > 0) { + activiti5Configuration.setIdBlockSize(activiti6Configuration.getIdBlockSize()); + } + + if (activiti6Configuration.getJdbcMaxActiveConnections() > 0) { + activiti5Configuration.setJdbcMaxActiveConnections(activiti6Configuration.getJdbcMaxActiveConnections()); + } + + activiti5Configuration.setHistoryLevel(HistoryLevel.getHistoryLevelForKey(activiti6Configuration.getHistoryLevel().getKey())); + + activiti5Configuration.setMailServerDefaultFrom(activiti6Configuration.getMailServerDefaultFrom()); + activiti5Configuration.setMailServerHost(activiti6Configuration.getMailServerHost()); + activiti5Configuration.setMailServerPassword(activiti6Configuration.getMailServerPassword()); + activiti5Configuration.setMailServerPort(activiti6Configuration.getMailServerPort()); + activiti5Configuration.setMailServerUsername(activiti6Configuration.getMailServerUsername()); + activiti5Configuration.setMailServerUseSSL(activiti6Configuration.getMailServerUseSSL()); + activiti5Configuration.setMailServerUseTLS(activiti6Configuration.getMailServerUseTLS()); + if (activiti6Configuration.getMailServers() != null && activiti6Configuration.getMailServers().size() > 0) { + for (String key : activiti6Configuration.getMailServers().keySet()) { + MailServerInfo mailServerInfo = activiti6Configuration.getMailServers().get(key); + org.activiti5.engine.cfg.MailServerInfo activiti5MailServerInfo = new org.activiti5.engine.cfg.MailServerInfo(); + activiti5MailServerInfo.setMailServerDefaultFrom(mailServerInfo.getMailServerDefaultFrom()); + activiti5MailServerInfo.setMailServerHost(mailServerInfo.getMailServerHost()); + activiti5MailServerInfo.setMailServerPassword(mailServerInfo.getMailServerPassword()); + activiti5MailServerInfo.setMailServerPort(mailServerInfo.getMailServerPort()); + activiti5MailServerInfo.setMailServerUsername(mailServerInfo.getMailServerUsername()); + activiti5MailServerInfo.setMailServerUseSSL(mailServerInfo.isMailServerUseSSL()); + activiti5MailServerInfo.setMailServerUseTLS(mailServerInfo.isMailServerUseTLS()); + activiti5Configuration.getMailServers().put(key, activiti5MailServerInfo); } - - activiti5Configuration.setHistoryLevel(HistoryLevel.getHistoryLevelForKey(activiti6Configuration.getHistoryLevel().getKey())); - - activiti5Configuration.setMailServerDefaultFrom(activiti6Configuration.getMailServerDefaultFrom()); - activiti5Configuration.setMailServerHost(activiti6Configuration.getMailServerHost()); - activiti5Configuration.setMailServerPassword(activiti6Configuration.getMailServerPassword()); - activiti5Configuration.setMailServerPort(activiti6Configuration.getMailServerPort()); - activiti5Configuration.setMailServerUsername(activiti6Configuration.getMailServerUsername()); - activiti5Configuration.setMailServerUseSSL(activiti6Configuration.getMailServerUseSSL()); - activiti5Configuration.setMailServerUseTLS(activiti6Configuration.getMailServerUseTLS()); - if (activiti6Configuration.getMailServers() != null && activiti6Configuration.getMailServers().size() > 0) { - for (String key : activiti6Configuration.getMailServers().keySet()) { - MailServerInfo mailServerInfo = activiti6Configuration.getMailServers().get(key); - org.activiti5.engine.cfg.MailServerInfo activiti5MailServerInfo = new org.activiti5.engine.cfg.MailServerInfo(); - activiti5MailServerInfo.setMailServerDefaultFrom(mailServerInfo.getMailServerDefaultFrom()); - activiti5MailServerInfo.setMailServerHost(mailServerInfo.getMailServerHost()); - activiti5MailServerInfo.setMailServerPassword(mailServerInfo.getMailServerPassword()); - activiti5MailServerInfo.setMailServerPort(mailServerInfo.getMailServerPort()); - activiti5MailServerInfo.setMailServerUsername(mailServerInfo.getMailServerUsername()); - activiti5MailServerInfo.setMailServerUseSSL(mailServerInfo.isMailServerUseSSL()); - activiti5MailServerInfo.setMailServerUseTLS(mailServerInfo.isMailServerUseTLS()); - activiti5Configuration.getMailServers().put(key, activiti5MailServerInfo); - } + } + + if (activiti6Configuration.getMailSessionJndi() != null) { + activiti5Configuration.setMailSessionJndi(activiti6Configuration.getMailSessionJndi()); + } + + activiti5Configuration.setCreateDiagramOnDeploy(activiti6Configuration.isCreateDiagramOnDeploy()); + activiti5Configuration.setProcessDefinitionCacheLimit(activiti6Configuration.getProcessDefinitionCacheLimit()); + + if (activiti6Configuration.isAsyncExecutorEnabled()) { + activiti5Configuration.setAsyncExecutorEnabled(true); + if (activiti6Configuration.isAsyncExecutorActivate()) { + activiti5Configuration.setAsyncExecutorActivate(true); } - - activiti5Configuration.setCreateDiagramOnDeploy(activiti6Configuration.isCreateDiagramOnDeploy()); - activiti5Configuration.setProcessDefinitionCacheLimit(activiti6Configuration.getProcessDefinitionCacheLimit()); - - if (activiti6Configuration.isAsyncExecutorEnabled()) { - activiti5Configuration.setAsyncExecutorEnabled(true); - if (activiti6Configuration.isAsyncExecutorActivate()) { - activiti5Configuration.setAsyncExecutorActivate(true); + } + if (activiti6Configuration.getActiviti5AsyncExecutor() != null) { + AsyncExecutor activiti5AsyncExecutor = (AsyncExecutor) activiti6Configuration.getActiviti5AsyncExecutor(); + activiti5Configuration.setAsyncExecutor(activiti5AsyncExecutor); + } + + activiti5Configuration.setJpaCloseEntityManager(activiti6Configuration.isJpaCloseEntityManager()); + activiti5Configuration.setJpaHandleTransaction(activiti6Configuration.isJpaHandleTransaction()); + activiti5Configuration.setJpaPersistenceUnitName(activiti6Configuration.getJpaPersistenceUnitName()); + + if (activiti6Configuration.getBeans() != null) { + activiti5Configuration.setBeans(activiti6Configuration.getBeans()); + } + + if (activiti6Configuration.getActiviti5ProcessDefinitionCache() != null) { + activiti5Configuration.setProcessDefinitionCache((DeploymentCache) activiti6Configuration.getActiviti5ProcessDefinitionCache()); + } + activiti5Configuration.setProcessDefinitionCacheLimit(activiti6Configuration.getProcessDefinitionCacheLimit()); + + if (activiti6Configuration.getActiviti5KnowledgeBaseCache() != null) { + activiti5Configuration.setKnowledgeBaseCache((DeploymentCache) activiti6Configuration.getActiviti5KnowledgeBaseCache()); + } + activiti5Configuration.setKnowledgeBaseCacheLimit(activiti6Configuration.getKnowledgeBaseCacheLimit()); + + if (activiti6Configuration.getActiviti5ActivityBehaviorFactory() != null) { + activiti5Configuration.setActivityBehaviorFactory((ActivityBehaviorFactory) activiti6Configuration.getActiviti5ActivityBehaviorFactory()); + } + if (activiti6Configuration.getActiviti5ListenerFactory() != null) { + activiti5Configuration.setListenerFactory((ListenerFactory) activiti6Configuration.getActiviti5ListenerFactory()); + } + + convertParseHandlers(activiti6Configuration, activiti5Configuration); + + if (activiti6Configuration.getActiviti5CustomMybatisMappers() != null) { + activiti5Configuration.setCustomMybatisMappers(activiti6Configuration.getActiviti5CustomMybatisMappers()); + } + + if (activiti6Configuration.getActiviti5CustomMybatisXMLMappers() != null) { + activiti5Configuration.setCustomMybatisXMLMappers(activiti6Configuration.getActiviti5CustomMybatisXMLMappers()); + } + + convertEventListeners(activiti6Configuration, activiti5Configuration); + + // check if we need to enable rules deployment for Activiti 5 + if (activiti6Configuration.getCustomPostDeployers() != null) { + List activiti5Deployers = new ArrayList(); + for (Deployer deployer : activiti6Configuration.getCustomPostDeployers()) { + if (deployer instanceof RulesDeployer) { + activiti5Deployers.add(new org.activiti5.engine.impl.rules.RulesDeployer()); + break; } } - if (activiti6Configuration.getActiviti5AsyncExecutor() != null) { - AsyncExecutor activiti5AsyncExecutor = (AsyncExecutor) activiti6Configuration.getActiviti5AsyncExecutor(); - activiti5Configuration.setAsyncExecutor(activiti5AsyncExecutor); - } - activiti5Configuration.setJpaCloseEntityManager(activiti6Configuration.isJpaCloseEntityManager()); - activiti5Configuration.setJpaHandleTransaction(activiti6Configuration.isJpaHandleTransaction()); - activiti5Configuration.setJpaPersistenceUnitName(activiti6Configuration.getJpaPersistenceUnitName()); - - if (activiti6Configuration.getBeans() != null) { - activiti5Configuration.setBeans(activiti6Configuration.getBeans()); - } - - if (activiti6Configuration.getActiviti5ProcessDefinitionCache() != null) { - activiti5Configuration.setProcessDefinitionCache((DeploymentCache) activiti6Configuration.getActiviti5ProcessDefinitionCache()); - } - activiti5Configuration.setProcessDefinitionCacheLimit(activiti6Configuration.getProcessDefinitionCacheLimit()); - - if (activiti6Configuration.getActiviti5KnowledgeBaseCache() != null) { - activiti5Configuration.setKnowledgeBaseCache((DeploymentCache) activiti6Configuration.getActiviti5KnowledgeBaseCache()); - } - activiti5Configuration.setKnowledgeBaseCacheLimit(activiti6Configuration.getKnowledgeBaseCacheLimit()); - - if (activiti6Configuration.getActiviti5ActivityBehaviorFactory() != null) { - activiti5Configuration.setActivityBehaviorFactory((ActivityBehaviorFactory) activiti6Configuration.getActiviti5ActivityBehaviorFactory()); - } - if (activiti6Configuration.getActiviti5ListenerFactory() != null) { - activiti5Configuration.setListenerFactory((ListenerFactory) activiti6Configuration.getActiviti5ListenerFactory()); - } - - convertParseHandlers(activiti6Configuration, activiti5Configuration); - - if (activiti6Configuration.getActiviti5CustomMybatisMappers() != null) { - activiti5Configuration.setCustomMybatisMappers(activiti6Configuration.getActiviti5CustomMybatisMappers()); - } - - if (activiti6Configuration.getActiviti5CustomMybatisXMLMappers() != null) { - activiti5Configuration.setCustomMybatisXMLMappers(activiti6Configuration.getActiviti5CustomMybatisXMLMappers()); - } - - convertEventListeners(activiti6Configuration, activiti5Configuration); - - // check if we need to enable rules deployment for Activiti 5 - if (activiti6Configuration.getCustomPostDeployers() != null) { - List activiti5Deployers = new ArrayList(); - for (Deployer deployer : activiti6Configuration.getCustomPostDeployers()) { - if (deployer instanceof RulesDeployer) { - activiti5Deployers.add(new org.activiti5.engine.impl.rules.RulesDeployer()); - break; - } - } - - if (activiti5Deployers.size() > 0) { - if (activiti5Configuration.getCustomPostDeployers() != null) { - activiti5Configuration.getCustomPostDeployers().addAll(activiti5Deployers); - } else { - activiti5Configuration.setCustomPostDeployers(activiti5Deployers); - } + if (activiti5Deployers.size() > 0) { + if (activiti5Configuration.getCustomPostDeployers() != null) { + activiti5Configuration.getCustomPostDeployers().addAll(activiti5Deployers); + } else { + activiti5Configuration.setCustomPostDeployers(activiti5Deployers); } } - - } else { - throw new ActivitiException("Unsupported process engine configuration"); } - - return activiti5Configuration.buildProcessEngine(); - } protected void convertParseHandlers(ProcessEngineConfigurationImpl activiti6Configuration, org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5Configuration) { diff --git a/modules/activiti5-engine/pom.xml b/modules/activiti5-engine/pom.xml index 7a36e9a287663a74690774f2a332a66832ddb4c7..61234444daf770e828c6b28b9e63d4b756357ebe 100644 --- a/modules/activiti5-engine/pom.xml +++ b/modules/activiti5-engine/pom.xml @@ -14,6 +14,10 @@ + + org.activiti + activiti-engine + org.activiti activiti-bpmn-converter diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/EngineServices.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/ActivitiActivityExecutionException.java similarity index 55% rename from modules/activiti5-engine/src/main/java/org/activiti5/engine/EngineServices.java rename to modules/activiti5-engine/src/main/java/org/activiti5/engine/ActivitiActivityExecutionException.java index 773a7f54f2f1eb6e9b4e99ce4e6ecd5579581f21..1d27c76533e733f7617d33a2c4df13e89829c9b8 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/EngineServices.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/ActivitiActivityExecutionException.java @@ -10,29 +10,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.activiti5.engine; -/** - * Interface implemented by all classes that expose the Activiti services. - * - * @author Joram Barrez - */ -public interface EngineServices { +public class ActivitiActivityExecutionException extends ActivitiException { - RepositoryService getRepositoryService(); - - RuntimeService getRuntimeService(); - - FormService getFormService(); - - TaskService getTaskService(); - - HistoryService getHistoryService(); - - IdentityService getIdentityService(); + private static final long serialVersionUID = 1L; - ManagementService getManagementService(); + public ActivitiActivityExecutionException(String message) { + super(message); + } - ProcessEngineConfiguration getProcessEngineConfiguration(); + public ActivitiActivityExecutionException(String message, Throwable cause) { + super(message, cause); + } } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/HistoryService.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/HistoryService.java index 7e2728b4b5e0c7cb61bf604244ecd15bc8d6f41d..c08a1c88b405886503a4b14bc6aaa8c02c85d0fa 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/HistoryService.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/HistoryService.java @@ -16,6 +16,7 @@ package org.activiti5.engine; import java.util.List; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.history.HistoricActivityInstance; import org.activiti5.engine.history.HistoricActivityInstanceQuery; import org.activiti5.engine.history.HistoricDetail; @@ -34,7 +35,6 @@ import org.activiti5.engine.history.NativeHistoricTaskInstanceQuery; import org.activiti5.engine.history.NativeHistoricVariableInstanceQuery; import org.activiti5.engine.history.ProcessInstanceHistoryLog; import org.activiti5.engine.history.ProcessInstanceHistoryLogQuery; -import org.activiti5.engine.task.IdentityLink; /** * Service exposing information about ongoing and past process instances. This is different diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/IdentityService.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/IdentityService.java index f98588655cee666e6dd0955408c2b464f4e3003e..f8e91cd985176f3eeba52278d6186a5ccc934c91 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/IdentityService.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/IdentityService.java @@ -12,6 +12,8 @@ */ package org.activiti5.engine; +import java.util.List; + import org.activiti5.engine.identity.Group; import org.activiti5.engine.identity.GroupQuery; import org.activiti5.engine.identity.NativeGroupQuery; @@ -20,8 +22,6 @@ import org.activiti5.engine.identity.Picture; import org.activiti5.engine.identity.User; import org.activiti5.engine.identity.UserQuery; -import java.util.List; - /** * Service to manage {@link User}s and {@link Group}s. diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/ProcessEngine.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/ProcessEngine.java index 3a48a3a424b981034b1134f60a219e981c76e547..d9e18c50de8a0e9da865ccd97b0a3406df1d63a5 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/ProcessEngine.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/ProcessEngine.java @@ -12,6 +12,7 @@ */ package org.activiti5.engine; + /** * Provides access to all the services that expose the BPM and workflow operations. * @@ -46,7 +47,7 @@ package org.activiti5.engine; * @author Tom Baeyens * @author Joram Barrez */ -public interface ProcessEngine extends EngineServices { +public interface ProcessEngine { /** the version of the activiti library */ public static String VERSION = "6.0.0.0"; @@ -57,4 +58,20 @@ public interface ProcessEngine extends EngineServices { String getName(); void close(); + + RepositoryService getRepositoryService(); + + RuntimeService getRuntimeService(); + + FormService getFormService(); + + TaskService getTaskService(); + + HistoryService getHistoryService(); + + IdentityService getIdentityService(); + + ManagementService getManagementService(); + + ProcessEngineConfiguration getProcessEngineConfiguration(); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/ProcessEngineConfiguration.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/ProcessEngineConfiguration.java index ab703618c76d8014679442beb3637da9bd763327..165f94c2e1025e0b8a46529ea83412b8ce30d698 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/ProcessEngineConfiguration.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/ProcessEngineConfiguration.java @@ -82,7 +82,7 @@ import org.activiti5.engine.runtime.Clock; * @see ProcessEngines * @author Tom Baeyens */ -public abstract class ProcessEngineConfiguration implements EngineServices { +public abstract class ProcessEngineConfiguration { /** Checks the version of the DB schema against the library when * the process engine is being created and throws an exception @@ -253,6 +253,21 @@ public abstract class ProcessEngineConfiguration implements EngineServices { // return new JtaProcessEngineConfiguration(); // } + public abstract RepositoryService getRepositoryService(); + + public abstract RuntimeService getRuntimeService(); + + public abstract FormService getFormService(); + + public abstract TaskService getTaskService(); + + public abstract HistoryService getHistoryService(); + + public abstract IdentityService getIdentityService(); + + public abstract ManagementService getManagementService(); + + public abstract ProcessEngineConfiguration getProcessEngineConfiguration(); // getters and setters ////////////////////////////////////////////////////// diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/RepositoryService.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/RepositoryService.java index 0ea6bf6e872207879b13a0dc986be3a025d8b138..e4207e617cf00e6574c0feb7db6329173b7d8a55 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/RepositoryService.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/RepositoryService.java @@ -13,7 +13,12 @@ package org.activiti5.engine; +import java.io.InputStream; +import java.util.Date; +import java.util.List; + import org.activiti.bpmn.model.BpmnModel; +import org.activiti.engine.task.IdentityLink; import org.activiti.validation.ValidationError; import org.activiti5.engine.repository.DeploymentBuilder; import org.activiti5.engine.repository.DeploymentQuery; @@ -25,11 +30,6 @@ import org.activiti5.engine.repository.NativeModelQuery; import org.activiti5.engine.repository.NativeProcessDefinitionQuery; import org.activiti5.engine.repository.ProcessDefinition; import org.activiti5.engine.repository.ProcessDefinitionQuery; -import org.activiti5.engine.task.IdentityLink; - -import java.io.InputStream; -import java.util.Date; -import java.util.List; /** Service providing access to the repository of process definitions and deployments. * diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/RuntimeService.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/RuntimeService.java index 29ae10631300b3a618c19470c6d8a99e6f1e93fd..3d1cf615c7db195e2f171a7e5db4653e42067203 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/RuntimeService.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/RuntimeService.java @@ -16,7 +16,8 @@ import java.util.Collection; import java.util.List; import java.util.Map; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.delegate.event.ActivitiEvent; import org.activiti5.engine.delegate.event.ActivitiEventDispatcher; import org.activiti5.engine.delegate.event.ActivitiEventListener; @@ -29,7 +30,6 @@ import org.activiti5.engine.runtime.ProcessInstance; import org.activiti5.engine.runtime.ProcessInstanceBuilder; import org.activiti5.engine.runtime.ProcessInstanceQuery; import org.activiti5.engine.task.Event; -import org.activiti5.engine.task.IdentityLink; import org.activiti5.engine.task.IdentityLinkType; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/TaskService.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/TaskService.java index 72c43c3d83b6e3da4dbf8f4825cd9e2f5c67f38e..6438028e561810ecc6a4ed742de9bd8d66fb3f8e 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/TaskService.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/TaskService.java @@ -18,11 +18,12 @@ import java.util.Date; import java.util.List; import java.util.Map; +import org.activiti.engine.task.DelegationState; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.query.NativeQuery; import org.activiti5.engine.task.Attachment; import org.activiti5.engine.task.Comment; import org.activiti5.engine.task.Event; -import org.activiti5.engine.task.IdentityLink; import org.activiti5.engine.task.IdentityLinkType; import org.activiti5.engine.task.NativeTaskQuery; import org.activiti5.engine.task.Task; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/BpmnError.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/BpmnError.java index 79df98b3b0d9c17b8ec92338b19c3dcdeee6e72b..828415af46f4847aced0f0a696efdbe91cae9022 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/BpmnError.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/BpmnError.java @@ -13,6 +13,7 @@ package org.activiti5.engine.delegate; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.impl.bpmn.parser.Error; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/DelegateExecution.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/DelegateExecution.java deleted file mode 100644 index 39b48145cfe51c8aefc5eaa4331e8228668f6dd6..0000000000000000000000000000000000000000 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/DelegateExecution.java +++ /dev/null @@ -1,85 +0,0 @@ -/* 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.delegate; - -import org.activiti5.engine.EngineServices; - - - -/** - * Execution used in {@link JavaDelegate}s and {@link ExecutionListener}s. - * - * @author Tom Baeyens - */ -public interface DelegateExecution extends VariableScope { - - /** Unique id of this path of execution that can be used as a handle to provide external signals back into the engine after wait states. */ - String getId(); - - /** Reference to the overall process instance */ - String getProcessInstanceId(); - - /** The {@link ExecutionListener#EVENTNAME_START event name} in case this execution is passed in for an {@link ExecutionListener} */ - String getEventName(); - - /** The business key for this execution. Only returns a value if the delegate execution - * is a process instance. - * - * @deprecated use {@link #getProcessBusinessKey()} to get the business key for the process - * associated with this execution, regardless whether or not this execution is a - * process-instance. - */ - String getBusinessKey(); - - /** - * The business key for the process instance this execution is associated with. - */ - String getProcessBusinessKey(); - - /** - * The process definition key for the process instance this execution is associated with. - */ - String getProcessDefinitionId(); - - /** - * Gets the id of the parent of this execution. If null, the execution represents a process-instance. - */ - String getParentId(); - - /** - * Gets the id of the calling execution. If not null, the execution is part of a subprocess. - */ - String getSuperExecutionId(); - - /** - * Gets the id of the current activity. - */ - String getCurrentActivityId(); - - /** - * Gets the name of the current activity. - */ - String getCurrentActivityName(); - - /** - * Returns the tenant id, if any is set before on the process definition or process instance. - */ - String getTenantId(); - - /** - * All Activiti services can be accessed through this interface. - */ - EngineServices getEngineServices(); - -} diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/DelegateTask.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/DelegateTask.java deleted file mode 100644 index 8a7af53707349e72e25307e3a1bb4ce4a156ee88..0000000000000000000000000000000000000000 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/DelegateTask.java +++ /dev/null @@ -1,179 +0,0 @@ -/* 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.delegate; - -import java.util.Collection; -import java.util.Date; -import java.util.Set; - -import org.activiti5.engine.ActivitiObjectNotFoundException; -import org.activiti5.engine.task.DelegationState; -import org.activiti5.engine.task.IdentityLink; -import org.activiti5.engine.task.IdentityLinkType; - -/** - * @author Joram Barrez - */ -public interface DelegateTask extends VariableScope { - - /** DB id of the task. */ - String getId(); - - /** Name or title of the task. */ - String getName(); - - /** Change the name of the task. */ - void setName(String name); - - /** Free text description of the task. */ - String getDescription(); - - /** Change the description of the task */ - void setDescription(String description); - - /** indication of how important/urgent this task is with a number between - * 0 and 100 where higher values mean a higher priority and lower values mean - * lower priority: [0..19] lowest, [20..39] low, [40..59] normal, [60..79] high - * [80..100] highest */ - int getPriority(); - - /** indication of how important/urgent this task is with a number between - * 0 and 100 where higher values mean a higher priority and lower values mean - * lower priority: [0..19] lowest, [20..39] low, [40..59] normal, [60..79] high - * [80..100] highest */ - void setPriority(int priority); - - /** Reference to the process instance or null if it is not related to a process instance. */ - String getProcessInstanceId(); - - /** Reference to the path of execution or null if it is not related to a process instance. */ - String getExecutionId(); - - /** Reference to the process definition or null if it is not related to a process. */ - String getProcessDefinitionId(); - - /** The date/time when this task was created */ - Date getCreateTime(); - - /** The id of the activity in the process defining this task or null if this is not related to a process */ - String getTaskDefinitionKey(); - - /** Indicated whether this task is suspended or not. */ - boolean isSuspended(); - - /** The tenant identifier of this task */ - String getTenantId(); - - /** The form key for the user task */ - String getFormKey(); - - /** Change the form key of the task */ - void setFormKey(String formKey); - - /** Returns the execution currently at the task. */ - DelegateExecution getExecution(); - - /** Returns the event name which triggered the task listener to fire for this task. */ - String getEventName(); - - /** The current {@link org.activiti5.engine.task.DelegationState} for this task. */ - DelegationState getDelegationState(); - - /** Adds the given user as a candidate user to this task. */ - void addCandidateUser(String userId); - - /** Adds multiple users as candidate user to this task. */ - void addCandidateUsers(Collection candidateUsers); - - /** Adds the given group as candidate group to this task */ - void addCandidateGroup(String groupId); - - /** Adds multiple groups as candidate group to this task. */ - void addCandidateGroups(Collection candidateGroups); - - /** The {@link User.getId() userId} of the person responsible for this task. */ - String getOwner(); - - /** The {@link User.getId() userId} of the person responsible for this task.*/ - void setOwner(String owner); - - /** The {@link User.getId() userId} of the person to which this task is delegated. */ - String getAssignee(); - - /** The {@link User.getId() userId} of the person to which this task is delegated. */ - void setAssignee(String assignee); - - /** Due date of the task. */ - Date getDueDate(); - - /** Change due date of the task. */ - void setDueDate(Date dueDate); - - /** The category of the task. This is an optional field and allows to 'tag' tasks as belonging to a certain category. */ - String getCategory(); - - /** Change the category of the task. This is an optional field and allows to 'tag' tasks as belonging to a certain category. */ - void setCategory(String category); - - /** - * Involves a user with a task. The type of identity link is defined by the given identityLinkType. - * @param userId id of the user involve, cannot be null. - * @param identityLinkType type of identityLink, cannot be null (@see {@link IdentityLinkType}). - * @throws ActivitiObjectNotFoundException when the task or user doesn't exist. - */ - void addUserIdentityLink(String userId, String identityLinkType); - - /** - * Involves a group with group task. The type of identityLink is defined by the given identityLink. - * @param groupId id of the group to involve, cannot be null. - * @param identityLinkType type of identity, cannot be null (@see {@link IdentityLinkType}). - * @throws ActivitiObjectNotFoundException when the task or group doesn't exist. - */ - void addGroupIdentityLink(String groupId, String identityLinkType); - - /** - * Convenience shorthand for {@link #deleteUserIdentityLink(String, String)}; with type {@link IdentityLinkType#CANDIDATE} - * @param userId id of the user to use as candidate, cannot be null. - * @throws ActivitiObjectNotFoundException when the task or user doesn't exist. - */ - void deleteCandidateUser(String userId); - - /** - * Convenience shorthand for {@link #deleteGroupIdentityLink(String, String, String)}; with type {@link IdentityLinkType#CANDIDATE} - * @param groupId id of the group to use as candidate, cannot be null. - * @throws ActivitiObjectNotFoundException when the task or group doesn't exist. - */ - void deleteCandidateGroup(String groupId); - - /** - * Removes the association between a user and a task for the given identityLinkType. - * @param userId id of the user involve, cannot be null. - * @param identityLinkType type of identityLink, cannot be null (@see {@link IdentityLinkType}). - * @throws ActivitiObjectNotFoundException when the task or user doesn't exist. - */ - void deleteUserIdentityLink(String userId, String identityLinkType); - - /** - * Removes the association between a group and a task for the given identityLinkType. - * @param groupId id of the group to involve, cannot be null. - * @param identityLinkType type of identity, cannot be null (@see {@link IdentityLinkType}). - * @throws ActivitiObjectNotFoundException when the task or group doesn't exist. - */ - void deleteGroupIdentityLink(String groupId, String identityLinkType); - - /** - * Retrieves the candidate users and groups associated with the task. - * @return set of {@link IdentityLink}s of type {@link IdentityLinkType#CANDIDATE}. - */ - Set getCandidates(); -} diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/JavaDelegate.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/JavaDelegate.java deleted file mode 100644 index d34c793592520bb1fe95a35a36d8f7c988ea0f20..0000000000000000000000000000000000000000 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/JavaDelegate.java +++ /dev/null @@ -1,35 +0,0 @@ -/* 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.delegate; - - -/** - * Convience class that should be used when a Java delegation in a BPMN 2.0 - * process is required (for example, to call custom business logic). - * - * This class can be used for both service tasks and event listeners. - * - * This class does not allow to influence the control flow. It follows the - * default BPMN 2.0 behavior of taking every outgoing sequence flow (which has a - * condition that evaluates to true if there is a condition defined) If you are - * in need of influencing the flow in your process, use the - * class 'org.activiti5.engine.impl.pvm.delegate.ActivityBehavior' instead. - * - * @author Joram Barrez - */ -public interface JavaDelegate { - - void execute(DelegateExecution execution) throws Exception; - -} diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/JavaDelegateHelper.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/JavaDelegateHelper.java index fdff98d7dacebeb2edd12467e9073e772046364d..5fd6d2d3d6125c1852c8fb09050e4f88245e8209 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/JavaDelegateHelper.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/JavaDelegateHelper.java @@ -13,6 +13,8 @@ package org.activiti5.engine.delegate; +import org.activiti.engine.delegate.JavaDelegate; + /** * Class that provides helper operations for use in the {@link JavaDelegate} class. * diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/TaskListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/TaskListener.java deleted file mode 100644 index a9026e22806fadb3447f867440dfa197c708218e..0000000000000000000000000000000000000000 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/TaskListener.java +++ /dev/null @@ -1,40 +0,0 @@ -/* 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.delegate; - -import java.io.Serializable; - - - - - -/** - * @author Tom Baeyens - */ -public interface TaskListener extends Serializable { - - String EVENTNAME_CREATE = "create"; - String EVENTNAME_ASSIGNMENT = "assignment"; - String EVENTNAME_COMPLETE = "complete"; - String EVENTNAME_DELETE = "delete"; - - - /** - * Not an actual event, used as a marker-value for {@link TaskListener}s that should be called for all events, - * including {@link #EVENTNAME_CREATE}, {@link #EVENTNAME_ASSIGNMENT} and {@link #EVENTNAME_COMPLETE} and {@link #EVENTNAME_DELETE}. - */ - String EVENTNAME_ALL_EVENTS = "all"; - - void notify(DelegateTask delegateTask); -} diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/VariableScope.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/VariableScope.java deleted file mode 100644 index be2e7c5c225f2673f782f22d3b6777794dde7b12..0000000000000000000000000000000000000000 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/VariableScope.java +++ /dev/null @@ -1,152 +0,0 @@ -/* 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.delegate; - -import java.util.Collection; -import java.util.Map; -import java.util.Set; - -/** - * @author Tom Baeyens - * @author Joram Barrez - */ -public interface VariableScope { - - Map getVariables(); - - Map getVariables(Collection variableNames); - - Map getVariables(Collection variableNames, boolean fetchAllVariables); - - Map getVariablesLocal(); - - Map getVariablesLocal(Collection variableNames); - - Map getVariablesLocal(Collection variableNames, boolean fetchAllVariables); - - Object getVariable(String variableName); - - Object getVariable(String variableName, boolean fetchAllVariables); - - Object getVariableLocal(String variableName); - - Object getVariableLocal(String variableName, boolean fetchAllVariables); - - T getVariable(String variableName, Class variableClass); - - T getVariableLocal(String variableName, Class variableClass); - - Set getVariableNames(); - - Set getVariableNamesLocal(); - - /** - * Sets the variable with the provided name to the provided value. - * - *

- * A variable is set according to the following algorithm: - * - *

- *

  • If this scope already contains a variable by the provided name as a - * local variable, its value is overwritten to the provided - * value.
  • - *
  • If this scope does not contain a variable by the - * provided name as a local variable, the variable is set to this scope's - * parent scope, if there is one. If there is no parent scope (meaning this - * scope is the root scope of the hierarchy it belongs to), this scope is - * used. This applies recursively up the parent scope chain until, if no scope - * contains a local variable by the provided name, ultimately the root scope - * is reached and the variable value is set on that scope.
  • - *

    - * In practice for most cases, this algorithm will set variables to the scope - * of the execution at the process instance’s root level, if there is no - * execution-local variable by the provided name. - * - * @param variableName - * the name of the variable to be set - * @param value - * the value of the variable to be set - */ - void setVariable(String variableName, Object value); - - void setVariable(String variableName, Object value, boolean fetchAllVariables); - - Object setVariableLocal(String variableName, Object value); - - Object setVariableLocal(String variableName, Object value, boolean fetchAllVariables); - - /** - * Sets the provided variables to the variable scope. - * - *

    - * Variables are set according algorithm for - * {@link #setVariable(String, Object)}, applied separately to each variable. - * - * @see #setVariable(String, Object) - * {@link VariableScope#setVariable(String, Object)} - * - * @param variables - * a map of keys and values for the variables to be set - */ - void setVariables(Map variables); - - void setVariablesLocal(Map variables); - - boolean hasVariables(); - - boolean hasVariablesLocal(); - - boolean hasVariable(String variableName); - - boolean hasVariableLocal(String variableName); - - void createVariableLocal(String variableName, Object value); - - /** - * Removes the variable and creates a new {@link HistoricVariableUpdateEntity} - * . - */ - void removeVariable(String variableName); - - /** - * Removes the local variable and creates a new - * {@link HistoricVariableUpdateEntity}. - */ - void removeVariableLocal(String variableName); - - /** - * Removes the variables and creates a new - * {@link HistoricVariableUpdateEntity} for each of them. - */ - void removeVariables(Collection variableNames); - - /** - * Removes the local variables and creates a new - * {@link HistoricVariableUpdateEntity} for each of them. - */ - void removeVariablesLocal(Collection variableNames); - - /** - * Removes the (local) variables and creates a new - * {@link HistoricVariableUpdateEntity} for each of them. - */ - void removeVariables(); - - /** - * Removes the (local) variables and creates a new - * {@link HistoricVariableUpdateEntity} for each of them. - */ - void removeVariablesLocal(); - -} \ No newline at end of file diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/ActivitiEvent.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/ActivitiEvent.java index 590971e9fc44252eba7363bcde84951c9487f0b4..e2766abb97543cea71cc9d73a18cf7f0f28cd257 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/ActivitiEvent.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/ActivitiEvent.java @@ -12,7 +12,6 @@ */ package org.activiti5.engine.delegate.event; -import org.activiti5.engine.EngineServices; /** * Describes an event that occurred in the Activiti Engine which is dispatched to external @@ -45,11 +44,4 @@ public interface ActivitiEvent { * was not dispatched from within an active execution. */ String getProcessDefinitionId(); - - /** - * @return the {@link EngineServices} associated to the engine this event - * originated from. Returns null, when not called from within a listener call or when no - * Activiti context is active. - */ - EngineServices getEngineServices(); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/impl/ActivitiEventBuilder.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/impl/ActivitiEventBuilder.java index e1d5127b1690e15a4fe0890263fb3d2f13a37f92..7bb0ff15d7185e49d95f6786dadf8d57cbeae8aa 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/impl/ActivitiEventBuilder.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/impl/ActivitiEventBuilder.java @@ -14,7 +14,7 @@ package org.activiti5.engine.delegate.event.impl; import java.util.Map; -import org.activiti5.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateExecution; import org.activiti5.engine.delegate.event.ActivitiActivityCancelledEvent; import org.activiti5.engine.delegate.event.ActivitiActivityEvent; import org.activiti5.engine.delegate.event.ActivitiCancelledEvent; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/impl/ActivitiEventImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/impl/ActivitiEventImpl.java index 2d4e39f6eb4561f6956c63e6ba4ee9c865798f90..c3de4e91a38bbb86cff06965ea1e39ff4467bc60 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/impl/ActivitiEventImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/event/impl/ActivitiEventImpl.java @@ -13,10 +13,8 @@ package org.activiti5.engine.delegate.event.impl; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.EngineServices; import org.activiti5.engine.delegate.event.ActivitiEvent; import org.activiti5.engine.delegate.event.ActivitiEventType; -import org.activiti5.engine.impl.context.Context; /** * Base class for all {@link ActivitiEvent} implementations. @@ -82,9 +80,4 @@ public class ActivitiEventImpl implements ActivitiEvent { public void setProcessInstanceId(String processInstanceId) { this.processInstanceId = processInstanceId; } - - @Override - public EngineServices getEngineServices() { - return Context.getProcessEngineConfiguration(); - } } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/history/HistoricIdentityLink.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/history/HistoricIdentityLink.java index 027cc90c7944ebb598cc358a3274ee1203c5df2c..357ad5af44ef9be6c2a2fe4857532b32a7a31b95 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/history/HistoricIdentityLink.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/history/HistoricIdentityLink.java @@ -13,9 +13,9 @@ package org.activiti5.engine.history; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.identity.GroupQuery; import org.activiti5.engine.identity.UserQuery; -import org.activiti5.engine.task.IdentityLink; import org.activiti5.engine.task.IdentityLinkType; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/Condition.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/Condition.java index e9d83470c31e8ff7cd5ecd9ab30395ed19fb5cfa..f3afe5f6044234a1e9712d7fb07b160f45f2a85c 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/Condition.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/Condition.java @@ -14,7 +14,7 @@ package org.activiti5.engine.impl; import java.io.Serializable; -import org.activiti5.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateExecution; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/ExecutionQueryImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/ExecutionQueryImpl.java index 4b84b848530a64fd4b43db74a562d072b7373cae..ab1348a398b914df325fcfd29bb82ef528d6f87e 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/ExecutionQueryImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/ExecutionQueryImpl.java @@ -12,6 +12,10 @@ */ package org.activiti5.engine.impl; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.interceptor.CommandExecutor; @@ -19,10 +23,6 @@ import org.activiti5.engine.impl.persistence.entity.SuspensionState; import org.activiti5.engine.runtime.Execution; import org.activiti5.engine.runtime.ExecutionQuery; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - /** * @author Joram Barrez diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/IdentityServiceImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/IdentityServiceImpl.java index dcadf5b36d71d20054b069305520d376fc4b94cf..7440ddc2f5db7d6fc07de9e5c17421d902d16148 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/IdentityServiceImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/IdentityServiceImpl.java @@ -12,6 +12,8 @@ */ package org.activiti5.engine.impl; +import java.util.List; + import org.activiti5.engine.IdentityService; import org.activiti5.engine.identity.Group; import org.activiti5.engine.identity.GroupQuery; @@ -38,11 +40,8 @@ import org.activiti5.engine.impl.cmd.SaveUserCmd; import org.activiti5.engine.impl.cmd.SetUserInfoCmd; import org.activiti5.engine.impl.cmd.SetUserPictureCmd; import org.activiti5.engine.impl.identity.Authentication; -import org.activiti5.engine.impl.persistence.entity.GroupEntity; import org.activiti5.engine.impl.persistence.entity.IdentityInfoEntity; -import java.util.List; - /** * @author Tom Baeyens diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeDeploymentQueryImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeDeploymentQueryImpl.java index b54a35af0b0000195d2a44eea5f2bf4e43043492..475100d75b01656baf52b0d6550fa185ec445ff3 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeDeploymentQueryImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeDeploymentQueryImpl.java @@ -1,13 +1,13 @@ package org.activiti5.engine.impl; +import java.util.List; +import java.util.Map; + import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.interceptor.CommandExecutor; import org.activiti5.engine.repository.Deployment; import org.activiti5.engine.repository.NativeDeploymentQuery; -import java.util.List; -import java.util.Map; - public class NativeDeploymentQueryImpl extends AbstractNativeQuery implements NativeDeploymentQuery { private static final long serialVersionUID = 1L; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeGroupQueryImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeGroupQueryImpl.java index d96b49f4143542c651be8b36baa42199a4b1d0a9..b689fffa1a1a7bb5f6d3f72d9b0e0ed78a63711f 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeGroupQueryImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeGroupQueryImpl.java @@ -1,13 +1,13 @@ package org.activiti5.engine.impl; +import java.util.List; +import java.util.Map; + import org.activiti5.engine.identity.Group; import org.activiti5.engine.identity.NativeGroupQuery; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.interceptor.CommandExecutor; -import java.util.List; -import java.util.Map; - public class NativeGroupQueryImpl extends AbstractNativeQuery implements NativeGroupQuery { private static final long serialVersionUID = 1L; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeModelQueryImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeModelQueryImpl.java index a749184fc1f74869d89fdc17ebad3b849b6018b9..ee9203715b992c1524a1e809721bb415901be73d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeModelQueryImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeModelQueryImpl.java @@ -1,13 +1,13 @@ package org.activiti5.engine.impl; +import java.util.List; +import java.util.Map; + import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.interceptor.CommandExecutor; import org.activiti5.engine.repository.Model; import org.activiti5.engine.repository.NativeModelQuery; -import java.util.List; -import java.util.Map; - public class NativeModelQueryImpl extends AbstractNativeQuery implements NativeModelQuery { private static final long serialVersionUID = 1L; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeProcessDefinitionQueryImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeProcessDefinitionQueryImpl.java index 9d73921def54e8bf1e1adc05dcb5ab3957b5c769..72dbd212844b69249e2eead644638c0a5d2361ba 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeProcessDefinitionQueryImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeProcessDefinitionQueryImpl.java @@ -1,13 +1,13 @@ package org.activiti5.engine.impl; +import java.util.List; +import java.util.Map; + import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.interceptor.CommandExecutor; import org.activiti5.engine.repository.NativeProcessDefinitionQuery; import org.activiti5.engine.repository.ProcessDefinition; -import java.util.List; -import java.util.Map; - public class NativeProcessDefinitionQueryImpl extends AbstractNativeQuery implements NativeProcessDefinitionQuery { private static final long serialVersionUID = 1L; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeUserQueryImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeUserQueryImpl.java index 1f920ece204b9dd4bbdf4ddd7ff94b6489b375d3..f8df19944db8cb8ebb7ad321f6eaff11ca2ef851 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeUserQueryImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/NativeUserQueryImpl.java @@ -1,13 +1,13 @@ package org.activiti5.engine.impl; +import java.util.List; +import java.util.Map; + import org.activiti5.engine.identity.NativeUserQuery; import org.activiti5.engine.identity.User; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.interceptor.CommandExecutor; -import java.util.List; -import java.util.Map; - public class NativeUserQueryImpl extends AbstractNativeQuery implements NativeUserQuery { private static final long serialVersionUID = 1L; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/RepositoryServiceImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/RepositoryServiceImpl.java index 60de5f590e6bacd45515a94c6b36edaaf7ce34ae..ffd1133beab5cca0ac1a264712fe880b43167651 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/RepositoryServiceImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/RepositoryServiceImpl.java @@ -18,6 +18,7 @@ import java.util.Date; import java.util.List; import org.activiti.bpmn.model.BpmnModel; +import org.activiti.engine.task.IdentityLink; import org.activiti.validation.ValidationError; import org.activiti5.engine.RepositoryService; import org.activiti5.engine.impl.cmd.ActivateProcessDefinitionCmd; @@ -60,7 +61,6 @@ import org.activiti5.engine.repository.NativeModelQuery; import org.activiti5.engine.repository.NativeProcessDefinitionQuery; import org.activiti5.engine.repository.ProcessDefinition; import org.activiti5.engine.repository.ProcessDefinitionQuery; -import org.activiti5.engine.task.IdentityLink; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/RuntimeServiceImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/RuntimeServiceImpl.java index bfaf9e9cf591cdd86feec9791d24243dd0e80f6d..ad5bd7df2ede852856bf47a9d2b39702b9c405b4 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/RuntimeServiceImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/RuntimeServiceImpl.java @@ -18,6 +18,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.RuntimeService; import org.activiti5.engine.delegate.event.ActivitiEvent; @@ -56,7 +57,6 @@ import org.activiti5.engine.runtime.ProcessInstance; import org.activiti5.engine.runtime.ProcessInstanceBuilder; import org.activiti5.engine.runtime.ProcessInstanceQuery; import org.activiti5.engine.task.Event; -import org.activiti5.engine.task.IdentityLink; import org.activiti5.engine.task.IdentityLinkType; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/TaskQueryImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/TaskQueryImpl.java index 478b96450fd7026ef1a3ef95f71f162b3293b5cd..8494e6c939b018bde6aa9c9175b463a6af08c092 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/TaskQueryImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/TaskQueryImpl.java @@ -16,6 +16,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import org.activiti.engine.task.DelegationState; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.identity.Group; @@ -24,7 +25,6 @@ import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.interceptor.CommandExecutor; import org.activiti5.engine.impl.persistence.entity.SuspensionState; import org.activiti5.engine.impl.variable.VariableTypes; -import org.activiti5.engine.task.DelegationState; import org.activiti5.engine.task.Task; import org.activiti5.engine.task.TaskQuery; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/TaskServiceImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/TaskServiceImpl.java index 30f6d2427df5c86a903a4343f38451ffb7dd5c20..0dbc003350c6a9758a30dc27175955ec44c3f3f3 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/TaskServiceImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/TaskServiceImpl.java @@ -20,6 +20,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.TaskService; import org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl; @@ -60,7 +61,6 @@ import org.activiti5.engine.impl.cmd.SetTaskVariablesCmd; import org.activiti5.engine.task.Attachment; import org.activiti5.engine.task.Comment; import org.activiti5.engine.task.Event; -import org.activiti5.engine.task.IdentityLink; import org.activiti5.engine.task.IdentityLinkType; import org.activiti5.engine.task.NativeTaskQuery; import org.activiti5.engine.task.Task; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BoundaryEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BoundaryEventActivityBehavior.java index 59b5390f8b12530aa547c1f52849c4e8948dbb94..39a76f24d392a2e99d1ab3dcbb1416eef44c1bbd 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BoundaryEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BoundaryEventActivityBehavior.java @@ -40,7 +40,7 @@ public class BoundaryEventActivityBehavior extends FlowNodeActivityBehavior { } @SuppressWarnings("unchecked") - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { ExecutionEntity executionEntity = (ExecutionEntity) execution; ActivityImpl boundaryActivity = executionEntity.getProcessDefinition().findActivity(activityId); ActivityImpl interruptedActivity = executionEntity.getActivity(); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BpmnActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BpmnActivityBehavior.java index 204490f4900b181e65c779aea5653b3d903f47c6..6d020d3ac90a0eb0e18cd5497769822a9fb2ef8a 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BpmnActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BpmnActivityBehavior.java @@ -18,8 +18,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.Condition; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BusinessRuleTaskActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BusinessRuleTaskActivityBehavior.java index 8c3519372510e34bc787d61067de587f13057c13..508333400b2bb689b9e8b8f4447b5b2b6932ad5d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BusinessRuleTaskActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/BusinessRuleTaskActivityBehavior.java @@ -18,7 +18,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.pvm.PvmProcessDefinition; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; import org.activiti5.engine.impl.rules.RulesAgendaFilter; @@ -41,7 +41,7 @@ public class BusinessRuleTaskActivityBehavior extends TaskActivityBehavior { public BusinessRuleTaskActivityBehavior() {} - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { PvmProcessDefinition processDefinition = execution.getActivity().getProcessDefinition(); String deploymentId = processDefinition.getDeploymentId(); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CallActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CallActivityBehavior.java index 445c52390a549167eb28f8fbfcac815c470f2d90..a063c8160af5f1e79dfdf5803d47a68f3ac2463d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CallActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CallActivityBehavior.java @@ -17,22 +17,17 @@ import java.util.ArrayList; import java.util.List; import org.activiti.bpmn.model.MapExceptionEntry; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.ActivitiObjectNotFoundException; import org.activiti5.engine.ProcessEngineConfiguration; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.data.AbstractDataAssociation; import org.activiti5.engine.impl.bpmn.helper.ErrorPropagation; import org.activiti5.engine.impl.context.Context; -import org.activiti5.engine.impl.persistence.deploy.DeploymentManager; import org.activiti5.engine.impl.persistence.entity.ProcessDefinitionEntity; import org.activiti5.engine.impl.pvm.PvmProcessInstance; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; import org.activiti5.engine.impl.pvm.delegate.SubProcessActivityBehavior; -import org.activiti5.engine.impl.pvm.process.ProcessDefinitionImpl; -import org.activiti5.engine.repository.ProcessDefinition; /** @@ -68,7 +63,7 @@ public class CallActivityBehavior extends AbstractBpmnActivityBehavior implement this.dataOutputAssociations.add(dataOutputAssociation); } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { String processDefinitonKey = this.processDefinitonKey; if (processDefinitionExpression != null) { @@ -110,7 +105,7 @@ public class CallActivityBehavior extends AbstractBpmnActivityBehavior implement try { subProcessInstance.start(); - } catch (Exception e) { + } catch (RuntimeException e) { if (!ErrorPropagation.mapException(e, execution, mapExceptions, true)) throw e; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CancelBoundaryEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CancelBoundaryEventActivityBehavior.java index 1542a6055fe69f12a6228574230609e9c5ffc883..85aff2b40890e6d626cd626b0ad4f04a971702af 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CancelBoundaryEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CancelBoundaryEventActivityBehavior.java @@ -27,7 +27,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; public class CancelBoundaryEventActivityBehavior extends FlowNodeActivityBehavior { @Override - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { List eventSubscriptions = ((ExecutionEntity)execution).getCompensateEventSubscriptions(); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CancelEndEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CancelEndEventActivityBehavior.java index 26b79d47a5e73bb2629dd6b52328538726a84816..adad9691b287afa7a8f1c520e7db326752959855 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CancelEndEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/CancelEndEventActivityBehavior.java @@ -28,7 +28,7 @@ import org.activiti5.engine.impl.pvm.runtime.InterpretableExecution; public class CancelEndEventActivityBehavior extends FlowNodeActivityBehavior { @Override - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { // find cancel boundary event: ActivityImpl cancelBoundaryEvent = ScopeUtil diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ErrorEndEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ErrorEndEventActivityBehavior.java index 6505dc229b3e6e536a8228fa746c5940c227219e..33e89b959658cfceb304c3c967bbb1ccb45ed495 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ErrorEndEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ErrorEndEventActivityBehavior.java @@ -28,7 +28,7 @@ public class ErrorEndEventActivityBehavior extends FlowNodeActivityBehavior { this.errorCode = errorCode; } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { ErrorPropagation.propagateError(errorCode, execution); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/EventBasedGatewayActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/EventBasedGatewayActivityBehavior.java index 61d076690c1a8c6f87f15d40bc68eb8eb95529f2..f379975fee116e8abf04fad1ebf5ff2a554a25cf 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/EventBasedGatewayActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/EventBasedGatewayActivityBehavior.java @@ -22,7 +22,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; public class EventBasedGatewayActivityBehavior extends FlowNodeActivityBehavior { @Override - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { // the event based gateway doesn't really do anything // ignoring outgoing sequence flows (they're only parsed for the diagram) } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/EventSubProcessStartEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/EventSubProcessStartEventActivityBehavior.java index 8bf9be9f944c814ce34925e5139813c26fd6b5fb..f9948e851edcd4979ac8c14464fa3b0494795c25 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/EventSubProcessStartEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/EventSubProcessStartEventActivityBehavior.java @@ -39,7 +39,7 @@ public class EventSubProcessStartEventActivityBehavior extends NoneStartEventAct } @Override - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { InterpretableExecution interpretableExecution = (InterpretableExecution) execution; ActivityImpl activity = interpretableExecution.getProcessDefinition().findActivity(activityId); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ExclusiveGatewayActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ExclusiveGatewayActivityBehavior.java index 12cbc049cbf0655d26c3a0c7483ebb06991e9649..0ffd13d6d804d7496b155c4210a2f73d6b62c4de 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ExclusiveGatewayActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ExclusiveGatewayActivityBehavior.java @@ -14,8 +14,8 @@ package org.activiti5.engine.impl.bpmn.behavior; import java.util.Iterator; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.Condition; import org.activiti5.engine.impl.bpmn.helper.SkipExpressionUtil; import org.activiti5.engine.impl.bpmn.parser.BpmnParse; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/FlowNodeActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/FlowNodeActivityBehavior.java index 02cba3cf083faeb13fefcf71756da832f2ba2426..c5ae6447671d47ba395749814ff77fee1bf8e6db 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/FlowNodeActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/FlowNodeActivityBehavior.java @@ -32,7 +32,7 @@ public abstract class FlowNodeActivityBehavior implements SignallableActivityBeh /** * Default behaviour: just leave the activity with no extra functionality. */ - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { leave(execution); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/InclusiveGatewayActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/InclusiveGatewayActivityBehavior.java index 4acde6a9b041b51deb48b32feee13ef2c91d3089..6b9bb957c5ed424cd2cc7def41898ef80bbbe55f 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/InclusiveGatewayActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/InclusiveGatewayActivityBehavior.java @@ -17,8 +17,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.Condition; import org.activiti5.engine.impl.bpmn.helper.SkipExpressionUtil; import org.activiti5.engine.impl.bpmn.parser.BpmnParse; @@ -43,7 +43,7 @@ public class InclusiveGatewayActivityBehavior extends GatewayActivityBehavior { private static Logger log = LoggerFactory.getLogger(InclusiveGatewayActivityBehavior.class.getName()); - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { execution.inactivate(); lockConcurrentRoot(execution); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateCatchEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateCatchEventActivityBehavior.java index d97b085d6fe6c4c0b40709609936dba14ac80008..7e50e04298fdaaf599e05b8f2d9230a775b1fb0a 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateCatchEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateCatchEventActivityBehavior.java @@ -18,7 +18,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; public class IntermediateCatchEventActivityBehavior extends AbstractBpmnActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { // Do nothing: waitstate behavior } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateThrowCompensationEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateThrowCompensationEventActivityBehavior.java index 9073ef48f92a15bb8cfaa2e33b8dcb5ff19b25d2..daeedff870afcb79a3f041434d1b6581c547f7b9 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateThrowCompensationEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateThrowCompensationEventActivityBehavior.java @@ -35,7 +35,7 @@ public class IntermediateThrowCompensationEventActivityBehavior extends FlowNode } @Override - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { final String activityRef = compensateEventDefinition.getActivityRef(); ExecutionEntity scopeExecution = ScopeUtil.findScopeExecutionForScope((ExecutionEntity)execution, (ActivityImpl)execution.getActivity()); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateThrowSignalEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateThrowSignalEventActivityBehavior.java index cc69ebbf71431159dabfd867dc84a6c0554bbfa0..a3fdf7b113d7d6989e5a0d3dcb3b6f0390f69337 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateThrowSignalEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/IntermediateThrowSignalEventActivityBehavior.java @@ -39,7 +39,7 @@ public class IntermediateThrowSignalEventActivityBehavior extends AbstractBpmnAc this.signalDefinition = signalDefinition; } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { CommandContext commandContext = Context.getCommandContext(); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/MailActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/MailActivityBehavior.java index f883565496fa9e305ee40c7f8c25968c42a66d49..bd1101bb8549f89b67d67f6b0e8c036f8a3cb041 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/MailActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/MailActivityBehavior.java @@ -13,21 +13,29 @@ package org.activiti5.engine.impl.bpmn.behavior; -import java.util.*; import java.io.File; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import javax.activation.DataSource; import javax.naming.NamingException; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.cfg.MailServerInfo; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; -import org.apache.commons.mail.*; +import org.apache.commons.mail.Email; +import org.apache.commons.mail.EmailException; +import org.apache.commons.mail.HtmlEmail; +import org.apache.commons.mail.MultiPartEmail; +import org.apache.commons.mail.SimpleEmail; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/MultiInstanceActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/MultiInstanceActivityBehavior.java index cfe0c0dab66375fa6ff519217aa1c7f6df232012..add80b134f627a50ae1624a8b8dbeb449b05190a 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/MultiInstanceActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/MultiInstanceActivityBehavior.java @@ -18,12 +18,12 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.delegate.BpmnError; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.helper.ErrorPropagation; import org.activiti5.engine.impl.bpmn.helper.ScopeUtil; import org.activiti5.engine.impl.context.Context; @@ -86,7 +86,7 @@ public abstract class MultiInstanceActivityBehavior extends FlowNodeActivityBeha setInnerActivityBehavior(innerActivityBehavior); } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { if (getLocalLoopVariable(execution, getCollectionElementIndexVariable()) == null) { try { createInstances(execution); @@ -102,7 +102,7 @@ public abstract class MultiInstanceActivityBehavior extends FlowNodeActivityBeha } } - protected abstract void createInstances(ActivityExecution execution) throws Exception; + protected abstract void createInstances(ActivityExecution execution); // Intercepts signals, and delegates it to the wrapped {@link ActivityBehavior}. public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception { @@ -153,7 +153,7 @@ public abstract class MultiInstanceActivityBehavior extends FlowNodeActivityBeha } @SuppressWarnings("rawtypes") - protected void executeOriginalBehavior(ActivityExecution execution, int loopCounter) throws Exception { + protected void executeOriginalBehavior(ActivityExecution execution, int loopCounter) { if (usesCollection() && collectionElementVariable != null) { Collection collection = null; if (collectionExpression != null) { diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/NoneEndEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/NoneEndEventActivityBehavior.java index d70eebac2161ca7005cf8e6caf8d4bbcb5f674e3..dc5a85052751f495da70884fa637c87087c34748 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/NoneEndEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/NoneEndEventActivityBehavior.java @@ -20,7 +20,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class NoneEndEventActivityBehavior extends FlowNodeActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { execution.end(); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ParallelGatewayActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ParallelGatewayActivityBehavior.java index 171f5319cd4fc7b196f09b3b255e487cd79cf07a..efd095e24ab4c0ac084e0d36ace61deb17640021 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ParallelGatewayActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ParallelGatewayActivityBehavior.java @@ -57,7 +57,7 @@ public class ParallelGatewayActivityBehavior extends GatewayActivityBehavior { private static Logger log = LoggerFactory.getLogger(ParallelGatewayActivityBehavior.class); - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { // Join PvmActivity activity = execution.getActivity(); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ParallelMultiInstanceBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ParallelMultiInstanceBehavior.java index b89f009552593404761b9d0639fc39104ef9041b..078e279c6c90177c68353b189b29893a62294574 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ParallelMultiInstanceBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ParallelMultiInstanceBehavior.java @@ -35,7 +35,7 @@ public class ParallelMultiInstanceBehavior extends MultiInstanceActivityBehavior * Handles the parallel case of spawning the instances. * Will create child executions accordingly for every instance needed. */ - protected void createInstances(ActivityExecution execution) throws Exception { + protected void createInstances(ActivityExecution execution) { int nrOfInstances = resolveNrOfInstances(execution); if (nrOfInstances < 0) { throw new ActivitiIllegalArgumentException("Invalid number of instances: must be non-negative integer value" diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ReceiveTaskActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ReceiveTaskActivityBehavior.java index fc1168ef326ede65d68f75b39173db2b532e64dc..145e6f522c036adfa5a4c928186f1cf31f92b6c7 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ReceiveTaskActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ReceiveTaskActivityBehavior.java @@ -27,7 +27,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class ReceiveTaskActivityBehavior extends TaskActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { // Do nothing: waitstate behavior } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ScriptTaskActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ScriptTaskActivityBehavior.java index 5d696787ccaf5dab57624f1a7fb5099736111e75..b2d91becaae795d15684b3b85b33d5ffbbd7183e 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ScriptTaskActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ScriptTaskActivityBehavior.java @@ -52,7 +52,7 @@ public class ScriptTaskActivityBehavior extends TaskActivityBehavior { this.storeScriptVariables = storeScriptVariables; } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { ScriptingEngines scriptingEngines = Context .getProcessEngineConfiguration() .getScriptingEngines(); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/SequentialMultiInstanceBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/SequentialMultiInstanceBehavior.java index 1a0be22a019e8d481f5da28a6019322604706e02..1005cb01eeeeabcb6276e4b59bba99c66914ce35 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/SequentialMultiInstanceBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/SequentialMultiInstanceBehavior.java @@ -34,7 +34,7 @@ public class SequentialMultiInstanceBehavior extends MultiInstanceActivityBehavi * Handles the sequential case of spawning the instances. * Will only create one instance, since at most one instance can be active. */ - protected void createInstances(ActivityExecution execution) throws Exception { + protected void createInstances(ActivityExecution execution) { int nrOfInstances = resolveNrOfInstances(execution); if (nrOfInstances < 0) { throw new ActivitiIllegalArgumentException("Invalid number of instances: must be a non-negative integer value" @@ -86,7 +86,7 @@ public class SequentialMultiInstanceBehavior extends MultiInstanceActivityBehavi } @Override - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { super.execute(execution); if(innerActivityBehavior instanceof SubProcessActivityBehavior) { diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskDelegateExpressionActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskDelegateExpressionActivityBehavior.java index cc5e081037d10700eacc229e0ea9a0343d00a9c4..34c1e8d9a29b3a8de74f2530225f56ced8e0dfd0 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskDelegateExpressionActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskDelegateExpressionActivityBehavior.java @@ -14,10 +14,11 @@ package org.activiti5.engine.impl.bpmn.behavior; import java.util.List; +import org.activiti.engine.ActivitiException; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.delegate.BpmnError; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.JavaDelegate; import org.activiti5.engine.impl.bpmn.helper.ClassDelegate; import org.activiti5.engine.impl.bpmn.helper.ErrorPropagation; import org.activiti5.engine.impl.bpmn.helper.SkipExpressionUtil; @@ -60,7 +61,7 @@ public class ServiceTaskDelegateExpressionActivityBehavior extends TaskActivityB } } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { try { boolean isSkipExpressionEnabled = SkipExpressionUtil.isSkipExpressionEnabled(execution, skipExpression); @@ -108,7 +109,7 @@ public class ServiceTaskDelegateExpressionActivityBehavior extends TaskActivityB if (error != null) { ErrorPropagation.propagateError(error, execution); } else { - throw exc; + throw new ActivitiException(exc.getMessage(), exc); } } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskExpressionActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskExpressionActivityBehavior.java index f8ae9b74a6148ef4562e1f984744049d3c51f7bd..c188f726e65daf5cb754b1feb31f74f232fb1c97 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskExpressionActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskExpressionActivityBehavior.java @@ -13,8 +13,9 @@ package org.activiti5.engine.impl.bpmn.behavior; +import org.activiti.engine.ActivitiException; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.delegate.BpmnError; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.helper.ErrorPropagation; import org.activiti5.engine.impl.bpmn.helper.SkipExpressionUtil; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; @@ -41,7 +42,7 @@ public class ServiceTaskExpressionActivityBehavior extends TaskActivityBehavior this.resultVariable = resultVariable; } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { Object value = null; try { boolean isSkipExpressionEnabled = SkipExpressionUtil.isSkipExpressionEnabled(execution, skipExpression); @@ -69,7 +70,7 @@ public class ServiceTaskExpressionActivityBehavior extends TaskActivityBehavior if (error != null) { ErrorPropagation.propagateError(error, execution); } else { - throw exc; + throw new ActivitiException(exc.getMessage(), exc); } } } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskJavaDelegateActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskJavaDelegateActivityBehavior.java index dcca1e1bd646adb6cecbd01be38bc0db28ab3d84..00aeed4e8e557411db42c6f0510d05bd7e3e0a0c 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskJavaDelegateActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ServiceTaskJavaDelegateActivityBehavior.java @@ -13,9 +13,9 @@ package org.activiti5.engine.impl.bpmn.behavior; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.delegate.JavaDelegateInvocation; import org.activiti5.engine.impl.pvm.delegate.ActivityBehavior; @@ -36,16 +36,16 @@ public class ServiceTaskJavaDelegateActivityBehavior extends TaskActivityBehavio this.javaDelegate = javaDelegate; } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { execute((DelegateExecution) execution); leave(execution); } - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { execute((DelegateExecution) execution); } - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Context.getProcessEngineConfiguration() .getDelegateInterceptor() .handleInvocation(new JavaDelegateInvocation(javaDelegate, execution)); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ShellActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ShellActivityBehavior.java index 00653cb3fb60b2ce2fe875d6dd6480e229396014..538e5d8e17ad77595869b2bda12b7f70203d6679 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ShellActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/ShellActivityBehavior.java @@ -12,9 +12,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; public class ShellActivityBehavior extends AbstractBpmnActivityBehavior { diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/SubProcessActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/SubProcessActivityBehavior.java index 8389a06591bbedc8ccebc6d3fb365268d1f8db3f..0d4e9655d0ba3513d653de6a4b61e7f2267a7449 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/SubProcessActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/SubProcessActivityBehavior.java @@ -33,7 +33,7 @@ import org.activiti5.engine.impl.pvm.process.ActivityImpl; */ public class SubProcessActivityBehavior extends AbstractBpmnActivityBehavior implements CompositeActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { PvmActivity activity = execution.getActivity(); ActivityImpl initialActivity = (ActivityImpl) activity.getProperty(BpmnParse.PROPERTYNAME_INITIAL); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/TerminateEndEventActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/TerminateEndEventActivityBehavior.java index 36097dc4aad93f6195c9760ae8ce1a5fce9b9930..eef0769f2dc4e90fc6ec561f2929d6a94d056c88 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/TerminateEndEventActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/TerminateEndEventActivityBehavior.java @@ -35,7 +35,7 @@ public class TerminateEndEventActivityBehavior extends FlowNodeActivityBehavior this.endEvent = endEvent.clone(); } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { ActivityImpl terminateEndEventActivity = (ActivityImpl) execution.getActivity(); ActivityExecution scopeExecution = ScopeUtil.findScopeExecution(execution); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/UserTaskActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/UserTaskActivityBehavior.java index 9efa89a14a88e5606810d190ec2c1c8488249233..f35ce5fae5f7666dc668c14cf2ec771ad4b2853a 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/UserTaskActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/UserTaskActivityBehavior.java @@ -20,10 +20,10 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.TaskListener; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.bpmn.helper.SkipExpressionUtil; @@ -54,7 +54,7 @@ public class UserTaskActivityBehavior extends TaskActivityBehavior { this.taskDefinition = taskDefinition; } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { TaskEntity task = TaskEntity.createAndInsert(execution); task.setExecution(execution); task.setTaskDefinition(taskDefinition); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/WebServiceActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/WebServiceActivityBehavior.java index b6212300ae9afff8a1f8722e11b9d1fce9491908..c7792a261c28666822f148ae928cbb57fda2fe96 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/WebServiceActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/behavior/WebServiceActivityBehavior.java @@ -57,7 +57,7 @@ public class WebServiceActivityBehavior extends AbstractBpmnActivityBehavior { /** * {@inheritDoc} */ - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { MessageInstance message; if (ioSpecification != null) { diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/AbstractDataAssociation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/AbstractDataAssociation.java index 5e6d8e1e09c8d9dc8260f2ea4c76de6ec02cdc3e..5514a66d787990d9474011ebe58de6099951aa85 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/AbstractDataAssociation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/AbstractDataAssociation.java @@ -14,7 +14,7 @@ package org.activiti5.engine.impl.bpmn.data; import java.io.Serializable; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/Assignment.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/Assignment.java index a8f23e188c2e8d0594ba79d89922bd76337c89ae..7d167a59616e2e4be37f8328de4083b87396fd0d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/Assignment.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/Assignment.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.impl.bpmn.data; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/SimpleDataInputAssociation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/SimpleDataInputAssociation.java index 12293dc9971bb9b0d7c7ce47b4d969a0b3d21730..498b76146066f5107b379b9bac011ba0e1227768 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/SimpleDataInputAssociation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/SimpleDataInputAssociation.java @@ -15,7 +15,7 @@ package org.activiti5.engine.impl.bpmn.data; import java.util.ArrayList; import java.util.List; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/TransformationDataOutputAssociation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/TransformationDataOutputAssociation.java index 3b8fcb067a716122c59adee390ec6f39c8c878e8..505e99b6f65ada9fbf4cde3a9ac0618ad1b2f439 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/TransformationDataOutputAssociation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/data/TransformationDataOutputAssociation.java @@ -12,7 +12,7 @@ */ package org.activiti5.engine.impl.bpmn.data; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/deployer/BpmnDeployer.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/deployer/BpmnDeployer.java index f4553dea9f41c7bcb8ed5c3ed8c579c586a53948..bc97dfb5759cee29d8f4b4df6eab76857e17f7d5 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/deployer/BpmnDeployer.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/deployer/BpmnDeployer.java @@ -19,9 +19,9 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ProcessEngineConfiguration; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.bpmn.parser.BpmnParse; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/ClassDelegate.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/ClassDelegate.java index 0b7ace4f2848d619a4a0aba8d39b70f588830eba..f89352f81e7dfc1d181766418c9216594b9b0649 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/ClassDelegate.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/ClassDelegate.java @@ -19,15 +19,15 @@ import java.lang.reflect.Method; import java.util.List; import org.activiti.bpmn.model.MapExceptionEntry; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.delegate.BpmnError; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.JavaDelegate; -import org.activiti5.engine.delegate.TaskListener; import org.activiti5.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior; import org.activiti5.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior; import org.activiti5.engine.impl.bpmn.parser.FieldDeclaration; @@ -86,7 +86,7 @@ public class ClassDelegate extends AbstractBpmnActivityBehavior implements TaskL } // Execution listener - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { if (executionListenerInstance == null) { executionListenerInstance = getExecutionListenerInstance(); } @@ -130,7 +130,7 @@ public class ClassDelegate extends AbstractBpmnActivityBehavior implements TaskL } // Activity Behavior - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { boolean isSkipExpressionEnabled = SkipExpressionUtil.isSkipExpressionEnabled(execution, skipExpression); if (!isSkipExpressionEnabled || (isSkipExpressionEnabled && !SkipExpressionUtil.shouldSkipFlowElement(execution, skipExpression))) { @@ -143,10 +143,9 @@ public class ClassDelegate extends AbstractBpmnActivityBehavior implements TaskL activityBehaviorInstance.execute(execution); } catch (BpmnError error) { ErrorPropagation.propagateError(error, execution); - } catch (Exception e) { + } catch (RuntimeException e) { if (!ErrorPropagation.mapException(e, execution, mapExceptions)) throw e; - } } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/DelegateExpressionActivitiEventListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/DelegateExpressionActivitiEventListener.java index 6fa0339a5b2a5879e619db4a29214aa46766cb98..0094fdc2fc9f31845b8df6ea811aa716cfc028f7 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/DelegateExpressionActivitiEventListener.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/DelegateExpressionActivitiEventListener.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.impl.bpmn.helper; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.delegate.event.ActivitiEntityEvent; import org.activiti5.engine.delegate.event.ActivitiEvent; import org.activiti5.engine.delegate.event.ActivitiEventListener; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/ErrorPropagation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/ErrorPropagation.java index d7b6f94b8451f17fcf46bf063bd44cadb5f8233d..b6653f6efe9b15fd6cd04b1600c1a949723e9fb5 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/ErrorPropagation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/ErrorPropagation.java @@ -16,6 +16,7 @@ package org.activiti5.engine.impl.bpmn.helper; import java.util.List; import org.activiti.bpmn.model.MapExceptionEntry; +import org.activiti5.engine.ActivitiActivityExecutionException; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.delegate.BpmnError; import org.activiti5.engine.delegate.event.ActivitiEventType; @@ -26,7 +27,6 @@ import org.activiti5.engine.impl.bpmn.parser.ErrorEventDefinition; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; import org.activiti5.engine.impl.pvm.PvmActivity; -import org.activiti5.engine.impl.pvm.PvmException; import org.activiti5.engine.impl.pvm.PvmProcessDefinition; import org.activiti5.engine.impl.pvm.PvmScope; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; @@ -56,11 +56,11 @@ public class ErrorPropagation { private static final Logger LOG = LoggerFactory.getLogger(ErrorPropagation.class); - public static void propagateError(BpmnError error, ActivityExecution execution) throws Exception { + public static void propagateError(BpmnError error, ActivityExecution execution) { propagateError(error.getErrorCode(), execution); } - public static void propagateError(String errorCode, ActivityExecution execution) throws Exception { + public static void propagateError(String errorCode, ActivityExecution execution) { while (execution != null) { String eventHandlerId = findLocalErrorEventHandler(execution, errorCode); @@ -194,17 +194,17 @@ public class ErrorPropagation { } } - public static boolean mapException(Exception e, ActivityExecution execution, List exceptionMap) throws Exception { + public static boolean mapException(Exception e, ActivityExecution execution, List exceptionMap) { return mapException(e, execution, exceptionMap, false); } - public static boolean mapException(Exception e, ActivityExecution execution, List exceptionMap, boolean wrapped) throws Exception { + public static boolean mapException(Exception e, ActivityExecution execution, List exceptionMap, boolean wrapped) { if (exceptionMap == null) { return false; } - if (wrapped && e instanceof PvmException) { - e = (Exception) ((PvmException) e).getCause(); + if (wrapped && e instanceof ActivitiActivityExecutionException) { + e = (Exception) e.getCause(); } String defaultMap = null; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/SkipExpressionUtil.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/SkipExpressionUtil.java index 494dd45703f5919759f69ff316fddabefdee1bf8..5a6ba1b95abcc5a92c24eab8a5ca6b300e018c19 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/SkipExpressionUtil.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/helper/SkipExpressionUtil.java @@ -1,7 +1,7 @@ package org.activiti5.engine.impl.bpmn.helper; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/DelegateExpressionExecutionListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/DelegateExpressionExecutionListener.java index 245a1ed43cee3e4081b570bc30d889a5f7d05242..e794e413b92d2a058959a81c969f59e2d79550b3 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/DelegateExpressionExecutionListener.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/DelegateExpressionExecutionListener.java @@ -14,11 +14,11 @@ package org.activiti5.engine.impl.bpmn.listener; import java.util.List; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.JavaDelegate; import org.activiti5.engine.impl.bpmn.helper.ClassDelegate; import org.activiti5.engine.impl.bpmn.parser.FieldDeclaration; import org.activiti5.engine.impl.context.Context; @@ -39,7 +39,7 @@ public class DelegateExpressionExecutionListener implements ExecutionListener { this.fieldDeclarations = fieldDeclarations; } - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { // Note: we can't cache the result of the expression, because the // execution can change: eg. delegateExpression='${mySpringBeanFactory.randomSpringBean()}' Object delegate = expression.getValue(execution); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/DelegateExpressionTaskListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/DelegateExpressionTaskListener.java index bca1ed8e38d333cfec2aa89bdc35faeb7bfb5b97..ffab44ad1f5b5759f07f48150c515044d9135ab7 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/DelegateExpressionTaskListener.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/DelegateExpressionTaskListener.java @@ -14,11 +14,11 @@ package org.activiti5.engine.impl.bpmn.listener; import java.util.List; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.TaskListener; import org.activiti5.engine.impl.bpmn.helper.ClassDelegate; import org.activiti5.engine.impl.bpmn.parser.FieldDeclaration; import org.activiti5.engine.impl.context.Context; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ExpressionExecutionListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ExpressionExecutionListener.java index 4de00216d79d522f5be39ab55583484a890648fa..913fbad33a338169230d71a0b58faab86a25b25b 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ExpressionExecutionListener.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ExpressionExecutionListener.java @@ -13,9 +13,9 @@ package org.activiti5.engine.impl.bpmn.listener; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.Expression; /** * An {@link ExecutionListener} that evaluates a {@link Expression} when notified. @@ -30,7 +30,7 @@ public class ExpressionExecutionListener implements ExecutionListener { this.expression = expression; } - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { // Return value of expression is ignored expression.getValue(execution); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ExpressionTaskListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ExpressionTaskListener.java index 192ed96b2058cac16b2d5a204287cdcfd8f9d2cb..0e1b6899edb12f56f338997a150ee06bcff572b7 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ExpressionTaskListener.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ExpressionTaskListener.java @@ -13,9 +13,9 @@ package org.activiti5.engine.impl.bpmn.listener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ScriptExecutionListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ScriptExecutionListener.java index 513b00a7393b0d069b12e9e9d5d9848b5cfeeced..e1ed9903f941504714c15cc1e9018d73fa83eaae 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ScriptExecutionListener.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ScriptExecutionListener.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.bpmn.listener; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.el.Expression; import org.activiti5.engine.impl.scripting.ScriptingEngines; @@ -30,7 +30,7 @@ public class ScriptExecutionListener implements ExecutionListener { private Expression resultVariable = null; @Override - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { if (script == null) { throw new IllegalArgumentException("The field 'script' should be set on the ExecutionListener"); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ScriptTaskListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ScriptTaskListener.java index ee8348a99971caf385af5fdb8e97e05524d4265d..a799cf3c8728f286d17ac30d9ea87e6581839684 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ScriptTaskListener.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/listener/ScriptTaskListener.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.bpmn.listener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.el.Expression; import org.activiti5.engine.impl.scripting.ScriptingEngines; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/AbstractBehaviorFactory.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/AbstractBehaviorFactory.java index 1e43f6e0c24e953ee5bacd35ce46d82ab1da8191..1a47649767e7e87ff181f802f2afacade1875d97 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/AbstractBehaviorFactory.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/AbstractBehaviorFactory.java @@ -16,7 +16,7 @@ import java.util.ArrayList; import java.util.List; import org.activiti.bpmn.model.FieldExtension; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.parser.FieldDeclaration; import org.activiti5.engine.impl.el.ExpressionManager; import org.activiti5.engine.impl.el.FixedValue; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/DefaultActivityBehaviorFactory.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/DefaultActivityBehaviorFactory.java index 8b90cde2063bc7ba3ebe907548db6a6c85f69ad0..ebbac1e0a66cef5ffe16d1114fc883c49b20714f 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/DefaultActivityBehaviorFactory.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/DefaultActivityBehaviorFactory.java @@ -41,8 +41,8 @@ import org.activiti.bpmn.model.Task; import org.activiti.bpmn.model.ThrowEvent; import org.activiti.bpmn.model.Transaction; import org.activiti.bpmn.model.UserTask; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior; import org.activiti5.engine.impl.bpmn.behavior.BoundaryEventActivityBehavior; import org.activiti5.engine.impl.bpmn.behavior.BusinessRuleTaskActivityBehavior; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/DefaultListenerFactory.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/DefaultListenerFactory.java index 629fbf15740b3be1e2e1faf33471932d3b1fdd62..98f85fb47129c631b529caf6a8dfdbd31208fe53 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/DefaultListenerFactory.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/DefaultListenerFactory.java @@ -18,9 +18,10 @@ import java.util.Map; import org.activiti.bpmn.model.ActivitiListener; import org.activiti.bpmn.model.EventListener; import org.activiti.bpmn.model.ImplementationType; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.TaskListener; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.TaskListener; import org.activiti5.engine.delegate.event.ActivitiEventListener; import org.activiti5.engine.impl.bpmn.helper.BaseDelegateEventListener; import org.activiti5.engine.impl.bpmn.helper.ClassDelegate; @@ -40,7 +41,6 @@ import org.activiti5.engine.runtime.Job; import org.activiti5.engine.runtime.ProcessInstance; import org.activiti5.engine.task.Attachment; import org.activiti5.engine.task.Comment; -import org.activiti5.engine.task.IdentityLink; import org.activiti5.engine.task.Task; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/ListenerFactory.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/ListenerFactory.java index c8b6c60335ee7b18d034df68ba16010229314727..81e58c3c72a4d6f2c8df0fa87a37abc78e4ce3a8 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/ListenerFactory.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/factory/ListenerFactory.java @@ -14,8 +14,8 @@ package org.activiti5.engine.impl.bpmn.parser.factory; import org.activiti.bpmn.model.ActivitiListener; import org.activiti.bpmn.model.EventListener; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.delegate.event.ActivitiEventListener; import org.activiti5.engine.impl.bpmn.parser.BpmnParse; import org.activiti5.engine.impl.bpmn.parser.BpmnParser; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/AbstractBpmnParseHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/AbstractBpmnParseHandler.java index 0be42df88230df86c69e0ef61f395afac95dfce8..4b48265e795192021b6e8c8c2e2e784ce456efb5 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/AbstractBpmnParseHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/AbstractBpmnParseHandler.java @@ -35,7 +35,7 @@ import org.activiti.bpmn.model.ImplementationType; import org.activiti.bpmn.model.IntermediateCatchEvent; import org.activiti.bpmn.model.SequenceFlow; import org.activiti.bpmn.model.ValuedDataObject; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.bpmn.data.Data; import org.activiti5.engine.impl.bpmn.data.DataRef; import org.activiti5.engine.impl.bpmn.data.IOSpecification; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/AbstractExternalInvocationBpmnParseHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/AbstractExternalInvocationBpmnParseHandler.java index 8485d9f5c9d33fa3ec63277c819298d8641de17d..bb0fc157189e9a9ef962adafd3ff8168a5d47789 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/AbstractExternalInvocationBpmnParseHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/AbstractExternalInvocationBpmnParseHandler.java @@ -14,7 +14,7 @@ package org.activiti5.engine.impl.bpmn.parser.handler; import org.activiti.bpmn.model.DataAssociation; import org.activiti.bpmn.model.FlowNode; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.data.AbstractDataAssociation; import org.activiti5.engine.impl.bpmn.data.Assignment; import org.activiti5.engine.impl.bpmn.data.SimpleDataInputAssociation; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/SequenceFlowParseHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/SequenceFlowParseHandler.java index d7400b4328314e91248254f2b5429368c737254e..dee61769ed834803db8380f9ae4136b5e38ea123 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/SequenceFlowParseHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/SequenceFlowParseHandler.java @@ -14,7 +14,7 @@ package org.activiti5.engine.impl.bpmn.parser.handler; import org.activiti.bpmn.model.BaseElement; import org.activiti.bpmn.model.SequenceFlow; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.Condition; import org.activiti5.engine.impl.bpmn.parser.BpmnParse; import org.activiti5.engine.impl.el.ExpressionManager; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/TimerEventDefinitionParseHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/TimerEventDefinitionParseHandler.java index d6ffd73672b14816c0963215f8ddd573bc3a82ff..8df5154f6012e2225cfdb61d8410b4356f0e29d0 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/TimerEventDefinitionParseHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/TimerEventDefinitionParseHandler.java @@ -21,11 +21,17 @@ import org.activiti.bpmn.model.BoundaryEvent; import org.activiti.bpmn.model.IntermediateCatchEvent; import org.activiti.bpmn.model.StartEvent; import org.activiti.bpmn.model.TimerEventDefinition; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.parser.BpmnParse; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.el.ExpressionManager; -import org.activiti5.engine.impl.jobexecutor.*; +import org.activiti5.engine.impl.jobexecutor.JobHandler; +import org.activiti5.engine.impl.jobexecutor.TimerCatchIntermediateEventJobHandler; +import org.activiti5.engine.impl.jobexecutor.TimerDeclarationImpl; +import org.activiti5.engine.impl.jobexecutor.TimerDeclarationType; +import org.activiti5.engine.impl.jobexecutor.TimerEventHandler; +import org.activiti5.engine.impl.jobexecutor.TimerExecuteNestedActivityJobHandler; +import org.activiti5.engine.impl.jobexecutor.TimerStartEventJobHandler; import org.activiti5.engine.impl.persistence.entity.ProcessDefinitionEntity; import org.activiti5.engine.impl.pvm.process.ActivityImpl; import org.activiti5.engine.impl.pvm.process.ScopeImpl; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/UserTaskParseHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/UserTaskParseHandler.java index 564fc2f6c77e976d8214037b70867e941ce9efd6..d1a5e054e776970ff90eec4ddb675d6147d816be 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/UserTaskParseHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/parser/handler/UserTaskParseHandler.java @@ -20,8 +20,8 @@ import org.activiti.bpmn.model.ActivitiListener; import org.activiti.bpmn.model.BaseElement; import org.activiti.bpmn.model.ImplementationType; import org.activiti.bpmn.model.UserTask; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.impl.bpmn.parser.BpmnParse; import org.activiti5.engine.impl.el.ExpressionManager; import org.activiti5.engine.impl.form.DefaultTaskFormHandler; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/webservice/MessageImplicitDataOutputAssociation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/webservice/MessageImplicitDataOutputAssociation.java index b0a951d949f395545393dc0f11abb3136a11635a..22a0ee21b143217ad5f50d05235aa578817de8cd 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/webservice/MessageImplicitDataOutputAssociation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/bpmn/webservice/MessageImplicitDataOutputAssociation.java @@ -12,7 +12,7 @@ */ package org.activiti5.engine.impl.bpmn.webservice; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.behavior.WebServiceActivityBehavior; import org.activiti5.engine.impl.bpmn.data.AbstractDataAssociation; import org.activiti5.engine.impl.bpmn.data.FieldBaseStructureInstance; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/calendar/BusinessCalendarImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/calendar/BusinessCalendarImpl.java index c41eed14278d0d5cd7ef8d6eb3e604fdac87e552..ac329ac9314ef65f126775afa92595de35a8804b 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/calendar/BusinessCalendarImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/calendar/BusinessCalendarImpl.java @@ -1,11 +1,11 @@ package org.activiti5.engine.impl.calendar; +import java.util.Date; + import org.activiti5.engine.runtime.ClockReader; import org.joda.time.DateTimeZone; import org.joda.time.format.ISODateTimeFormat; -import java.util.Date; - /** * This class implements business calendar based on internal clock */ diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/calendar/CycleBusinessCalendar.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/calendar/CycleBusinessCalendar.java index c7cff683c3c542f8c465ebb104e41669fbbd00cb..774aeaa36925b87b04417328fa1f60ad19310f95 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/calendar/CycleBusinessCalendar.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/calendar/CycleBusinessCalendar.java @@ -12,11 +12,11 @@ */ package org.activiti5.engine.impl.calendar; +import java.util.Date; + import org.activiti5.engine.ActivitiException; import org.activiti5.engine.runtime.ClockReader; -import java.util.Date; - public class CycleBusinessCalendar extends BusinessCalendarImpl { public static String NAME = "cycle"; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/AbstractSetProcessDefinitionStateCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/AbstractSetProcessDefinitionStateCmd.java index dd0c8e3ccc60d8679dedd1059fb2c77a31d1ab7e..20aad8cee7121d82c866c03e16e8427a4ebc8ad3 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/AbstractSetProcessDefinitionStateCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/AbstractSetProcessDefinitionStateCmd.java @@ -30,8 +30,8 @@ import org.activiti5.engine.impl.jobexecutor.TimerChangeProcessDefinitionSuspens import org.activiti5.engine.impl.persistence.entity.ProcessDefinitionEntity; import org.activiti5.engine.impl.persistence.entity.ProcessDefinitionEntityManager; import org.activiti5.engine.impl.persistence.entity.SuspensionState; -import org.activiti5.engine.impl.persistence.entity.TimerEntity; import org.activiti5.engine.impl.persistence.entity.SuspensionState.SuspensionStateUtil; +import org.activiti5.engine.impl.persistence.entity.TimerEntity; import org.activiti5.engine.repository.ProcessDefinition; import org.activiti5.engine.runtime.ProcessInstance; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/AbstractSetProcessInstanceStateCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/AbstractSetProcessInstanceStateCmd.java index 5e2677714a1b496b906c097eb3bae58701bcb86a..e5c766accd78c3dd4eee37ba124be8630cdc8b03 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/AbstractSetProcessInstanceStateCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/AbstractSetProcessInstanceStateCmd.java @@ -21,8 +21,8 @@ import org.activiti5.engine.impl.interceptor.Command; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; import org.activiti5.engine.impl.persistence.entity.SuspensionState; -import org.activiti5.engine.impl.persistence.entity.TaskEntity; import org.activiti5.engine.impl.persistence.entity.SuspensionState.SuspensionStateUtil; +import org.activiti5.engine.impl.persistence.entity.TaskEntity; import org.activiti5.engine.runtime.Execution; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/DeleteProcessInstanceCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/DeleteProcessInstanceCmd.java index 01aabbca9bf5a6a7bc7eb6fa2ba9d31d8dfb9608..b39c2b976ac2d8e3d8b19c309c94fdb9334deae8 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/DeleteProcessInstanceCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/DeleteProcessInstanceCmd.java @@ -12,13 +12,13 @@ */ package org.activiti5.engine.impl.cmd; +import java.io.Serializable; + import org.activiti5.engine.ActivitiIllegalArgumentException; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.interceptor.Command; import org.activiti5.engine.impl.interceptor.CommandContext; -import java.io.Serializable; - /** * @author Joram Barrez */ diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForProcessDefinitionCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForProcessDefinitionCmd.java index f26cdb36eca6db7d66cf96ed94f6d4264570add5..aeab1ea5a91d385b171850e084e73dae9c68cd2d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForProcessDefinitionCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForProcessDefinitionCmd.java @@ -15,12 +15,12 @@ package org.activiti5.engine.impl.cmd; import java.io.Serializable; import java.util.List; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.ActivitiObjectNotFoundException; import org.activiti5.engine.impl.interceptor.Command; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.persistence.entity.ProcessDefinitionEntity; import org.activiti5.engine.repository.ProcessDefinition; -import org.activiti5.engine.task.IdentityLink; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForProcessInstanceCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForProcessInstanceCmd.java index 32f189dca23c9a9a6a049de8db3ab0e04760d3f8..6f4d642d0f23a64cc51e50ae9366e4d553df6cad 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForProcessInstanceCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForProcessInstanceCmd.java @@ -15,11 +15,11 @@ package org.activiti5.engine.impl.cmd; import java.io.Serializable; import java.util.List; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.ActivitiObjectNotFoundException; import org.activiti5.engine.impl.interceptor.Command; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; -import org.activiti5.engine.task.IdentityLink; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForTaskCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForTaskCmd.java index e6137c19c9adbaed725aa1a3b741486cecf66d70..74cf981dc7c4430eea8fb61c7579ca9179e50c32 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForTaskCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/GetIdentityLinksForTaskCmd.java @@ -15,11 +15,11 @@ package org.activiti5.engine.impl.cmd; import java.io.Serializable; import java.util.List; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.impl.interceptor.Command; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.persistence.entity.IdentityLinkEntity; import org.activiti5.engine.impl.persistence.entity.TaskEntity; -import org.activiti5.engine.task.IdentityLink; import org.activiti5.engine.task.IdentityLinkType; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/SetTaskDueDateCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/SetTaskDueDateCmd.java index 018023928db7d1e7f3917157446d383de4603c3d..74c058a2ef81412746d5ff665b08676ab9189c43 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/SetTaskDueDateCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/SetTaskDueDateCmd.java @@ -12,11 +12,11 @@ */ package org.activiti5.engine.impl.cmd; +import java.util.Date; + import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.persistence.entity.TaskEntity; -import java.util.Date; - /** * @author Brian Showers diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/SignalCmd.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/SignalCmd.java index ab0b193eba16e28a7242bf27037e7ca7b944e989..1276b4fd9fdbc63e4d3f6e789cac672e6c8f3690 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/SignalCmd.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/cmd/SignalCmd.java @@ -13,11 +13,11 @@ package org.activiti5.engine.impl.cmd; +import java.util.Map; + import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; -import java.util.Map; - /** * @author Tom Baeyens */ diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ActivityBehaviorInvocation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ActivityBehaviorInvocation.java index 5007bd971ced1080da4f05c34e298c459f4f4e1b..d406e507036d7cf981c886a515ac9521fbca7a2c 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ActivityBehaviorInvocation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ActivityBehaviorInvocation.java @@ -30,7 +30,7 @@ public class ActivityBehaviorInvocation extends DelegateInvocation { this.execution = execution; } - protected void invoke() throws Exception { + protected void invoke() { behaviorInstance.execute(execution); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/DefaultDelegateInterceptor.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/DefaultDelegateInterceptor.java index a93adf073bdfa8db6cce6b7c4e0e097a5cd29976..5dc7896a881ff90667f25d4229071092faf5c238 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/DefaultDelegateInterceptor.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/DefaultDelegateInterceptor.java @@ -21,7 +21,7 @@ import org.activiti5.engine.impl.interceptor.DelegateInterceptor; */ public class DefaultDelegateInterceptor implements DelegateInterceptor { - public void handleInvocation(DelegateInvocation invocation) throws Exception { + public void handleInvocation(DelegateInvocation invocation) { invocation.proceed(); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/DelegateInvocation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/DelegateInvocation.java index 7d881918575cd99c1c79f2575abd683db018faa0..9f9683dd99b4770d7692826c80b0a98930955a8d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/DelegateInvocation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/DelegateInvocation.java @@ -33,11 +33,11 @@ public abstract class DelegateInvocation { * @throws Exception * the exception thrown by the user code */ - public void proceed() throws Exception { + public void proceed() { invoke(); } - protected abstract void invoke() throws Exception; + protected abstract void invoke(); /** * @return the result of the invocation (can be null if the invocation does diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExecutionListenerInvocation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExecutionListenerInvocation.java index 531e7900d0126117317f18350e733bcb2b9f9abc..0cffc1510365ccc16202bb042d3984caa4b716d6 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExecutionListenerInvocation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExecutionListenerInvocation.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.impl.delegate; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; /** * Class handling invocations of ExecutionListeners @@ -30,7 +30,7 @@ public class ExecutionListenerInvocation extends DelegateInvocation { this.execution = execution; } - protected void invoke() throws Exception { + protected void invoke() { executionListenerInstance.notify(execution); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExpressionGetInvocation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExpressionGetInvocation.java index 03f62b0aeef5109aa77bc2b6ff3e770e0cf5b44a..127eee93d1929cf19cf8a0911181979e9d8d8654 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExpressionGetInvocation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExpressionGetInvocation.java @@ -29,7 +29,7 @@ public class ExpressionGetInvocation extends ExpressionInvocation { this.elContext = elContext; } - protected void invoke() throws Exception { + protected void invoke() { invocationResult = valueExpression.getValue(elContext); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExpressionSetInvocation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExpressionSetInvocation.java index 69430fbabad03bed448a3f1a0160164b24974899..bd3369a2c6ade54c5bd84571a21d308a8a7fd069 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExpressionSetInvocation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/ExpressionSetInvocation.java @@ -33,7 +33,7 @@ public class ExpressionSetInvocation extends ExpressionInvocation { } @Override - protected void invoke() throws Exception { + protected void invoke() { valueExpression.setValue(elContext, value); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/JavaDelegateInvocation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/JavaDelegateInvocation.java index ae35e520beaf6d5b5f23c0596a4fd8143383e0a2..ceb11025564bd38fc829bc535fb3d1705ce83b06 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/JavaDelegateInvocation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/JavaDelegateInvocation.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.impl.delegate; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** * Class handling invocations of JavaDelegates @@ -30,7 +30,7 @@ public class JavaDelegateInvocation extends DelegateInvocation { this.execution = execution; } - protected void invoke() throws Exception { + protected void invoke() { delegateInstance.execute((DelegateExecution) execution); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/TaskListenerInvocation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/TaskListenerInvocation.java index 86ae58cdce2c91e6dcc59be70f9967376630750a..1be5e1ab5ccf44d5dd7605cf4c04afa61190efb2 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/TaskListenerInvocation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/delegate/TaskListenerInvocation.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.impl.delegate; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** * Class handling invocations of {@link TaskListener TaskListeners} @@ -30,7 +30,7 @@ public class TaskListenerInvocation extends DelegateInvocation { this.delegateTask = delegateTask; } - protected void invoke() throws Exception { + protected void invoke() { executionListenerInstance.notify(delegateTask); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/Expression.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/Expression.java index 5aceee72d041260c41e450ca122e4d10d40002e3..6a69b95e8155d74db337e56b84669a6ab70278a9 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/Expression.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/Expression.java @@ -13,13 +13,14 @@ package org.activiti5.engine.impl.el; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; + /** * @author Frederik Heremans */ -public interface Expression extends org.activiti5.engine.delegate.Expression { +public interface Expression extends org.activiti.engine.delegate.Expression { Object getValue(VariableScope variableScope); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/ExpressionManager.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/ExpressionManager.java index 82726ad0b6242afc5571babe2f1ba1819c4755ef..8a7dd0e4bbad984a439edf9710b686176beba1f0 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/ExpressionManager.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/ExpressionManager.java @@ -14,8 +14,8 @@ package org.activiti5.engine.impl.el; import java.util.Map; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.impl.bpmn.data.ItemInstance; import org.activiti5.engine.impl.javax.el.ArrayELResolver; import org.activiti5.engine.impl.javax.el.BeanELResolver; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/FixedValue.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/FixedValue.java index 6af94b89bed7f858425903fad2b5be0f4a6698a7..d5672c1957f4b260e82469e2cba67cfca9f9a992 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/FixedValue.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/FixedValue.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.el; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.VariableScope; /** * Expression that always returns the same value when getValue is diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/JuelExpression.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/JuelExpression.java index bbacde42fee3f5adb00cbf94af69790c75e46c22..21a4cea6d3865419dfa87e2015ac118c70f39106 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/JuelExpression.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/JuelExpression.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.el; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.VariableScope; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.delegate.ExpressionGetInvocation; import org.activiti5.engine.impl.delegate.ExpressionSetInvocation; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/NoExecutionVariableScope.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/NoExecutionVariableScope.java index 92a313efd8b440b273b512080ab5aacf4f9d1957..768d81f6a03e8043725b748885c2d057c844facd 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/NoExecutionVariableScope.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/NoExecutionVariableScope.java @@ -18,7 +18,7 @@ import java.util.Collections; import java.util.Map; import java.util.Set; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/UelExpressionCondition.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/UelExpressionCondition.java index 859c6e90cf4c1f53344894e7d4aafd77488d2fcf..3da4a78d098e681d07ac8f73f727a237101fd9da 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/UelExpressionCondition.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/UelExpressionCondition.java @@ -13,9 +13,9 @@ package org.activiti5.engine.impl.el; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.impl.Condition; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/VariableScopeElResolver.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/VariableScopeElResolver.java index 5c7dab44f63e4d40d0223818c5ad2dc67b54fab3..25d861cd7e632c4b5525e2c4c2fdab118ba3ed66 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/VariableScopeElResolver.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/el/VariableScopeElResolver.java @@ -15,7 +15,7 @@ package org.activiti5.engine.impl.el; import java.beans.FeatureDescriptor; import java.util.Iterator; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.impl.identity.Authentication; import org.activiti5.engine.impl.javax.el.ELContext; import org.activiti5.engine.impl.javax.el.ELResolver; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/DefaultFormHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/DefaultFormHandler.java index 0dc9f1c897671609b22311a3215da06b70580d4f..139cd40521733f25bd92f5191627583c09a22bf0 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/DefaultFormHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/DefaultFormHandler.java @@ -18,7 +18,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.form.AbstractFormType; import org.activiti5.engine.form.FormProperty; import org.activiti5.engine.impl.context.Context; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/FormPropertyHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/FormPropertyHandler.java index 423466abd7f108afe75df07427f6e64df0edcb4b..0b8d6a46695f22a660288581bcfca1b701a88c4c 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/FormPropertyHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/FormPropertyHandler.java @@ -16,8 +16,8 @@ package org.activiti5.engine.impl.form; import java.io.Serializable; import java.util.Map; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.form.AbstractFormType; import org.activiti5.engine.form.FormProperty; import org.activiti5.engine.impl.el.NoExecutionVariableScope; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/TaskFormHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/TaskFormHandler.java index b2cb45671551958b7cf063c27b55f57e9da19f4c..5ebc3375b68f5fd8ce607216767d9b8190ffdd97 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/TaskFormHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/form/TaskFormHandler.java @@ -13,7 +13,7 @@ package org.activiti5.engine.impl.form; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.form.TaskFormData; import org.activiti5.engine.impl.persistence.entity.TaskEntity; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/HistoryManager.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/HistoryManager.java index b12b961391a980f2fea8a693a6a189e684a6f944..feda508ceb12b4ccb8479db931ea3abafdad54ca 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/HistoryManager.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/HistoryManager.java @@ -3,6 +3,7 @@ package org.activiti5.engine.impl.history; import java.util.Date; import java.util.Map; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.impl.db.DbSqlSession; import org.activiti5.engine.impl.interceptor.Session; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; @@ -11,7 +12,6 @@ import org.activiti5.engine.impl.persistence.entity.IdentityLinkEntity; import org.activiti5.engine.impl.persistence.entity.TaskEntity; import org.activiti5.engine.impl.persistence.entity.VariableInstanceEntity; import org.activiti5.engine.impl.pvm.runtime.InterpretableExecution; -import org.activiti5.engine.task.IdentityLink; public interface HistoryManager extends Session { diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ActivityInstanceEndHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ActivityInstanceEndHandler.java index d38ede7e44d183f4cebff87ab6e9a9db88765640..0627724791332d5e5883a75f5f862ffd44a5eda3 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ActivityInstanceEndHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ActivityInstanceEndHandler.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.history.handler; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ActivityInstanceStartHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ActivityInstanceStartHandler.java index f86c27a5ce76e34757741b83e44237ce2078f00c..7f7549d3da3ae61a1e7513cf4bdabe5f0e9196cd 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ActivityInstanceStartHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ActivityInstanceStartHandler.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.history.handler; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/CallActivityStartHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/CallActivityStartHandler.java index dc3b889d84398c235a8c3b6739beb3c658d6f533..16f41983ef701a81ca0f6c75ee7c25243c56221d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/CallActivityStartHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/CallActivityStartHandler.java @@ -1,12 +1,12 @@ package org.activiti5.engine.impl.history.handler; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; public class CallActivityStartHandler implements ExecutionListener { - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ProcessInstanceEndHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ProcessInstanceEndHandler.java index ef506433067d89cdfad03e2a32bc3b47aeb80e14..39895fa64c6c6ab1aa6821448b8378b776062bf0 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ProcessInstanceEndHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/ProcessInstanceEndHandler.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.history.handler; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/StartEventEndHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/StartEventEndHandler.java index 42fd6383cda54494bc1b61002039a2759b605ac9..0caf4cddb91f81c6c2112ff15c7ac17a30171fe8 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/StartEventEndHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/StartEventEndHandler.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.history.handler; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; @@ -24,7 +24,7 @@ import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; */ public class StartEventEndHandler implements ExecutionListener { - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { String executionId = execution.getId(); String activityId = ((ExecutionEntity)execution).getActivityId(); diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/UserTaskAssignmentHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/UserTaskAssignmentHandler.java index 5cf9482b761147780c45fbfc36446309553eab76..d984f5dad87dd1b0602fc1d33509ba00a02bde6d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/UserTaskAssignmentHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/UserTaskAssignmentHandler.java @@ -13,8 +13,8 @@ package org.activiti5.engine.impl.history.handler; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.persistence.entity.TaskEntity; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/UserTaskIdHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/UserTaskIdHandler.java index e011c80feedf920e3656e19bc65ce7f989713be6..5cb9f5f9d86162f495fd6417fa64d0c9dd10bc1b 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/UserTaskIdHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/handler/UserTaskIdHandler.java @@ -1,7 +1,7 @@ package org.activiti5.engine.impl.history.handler; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.persistence.entity.TaskEntity; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/parse/UserTaskHistoryParseHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/parse/UserTaskHistoryParseHandler.java index 5f405bd376667fc6b183ec16529310c3d5acdc60..d160a76b26961db62343eb4352bb6eb7d1148d5b 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/parse/UserTaskHistoryParseHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/history/parse/UserTaskHistoryParseHandler.java @@ -14,7 +14,7 @@ package org.activiti5.engine.impl.history.parse; import org.activiti.bpmn.model.BaseElement; import org.activiti.bpmn.model.UserTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.impl.bpmn.parser.BpmnParse; import org.activiti5.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler; import org.activiti5.engine.impl.bpmn.parser.handler.UserTaskParseHandler; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/interceptor/DelegateInterceptor.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/interceptor/DelegateInterceptor.java index b5704610221669e2cb3662222c2ebbbd4097b0fd..67b6c439b0a5fc3aecf288dac752fd2dd0819843 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/interceptor/DelegateInterceptor.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/interceptor/DelegateInterceptor.java @@ -33,6 +33,6 @@ import org.activiti5.engine.impl.delegate.DelegateInvocation; */ public interface DelegateInterceptor { - public void handleInvocation(DelegateInvocation invocation) throws Exception; + public void handleInvocation(DelegateInvocation invocation); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerCatchIntermediateEventJobHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerCatchIntermediateEventJobHandler.java index 9381130dde1110c1126c4a1ac45479a085424b78..40abc19db9b5826367e12916ddffc10a288f3aa5 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerCatchIntermediateEventJobHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerCatchIntermediateEventJobHandler.java @@ -13,14 +13,12 @@ package org.activiti5.engine.impl.jobexecutor; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; import org.activiti5.engine.impl.persistence.entity.JobEntity; import org.activiti5.engine.impl.pvm.process.ActivityImpl; -import org.activiti5.engine.impl.util.json.JSONObject; import org.activiti5.engine.logging.LogMDC; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerDeclarationImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerDeclarationImpl.java index b302c04f9d58ad7aeba7c4e932a445b08111bbc9..be8f48c23839d29fe8d130247f4b40dd02dbfbc9 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerDeclarationImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerDeclarationImpl.java @@ -16,10 +16,10 @@ import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.VariableScope; import org.activiti5.engine.impl.calendar.BusinessCalendar; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.el.NoExecutionVariableScope; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerEventHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerEventHandler.java index 3d21d79e9b6a8316f5022176bd9a930d1ae7b31e..431c6af7aae4fc698f609cd9730fecc0b1c1a7bb 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerEventHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerEventHandler.java @@ -12,7 +12,7 @@ package org.activiti5.engine.impl.jobexecutor; * limitations under the License. */ -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.util.json.JSONException; import org.activiti5.engine.impl.util.json.JSONObject; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerExecuteNestedActivityJobHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerExecuteNestedActivityJobHandler.java index 19643ad14f1213d40bb5d209576072a10003bc0f..3a464d38990c6d2ff47126c6fe796a5c58a4bb22 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerExecuteNestedActivityJobHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerExecuteNestedActivityJobHandler.java @@ -13,7 +13,6 @@ package org.activiti5.engine.impl.jobexecutor; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.bpmn.behavior.BoundaryEventActivityBehavior; @@ -22,7 +21,6 @@ import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; import org.activiti5.engine.impl.persistence.entity.JobEntity; import org.activiti5.engine.impl.pvm.delegate.ActivityBehavior; import org.activiti5.engine.impl.pvm.process.ActivityImpl; -import org.activiti5.engine.impl.util.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerStartEventJobHandler.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerStartEventJobHandler.java index ff4b14f6d64c4a00a6e221e951cf70b713c950ac..8086cab73d38a0cb2c13895d11455a0edf16d8e8 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerStartEventJobHandler.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/jobexecutor/TimerStartEventJobHandler.java @@ -22,7 +22,6 @@ import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.persistence.deploy.DeploymentManager; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; import org.activiti5.engine.impl.persistence.entity.JobEntity; -import org.activiti5.engine.impl.util.json.JSONObject; import org.activiti5.engine.repository.ProcessDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/juel/Cache.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/juel/Cache.java index d9aece4729f815782daf5779412a80c5e13da583..d2a9299da898c4482676f72eda8dd2417f2cb414 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/juel/Cache.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/juel/Cache.java @@ -18,8 +18,8 @@ package org.activiti5.engine.impl.juel; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; -import java.util.WeakHashMap; import java.util.Map.Entry; +import java.util.WeakHashMap; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/juel/Parser.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/juel/Parser.java index 61469196ea0078fe78ceb0355fa7fa77996c1c10..af843f397b4b0fd8d1ef587447855d18c48999ee 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/juel/Parser.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/juel/Parser.java @@ -15,8 +15,30 @@ */ package org.activiti5.engine.impl.juel; -import static org.activiti5.engine.impl.juel.Builder.Feature.*; -import static org.activiti5.engine.impl.juel.Scanner.Symbol.*; +import static org.activiti5.engine.impl.juel.Builder.Feature.METHOD_INVOCATIONS; +import static org.activiti5.engine.impl.juel.Builder.Feature.NULL_PROPERTIES; +import static org.activiti5.engine.impl.juel.Builder.Feature.VARARGS; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.COLON; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.COMMA; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.EMPTY; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.END_EVAL; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.EOF; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.FALSE; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.FLOAT; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.IDENTIFIER; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.INTEGER; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.LPAREN; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.MINUS; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.NOT; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.NULL; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.QUESTION; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.RBRACK; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.RPAREN; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.START_EVAL_DEFERRED; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.START_EVAL_DYNAMIC; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.STRING; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.TEXT; +import static org.activiti5.engine.impl.juel.Scanner.Symbol.TRUE; import java.util.ArrayList; import java.util.Collections; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/ExecutionEntity.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/ExecutionEntity.java index 2ac59af727d45f5e42f623f645a2f9055c23edc5..f871eff4be387bba742be368d87783576bb6f489 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/ExecutionEntity.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/ExecutionEntity.java @@ -22,8 +22,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.activiti.bpmn.model.FlowElement; +import org.activiti.engine.impl.util.ProcessDefinitionUtil; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.EngineServices; import org.activiti5.engine.ProcessEngineConfiguration; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; @@ -90,6 +91,8 @@ public class ExecutionEntity extends VariableScopeImpl implements ActivityExecut /** current activity */ protected ActivityImpl activity; + protected FlowElement currentFlowElement; + /** current transition. is null when there is no transition being taken. */ protected TransitionImpl transition = null; @@ -737,6 +740,10 @@ public class ExecutionEntity extends VariableScopeImpl implements ActivityExecut public String getProcessBusinessKey() { return getProcessInstance().getBusinessKey(); } + + public String getProcessInstanceBusinessKey() { + return getProcessInstance().getBusinessKey(); + } // process definition /////////////////////////////////////////////////////// @@ -1242,6 +1249,28 @@ public class ExecutionEntity extends VariableScopeImpl implements ActivityExecut return persistentState; } + // The current flow element, will be filled during operation execution + + public FlowElement getCurrentFlowElement() { + if (currentFlowElement == null) { + String processDefinitionId = getProcessDefinitionId(); + if (processDefinitionId != null) { + org.activiti.bpmn.model.Process process = ProcessDefinitionUtil.getProcess(processDefinitionId); + currentFlowElement = process.getFlowElement(getCurrentActivityId(), true); + } + } + return currentFlowElement; + } + + public void setCurrentFlowElement(FlowElement currentFlowElement) { + this.currentFlowElement = currentFlowElement; + if (currentFlowElement != null) { + this.activityId = currentFlowElement.getId(); + } else { + this.activityId = null; + } + } + public void insert() { Context .getCommandContext() @@ -1263,12 +1292,6 @@ public class ExecutionEntity extends VariableScopeImpl implements ActivityExecut this.forcedUpdate = true; } - // process engine convience access ///////////////////////////////////////////////////////////////// - - public EngineServices getEngineServices() { - return Context.getProcessEngineConfiguration(); - } - // toString ///////////////////////////////////////////////////////////////// public String toString() { @@ -1470,6 +1493,9 @@ public class ExecutionEntity extends VariableScopeImpl implements ActivityExecut public String getProcessInstanceId() { return processInstanceId; } + public String getRootProcessInstanceId() { + return processInstanceId; + } public String getParentId() { return parentId; } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/HistoricScopeInstanceEntity.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/HistoricScopeInstanceEntity.java index edd5629210ffdcd871aa8cdc1abeedc9cf9ac9f0..58a1a93f8cc2f31a7c846c9e4b4f60200bec99e3 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/HistoricScopeInstanceEntity.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/HistoricScopeInstanceEntity.java @@ -14,12 +14,12 @@ package org.activiti5.engine.impl.persistence.entity; -import org.activiti5.engine.impl.context.Context; -import org.activiti5.engine.impl.db.PersistentObject; - import java.io.Serializable; import java.util.Date; +import org.activiti5.engine.impl.context.Context; +import org.activiti5.engine.impl.db.PersistentObject; + /** * @author Christian Stettler */ diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/IdentityLinkEntity.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/IdentityLinkEntity.java index ed6295a11900b8ae9c43e1c6ffc85f89020cc79d..e7e2c260c819f2f07429ddb5d97dbe2da600ac40 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/IdentityLinkEntity.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/IdentityLinkEntity.java @@ -16,13 +16,13 @@ import java.io.Serializable; import java.util.HashMap; import java.util.Map; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.db.BulkDeleteable; import org.activiti5.engine.impl.db.PersistentObject; -import org.activiti5.engine.task.IdentityLink; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/ProcessDefinitionEntity.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/ProcessDefinitionEntity.java index 896c004c81c75f0ca52970f7062112a4135eb05e..767e44737443f3aef7f9eedd755a398a19133dbc 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/ProcessDefinitionEntity.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/ProcessDefinitionEntity.java @@ -21,8 +21,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.ProcessEngineConfiguration; -import org.activiti5.engine.delegate.Expression; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.delegate.event.impl.ActivitiEventSupport; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TaskEntity.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TaskEntity.java index 16bfd057905a6777cfb3a49a8da24c4324f5db00..6ba00d5eee43670ea79f3c70a09516e0668f2ecd 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TaskEntity.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TaskEntity.java @@ -23,11 +23,13 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.activiti.engine.task.DelegationState; +import org.activiti.engine.task.IdentityLink; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ProcessEngineConfiguration; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.context.Context; @@ -40,8 +42,6 @@ import org.activiti5.engine.impl.identity.Authentication; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; import org.activiti5.engine.impl.task.TaskDefinition; -import org.activiti5.engine.task.DelegationState; -import org.activiti5.engine.task.IdentityLink; import org.activiti5.engine.task.IdentityLinkType; import org.activiti5.engine.task.Task; import org.apache.commons.lang3.StringUtils; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TaskEntityManager.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TaskEntityManager.java index e907aad83e8dcf7821cde1d01bb1d1f47c5ca864..d140425d1948ab07849c3aed9feeef6b8aee880b 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TaskEntityManager.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TaskEntityManager.java @@ -18,9 +18,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.TaskListener; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.Page; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TimerEntity.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TimerEntity.java index 203508223e513034aeea313bf4fbda2d3b702d23..4a3071d357c8454b9a1b129c8919bda3798a5cbb 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TimerEntity.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/TimerEntity.java @@ -16,9 +16,9 @@ import java.util.Arrays; import java.util.Date; import java.util.List; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.VariableScope; import org.activiti5.engine.impl.calendar.BusinessCalendar; import org.activiti5.engine.impl.calendar.CycleBusinessCalendar; import org.activiti5.engine.impl.context.Context; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/VariableScopeImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/VariableScopeImpl.java index 0c43cdf6524b0efefed1a247c21c3ad953501c60..29aacc3a293804d19d6689e6e693e107ac4d5461 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/VariableScopeImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/persistence/entity/VariableScopeImpl.java @@ -22,8 +22,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.VariableScope; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.impl.interceptor.CommandContext; import org.activiti5.engine.impl.javax.el.ELContext; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/ProcessDefinitionBuilder.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/ProcessDefinitionBuilder.java index 7d7956b8d98707bbea22a623c74935411cefbae9..0e38a0b3bbb9ba3debb53ca25d3507a05038906e 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/ProcessDefinitionBuilder.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/ProcessDefinitionBuilder.java @@ -17,8 +17,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Stack; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.pvm.delegate.ActivityBehavior; import org.activiti5.engine.impl.pvm.process.ActivityImpl; import org.activiti5.engine.impl.pvm.process.ProcessDefinitionImpl; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/PvmTransition.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/PvmTransition.java index 121259d2a31e410b1ccfa40c673b6eebb8a6f524..65d3834e1b66d8a6c21d9e0b1c36f3bbafea3c0c 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/PvmTransition.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/PvmTransition.java @@ -13,7 +13,8 @@ package org.activiti5.engine.impl.pvm; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; + diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ActivityBehavior.java index 3521e83cb7bcf39ca4cf4b074fa7019603e529af..d7d2ea7ba23bbec39c83c5675d050d98bc6ee18d 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ActivityBehavior.java @@ -20,5 +20,5 @@ import java.io.Serializable; */ public interface ActivityBehavior extends Serializable { - void execute(ActivityExecution execution) throws Exception; + void execute(ActivityExecution execution); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ActivityExecution.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ActivityExecution.java index b33ee9e6aae953be56e971e56f777d09d1cf102b..1151e0622bbcfc07311e5279146041987474daf4 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ActivityExecution.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ActivityExecution.java @@ -14,7 +14,7 @@ package org.activiti5.engine.impl.pvm.delegate; import java.util.List; -import org.activiti5.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateExecution; import org.activiti5.engine.impl.pvm.PvmActivity; import org.activiti5.engine.impl.pvm.PvmProcessDefinition; import org.activiti5.engine.impl.pvm.PvmProcessInstance; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ExecutionListenerExecution.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ExecutionListenerExecution.java index c19b89decf2e3d6f17f4f546f915cda5046c8ab7..8eb72fd02fc26c5dde3c79b1345d20b90f8ffaf1 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ExecutionListenerExecution.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/ExecutionListenerExecution.java @@ -12,7 +12,7 @@ */ package org.activiti5.engine.impl.pvm.delegate; -import org.activiti5.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateExecution; import org.activiti5.engine.impl.pvm.PvmProcessElement; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/SubProcessActivityBehavior.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/SubProcessActivityBehavior.java index b26f246cfe47be056b5fbd56461d06f74270fbaa..964706beaedaeedd6a483764515fc53556a38d8f 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/SubProcessActivityBehavior.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/SubProcessActivityBehavior.java @@ -13,7 +13,7 @@ package org.activiti5.engine.impl.pvm.delegate; -import org.activiti5.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateExecution; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/TaskListener.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/TaskListener.java index 82b985ddc113dfa33eaf9f296c665e5d8571a371..9453d37afccea268f40f667074e3ddf681dc1e09 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/TaskListener.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/delegate/TaskListener.java @@ -13,7 +13,7 @@ package org.activiti5.engine.impl.pvm.delegate; -import org.activiti5.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.DelegateTask; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/ActivityImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/ActivityImpl.java index 6824b65fc24c7a45094b8d5fcb92568001eeafd6..d3c1d8b0d3235d3878df514ad00c9b363c16ee46 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/ActivityImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/ActivityImpl.java @@ -18,7 +18,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.pvm.PvmActivity; import org.activiti5.engine.impl.pvm.PvmException; import org.activiti5.engine.impl.pvm.PvmTransition; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/ScopeImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/ScopeImpl.java index d77d7b0baf7549c5169a0071dd20084ab93c76ed..9c4119cc20e376ce8332e78a3f00f8e6f832cb78 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/ScopeImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/ScopeImpl.java @@ -19,7 +19,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.bpmn.data.IOSpecification; import org.activiti5.engine.impl.pvm.PvmException; import org.activiti5.engine.impl.pvm.PvmScope; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/TransitionImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/TransitionImpl.java index 32b41bff5a150768afb05555994ff34c23cd85f9..7730a58b89f0df2b1426ad5939d111a0e22e3e4c 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/TransitionImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/process/TransitionImpl.java @@ -17,8 +17,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.pvm.PvmTransition; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AbstractEventAtomicOperation.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AbstractEventAtomicOperation.java index 10037bb5eaeb50c5f71380b76ad45378d7ad0c22..224dee32552ba58bc3d3c97c5eb1b489de3b77ef 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AbstractEventAtomicOperation.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AbstractEventAtomicOperation.java @@ -15,7 +15,7 @@ package org.activiti5.engine.impl.pvm.runtime; import java.util.List; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.pvm.PvmException; import org.activiti5.engine.impl.pvm.process.ScopeImpl; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AtomicOperationActivityExecute.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AtomicOperationActivityExecute.java index ce08bfb393b0b739c866e2a89e3a80b937e785d7..5221dab7b20f1c5aee9c6bc6480776bf99b12d51 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AtomicOperationActivityExecute.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AtomicOperationActivityExecute.java @@ -12,6 +12,8 @@ */ package org.activiti5.engine.impl.pvm.runtime; +import org.activiti5.engine.ActivitiActivityExecutionException; +import org.activiti5.engine.ActivitiException; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.context.Context; @@ -58,11 +60,11 @@ public class AtomicOperationActivityExecute implements AtomicOperation { } activityBehavior.execute(execution); - } catch (RuntimeException e) { + } catch (ActivitiException e) { throw e; - } catch (Exception e) { + } catch (Throwable t) { LogMDC.putMDCExecution(execution); - throw new PvmException("couldn't execute activity <"+activity.getProperty("type")+" id=\""+activity.getId()+"\" ...>: "+e.getMessage(), e); + throw new ActivitiActivityExecutionException("couldn't execute activity <"+activity.getProperty("type")+" id=\""+activity.getId()+"\" ...>: "+t.getMessage(), t); } } } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AtomicOperationTransitionNotifyListenerTake.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AtomicOperationTransitionNotifyListenerTake.java index 38e5451db143dd1f14e13da721ebd43cd5ec3822..750e36433a001ea472a912c1c8efabaf44d5a9ca 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AtomicOperationTransitionNotifyListenerTake.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/AtomicOperationTransitionNotifyListenerTake.java @@ -14,7 +14,7 @@ package org.activiti5.engine.impl.pvm.runtime; import java.util.List; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.delegate.event.impl.ActivitiEventBuilder; import org.activiti5.engine.impl.context.Context; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/ExecutionImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/ExecutionImpl.java index ae79d91e5a97b54df86cbf312eddd7c5ea7e8368..384739c1d23a59a683fbf8eb1d9982a85417e684 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/ExecutionImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/pvm/runtime/ExecutionImpl.java @@ -20,8 +20,8 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.activiti5.engine.EngineServices; -import org.activiti5.engine.impl.context.Context; +import org.activiti.bpmn.model.FlowElement; +import org.activiti.engine.impl.util.ProcessDefinitionUtil; import org.activiti5.engine.impl.pvm.PvmActivity; import org.activiti5.engine.impl.pvm.PvmException; import org.activiti5.engine.impl.pvm.PvmExecution; @@ -62,6 +62,8 @@ public class ExecutionImpl implements /** current activity */ protected ActivityImpl activity; + protected FlowElement currentFlowElement; + /** current transition. is null when there is no transition being taken. */ protected TransitionImpl transition = null; @@ -378,11 +380,15 @@ public class ExecutionImpl implements return getProcessInstance().getId(); } + public String getRootProcessInstanceId() { + return getProcessInstance().getId(); + } + public String getBusinessKey() { return getProcessInstance().getBusinessKey(); } - public String getProcessBusinessKey() { + public String getProcessInstanceBusinessKey() { return getProcessInstance().getBusinessKey(); } @@ -396,6 +402,23 @@ public class ExecutionImpl implements protected void ensureProcessInstanceInitialized() { } + //The current flow element, will be filled during operation execution + + public FlowElement getCurrentFlowElement() { + if (currentFlowElement == null) { + String processDefinitionId = getProcessDefinitionId(); + if (processDefinitionId != null) { + org.activiti.bpmn.model.Process process = ProcessDefinitionUtil.getProcess(processDefinitionId); + currentFlowElement = process.getFlowElement(getCurrentActivityId(), true); + } + } + return currentFlowElement; + } + + public void setCurrentFlowElement(FlowElement currentFlowElement) { + this.currentFlowElement = currentFlowElement; + } + // activity ///////////////////////////////////////////////////////////////// /** ensures initialization and returns the activity */ @@ -723,12 +746,6 @@ public class ExecutionImpl implements } } - // process engine convience access ///////////////////////////////////////////////////////////////// - - public EngineServices getEngineServices() { - return Context.getProcessEngineConfiguration(); - } - // toString ///////////////////////////////////////////////////////////////// public String toString() { diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/repository/DeploymentBuilderImpl.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/repository/DeploymentBuilderImpl.java index ff6d830f0b61ff833a4454b86776acb565eedd25..ae3b11a1e17937b105484596d2e55f5a437d31c7 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/repository/DeploymentBuilderImpl.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/repository/DeploymentBuilderImpl.java @@ -12,6 +12,13 @@ */ package org.activiti5.engine.impl.repository; +import java.io.InputStream; +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + import org.activiti.bpmn.converter.BpmnXMLConverter; import org.activiti.bpmn.model.BpmnModel; import org.activiti5.engine.ActivitiException; @@ -24,13 +31,6 @@ import org.activiti5.engine.impl.util.ReflectUtil; import org.activiti5.engine.repository.Deployment; import org.activiti5.engine.repository.DeploymentBuilder; -import java.io.InputStream; -import java.io.Serializable; -import java.io.UnsupportedEncodingException; -import java.util.Date; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - /** * @author Tom Baeyens * @author Joram Barrez diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/BeansResolverFactory.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/BeansResolverFactory.java index 3d030fad31aad2ade2174dfe2d929c40ebe5113c..d73c98d3dbc91776cfd89fca600c392365ff0cf9 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/BeansResolverFactory.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/BeansResolverFactory.java @@ -13,7 +13,7 @@ package org.activiti5.engine.impl.scripting; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.impl.context.Context; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ResolverFactory.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ResolverFactory.java index 9aca6c76726748494682788d30e81fc194ad7285..03e21f1b32a9b100466476b6c196295eac5e5d23 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ResolverFactory.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ResolverFactory.java @@ -13,7 +13,8 @@ package org.activiti5.engine.impl.scripting; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; + /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptBindings.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptBindings.java index f9788b71a3346b2e8120d91df5b3fd744de11d1f..58530e0bfaf77ffdfb7780e9f570fa03db6987b7 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptBindings.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptBindings.java @@ -23,7 +23,7 @@ import java.util.Set; import javax.script.Bindings; import javax.script.SimpleScriptContext; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptBindingsFactory.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptBindingsFactory.java index 93d874bcd3c74a30e7998926fc6d73a38ec72a30..0e45861ff41ef6697cf0d5e9dd6942b153a6ff3b 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptBindingsFactory.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptBindingsFactory.java @@ -18,7 +18,7 @@ import java.util.List; import javax.script.Bindings; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptCondition.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptCondition.java index 286432cb9072e521061bf487f23d0ea47ee11b29..4cc27cc0fab8268f070ce0f21da42709d46e1926 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptCondition.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptCondition.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.impl.scripting; +import org.activiti.engine.delegate.DelegateExecution; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.DelegateExecution; import org.activiti5.engine.impl.Condition; import org.activiti5.engine.impl.context.Context; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptingEngines.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptingEngines.java index 6ffc4194580c65451da0f711c0b8b9e7688e9447..4344bed506ac8cad28df4cfc45787f9de47920c2 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptingEngines.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/ScriptingEngines.java @@ -23,8 +23,8 @@ import javax.script.ScriptEngineFactory; import javax.script.ScriptEngineManager; import javax.script.ScriptException; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.VariableScope; /** * @author Tom Baeyens diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/VariableScopeResolver.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/VariableScopeResolver.java index 241472cfe6931dc6c00b81cc111a85cd03b5ff24..d510f69fa35853f649195678837092e1b425b540 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/VariableScopeResolver.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/VariableScopeResolver.java @@ -12,9 +12,9 @@ */ package org.activiti5.engine.impl.scripting; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.ActivitiException; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.VariableScope; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; import org.activiti5.engine.impl.persistence.entity.TaskEntity; import org.activiti5.engine.impl.pvm.runtime.ExecutionImpl; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/VariableScopeResolverFactory.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/VariableScopeResolverFactory.java index 800938e3ebf0a3156c802c9e573ffee98dabc2f7..203759f7d9944da1ecd1af62449f3b208594fb3c 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/VariableScopeResolverFactory.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/scripting/VariableScopeResolverFactory.java @@ -13,7 +13,8 @@ package org.activiti5.engine.impl.scripting; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; + /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/task/TaskDefinition.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/task/TaskDefinition.java index 1d0fc40904544b01b25431c84007bd06149b98d1..cb84295abc918b43823e33947e5343f58dbcf30b 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/task/TaskDefinition.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/task/TaskDefinition.java @@ -20,8 +20,8 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.impl.form.TaskFormHandler; /** diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/util/json/JSONObject.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/util/json/JSONObject.java index 01790adaa332c54137a202a0f99205d129a53ca0..afda39c149ffecb20b22c68e9fac1eac75895e88 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/util/json/JSONObject.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/impl/util/json/JSONObject.java @@ -27,8 +27,8 @@ SOFTWARE. import java.io.IOException; import java.io.Writer; import java.lang.reflect.Field; -import java.lang.reflect.Modifier; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/logging/LogMDC.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/logging/LogMDC.java index 3b1321683cad33bd1229f14b255f7bb114ecfab6..088da921677d38145a6b81ab14d3afea85e8ca6c 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/logging/LogMDC.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/logging/LogMDC.java @@ -34,8 +34,8 @@ public class LogMDC { MDC.put(LOG_MDC_PROCESSDEFINITION_ID, e.getProcessDefinitionId()); if (e.getProcessInstanceId() != null) MDC.put(LOG_MDC_PROCESSINSTANCE_ID, e.getProcessInstanceId()); - if (e.getProcessBusinessKey() != null) - MDC.put(LOG_MDC_BUSINESS_KEY, e.getProcessBusinessKey()); + if (e.getProcessInstanceBusinessKey() != null) + MDC.put(LOG_MDC_BUSINESS_KEY, e.getProcessInstanceBusinessKey()); } diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/runtime/ProcessInstanceQuery.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/runtime/ProcessInstanceQuery.java index 5679d262fea4a629e0d6961857afc8deffcf575f..593852bca5b337668f1a36d61d8e05538d2c6ec7 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/runtime/ProcessInstanceQuery.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/runtime/ProcessInstanceQuery.java @@ -12,13 +12,13 @@ */ package org.activiti5.engine.runtime; -import org.activiti5.engine.ProcessEngineConfiguration; -import org.activiti5.engine.query.Query; - import java.io.Serializable; import java.util.List; import java.util.Set; +import org.activiti5.engine.ProcessEngineConfiguration; +import org.activiti5.engine.query.Query; + /** * Allows programmatic querying of {@link ProcessInstance}s. * diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/DelegationState.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/DelegationState.java deleted file mode 100644 index a12d95b22f1bf889e2582d2b2df6762786e8c28c..0000000000000000000000000000000000000000 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/DelegationState.java +++ /dev/null @@ -1,38 +0,0 @@ -/* 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.task; - - -/** Defines the different states of delegation that a task can be in. - * - * @author Tom Baeyens - */ -public enum DelegationState { - - /** - * The owner delegated the task and wants to review the result - * after the assignee has resolved the task. When the assignee - * completes the task, the task is marked as {@link #RESOLVED} and - * sent back to the owner. When that happens, the owner is set as - * the assignee so that the owner gets this task back in the ToDo. - */ - PENDING, - - /** - * The assignee has resolved the task, the assignee was set to the owner - * again and the owner now finds this task back in the ToDo list for review. - * The owner now is able to complete the task. - */ - RESOLVED -} diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/IdentityLink.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/IdentityLink.java deleted file mode 100644 index 83336bf8aaa4c1568869381c79c3b20109ec39f5..0000000000000000000000000000000000000000 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/IdentityLink.java +++ /dev/null @@ -1,64 +0,0 @@ -/* 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.task; - -import org.activiti5.engine.identity.GroupQuery; -import org.activiti5.engine.identity.UserQuery; - - -/** - * An identity link is used to associate a task with a certain identity. - * - * For example: - * - a user can be an assignee (= identity link type) for a task - * - a group can be a candidate-group (= identity link type) for a task - * - * @author Joram Barrez - */ -public interface IdentityLink { - - /** - * Returns the type of link. - * See {@link IdentityLinkType} for the native supported types by Activiti. - */ - String getType(); - - /** - * If the identity link involves a user, then this will be a non-null id of a user. - * That userId can be used to query for user information through the {@link UserQuery} API. - */ - String getUserId(); - - /** - * If the identity link involves a group, then this will be a non-null id of a group. - * That groupId can be used to query for user information through the {@link GroupQuery} API. - */ - String getGroupId(); - - /** - * The id of the task associated with this identity link. - */ - String getTaskId(); - - /** - * The process definition id associated with this identity link. - */ - String getProcessDefinitionId(); - - /** - * The process instance id associated with this identity link. - */ - String getProcessInstanceId(); - -} diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/Task.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/Task.java index 43f5bb78ab4a7ef5795d354899e3645cfb7a7af0..e8c9d5df8936c011a4f71d039c8a2cf48a4a7e70 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/Task.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/Task.java @@ -14,6 +14,8 @@ package org.activiti5.engine.task; import java.util.Date; +import org.activiti.engine.task.DelegationState; + /** Represents one task for a human user. diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/TaskQuery.java b/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/TaskQuery.java index c4e0b313d87def30b24a6f6f1362d82b6ab0f027..15d70038917df7ae401f2a005c4087e34b84acb1 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/TaskQuery.java +++ b/modules/activiti5-engine/src/main/java/org/activiti5/engine/task/TaskQuery.java @@ -12,6 +12,10 @@ */ package org.activiti5.engine.task; +import java.util.List; + +import org.activiti.engine.task.DelegationState; + /** * Allows programmatic querying of {@link Task}s; * diff --git a/modules/activiti5-spring-compatibility/.gitignore b/modules/activiti5-spring-compatibility/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5e56e040ec0902e58df8573adaec65c5da6e9304 --- /dev/null +++ b/modules/activiti5-spring-compatibility/.gitignore @@ -0,0 +1 @@ +/bin diff --git a/modules/activiti5-spring-compatibility/pom.xml b/modules/activiti5-spring-compatibility/pom.xml new file mode 100755 index 0000000000000000000000000000000000000000..c61a17b9161ec60451e71785b2a33e7d292fff17 --- /dev/null +++ b/modules/activiti5-spring-compatibility/pom.xml @@ -0,0 +1,63 @@ + + + 4.0.0 + + Activiti 5 Spring Compatibility + activiti5-spring-compatibility + + + org.activiti + activiti-root + ../.. + 6.0.0-SNAPSHOT + + + + + org.activiti + activiti-engine + + + org.activiti + activiti5-engine + + + org.activiti + activiti-spring + + + org.activiti + activiti5-spring + + + org.activiti + activiti5-compatibility + + + + + + distro + + + + org.apache.maven.plugins + maven-source-plugin + 2.1.1 + + + attach-sources + package + + jar-no-fork + + + + + + + + + + diff --git a/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/DefaultActiviti5SpringCompatibilityHandler.java b/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/DefaultActiviti5SpringCompatibilityHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..466e02b425d178969e846d8097057203148ba209 --- /dev/null +++ b/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/DefaultActiviti5SpringCompatibilityHandler.java @@ -0,0 +1,33 @@ +/* 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.activiti.compatibility.spring; + +import org.activiti.compatibility.DefaultActiviti5CompatibilityHandler; +import org.activiti.compatibility.DefaultProcessEngineFactory; + + +/** + * @author Joram Barrez + * @author Tijs Rademakers + */ +public class DefaultActiviti5SpringCompatibilityHandler extends DefaultActiviti5CompatibilityHandler { + + @Override + public DefaultProcessEngineFactory getProcessEngineFactory() { + if (processEngineFactory == null) { + processEngineFactory = new DefaultSpringProcessEngineFactory(); + } + return processEngineFactory; + } +} diff --git a/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/DefaultSpringProcessEngineFactory.java b/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/DefaultSpringProcessEngineFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..71e70f725668725903ae9def54482fa6a3255d2b --- /dev/null +++ b/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/DefaultSpringProcessEngineFactory.java @@ -0,0 +1,49 @@ +/* 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.activiti.compatibility.spring; + +import org.activiti.compatibility.DefaultProcessEngineFactory; +import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl; +import org.activiti.spring.SpringProcessEngineConfiguration; +import org.activiti5.engine.ProcessEngine; + + +public class DefaultSpringProcessEngineFactory extends DefaultProcessEngineFactory { + + /** + * Takes in an Activiti 6 process engine config, gives back an Activiti 5 Process engine. + */ + @Override + public ProcessEngine buildProcessEngine(ProcessEngineConfigurationImpl activiti6Configuration) { + + org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl activiti5Configuration = null; + if (activiti6Configuration instanceof SpringProcessEngineConfiguration) { + activiti5Configuration = new org.activiti5.spring.SpringProcessEngineConfiguration(); + copyConfigItems(activiti6Configuration, activiti5Configuration); + copySpringConfigItems((SpringProcessEngineConfiguration) activiti6Configuration, (org.activiti5.spring.SpringProcessEngineConfiguration) activiti5Configuration); + return activiti5Configuration.buildProcessEngine(); + + } else { + return super.buildProcessEngine(activiti6Configuration); + } + + } + + protected void copySpringConfigItems(SpringProcessEngineConfiguration activiti6Configuration, org.activiti5.spring.SpringProcessEngineConfiguration activiti5Configuration) { + activiti5Configuration.setTransactionManager(activiti6Configuration.getTransactionManager()); + activiti5Configuration.setDeploymentName(activiti6Configuration.getDeploymentName()); + activiti5Configuration.setDeploymentResources(activiti6Configuration.getDeploymentResources()); + } + +} diff --git a/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/SpringActiviti5CompatibilityHandlerFactory.java b/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/SpringActiviti5CompatibilityHandlerFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..63dcb8e89a46735fb98677aee9d3b1bedb590c62 --- /dev/null +++ b/modules/activiti5-spring-compatibility/src/main/java/org/activiti/compatibility/spring/SpringActiviti5CompatibilityHandlerFactory.java @@ -0,0 +1,55 @@ +/* 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.activiti.compatibility.spring; + +import org.activiti.engine.compatibility.Activiti5CompatibilityHandler; +import org.activiti.engine.compatibility.Activiti5CompatibilityHandlerFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author Tijs Rademakers + */ +public class SpringActiviti5CompatibilityHandlerFactory implements Activiti5CompatibilityHandlerFactory { + + private static final Logger logger = LoggerFactory.getLogger(SpringActiviti5CompatibilityHandlerFactory.class); + + protected String compatibilityHandlerClassName; + + @Override + public Activiti5CompatibilityHandler createActiviti5CompatibilityHandler() { + + if (compatibilityHandlerClassName != null) { + try { + Activiti5CompatibilityHandler handler = (Activiti5CompatibilityHandler) Class.forName(compatibilityHandlerClassName).newInstance(); + return handler; + } catch (Exception e) { + logger.info("Activiti 5 compatibility handler implementation not found or error during instantiation : " + e.getMessage() + ". Activiti 5 backwards compatibility disabled."); + } + + } else { + return new DefaultActiviti5SpringCompatibilityHandler(); + } + + return null; + } + + public String getCompatibilityHandlerClassName() { + return compatibilityHandlerClassName; + } + + public void setCompatibilityHandlerClassName(String compatibilityHandlerClassName) { + this.compatibilityHandlerClassName = compatibilityHandlerClassName; + } + +} diff --git a/modules/activiti5-spring-test/pom.xml b/modules/activiti5-spring-test/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a7f783aa992533cf1bc7edbcfac596bec0a23229 --- /dev/null +++ b/modules/activiti5-spring-test/pom.xml @@ -0,0 +1,325 @@ + + 4.0.0 + + Activiti - Spring - Test + activiti5-spring-test + + + org.activiti + activiti-root + ../.. + 6.0.0-SNAPSHOT + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.6 + 1.6 + + + + maven-jar-plugin + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + + + + org.apache.felix + maven-bundle-plugin + + + generate-sources + + cleanVersions + + + + bundle-manifest + process-classes + + manifest + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + org.apache.felix + + maven-bundle-plugin + + + [2.1.0,) + + + cleanVersions + manifest + + + + + + + + + + + + + + + + + org.activiti + activiti-spring + + + org.activiti + activiti5-spring + + + org.activiti + activiti5-spring-compatibility + + + org.springframework + spring-context + + + org.springframework + spring-jdbc + + + + org.springframework + spring-tx + + + org.springframework + spring-test + provided + + + org.apache.commons + commons-lang3 + + + junit + junit + provided + + + cglib + cglib + provided + + + javax.persistence + persistence-api + provided + + + org.codehaus.groovy + groovy-all + provided + + + org.springframework + spring-orm + + + org.activiti + activiti5-test + 6.0.0-SNAPSHOT + + + com.h2database + h2 + test + + + org.mockito + mockito-core + test + + + org.hibernate + hibernate-core + 3.6.9.Final + test + true + + + org.subethamail + subethasmtp-wiser + test + + + org.apache.openjpa + openjpa + test + + + commons-dbcp + commons-dbcp + + + org.slf4j + slf4j-api + + + org.slf4j + jcl-over-slf4j + + + org.slf4j + slf4j-log4j12 + test + + + + + + check + + + + maven-antrun-plugin + + + delete-test-sources + generate-sources + + + + + + + + + + + + run + + + + + + + + + checkspring + + + + maven-antrun-plugin + + + copy-test-sources-from-engine + generate-sources + + run + + + + + + + + + + + + + + + + + + + + delete-test-sources-after + package + + run + + + + + + + + + + + + + + + + maven-surefire-plugin + + + + process.engine.initializer + org.activiti.spring.SpringProcessEngineInitializer + + + + org/activiti/standalone/** + **/*TestCase.java + **/ActivitiRuleJunit4Test.java + **/CompetingJobAcquisitionTest.java + **/WSDLImporterTest.java + **/JobExecutorTest.java + **/HistoricTaskInstanceUpdateTest.java + + alphabetical + + + + + + + distro + + + + org.apache.maven.plugins + maven-source-plugin + 2.1.1 + + + attach-sources + package + + jar-no-fork + + + + + + + + + diff --git a/modules/activiti5-spring-test/src/main/java/org/activiti5/spring/impl/test/CleanTestExecutionListener.java b/modules/activiti5-spring-test/src/main/java/org/activiti5/spring/impl/test/CleanTestExecutionListener.java new file mode 100644 index 0000000000000000000000000000000000000000..6860af9acae81eb285a8cf0b27c4d342f2583198 --- /dev/null +++ b/modules/activiti5-spring-test/src/main/java/org/activiti5/spring/impl/test/CleanTestExecutionListener.java @@ -0,0 +1,28 @@ +package org.activiti5.spring.impl.test; + +import org.activiti.engine.RepositoryService; +import org.activiti.engine.repository.Deployment; +import org.springframework.test.context.TestContext; +import org.springframework.test.context.support.AbstractTestExecutionListener; + +/** + * Removes all deployments at the end of a complete test class. + *

    + * Use this as follows in a Spring test: + * + * @author jbarrez + * @RunWith(SpringJUnit4ClassRunner.class) + * @TestExecutionListeners(CleanTestExecutionListener.class) + * @ContextConfiguration("...") + */ +public class CleanTestExecutionListener extends AbstractTestExecutionListener { + + @Override + public void afterTestClass(TestContext testContext) throws Exception { + RepositoryService repositoryService = testContext.getApplicationContext().getBean(RepositoryService.class); + for (Deployment deployment : repositoryService.createDeploymentQuery().list()) { + repositoryService.deleteDeployment(deployment.getId(), true); + } + } + +} diff --git a/modules/activiti5-spring-test/src/main/java/org/activiti5/spring/impl/test/SpringActivitiTestCase.java b/modules/activiti5-spring-test/src/main/java/org/activiti5/spring/impl/test/SpringActivitiTestCase.java new file mode 100644 index 0000000000000000000000000000000000000000..5eaadcd51bfd2521bac6fe1dfeec01a469f395fb --- /dev/null +++ b/modules/activiti5-spring-test/src/main/java/org/activiti5/spring/impl/test/SpringActivitiTestCase.java @@ -0,0 +1,73 @@ +/* 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.spring.impl.test; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import org.activiti.engine.ProcessEngine; +import org.activiti5.engine.impl.test.AbstractActivitiTestCase; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestContextManager; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; + +/** + * @author Joram Barrez + * @author Josh Long + */ +@TestExecutionListeners(DependencyInjectionTestExecutionListener.class) +public abstract class SpringActivitiTestCase extends AbstractActivitiTestCase implements ApplicationContextAware { + + // we need a data structure to store all the resolved ProcessEngines and map + // them to something + protected Map cachedProcessEngines = new ConcurrentHashMap(); + + // protected static Map cachedProcessEngines = new + // HashMap(); + + protected TestContextManager testContextManager; + + @Autowired + protected ApplicationContext applicationContext; + + public SpringActivitiTestCase() { + this.testContextManager = new TestContextManager(getClass()); + } + + @Override + public void runBare() throws Throwable { + testContextManager.prepareTestInstance(this); // this will initialize + // all dependencies + super.runBare(); + } + + @Override + protected void initializeProcessEngine() { + ContextConfiguration contextConfiguration = getClass().getAnnotation(ContextConfiguration.class); + String[] value = contextConfiguration.value(); + boolean hasOneArg = value != null && value.length == 1; + String key = hasOneArg ? value[0] : ProcessEngine.class.getName(); + ProcessEngine engine = this.cachedProcessEngines.containsKey(key) ? this.cachedProcessEngines.get(key) : this.applicationContext.getBean(ProcessEngine.class); + + this.cachedProcessEngines.put(key, engine); + this.processEngine = engine; + } + + public void setApplicationContext(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/AbstractAutoDeploymentStrategyTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/AbstractAutoDeploymentStrategyTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ea994d445a67c405ec8c023abd910cb100393654 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/AbstractAutoDeploymentStrategyTest.java @@ -0,0 +1,117 @@ +/* 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.spring.test.autodeployment; + +import static org.mockito.Matchers.isA; +import static org.mockito.Mockito.when; + +import java.io.File; +import java.io.InputStream; + +import org.activiti5.engine.RepositoryService; +import org.activiti5.engine.repository.Deployment; +import org.activiti5.engine.repository.DeploymentBuilder; +import org.junit.Before; +import org.mockito.Mock; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.ContextResource; +import org.springframework.core.io.Resource; + +/** + * @author Tiese Barrell + */ +public class AbstractAutoDeploymentStrategyTest { + + @Mock + protected RepositoryService repositoryServiceMock; + + @Mock + protected DeploymentBuilder deploymentBuilderMock; + + @Mock + protected ContextResource resourceMock1; + + @Mock + protected ByteArrayResource resourceMock2; + + @Mock + protected Resource resourceMock3; + + @Mock + protected Resource resourceMock4; + + @Mock + protected Resource resourceMock5; + + @Mock + protected File fileMock1; + + @Mock + protected File fileMock2; + + @Mock + protected File fileMock3; + + @Mock + protected File fileMock4; + + @Mock + protected File fileMock5; + + @Mock + private InputStream inputStreamMock; + + @Mock + private Deployment deploymentMock; + + protected final String deploymentNameHint = "nameHint"; + + protected final String resourceName1 = "resourceName1.bpmn"; + protected final String resourceName2 = "resourceName2.bpmn"; + protected final String resourceName3 = "/opt/processes/resourceName3.bar"; + protected final String resourceName4 = "/opt/processes/resourceName4.zip"; + protected final String resourceName5 = "/opt/processes/resourceName5.jar"; + + @Before + public void before() throws Exception { + + when(resourceMock1.getPathWithinContext()).thenReturn(resourceName1); + when(resourceMock1.getFile()).thenReturn(fileMock1); + + when(resourceMock2.getDescription()).thenReturn(resourceName2); + when(resourceMock2.getFile()).thenReturn(fileMock2); + + when(resourceMock3.getFile()).thenReturn(fileMock3); + when(fileMock3.getAbsolutePath()).thenReturn(resourceName3); + + when(resourceMock4.getFile()).thenReturn(fileMock4); + when(fileMock4.getAbsolutePath()).thenReturn(resourceName4); + + when(resourceMock5.getFile()).thenReturn(fileMock5); + when(fileMock5.getAbsolutePath()).thenReturn(resourceName5); + + when(resourceMock1.getInputStream()).thenReturn(inputStreamMock); + when(resourceMock2.getInputStream()).thenReturn(inputStreamMock); + when(resourceMock3.getInputStream()).thenReturn(inputStreamMock); + when(resourceMock4.getInputStream()).thenReturn(inputStreamMock); + when(resourceMock5.getInputStream()).thenReturn(inputStreamMock); + + when(repositoryServiceMock.createDeployment()).thenReturn(deploymentBuilderMock); + when(deploymentBuilderMock.enableDuplicateFiltering()).thenReturn(deploymentBuilderMock); + when(deploymentBuilderMock.name(isA(String.class))).thenReturn(deploymentBuilderMock); + + when(deploymentBuilderMock.deploy()).thenReturn(deploymentMock); + } + +} \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/DefaultAutoDeploymentStrategyTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/DefaultAutoDeploymentStrategyTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e89739f9441b0c168d8f3b2f69718b0f82d19965 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/DefaultAutoDeploymentStrategyTest.java @@ -0,0 +1,108 @@ +/* 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.spring.test.autodeployment; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Matchers.eq; +import static org.mockito.Matchers.isA; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.ZipInputStream; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.spring.autodeployment.DefaultAutoDeploymentStrategy; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.core.io.Resource; + +/** + * @author Tiese Barrell + */ +@RunWith(MockitoJUnitRunner.class) +public class DefaultAutoDeploymentStrategyTest extends AbstractAutoDeploymentStrategyTest { + + private DefaultAutoDeploymentStrategy classUnderTest; + + @Before + public void before() throws Exception { + super.before(); + classUnderTest = new DefaultAutoDeploymentStrategy(); + assertNotNull(classUnderTest); + } + + @Test + public void testHandlesMode() { + assertTrue(classUnderTest.handlesMode(DefaultAutoDeploymentStrategy.DEPLOYMENT_MODE)); + assertFalse(classUnderTest.handlesMode("other-mode")); + assertFalse(classUnderTest.handlesMode(null)); + } + + @Test + public void testDeployResources() { + final Resource[] resources = new Resource[] { resourceMock1, resourceMock2, resourceMock3, resourceMock4, resourceMock5 }; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, times(1)).createDeployment(); + verify(deploymentBuilderMock, times(1)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName1), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, times(3)).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, times(1)).deploy(); + } + + @Test + public void testDeployResourcesNoResources() { + final Resource[] resources = new Resource[] {}; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, times(1)).createDeployment(); + verify(deploymentBuilderMock, times(1)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint); + verify(deploymentBuilderMock, never()).addInputStream(isA(String.class), isA(InputStream.class)); + verify(deploymentBuilderMock, never()).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, never()).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, times(1)).deploy(); + } + + @Test(expected = ActivitiException.class) + public void testDeployResourcesIOExceptionYieldsActivitiException() throws Exception { + when(resourceMock3.getInputStream()).thenThrow(new IOException()); + + final Resource[] resources = new Resource[] { resourceMock3 }; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + fail("Expected exception for IOException"); + } + + @Test + public void testDetermineResourceNameWithExceptionFailsGracefully() throws Exception { + when(resourceMock3.getFile()).thenThrow(new IOException()); + when(resourceMock3.getFilename()).thenReturn(resourceName3); + + final Resource[] resources = new Resource[] { resourceMock3 }; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + } + +} \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/ResourceParentFolderAutoDeploymentStrategyTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/ResourceParentFolderAutoDeploymentStrategyTest.java new file mode 100644 index 0000000000000000000000000000000000000000..3b7cd5be69f415350d8dd48e1e14bcd32c9beb6c --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/ResourceParentFolderAutoDeploymentStrategyTest.java @@ -0,0 +1,211 @@ +/* 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.spring.test.autodeployment; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.eq; +import static org.mockito.Matchers.isA; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.ZipInputStream; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.spring.autodeployment.ResourceParentFolderAutoDeploymentStrategy; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.core.io.Resource; + +/** + * @author Tiese Barrell + */ +@RunWith(MockitoJUnitRunner.class) +public class ResourceParentFolderAutoDeploymentStrategyTest extends AbstractAutoDeploymentStrategyTest { + + private ResourceParentFolderAutoDeploymentStrategy classUnderTest; + + @Mock + private File parentFile1Mock; + + @Mock + private File parentFile2Mock; + + private final String parentFilename1 = "parentFilename1"; + private final String parentFilename2 = "parentFilename2"; + + @Before + public void before() throws Exception { + super.before(); + classUnderTest = new ResourceParentFolderAutoDeploymentStrategy(); + assertNotNull(classUnderTest); + + when(parentFile1Mock.getName()).thenReturn(parentFilename1); + when(parentFile1Mock.isDirectory()).thenReturn(true); + when(parentFile2Mock.getName()).thenReturn(parentFilename2); + when(parentFile2Mock.isDirectory()).thenReturn(true); + } + + @Test + public void testHandlesMode() { + assertTrue(classUnderTest.handlesMode(ResourceParentFolderAutoDeploymentStrategy.DEPLOYMENT_MODE)); + assertFalse(classUnderTest.handlesMode("other-mode")); + assertFalse(classUnderTest.handlesMode(null)); + } + + @Test + public void testDeployResources_Separate() { + final Resource[] resources = new Resource[] { resourceMock1, resourceMock2 }; + + when(fileMock1.getParentFile()).thenReturn(parentFile1Mock); + when(fileMock2.getParentFile()).thenReturn(parentFile2Mock); + + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, times(2)).createDeployment(); + verify(deploymentBuilderMock, times(2)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + parentFilename1); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + parentFilename2); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName1), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, times(2)).deploy(); + } + + @Test + public void testDeployResources_Joined() { + final Resource[] resources = new Resource[] { resourceMock1, resourceMock2 }; + + when(fileMock1.getParentFile()).thenReturn(parentFile1Mock); + when(fileMock2.getParentFile()).thenReturn(parentFile1Mock); + + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, times(1)).createDeployment(); + verify(deploymentBuilderMock, times(1)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + parentFilename1); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName1), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).deploy(); + } + + @Test + public void testDeployResources_AllInOne() { + final Resource[] resources = new Resource[] { resourceMock1, resourceMock2, resourceMock3, resourceMock4, resourceMock5 }; + + when(fileMock1.getParentFile()).thenReturn(parentFile1Mock); + when(fileMock2.getParentFile()).thenReturn(parentFile1Mock); + when(fileMock3.getParentFile()).thenReturn(parentFile1Mock); + when(fileMock4.getParentFile()).thenReturn(parentFile1Mock); + when(fileMock5.getParentFile()).thenReturn(parentFile1Mock); + + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, times(1)).createDeployment(); + verify(deploymentBuilderMock, times(1)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + parentFilename1); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName1), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, times(3)).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, times(1)).deploy(); + } + + @Test + public void testDeployResources_Mixed() { + final Resource[] resources = new Resource[] { resourceMock1, resourceMock2, resourceMock3 }; + + when(fileMock1.getParentFile()).thenReturn(parentFile1Mock); + when(fileMock2.getParentFile()).thenReturn(parentFile2Mock); + when(fileMock3.getParentFile()).thenReturn(parentFile1Mock); + + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, times(2)).createDeployment(); + verify(deploymentBuilderMock, times(2)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + parentFilename1); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + parentFilename2); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName1), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, times(2)).deploy(); + } + + @Test + public void testDeployResources_NoParent() { + + final Resource[] resources = new Resource[] { resourceMock1, resourceMock2, resourceMock3 }; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + when(fileMock1.getParentFile()).thenReturn(null); + when(fileMock2.getParentFile()).thenReturn(parentFile2Mock); + when(parentFile2Mock.isDirectory()).thenReturn(false); + when(fileMock3.getParentFile()).thenReturn(null); + + verify(repositoryServiceMock, times(3)).createDeployment(); + verify(deploymentBuilderMock, times(3)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + resourceName1); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + resourceName2); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + resourceName3); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName1), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, times(3)).deploy(); + } + + @Test + public void testDeployResourcesNoResources() { + final Resource[] resources = new Resource[] {}; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, never()).createDeployment(); + verify(deploymentBuilderMock, never()).enableDuplicateFiltering(); + verify(deploymentBuilderMock, never()).name(deploymentNameHint); + verify(deploymentBuilderMock, never()).addInputStream(isA(String.class), isA(InputStream.class)); + verify(deploymentBuilderMock, never()).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, never()).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, never()).deploy(); + } + + @Test + public void testDeployResourcesIOExceptionWhenCreatingMapFallsBackToResourceName() throws Exception { + when(resourceMock3.getFile()).thenThrow(new IOException()); + when(resourceMock3.getFilename()).thenReturn(resourceName3); + + final Resource[] resources = new Resource[] { resourceMock3 }; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, times(1)).createDeployment(); + verify(deploymentBuilderMock, times(1)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(deploymentNameHint + "." + resourceName3); + verify(deploymentBuilderMock, times(1)).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, times(1)).deploy(); + } + + @Test(expected = ActivitiException.class) + public void testDeployResourcesIOExceptionYieldsActivitiException() throws Exception { + when(resourceMock3.getInputStream()).thenThrow(new IOException()); + + final Resource[] resources = new Resource[] { resourceMock3 }; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + } + +} \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/SingleResourceAutoDeploymentStrategyTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/SingleResourceAutoDeploymentStrategyTest.java new file mode 100644 index 0000000000000000000000000000000000000000..1413e90705f5543af69118a12072638b15599040 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/SingleResourceAutoDeploymentStrategyTest.java @@ -0,0 +1,100 @@ +/* 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.spring.test.autodeployment; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.eq; +import static org.mockito.Matchers.isA; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.ZipInputStream; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.spring.autodeployment.SingleResourceAutoDeploymentStrategy; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.core.io.Resource; + +/** + * @author Tiese Barrell + */ +@RunWith(MockitoJUnitRunner.class) +public class SingleResourceAutoDeploymentStrategyTest extends AbstractAutoDeploymentStrategyTest { + + private SingleResourceAutoDeploymentStrategy classUnderTest; + + @Before + public void before() throws Exception { + super.before(); + classUnderTest = new SingleResourceAutoDeploymentStrategy(); + assertNotNull(classUnderTest); + } + + @Test + public void testHandlesMode() { + assertTrue(classUnderTest.handlesMode(SingleResourceAutoDeploymentStrategy.DEPLOYMENT_MODE)); + assertFalse(classUnderTest.handlesMode("other-mode")); + assertFalse(classUnderTest.handlesMode(null)); + } + + @Test + public void testDeployResources() { + final Resource[] resources = new Resource[] { resourceMock1, resourceMock2, resourceMock3, resourceMock4, resourceMock5 }; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, times(5)).createDeployment(); + verify(deploymentBuilderMock, times(5)).enableDuplicateFiltering(); + verify(deploymentBuilderMock, times(1)).name(resourceName1); + verify(deploymentBuilderMock, times(1)).name(resourceName2); + verify(deploymentBuilderMock, times(1)).name(resourceName3); + verify(deploymentBuilderMock, times(1)).name(resourceName4); + verify(deploymentBuilderMock, times(1)).name(resourceName5); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName1), isA(InputStream.class)); + verify(deploymentBuilderMock, times(1)).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, times(3)).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, times(5)).deploy(); + } + + @Test + public void testDeployResourcesNoResources() { + final Resource[] resources = new Resource[] {}; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + + verify(repositoryServiceMock, never()).createDeployment(); + verify(deploymentBuilderMock, never()).enableDuplicateFiltering(); + verify(deploymentBuilderMock, never()).name(deploymentNameHint); + verify(deploymentBuilderMock, never()).addInputStream(isA(String.class), isA(InputStream.class)); + verify(deploymentBuilderMock, never()).addInputStream(eq(resourceName2), isA(InputStream.class)); + verify(deploymentBuilderMock, never()).addZipInputStream(isA(ZipInputStream.class)); + verify(deploymentBuilderMock, never()).deploy(); + } + + @Test(expected = ActivitiException.class) + public void testDeployResourcesIOExceptionYieldsActivitiException() throws Exception { + when(resourceMock3.getInputStream()).thenThrow(new IOException()); + + final Resource[] resources = new Resource[] { resourceMock3 }; + classUnderTest.deployResources(deploymentNameHint, resources, repositoryServiceMock); + } + +} \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest.java new file mode 100644 index 0000000000000000000000000000000000000000..5d7f48f816083e93eda7a215045fcc73cea501cc --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest.java @@ -0,0 +1,172 @@ +/* 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.spring.test.autodeployment; + +import java.net.URISyntaxException; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.activiti.engine.RepositoryService; +import org.activiti.engine.impl.util.IoUtil; +import org.activiti.engine.repository.Deployment; +import org.activiti.engine.repository.DeploymentQuery; +import org.activiti.engine.repository.ProcessDefinition; +import org.activiti.engine.repository.ProcessDefinitionQuery; +import org.activiti5.engine.impl.test.PvmTestCase; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.AbstractXmlApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * @author Tom Baeyens + * @author Joram Barrez + */ +public class SpringAutoDeployTest extends PvmTestCase { + + protected static final String CTX_PATH = "org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-context.xml"; + protected static final String CTX_NO_DROP_PATH = "org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-no-drop-context.xml"; + protected static final String CTX_CREATE_DROP_CLEAN_DB = "org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-create-drop-clean-db-context.xml"; + protected static final String CTX_DEPLOYMENT_MODE_DEFAULT = "org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-default-context.xml"; + protected static final String CTX_DEPLOYMENT_MODE_SINGLE_RESOURCE = "org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-single-resource-context.xml"; + protected static final String CTX_DEPLOYMENT_MODE_RESOURCE_PARENT_FOLDER = "org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-resource-parent-folder-context.xml"; + + protected ApplicationContext applicationContext; + protected RepositoryService repositoryService; + + protected void createAppContext(String path) { + this.applicationContext = new ClassPathXmlApplicationContext(path); + this.repositoryService = applicationContext.getBean(RepositoryService.class); + } + + protected void tearDown() throws Exception { + removeAllDeployments(); + this.applicationContext = null; + this.repositoryService = null; + super.tearDown(); + } + + public void testBasicActivitiSpringIntegration() { + createAppContext("org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-context.xml"); + List processDefinitions = repositoryService.createProcessDefinitionQuery().list(); + + Set processDefinitionKeys = new HashSet(); + for (ProcessDefinition processDefinition : processDefinitions) { + processDefinitionKeys.add(processDefinition.getKey()); + } + + Set expectedProcessDefinitionKeys = new HashSet(); + expectedProcessDefinitionKeys.add("a"); + expectedProcessDefinitionKeys.add("b"); + expectedProcessDefinitionKeys.add("c"); + + assertEquals(expectedProcessDefinitionKeys, processDefinitionKeys); + } + + public void testNoRedeploymentForSpringContainerRestart() throws Exception { + createAppContext(CTX_PATH); + DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); + assertEquals(1, deploymentQuery.count()); + ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery(); + assertEquals(3, processDefinitionQuery.count()); + + // Creating a new app context with same resources doesn't lead to more + // deployments + new ClassPathXmlApplicationContext(CTX_NO_DROP_PATH); + assertEquals(1, deploymentQuery.count()); + assertEquals(3, processDefinitionQuery.count()); + } + + // Updating the bpmn20 file should lead to a new deployment when restarting + // the Spring container + public void testResourceRedeploymentAfterProcessDefinitionChange() throws Exception { + createAppContext(CTX_PATH); + assertEquals(1, repositoryService.createDeploymentQuery().count()); + ((AbstractXmlApplicationContext) applicationContext).destroy(); + + String filePath = "org/activiti5/spring/test/autodeployment/autodeploy.a.bpmn20.xml"; + String originalBpmnFileContent = IoUtil.readFileAsString(filePath); + String updatedBpmnFileContent = originalBpmnFileContent.replace("flow1", "fromStartToEndFlow"); + assertTrue(updatedBpmnFileContent.length() > originalBpmnFileContent.length()); + IoUtil.writeStringToFile(updatedBpmnFileContent, filePath); + + // Classic produced/consumer problem here: + // The file is already written in Java, but not yet completely persisted + // by + // the OS + // Constructing the new app context reads the same file which is + // sometimes + // not yet fully written to disk + waitUntilFileIsWritten(filePath, updatedBpmnFileContent.length()); + + try { + applicationContext = new ClassPathXmlApplicationContext(CTX_NO_DROP_PATH); + repositoryService = (RepositoryService) applicationContext.getBean("repositoryService"); + } finally { + // Reset file content such that future test are not seeing something + // funny + IoUtil.writeStringToFile(originalBpmnFileContent, filePath); + } + + // Assertions come AFTER the file write! Otherwise the process file is + // messed up if the assertions fail. + assertEquals(2, repositoryService.createDeploymentQuery().count()); + assertEquals(6, repositoryService.createProcessDefinitionQuery().count()); + } + + public void testAutoDeployWithCreateDropOnCleanDb() { + createAppContext(CTX_CREATE_DROP_CLEAN_DB); + assertEquals(1, repositoryService.createDeploymentQuery().count()); + assertEquals(3, repositoryService.createProcessDefinitionQuery().count()); + } + + public void testAutoDeployWithDeploymentModeDefault() { + createAppContext(CTX_DEPLOYMENT_MODE_DEFAULT); + assertEquals(1, repositoryService.createDeploymentQuery().count()); + assertEquals(3, repositoryService.createProcessDefinitionQuery().count()); + } + + public void testAutoDeployWithDeploymentModeSingleResource() { + createAppContext(CTX_DEPLOYMENT_MODE_SINGLE_RESOURCE); + assertEquals(3, repositoryService.createDeploymentQuery().count()); + assertEquals(3, repositoryService.createProcessDefinitionQuery().count()); + } + + public void testAutoDeployWithDeploymentModeResourceParentFolder() { + createAppContext(CTX_DEPLOYMENT_MODE_RESOURCE_PARENT_FOLDER); + assertEquals(2, repositoryService.createDeploymentQuery().count()); + assertEquals(4, repositoryService.createProcessDefinitionQuery().count()); + } + + // --Helper methods + // ---------------------------------------------------------- + + private void removeAllDeployments() { + for (Deployment deployment : repositoryService.createDeploymentQuery().list()) { + repositoryService.deleteDeployment(deployment.getId(), true); + } + } + + private boolean waitUntilFileIsWritten(String filePath, int expectedBytes) throws URISyntaxException { + while (IoUtil.getFile(filePath).length() != (long) expectedBytes) { + try { + wait(100L); + } catch (InterruptedException e) { + fail(e.getMessage()); + } + } + return true; + } + +} \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/Delegate1.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/Delegate1.java new file mode 100644 index 0000000000000000000000000000000000000000..bb9851bc6ecf371159d494d7e33ad22330a9be5c --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/Delegate1.java @@ -0,0 +1,41 @@ +package org.activiti5.spring.test.components.scope; + +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; +import org.activiti.engine.runtime.ProcessInstance; +import org.junit.Assert; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.UUID; + +public class Delegate1 implements JavaDelegate, InitializingBean { + + private Logger log = LoggerFactory.getLogger(getClass()); + + @Autowired + private ProcessInstance processInstance; + + @Autowired + private StatefulObject statefulObject; + + public void execute(DelegateExecution execution) { + + String pid = this.processInstance.getId(); + + log.info("the processInstance#id is {}", pid); + + Assert.assertNotNull("the 'scopedCustomer' reference can't be null", statefulObject); + String uuid = UUID.randomUUID().toString(); + statefulObject.setName(uuid); + log.info("the 'uuid' value given to the ScopedCustomer#name property is '{}' in {}", uuid, getClass().getName()); + + this.statefulObject.increment(); + } + + public void afterPropertiesSet() throws Exception { + Assert.assertNotNull("the processInstance must not be null", this.processInstance); + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/Delegate2.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/Delegate2.java new file mode 100644 index 0000000000000000000000000000000000000000..4214dcae340e3a8ae2314da45b99bab6ba7fb10d --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/Delegate2.java @@ -0,0 +1,30 @@ +package org.activiti5.spring.test.components.scope; + +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; +import org.junit.Assert; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @author Josh Long + * @since 5, 3 + */ + +public class Delegate2 implements JavaDelegate { + + private Logger log = LoggerFactory.getLogger(getClass()); + + @Autowired + private StatefulObject statefulObject; + + public void execute(DelegateExecution execution) { + + this.statefulObject.increment(); + + Assert.assertNotNull("the 'scopedCustomer' reference can't be null", this.statefulObject); + Assert.assertNotNull("the 'scopedCustomer.name' property should be non-null, since it was set in a previous delegate bound to this very thread", this.statefulObject.getName()); + log.info("the 'uuid' value retrieved from the ScopedCustomer#name property is '{}' in {}", this.statefulObject.getName(), getClass().getName()); + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/ProcessScopeTestEngine.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/ProcessScopeTestEngine.java new file mode 100644 index 0000000000000000000000000000000000000000..212d3ce0cd2db799ba3494bb31e7f9761ab51700 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/ProcessScopeTestEngine.java @@ -0,0 +1,81 @@ +package org.activiti5.spring.test.components.scope; + +import org.activiti.engine.ProcessEngine; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.springframework.util.StringUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.*; + +class ProcessScopeTestEngine { + private int customerId = 43; + + private String keyForObjectType(Map runtimeVars, Class clazz) { + for (Map.Entry e : runtimeVars.entrySet()) { + Object value = e.getValue(); + if (value.getClass().isAssignableFrom(clazz)) { + return e.getKey(); + } + } + return null; + } + + private StatefulObject run() { + Map vars = new HashMap(); + vars.put("customerId", customerId); + + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("component-waiter", vars); + + Map runtimeVars = runtimeService.getVariables(processInstance.getId()); + + String statefulObjectVariableKey = keyForObjectType(runtimeVars, StatefulObject.class); + + assertTrue(!runtimeVars.isEmpty()); + assertTrue(StringUtils.hasText(statefulObjectVariableKey)); + + StatefulObject scopedObject = (StatefulObject) runtimeService.getVariable(processInstance.getId(), statefulObjectVariableKey); + assertNotNull(scopedObject); + assertTrue(StringUtils.hasText(scopedObject.getName())); + assertEquals(2, scopedObject.getVisitedCount()); + + // the process has paused + String procId = processInstance.getProcessInstanceId(); + + List tasks = taskService.createTaskQuery().executionId(procId).list(); + assertEquals(1, tasks.size()); + + Task t = tasks.iterator().next(); + this.taskService.claim(t.getId(), "me"); + this.taskService.complete(t.getId()); + + scopedObject = (StatefulObject) runtimeService.getVariable(processInstance.getId(), statefulObjectVariableKey); + assertEquals(3, scopedObject.getVisitedCount()); + + assertEquals(customerId, scopedObject.getCustomerId()); + return scopedObject; + } + + private ProcessEngine processEngine; + private RuntimeService runtimeService; + private TaskService taskService; + + public void testScopedProxyCreation() { + + StatefulObject one = run(); + StatefulObject two = run(); + assertNotSame(one.getName(), two.getName()); + assertEquals(one.getVisitedCount(), two.getVisitedCount()); + } + + public ProcessScopeTestEngine(ProcessEngine processEngine) { + this.processEngine = processEngine; + this.runtimeService = this.processEngine.getRuntimeService(); + this.taskService = this.processEngine.getTaskService(); + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/StatefulObject.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/StatefulObject.java new file mode 100644 index 0000000000000000000000000000000000000000..234724735de5e4115a70fc047dd53a56fd859dbc --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/StatefulObject.java @@ -0,0 +1,99 @@ +package org.activiti5.spring.test.components.scope; + +import org.activiti.engine.runtime.ProcessInstance; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.Assert; + +import java.io.Serializable; + +/** + * dumb object to demonstrate holding scoped state for the duration of a business process + * + * @author Josh Long + */ +public class StatefulObject implements Serializable, InitializingBean { + + private transient Logger logger = LoggerFactory.getLogger(getClass()); + + public static final long serialVersionUID = 1L; + + private String name; + private int visitedCount = 0; + + private long customerId; + + public long getCustomerId() { + return customerId; + } + + @Value("#{processInstance}") + transient ProcessInstance processInstance; + + @Value("#{executionId}") + String executionId; + + @Value("#{processVariables['customerId']}") + public void setCustomerId(long customerId) { + + this.customerId = customerId; + + logger.info("setting this {} instances 'customerId' to {}. The current executionId is {}", StatefulObject.class.getName(), this.customerId, this.executionId); + + } + + public StatefulObject() { + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + + StatefulObject that = (StatefulObject) o; + + if (visitedCount != that.visitedCount) + return false; + if (name != null ? !name.equals(that.name) : that.name != null) + return false; + + return true; + } + + @Override + public int hashCode() { + int result = name != null ? name.hashCode() : 0; + result = 31 * result + visitedCount; + return result; + } + + @Override + public String toString() { + return "StatefulObject{" + "name='" + name + '\'' + ", visitedCount=" + visitedCount + '}'; + } + + public void increment() { + this.visitedCount += 1; + } + + public int getVisitedCount() { + return this.visitedCount; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(this.processInstance, "the processInstance should be equal to the currently active processInstance!"); + logger.info("the 'processInstance' property is non-null: PI ID#{}", this.processInstance.getId()); + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/XmlNamespaceProcessScopeTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/XmlNamespaceProcessScopeTest.java new file mode 100644 index 0000000000000000000000000000000000000000..033aeec2341d93f42fd5b6dbdfd1f7b9a54b6356 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/components/scope/XmlNamespaceProcessScopeTest.java @@ -0,0 +1,51 @@ +package org.activiti5.spring.test.components.scope; + +import org.activiti.engine.ProcessEngine; +import org.activiti.engine.RepositoryService; +import org.activiti.engine.repository.Deployment; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * tests the scoped beans + * + * @author Josh Long + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("classpath:org/activiti5/spring/test/components/ScopingTests-context.xml") +@Ignore +// Ignored for the moment. Josh is working on this. +public class XmlNamespaceProcessScopeTest { + + private ProcessScopeTestEngine processScopeTestEngine; + + @Autowired + private ProcessEngine processEngine; + + @Before + public void before() throws Throwable { + this.processEngine.getRepositoryService().createDeployment().addClasspathResource("org/activiti5/spring/test/components/spring-component-waiter.bpmn20.xml").deploy(); + + processScopeTestEngine = new ProcessScopeTestEngine(this.processEngine); + } + + @After + public void after() { + RepositoryService repositoryService = this.processEngine.getRepositoryService(); + for (Deployment deployment : repositoryService.createDeploymentQuery().list()) { + repositoryService.deleteDeployment(deployment.getId(), true); + } + } + + @Test + public void testScopedProxyCreation() throws Throwable { + processScopeTestEngine.testScopedProxyCreation(); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/email/JndiEmailTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/email/JndiEmailTest.java new file mode 100644 index 0000000000000000000000000000000000000000..92274e906e561fd4e09b02a0d0c3b0063ff628c9 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/email/JndiEmailTest.java @@ -0,0 +1,56 @@ +package org.activiti5.spring.test.email; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import javax.mail.NoSuchProviderException; +import javax.mail.Provider; +import javax.mail.Provider.Type; +import javax.mail.Session; +import javax.naming.NamingException; + +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.junit.BeforeClass; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.mock.jndi.SimpleNamingContextBuilder; +import org.springframework.test.context.ContextConfiguration; + +@ContextConfiguration("classpath:org/activiti5/spring/test/email/jndiEmailConfiguaration-context.xml") +public class JndiEmailTest extends SpringActivitiTestCase { + + private static Logger logger = LoggerFactory.getLogger(JndiEmailTest.class); + + @BeforeClass + public void setUp() { + Properties props = new Properties(); + props.put("mail.transport.protocol", "smtp"); + props.put("mail.smtp.provider.class", MockEmailTransport.class.getName()); + props.put("mail.smtp.class", MockEmailTransport.class.getName()); + props.put("mail.smtp.provider.vendor", "test"); + props.put("mail.smtp.provider.version", "0.0.0"); + + Provider provider = new Provider(Type.TRANSPORT, "smtp", MockEmailTransport.class.getName(), "test", "1.0"); + Session mailSession = Session.getDefaultInstance(props); + SimpleNamingContextBuilder builder = null; + try { + mailSession.setProvider(provider); + builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder(); + builder.bind("java:comp/env/Session", mailSession); + } catch (NamingException e) { + logger.error("Naming error in email setup", e); + } catch (NoSuchProviderException e) { + logger.error("provider error in email setup", e); + } + } + + @Deployment(resources = {"org/activiti5/spring/test/email/EmailTaskUsingJndi.bpmn20.xml"}) + public void testEmailUsingJndi() { + Map variables = new HashMap(); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("EmailJndiProcess", variables); + assertEquals(0, runtimeService.createProcessInstanceQuery().processInstanceId(processInstance.getId()).count()); + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/email/MockEmailTransport.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/email/MockEmailTransport.java new file mode 100644 index 0000000000000000000000000000000000000000..3ad740d1b811a23b9a6248fe44cb944dde3d214a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/email/MockEmailTransport.java @@ -0,0 +1,50 @@ +package org.activiti5.spring.test.email; + +import java.io.IOException; + +import javax.mail.Address; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.URLName; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author Hariprasath Manivannan + */ +public class MockEmailTransport extends Transport { + + private static Logger logger = LoggerFactory.getLogger(MockEmailTransport.class); + + public MockEmailTransport(Session smtpSession, URLName urlName) { + super(smtpSession, urlName); + } + + @Override + public void sendMessage(Message message, Address[] addresses) throws MessagingException { + try { + logger.info(message.getContent().toString()); + } catch (IOException ex) { + logger.error("Error occured while sending email" + ex); + } + } + + @Override + public void connect() throws MessagingException { + } + + @Override + public void connect(String host, int port, String username, String password) throws MessagingException { + } + + @Override + public void connect(String host, String username, String password) throws MessagingException { + } + + @Override + public void close() { + } +} \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/engine/SpringProcessEngineTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/engine/SpringProcessEngineTest.java new file mode 100644 index 0000000000000000000000000000000000000000..90714c59d6441d6e5def0449f9e00eb929b543aa --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/engine/SpringProcessEngineTest.java @@ -0,0 +1,26 @@ +package org.activiti5.spring.test.engine; + +import org.activiti.engine.ProcessEngines; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertNotNull; + +/** + * Spring process engine base test + * + * @author: Henry Yan + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("classpath:org/activiti5/spring/test/engine/springProcessEngine-context.xml") +public class SpringProcessEngineTest { + + @Test + public void testGetEngineFromCache() { + assertNotNull(ProcessEngines.getDefaultProcessEngine()); + assertNotNull(ProcessEngines.getProcessEngine("default")); + } + +} \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/SpringLimitedExpressionsTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/SpringLimitedExpressionsTest.java new file mode 100644 index 0000000000000000000000000000000000000000..31314d1f2597a424bff2a365e1001bbc10660831 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/SpringLimitedExpressionsTest.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.spring.test.expression; + +import org.activiti.engine.ActivitiException; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.test.context.ContextConfiguration; + +/** + * Test limiting the exposed beans in expressions. + * + * @author Frederik Heremans + */ +@ContextConfiguration("classpath:org/activiti5/spring/test/expression/expressionLimitedBeans-context.xml") +public class SpringLimitedExpressionsTest extends SpringActivitiTestCase { + + @Deployment + public void testLimitedBeansExposed() throws Exception { + // Start process, which has a service-task which calls 'bean1', which is + // exposed + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("limitedExpressionProcess"); + + String beanOutput = (String) runtimeService.getVariable(processInstance.getId(), "beanOutput"); + assertNotNull(beanOutput); + assertEquals("Activiti BPMN 2.0 process engine", beanOutput); + + // Finish the task, should continue to serviceTask which uses a bean that is present + // in application-context, but not exposed explicitly in "beans", should throw error! + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); + assertNotNull(task); + + try { + taskService.complete(task.getId()); + fail("Exception should have been thrown"); + } catch (ActivitiException ae) { + assertTextPresent("Unknown property used in expression", ae.getCause().getMessage()); + } + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/callactivity/CallActivityBasedOnSpringBeansExpressionTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/callactivity/CallActivityBasedOnSpringBeansExpressionTest.java new file mode 100644 index 0000000000000000000000000000000000000000..62b14db3961846fb81f0e6771b756cd2c2cd0983 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/callactivity/CallActivityBasedOnSpringBeansExpressionTest.java @@ -0,0 +1,56 @@ +/* + * 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.spring.test.expression.callactivity; + +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.activiti.engine.task.TaskQuery; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.test.context.ContextConfiguration; + +/** + * The CallActivityBasedOnSpringBeansExpressionTest is isUsed to test dynamically wiring in the calledElement in the callActivity task. This test case helps verify that we do not have to hard code the + * sub process definition key within the process. + * + * @author Sang Venkatraman + */ +@ContextConfiguration("classpath:org/activiti5/spring/test/expression/callactivity/testCallActivityByExpression-context.xml") +public class CallActivityBasedOnSpringBeansExpressionTest extends SpringActivitiTestCase { + + @Deployment(resources = { "org/activiti5/spring/test/expression/callactivity/CallActivityBasedOnSpringBeansExpressionTest.testCallActivityByExpression.bpmn20.xml", + "org/activiti5/spring/test/expression/callactivity/simpleSubProcess.bpmn20.xml" }) + public void testCallActivityByExpression() throws Exception { + // Start process (main) + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testCallActivityByExpression"); + + // one task in the subprocess should be active after starting the + // process instance + TaskQuery taskQuery = taskService.createTaskQuery(); + Task taskBeforeSubProcess = taskQuery.singleResult(); + assertEquals("Task before subprocess", taskBeforeSubProcess.getName()); + + // Completing the task continues the process which leads to calling the + // subprocess. The sub process we want to + // call is passed in as a variable into this task + taskService.complete(taskBeforeSubProcess.getId()); + Task taskInSubProcess = taskQuery.singleResult(); + assertEquals("Task in subprocess", taskInSubProcess.getName()); + + // Completing the task in the subprocess, finishes the subprocess + taskService.complete(taskInSubProcess.getId()); + Task taskAfterSubProcess = taskQuery.singleResult(); + assertEquals("Task after subprocess", taskAfterSubProcess.getName()); + + // Completing this task end the process instance + taskService.complete(taskAfterSubProcess.getId()); + assertProcessEnded(processInstance.getId()); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/callactivity/NextProcessExecutionEvaluator.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/callactivity/NextProcessExecutionEvaluator.java new file mode 100644 index 0000000000000000000000000000000000000000..3587be005e129a8a23881bce56f7b0580bcc6bc1 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/expression/callactivity/NextProcessExecutionEvaluator.java @@ -0,0 +1,23 @@ +/* + * 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.spring.test.expression.callactivity; + +/** + * The NextProcessExecutionEvaluator class provides the name of the sub process to be executed next. This allows us to test dynamically wire in the calledElement in the callActivity task. In an actual + * implementation there would be business logic here to determine which process to execute in the callActivity task. + * + * @author Sang Venkatraman + */ +public class NextProcessExecutionEvaluator { + + public String returnProcessDefinitionToCall() { + // some business logic here + return "simpleSubProcess"; + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jobexecutor/ForcedRollbackExecutionListener.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jobexecutor/ForcedRollbackExecutionListener.java new file mode 100644 index 0000000000000000000000000000000000000000..c687fea6de4be8e2950903563c19029679c38b60 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jobexecutor/ForcedRollbackExecutionListener.java @@ -0,0 +1,15 @@ +package org.activiti5.spring.test.jobexecutor; + +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; + +/** + * @author Pablo Ganga + */ +public class ForcedRollbackExecutionListener implements ExecutionListener { + + public void notify(DelegateExecution delegateExecution) { + throw new RuntimeException("Forcing transaction rollback"); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jobexecutor/SpringJobExecutorTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jobexecutor/SpringJobExecutorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c17dd9f503fc6d22245c336eaf44c0ce0c146ab6 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jobexecutor/SpringJobExecutorTest.java @@ -0,0 +1,59 @@ +package org.activiti5.spring.test.jobexecutor; + +import java.util.List; + +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.activiti5.spring.impl.test.CleanTestExecutionListener; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * @author Pablo Ganga + * @author Joram Barrez + */ +@RunWith(SpringJUnit4ClassRunner.class) +@TestExecutionListeners(CleanTestExecutionListener.class) +@ContextConfiguration("classpath:org/activiti5/spring/test/components/SpringjobExecutorTest-context.xml") +public class SpringJobExecutorTest extends SpringActivitiTestCase { + + @Autowired + protected RuntimeService runtimeService; + + @Autowired + protected TaskService taskService; + + @Test + public void testHappyJobExecutorPath() throws Exception { + + ProcessInstance instance = runtimeService.startProcessInstanceByKey("process1"); + assertNotNull(instance); + waitForTasksToExpire(); + + List activeTasks = taskService.createTaskQuery().processInstanceId(instance.getId()).list(); + assertTrue(activeTasks.isEmpty()); + } + + @Test + public void testRollbackJobExecutorPath() throws Exception { + + ProcessInstance instance = runtimeService.startProcessInstanceByKey("errorProcess1"); + assertNotNull(instance); + waitForTasksToExpire(); + + List activeTasks = taskService.createTaskQuery().processInstanceId(instance.getId()).list(); + assertTrue(activeTasks.size() == 1); + } + + private void waitForTasksToExpire() throws Exception { + Thread.sleep(10000L); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/JpaTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/JpaTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d978f2b2aff674d2bb01485702ce00b5cd1d3a93 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/JpaTest.java @@ -0,0 +1,163 @@ +package org.activiti5.spring.test.jpa; + +import java.util.HashMap; +import java.util.Map; + +import org.activiti.engine.repository.Deployment; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.test.context.ContextConfiguration; + +/** + * + * @author Frederik Heremans + */ +@ContextConfiguration(locations = "JPASpringTest-context.xml") +public class JpaTest extends SpringActivitiTestCase { + + public void testJpaVariableHappyPath() { + before(); + Map variables = new HashMap(); + variables.put("customerName", "John Doe"); + variables.put("amount", 15000L); + + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("LoanRequestProcess", variables); + + // Variable should be present containing the loanRequest created by the + // spring bean + Object value = runtimeService.getVariable(processInstance.getId(), "loanRequest"); + assertNotNull(value); + assertTrue(value instanceof LoanRequest); + LoanRequest request = (LoanRequest) value; + assertEquals("John Doe", request.getCustomerName()); + assertEquals(15000L, request.getAmount().longValue()); + assertFalse(request.isApproved()); + + // We will approve the request, which will update the entity + variables = new HashMap(); + variables.put("approvedByManager", Boolean.TRUE); + + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); + assertNotNull(task); + taskService.complete(task.getId(), variables); + + // If approved, the processsInstance should be finished, gateway based + // on loanRequest.approved value + assertEquals(0, runtimeService.createProcessInstanceQuery().processInstanceId(processInstance.getId()).count()); + + // Cleanup + deleteDeployments(); + } + + public void testJpaVariableDisapprovalPath() { + + before(); + Map variables = new HashMap(); + variables.put("customerName", "Jane Doe"); + variables.put("amount", 50000); + + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("LoanRequestProcess", variables); + + // Variable should be present containing the loanRequest created by the + // spring bean + Object value = runtimeService.getVariable(processInstance.getId(), "loanRequest"); + assertNotNull(value); + assertTrue(value instanceof LoanRequest); + LoanRequest request = (LoanRequest) value; + assertEquals("Jane Doe", request.getCustomerName()); + assertEquals(50000L, request.getAmount().longValue()); + assertFalse(request.isApproved()); + + // We will disapprove the request, which will update the entity + variables = new HashMap(); + variables.put("approvedByManager", Boolean.FALSE); + + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); + assertNotNull(task); + taskService.complete(task.getId(), variables); + + runtimeService.getVariable(processInstance.getId(), "loanRequest"); + request = (LoanRequest) value; + assertFalse(request.isApproved()); + + // If disapproved, an extra task will be available instead of the + // process + // ending + task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); + assertNotNull(task); + assertEquals("Send rejection letter", task.getName()); + + // Cleanup + deleteDeployments(); + } + + protected void before() { + String[] defs = { "org/activiti5/spring/test/jpa/JPASpringTest.bpmn20.xml" }; + for (String pd : defs) + repositoryService.createDeployment().addClasspathResource(pd).deploy(); + } + + protected void deleteDeployments() { + for (Deployment deployment : repositoryService.createDeploymentQuery().list()) { + repositoryService.deleteDeployment(deployment.getId(), true); + } + } +} +/* + * + * @Configuration + * + * @EnableTransactionManagement(proxyTargetClass = true) class JpaConfiguration { + * + * @Bean LoanRequestBean loanRequestBean (){ return new LoanRequestBean(); } + * + * @Bean public OpenJpaVendorAdapter openJpaVendorAdapter() { OpenJpaVendorAdapter openJpaVendorAdapter = new OpenJpaVendorAdapter(); + * openJpaVendorAdapter.setDatabasePlatform(H2Dictionary.class.getName()); return openJpaVendorAdapter; } + * + * @Bean public DataSource dataSource() { BasicDataSource basicDataSource = new BasicDataSource(); basicDataSource.setUsername("sa"); basicDataSource.setUrl("jdbc:h2:mem:activiti"); + * basicDataSource.setDefaultAutoCommit(false); basicDataSource.setDriverClassName(org.h2.Driver.class.getName()); basicDataSource.setPassword(""); return basicDataSource; } + * + * @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean( OpenJpaVendorAdapter openJpaVendorAdapter, DataSource ds) { LocalContainerEntityManagerFactoryBean emf = new + * LocalContainerEntityManagerFactoryBean(); emf.setPersistenceXmlLocation( "classpath:/org/activiti/spring/test/jpa/custom-persistence.xml"); emf.setJpaVendorAdapter(openJpaVendorAdapter); + * emf.setDataSource(ds); return emf; } + * + * @Bean public PlatformTransactionManager jpaTransactionManager(EntityManagerFactory emf) { return new JpaTransactionManager(emf); } + * + * /// restoring manual JPA bits + * + * @Bean public SpringProcessEngineConfiguration activitiConfiguration( ResourcePatternResolver resourcePatternResolver, DataSource dataSource, PlatformTransactionManager transactionManager ) throws + * IOException { + * + * Resource[] resources = resourcePatternResolver.getResources("classpath:// + */ +/** + * .bpmn20.xml"); + * + * SpringProcessEngineConfiguration engine = new SpringProcessEngineConfiguration(); if (resources != null && resources.length > 0) { engine.setDeploymentResources(resources); } + * engine.setDataSource(dataSource); engine.setTransactionManager(transactionManager); + */ +/* + * conf.setDeploymentName(defaultText( activitiProperties.getDeploymentName(), conf.getDeploymentName())); conf.setDatabaseSchema(defaultText( activitiProperties.getDatabaseSchema(), + * conf.getDatabaseSchema())); + *//* + * + * + * engine.setDatabaseSchemaUpdate(ProcessEngineConfiguration. DB_SCHEMA_UPDATE_TRUE); + * + * return engine; } + * + * @Bean public ProcessEngineFactoryBean processEngine(SpringProcessEngineConfiguration configuration) throws Exception { ProcessEngineFactoryBean processEngineFactoryBean = new + * ProcessEngineFactoryBean(); processEngineFactoryBean.setProcessEngineConfiguration(configuration); return processEngineFactoryBean; } } + */ +/* + * @Bean public AbstractActivitiConfigurer abstractActivitiConfigurer( final EntityManagerFactory emf, final PlatformTransactionManager transactionManager) { + * + * return new AbstractActivitiConfigurer() { + * + * @Override public void postProcessSpringProcessEngineConfiguration(SpringProcessEngineConfiguration engine) { engine.setTransactionManager(transactionManager); + * engine.setJpaEntityManagerFactory(emf); engine.setJpaHandleTransaction(false); engine.setJobExecutorActivate(false); engine.setJpaCloseEntityManager(false); + * engine.setDatabaseSchemaUpdate(ProcessEngineConfiguration .DB_SCHEMA_UPDATE_TRUE); } }; } + * + * @Bean public LoanRequestBean loanRequestBean() { return new LoanRequestBean(); } } + */ diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/LoanRequest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/LoanRequest.java new file mode 100644 index 0000000000000000000000000000000000000000..53849a04f10da9f08d006198fefebe2869f45e6c --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/LoanRequest.java @@ -0,0 +1,70 @@ +/* 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.spring.test.jpa; + +import javax.persistence.*; + +/** + * @author Frederik Heremans + */ +@Entity(name = "SPRING_TEST_ORDER") +public class LoanRequest { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "ID_") + private Long id; + + @Column(name = "CUSTOMER_NAME_") + private String customerName; + + @Column(name = "AMOUNT_") + private Long amount; + + @Column(name = "APPROVED_") + private boolean approved; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public Long getAmount() { + return amount; + } + + public void setAmount(Long amount) { + this.amount = amount; + } + + public boolean isApproved() { + return approved; + } + + public void setApproved(boolean approved) { + this.approved = approved; + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/LoanRequestBean.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/LoanRequestBean.java new file mode 100644 index 0000000000000000000000000000000000000000..244d31b73d541282713f4713e9eb4feda1bda6d9 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/jpa/LoanRequestBean.java @@ -0,0 +1,44 @@ +/* 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.spring.test.jpa; + +import org.springframework.transaction.annotation.Transactional; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +/** + * Service bean that handles loan requests. + * + * @author Frederik Heremans + */ +public class LoanRequestBean { + + @PersistenceContext + private EntityManager entityManager; + + @Transactional + public LoanRequest newLoanRequest(String customerName, Long amount) { + LoanRequest lr = new LoanRequest(); + lr.setCustomerName(customerName); + lr.setAmount(amount); + lr.setApproved(false); + entityManager.persist(lr); + return lr; + } + + public LoanRequest getLoanRequest(Long id) { + return entityManager.find(LoanRequest.class, id); + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/junit4/SpringJunit4Test.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/junit4/SpringJunit4Test.java new file mode 100644 index 0000000000000000000000000000000000000000..8ecd43fe563d9eec4302aa1546d251791fb04366 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/junit4/SpringJunit4Test.java @@ -0,0 +1,75 @@ +/* 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.spring.test.junit4; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.activiti.engine.ProcessEngine; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.activiti.engine.task.Task; +import org.activiti.engine.test.Deployment; +import org.activiti5.engine.test.ActivitiRule; +import org.junit.After; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * @author Joram Barrez + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("classpath:org/activiti5/spring/test/junit4/springTypicalUsageTest-context.xml") +public class SpringJunit4Test { + + @Autowired + private ProcessEngine processEngine; + + @Autowired + private RuntimeService runtimeService; + + @Autowired + private TaskService taskService; + + @Autowired + @Rule + public ActivitiRule activitiSpringRule; + + @After + public void closeProcessEngine() { + // Required, since all the other tests seem to do a specific drop on the end + processEngine.close(); + } + + @Test + @Deployment + public void simpleProcessTest() { + runtimeService.startProcessInstanceByKey("simpleProcess"); + Task task = taskService.createTaskQuery().singleResult(); + assertEquals("My Task", task.getName()); + + // ACT-1186: ActivitiRule services not initialized when using + // SpringJUnit4ClassRunner together with @ContextConfiguration + assertNotNull(activitiSpringRule.getRuntimeService()); + + taskService.complete(task.getId()); + assertEquals(0, runtimeService.createProcessInstanceQuery().count()); + + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/BoundaryErrorEventSpringTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/BoundaryErrorEventSpringTest.java new file mode 100644 index 0000000000000000000000000000000000000000..a8fc9e5b554fc318bae38ccc8ce9f29c1a8e946d --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/BoundaryErrorEventSpringTest.java @@ -0,0 +1,46 @@ +/* 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.spring.test.servicetask; + +import org.activiti.engine.task.Task; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.test.context.ContextConfiguration; + +/** + * @author Angel Lopez Cima + * @author Falko Menge + * @see https://activiti.atlassian.net/browse/ACT-1166 + */ +@ContextConfiguration("classpath:org/activiti5/spring/test/servicetask/serviceraskSpringTestCatchError-context.xml") +public class BoundaryErrorEventSpringTest extends SpringActivitiTestCase { + + @Deployment + public void testCatchErrorThrownByJavaDelegateOnServiceTask() { + String procId = runtimeService.startProcessInstanceByKey("catchErrorThrownByExpressionDelegateOnServiceTask").getId(); + assertThatErrorHasBeenCaught(procId); + } + + private void assertThatErrorHasBeenCaught(String procId) { + // The service task will throw an error event, + // which is caught on the service task boundary + assertEquals("No tasks found in task list.", 1, taskService.createTaskQuery().count()); + Task task = taskService.createTaskQuery().singleResult(); + assertEquals("Escalated Task", task.getName()); + + // Completing the task will end the process instance + taskService.complete(task.getId()); + assertProcessEnded(procId); + } +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/DelegateExpressionBean.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/DelegateExpressionBean.java new file mode 100644 index 0000000000000000000000000000000000000000..aead21e2e108b594dce922fc7bb003dee8a708f7 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/DelegateExpressionBean.java @@ -0,0 +1,59 @@ +/* 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.spring.test.servicetask; + +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; +import org.activiti5.engine.impl.el.FixedValue; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author Joram Barrez + * @author Bernd Ruecker (camunda) + */ +public class DelegateExpressionBean implements JavaDelegate { + + private static final Logger log = LoggerFactory.getLogger(DelegateExpressionBean.class); + private SentenceGenerator sentenceGenerator; + + private FixedValue someField; + + public void execute(DelegateExecution execution) { + log.info("Entering DelegateExpressionBean.execute()"); + if (sentenceGenerator != null) { + execution.setVariable("myVar", sentenceGenerator.getSentence()); + } else { + execution.setVariable("myVar", "SentenceGenerator is not injected by spring"); + } + if (someField != null) { + execution.setVariable("fieldInjection", someField.getValue(execution)); + } else { + execution.setVariable("fieldInjection", "Field injection not working"); + } + log.info("Leaving DelegateExpressionBean.execute()"); + } + + public void setSentenceGenerator(SentenceGenerator sentenceGenerator) { + this.sentenceGenerator = sentenceGenerator; + } + + public FixedValue getSomeField() { + return someField; + } + + public void setSomeField(FixedValue someField) { + this.someField = someField; + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/MyExecutionListenerBean.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/MyExecutionListenerBean.java new file mode 100644 index 0000000000000000000000000000000000000000..b4b958d7b948647882de0bf01b712b149f7bf79a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/MyExecutionListenerBean.java @@ -0,0 +1,42 @@ +/* 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.spring.test.servicetask; + +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti5.engine.impl.el.FixedValue; + +/** + * @author Joram Barrez + * @author Bernd Ruecker (camunda) + */ +public class MyExecutionListenerBean implements ExecutionListener { + + private FixedValue someField; + + public void notify(DelegateExecution execution) { + execution.setVariable("executionListenerVar", "working"); + if (someField != null) { + execution.setVariable("executionListenerField", someField.getValue(execution)); + } + } + + public FixedValue getSomeField() { + return someField; + } + + public void setSomeField(FixedValue someField) { + this.someField = someField; + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/MyTaskListenerBean.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/MyTaskListenerBean.java new file mode 100644 index 0000000000000000000000000000000000000000..52c5978f512825389b383303243de6e45313463b --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/MyTaskListenerBean.java @@ -0,0 +1,42 @@ +/* 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.spring.test.servicetask; + +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.activiti5.engine.impl.el.FixedValue; + +/** + * @author Joram Barrez + * @author Bernd Ruecker (camunda) + */ +public class MyTaskListenerBean implements TaskListener { + + private FixedValue someField; + + public void notify(DelegateTask delegateTask) { + delegateTask.getExecution().setVariable("taskListenerVar", "working"); + if (someField != null) { + delegateTask.getExecution().setVariable("taskListenerField", someField.getValue(delegateTask)); + } + } + + public FixedValue getSomeField() { + return someField; + } + + public void setSomeField(FixedValue someField) { + this.someField = someField; + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/SentenceGenerator.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/SentenceGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..e7c9dcd5f058d60b3291c06ae6feba775e1e3887 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/SentenceGenerator.java @@ -0,0 +1,24 @@ +/* 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.spring.test.servicetask; + +/** + * @author Joram Barrez + */ +public class SentenceGenerator { + + public String getSentence() { + return "Activiti BPMN 2.0 process engine"; + } + +} diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/ExecutionListener.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/SentenceToUpperCaseBean.java similarity index 56% rename from modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/ExecutionListener.java rename to modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/SentenceToUpperCaseBean.java index 6b2c227df18ba9b2b8bfb24452981c2355d11041..e315028e9c1aa2d75a1558dfbe48bb8e8f1cbf73 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/ExecutionListener.java +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/SentenceToUpperCaseBean.java @@ -10,24 +10,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.activiti5.engine.delegate; +package org.activiti5.spring.test.servicetask; -import java.io.Serializable; +import org.activiti.engine.delegate.DelegateExecution; - - - -/** Callback interface to be notified of execution events like starting a process instance, - * ending an activity instance or taking a transition. - * - * @author Tom Baeyens +/** * @author Joram Barrez */ -public interface ExecutionListener extends Serializable { +public class SentenceToUpperCaseBean { + + protected SentenceGenerator sentenceGenerator; + + public void setSentence(DelegateExecution execution) { + execution.setVariable("myVar", sentenceGenerator.getSentence().toUpperCase()); + } - String EVENTNAME_START = "start"; - String EVENTNAME_END = "end"; - String EVENTNAME_TAKE = "take"; + public void setSentenceGenerator(SentenceGenerator sentenceGenerator) { + this.sentenceGenerator = sentenceGenerator; + } - void notify(DelegateExecution execution) throws Exception; } diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e03ca585a18233f9aeba41f295b5412bea2280f9 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.java @@ -0,0 +1,68 @@ +/* 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.spring.test.servicetask; + +import org.activiti.engine.impl.test.JobTestHelper; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.test.context.ContextConfiguration; + +/** + * @author Joram Barrez + */ +@ContextConfiguration("classpath:org/activiti5/spring/test/servicetask/servicetaskSpringTest-context.xml") +public class ServiceTaskSpringDelegationTest extends SpringActivitiTestCase { + + @Deployment + public void testDelegateExpression() { + ProcessInstance procInst = runtimeService.startProcessInstanceByKey("delegateExpressionToSpringBean"); + assertEquals("Activiti BPMN 2.0 process engine", runtimeService.getVariable(procInst.getId(), "myVar")); + assertEquals("fieldInjectionWorking", runtimeService.getVariable(procInst.getId(), "fieldInjection")); + } + + @Deployment + public void testAsyncDelegateExpression() throws Exception { + ProcessInstance procInst = runtimeService.startProcessInstanceByKey("delegateExpressionToSpringBean"); + assertTrue(JobTestHelper.areJobsAvailable(managementService)); + waitForJobExecutorToProcessAllJobs(5000, 500); + Thread.sleep(1000); + assertEquals("Activiti BPMN 2.0 process engine", runtimeService.getVariable(procInst.getId(), "myVar")); + assertEquals("fieldInjectionWorking", runtimeService.getVariable(procInst.getId(), "fieldInjection")); + } + + @Deployment + public void testMethodExpressionOnSpringBean() { + ProcessInstance procInst = runtimeService.startProcessInstanceByKey("methodExpressionOnSpringBean"); + assertEquals("ACTIVITI BPMN 2.0 PROCESS ENGINE", runtimeService.getVariable(procInst.getId(), "myVar")); + } + + @Deployment + public void testAsyncMethodExpressionOnSpringBean() { + ProcessInstance procInst = runtimeService.startProcessInstanceByKey("methodExpressionOnSpringBean"); + assertTrue(JobTestHelper.areJobsAvailable(managementService)); + waitForJobExecutorToProcessAllJobs(5000, 500); + assertEquals("ACTIVITI BPMN 2.0 PROCESS ENGINE", runtimeService.getVariable(procInst.getId(), "myVar")); + } + + @Deployment + public void testExecutionAndTaskListenerDelegationExpression() { + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("executionAndTaskListenerDelegation"); + assertEquals("working", runtimeService.getVariable(processInstance.getId(), "executionListenerVar")); + assertEquals("working", runtimeService.getVariable(processInstance.getId(), "taskListenerVar")); + + assertEquals("executionListenerInjection", runtimeService.getVariable(processInstance.getId(), "executionListenerField")); + assertEquals("taskListenerInjection", runtimeService.getVariable(processInstance.getId(), "taskListenerField")); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/StartProcessInstanceTestDelegate.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/StartProcessInstanceTestDelegate.java new file mode 100644 index 0000000000000000000000000000000000000000..adfa0677fcf047161ebb61d1c450e14a1441e8e1 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/StartProcessInstanceTestDelegate.java @@ -0,0 +1,30 @@ +/* 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.spring.test.servicetask; + +import org.activiti.engine.RuntimeService; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; +import org.activiti.engine.impl.context.Context; + +/** + * @author Joram Barrez + */ +public class StartProcessInstanceTestDelegate implements JavaDelegate { + + public void execute(DelegateExecution execution) { + RuntimeService runtimeService = Context.getProcessEngineConfiguration().getRuntimeService(); + runtimeService.startProcessInstanceByKey("oneTaskProcess"); + } + +} diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/EngineServices.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/StartProcessInstanceTestDelegateWithInjection.java similarity index 55% rename from modules/activiti-engine/src/main/java/org/activiti/engine/EngineServices.java rename to modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/StartProcessInstanceTestDelegateWithInjection.java index 405d97c0ea731780d5107d3e6f5912b4a8c7119c..63b861ce092442bb72062ffc5482972c1d004c86 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/EngineServices.java +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/StartProcessInstanceTestDelegateWithInjection.java @@ -10,28 +10,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.activiti.engine; +package org.activiti5.spring.test.servicetask; + +import org.activiti.engine.RuntimeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; /** - * Interface implemented by all classes that expose the Activiti services. - * * @author Joram Barrez */ -public interface EngineServices { - - RepositoryService getRepositoryService(); - - RuntimeService getRuntimeService(); - - FormService getFormService(); - - TaskService getTaskService(); - - HistoryService getHistoryService(); +@Component("startProcessInstanceDelegate") +public class StartProcessInstanceTestDelegateWithInjection { - IdentityService getIdentityService(); + @Autowired + private RuntimeService runtimeService; - ManagementService getManagementService(); + public void startProcess() { + runtimeService.startProcessInstanceByKey("oneTaskProcess"); + } - ProcessEngineConfiguration getProcessEngineConfiguration(); } diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/ThrowBpmnErrorDelegate.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/ThrowBpmnErrorDelegate.java new file mode 100644 index 0000000000000000000000000000000000000000..dbf2fb35ea1540a221fe33a92e3b2a3cde8f92b9 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/ThrowBpmnErrorDelegate.java @@ -0,0 +1,39 @@ +/* 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.spring.test.servicetask; + +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; +import org.activiti5.engine.delegate.BpmnError; + +/** + * @author Falko Menge + */ +public class ThrowBpmnErrorDelegate implements JavaDelegate { + + public void execute(DelegateExecution execution) { + Integer executionsBeforeError = (Integer) execution.getVariable("executionsBeforeError"); + Integer executions = (Integer) execution.getVariable("executions"); + if (executions == null) { + executions = 0; + } + executions++; + if (executionsBeforeError == null || executionsBeforeError < executions) { + throw new BpmnError("23", "This is a business fault, which can be caught by a BPMN Error Event."); + } else { + execution.setVariable("executions", executions); + } + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d2260e515a93b759cbb3fa7b9960afa6eb33bdcc --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.java @@ -0,0 +1,98 @@ +/* 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.spring.test.servicetask; + +import java.util.List; + +import org.activiti.engine.RuntimeService; +import org.activiti.engine.repository.ProcessDefinition; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.test.context.ContextConfiguration; + +/** + * @author Joram Barrez + */ +@ContextConfiguration("classpath:org/activiti5/spring/test/servicetask/servicetaskSpringTest-context.xml") +public class UseActivitiServiceInServiceTaskTest extends SpringActivitiTestCase { + + /** + * This test will use the regular mechanism (delegateExecution.getProcessEngine().getRuntimeService()) to obtain the {@link RuntimeService} to start a new process. + */ + @Deployment + public void testUseRuntimeServiceNotInjectedInServiceTask() { + runtimeService.startProcessInstanceByKey("startProcessFromDelegate"); + + // Starting the process should lead to two processes being started, + // The other one started from the java delegate in the service task + List processInstances = runtimeService.createProcessInstanceQuery().list(); + assertEquals(2, processInstances.size()); + + boolean startProcessFromDelegateFound = false; + boolean oneTaskProcessFound = false; + for (ProcessInstance processInstance : processInstances) { + ProcessDefinition processDefinition = repositoryService.getProcessDefinition(processInstance.getProcessDefinitionId()); + if (processDefinition.getKey().equals("startProcessFromDelegate")) { + startProcessFromDelegateFound = true; + } else if (processDefinition.getKey().equals("oneTaskProcess")) { + oneTaskProcessFound = true; + } + } + + assertTrue(startProcessFromDelegateFound); + assertTrue(oneTaskProcessFound); + } + + /** + * This test will use the dependency injection of Spring to inject the runtime service in the Java delegate. + */ + @Deployment + public void testUseInjectedRuntimeServiceInServiceTask() { + runtimeService.startProcessInstanceByKey("startProcessFromDelegate"); + + // Starting the process should lead to two processes being started, + // The other one started from the java delegate in the service task + List processInstances = runtimeService.createProcessInstanceQuery().list(); + assertEquals(2, processInstances.size()); + + boolean startProcessFromDelegateFound = false; + boolean oneTaskProcessFound = false; + for (ProcessInstance processInstance : processInstances) { + ProcessDefinition processDefinition = repositoryService.getProcessDefinition(processInstance.getProcessDefinitionId()); + if (processDefinition.getKey().equals("startProcessFromDelegate")) { + startProcessFromDelegateFound = true; + } else if (processDefinition.getKey().equals("oneTaskProcess")) { + oneTaskProcessFound = true; + } + } + + assertTrue(startProcessFromDelegateFound); + assertTrue(oneTaskProcessFound); + } + + @Deployment + public void testRollBackOnException() { + Exception expectedException = null; + try { + runtimeService.startProcessInstanceByKey("startProcessFromDelegate"); + } catch (Exception e) { + expectedException = e; + } + assertNotNull(expectedException); + + // Starting the process should cause a rollback of both processes + assertEquals(0, runtimeService.createProcessInstanceQuery().count()); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskListener/MyTaskListener.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskListener/MyTaskListener.java new file mode 100644 index 0000000000000000000000000000000000000000..277fa6681345c5bc31ab7215b6cb1b18ce4e4acb --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskListener/MyTaskListener.java @@ -0,0 +1,32 @@ +/* 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.spring.test.taskListener; + +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +/** + * @author Joram Barrez + */ +public class MyTaskListener implements TaskListener { + + public void notify(DelegateTask delegateTask) { + delegateTask.setVariable("calledThroughNotify", delegateTask.getName() + "-notify"); + } + + public void calledInExpression(DelegateTask task, String eventName) { + task.setVariable("calledInExpression", task.getName() + "-" + eventName); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskListener/TaskListenerSpringTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskListener/TaskListenerSpringTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8b7f175fe75ab78ef67ab2eb8f002f7172cd9f63 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskListener/TaskListenerSpringTest.java @@ -0,0 +1,43 @@ +/* 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.spring.test.taskListener; + +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.test.context.ContextConfiguration; + +/** + * @author Joram Barrez + */ +@ContextConfiguration("classpath:org/activiti5/spring/test/taskListener/TaskListenerDelegateExpressionTest-context.xml") +public class TaskListenerSpringTest extends SpringActivitiTestCase { + + @Deployment + public void testTaskListenerDelegateExpression() { + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("taskListenerDelegateExpression"); + + // Completing first task will set variable on process instance + Task task = taskService.createTaskQuery().singleResult(); + taskService.complete(task.getId()); + assertEquals("task1-complete", runtimeService.getVariable(processInstance.getId(), "calledInExpression")); + + // Completing second task will set variable on process instance + task = taskService.createTaskQuery().singleResult(); + taskService.complete(task.getId()); + assertEquals("task2-notify", runtimeService.getVariable(processInstance.getId(), "calledThroughNotify")); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e8e65cb8b0356029c1aa3750a8bb3a691cfeb3eb --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.java @@ -0,0 +1,50 @@ +/* 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.spring.test.taskassignment; + +import org.activiti.engine.impl.util.CollectionUtil; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.test.context.ContextConfiguration; + +/** + * @author Joram Barrez + */ +@ContextConfiguration("classpath:org/activiti5/spring/test/taskassignment/taskassignment-context.xml") +public class CustomTaskAssignmentTest extends SpringActivitiTestCase { + + @Deployment + public void testSetAssigneeThroughSpringService() { + runtimeService.startProcessInstanceByKey("assigneeThroughSpringService", CollectionUtil.singletonMap("emp", "fozzie")); + assertEquals(1, taskService.createTaskQuery().taskAssignee("Kermit The Frog").count()); + } + + @Deployment + public void testSetCandidateUsersThroughSpringService() { + runtimeService.startProcessInstanceByKey("candidateUsersThroughSpringService", CollectionUtil.singletonMap("emp", "fozzie")); + assertEquals(1, taskService.createTaskQuery().taskCandidateUser("kermit").count()); + assertEquals(1, taskService.createTaskQuery().taskCandidateUser("fozzie").count()); + assertEquals(1, taskService.createTaskQuery().taskCandidateUser("gonzo").count()); + assertEquals(0, taskService.createTaskQuery().taskCandidateUser("mispiggy").count()); + } + + @Deployment + public void testSetCandidateGroupsThroughSpringService() { + runtimeService.startProcessInstanceByKey("candidateUsersThroughSpringService", CollectionUtil.singletonMap("emp", "fozzie")); + assertEquals(1, taskService.createTaskQuery().taskCandidateGroup("management").count()); + assertEquals(1, taskService.createTaskQuery().taskCandidateGroup("directors").count()); + assertEquals(1, taskService.createTaskQuery().taskCandidateGroup("accountancy").count()); + assertEquals(0, taskService.createTaskQuery().taskCandidateGroup("sales").count()); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskassignment/FakeLdapService.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskassignment/FakeLdapService.java new file mode 100644 index 0000000000000000000000000000000000000000..b067ee20f47894df7db571cb075fd887cecfdeb5 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/taskassignment/FakeLdapService.java @@ -0,0 +1,46 @@ +/* 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.spring.test.taskassignment; + +import org.activiti.engine.delegate.DelegateExecution; + +import java.util.Arrays; +import java.util.List; + +/** + * @author Joram Barrez + */ +public class FakeLdapService { + + public String findManagerForEmployee(String employee) { + // Pretty useless LDAP service ... + return "Kermit The Frog"; + } + + public List findAllSales() { + return Arrays.asList("kermit", "gonzo", "fozzie"); + } + + public List findManagers(DelegateExecution execution, String emp) { + if (execution == null) { + throw new RuntimeException("Execution parameter is null"); + } + + if (emp == null || "".equals(emp)) { + throw new RuntimeException("emp parameter is null or empty"); + } + + return Arrays.asList("management", "directors"); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/DeployBean.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/DeployBean.java new file mode 100644 index 0000000000000000000000000000000000000000..03835ed6900deeddea300192a28040476e86d771 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/DeployBean.java @@ -0,0 +1,52 @@ +/* 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.spring.test.transaction; + +import org.activiti.engine.RepositoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +/** + * @author Joram Barrez + */ +public class DeployBean { + + @Autowired + protected RepositoryService repositoryService; + + @Transactional + public void deployProcesses() { + repositoryService + .createDeployment() + .addString( + "process01.bpmn20.xml", + "" + + "").deploy(); + + repositoryService + .createDeployment() + .addString( + "process01.bpmn20.xml", + "" + + "").deploy(); + } + + public RepositoryService getRepositoryService() { + return repositoryService; + } + + public void setRepositoryService(RepositoryService repositoryService) { + this.repositoryService = repositoryService; + } + +} diff --git a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/Expression.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/Printer.java similarity index 65% rename from modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/Expression.java rename to modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/Printer.java index 185f04cad81162cb798fdb6985410e31ce27aa1e..1bc40e04bda6e44f8179735b7ef581964a2712c1 100644 --- a/modules/activiti5-engine/src/main/java/org/activiti5/engine/delegate/Expression.java +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/Printer.java @@ -11,22 +11,16 @@ * limitations under the License. */ -package org.activiti5.engine.delegate; - -import java.io.Serializable; - - +package org.activiti5.spring.test.transaction; +import org.activiti.engine.delegate.DelegateExecution; /** - * @author Frederik Heremans + * @author Tom Baeyens */ -public interface Expression extends Serializable { +public class Printer { - Object getValue(VariableScope variableScope); - - void setValue(Object value, VariableScope variableScope); - - String getExpressionText(); - + public void printMessage(DelegateExecution execution) { + execution.setVariable("myVar", "Hello from Printer!"); + } } diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.java new file mode 100644 index 0000000000000000000000000000000000000000..3c720322502159ff48fc8c24d355e93184da8d70 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.java @@ -0,0 +1,91 @@ +/* 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.spring.test.transaction; + +import javax.sql.DataSource; + +import org.activiti.bpmn.exceptions.XMLException; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.test.Deployment; +import org.activiti5.spring.impl.test.SpringActivitiTestCase; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.test.context.ContextConfiguration; + +/** + * @author Tom Baeyens + */ +@ContextConfiguration("classpath:org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest-context.xml") +public class SpringTransactionIntegrationTest extends SpringActivitiTestCase { + + @Autowired + protected UserBean userBean; + + @Autowired + protected DeployBean deployBean; + + @Autowired + protected DataSource dataSource; + + @Deployment + public void testBasicActivitiSpringIntegration() { + userBean.hello(); + + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().singleResult(); + assertEquals("Hello from Printer!", runtimeService.getVariable(processInstance.getId(), "myVar")); + } + + @Deployment + public void testRollbackTransactionOnActivitiException() { + + // Create a table that the userBean is supposed to fill with some data + JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); + jdbcTemplate.execute("create table MY_TABLE (MY_TEXT varchar);"); + + // The hello() method will start the process. The process will wait in a + // user task + userBean.hello(); + assertEquals(0, jdbcTemplate.queryForLong("select count(*) from MY_TABLE")); + + // The completeTask() method will write a record to the 'MY_TABLE' table + // and complete the user task + try { + userBean.completeTask(taskService.createTaskQuery().singleResult().getId()); + fail(); + } catch (Exception e) { + } + + // Since the service task after the user tasks throws an exception, both + // the record and the process must be rolled back ! + assertEquals("My Task", taskService.createTaskQuery().singleResult().getName()); + assertEquals(0, jdbcTemplate.queryForLong("select count(*) from MY_TABLE")); + + // Cleanup + jdbcTemplate.execute("drop table MY_TABLE if exists;"); + } + + public void testRollBackOnDeployment() { + // The second process should fail. None of the processes should be + // deployed, the first one should be rolled back + assertEquals(0, repositoryService.createProcessDefinitionQuery().count()); + try { + deployBean.deployProcesses(); + fail(); + } catch (XMLException e) { + // Parse exception should happen + } + assertEquals(0, repositoryService.createProcessDefinitionQuery().count()); + } + +} diff --git a/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/UserBean.java b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/UserBean.java new file mode 100644 index 0000000000000000000000000000000000000000..f40529e06ce181a77866fdb97f97ce0669b8c516 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/java/org/activiti5/spring/test/transaction/UserBean.java @@ -0,0 +1,83 @@ +/* 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.spring.test.transaction; + +import org.activiti.engine.RuntimeService; +import org.activiti.engine.TaskService; +import org.springframework.beans.factory.annotation.Required; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.transaction.annotation.Transactional; + +import javax.sql.DataSource; + +/** + * @author Tom Baeyens + */ +public class UserBean { + + /** + * injected by Spring + */ + private RuntimeService runtimeService; + + /** + * injected by Spring + */ + private TaskService taskService; + + /** + * injected by Spring + */ + private DataSource dataSource; + + @Transactional + public void hello() { + // here you can do transactional stuff in your domain model + // and it will be combined in the same transaction as + // the startProcessInstanceByKey to the Activiti RuntimeService + runtimeService.startProcessInstanceByKey("helloProcess"); + } + + @Transactional + public void completeTask(String taskId) { + + // First insert a record in the MY_TABLE table + JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); + int nrOfRows = jdbcTemplate.update("insert into MY_TABLE values ('test');"); + if (nrOfRows != 1) { + throw new RuntimeException("Insert into MY_TABLE failed"); + } + + taskService.complete(taskId); + } + + // getters and setters + // ////////////////////////////////////////////////////// + + @Required + public void setRuntimeService(RuntimeService runtimeService) { + this.runtimeService = runtimeService; + } + + @Required + public void setTaskService(TaskService taskService) { + this.taskService = taskService; + } + + @Required + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + +} diff --git a/modules/activiti5-spring-test/src/test/resources/activiti-context.xml b/modules/activiti5-spring-test/src/test/resources/activiti-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..842317ff804567547fa00ba96164c9b87c3c397a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/activiti-context.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/activiti.cfg.xml b/modules/activiti5-spring-test/src/test/resources/activiti.cfg.xml new file mode 100644 index 0000000000000000000000000000000000000000..5351311aabe364952886066ef8e47d5c13bbc3f9 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/activiti.cfg.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/activiti5-spring-test/src/test/resources/log4j.properties b/modules/activiti5-spring-test/src/test/resources/log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..0c2f75203eaf5f4bbde9dfd56d87de0c2a9918bb --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/log4j.properties @@ -0,0 +1,6 @@ +log4j.rootLogger=DEBUG, CA + +# ConsoleAppender +log4j.appender.CA=org.apache.log4j.ConsoleAppender +log4j.appender.CA.layout=org.apache.log4j.PatternLayout +log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..7891823a07b21bfe86ec57193ee1a3751bb7fce6 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-context.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-create-drop-clean-db-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-create-drop-clean-db-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..ad9b8c7fc217cbdea7f0584a15af88e38027828f --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-create-drop-clean-db-context.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-default-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-default-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..e9eb2e6fdd49d37fd7dddfeb6fc5c8bef0615f38 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-default-context.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-resource-parent-folder-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-resource-parent-folder-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..8fda37a6467583c9a6d523532009c2f3149a3b7a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-resource-parent-folder-context.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-single-resource-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-single-resource-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..fe95ff3d4e593a60de0eee336cb4ef726362a70a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-single-resource-context.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-no-drop-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-no-drop-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..4285701f88e5e270e0f5dd9d039328d406fb90ec --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/SpringAutoDeployTest-no-drop-context.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.a.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.a.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..4758ef907260de28a43ff93e92dded8fc98a6700 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.a.bpmn20.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.b.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.b.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..828d32ad752209959afba6ed19b7bc7cc4fb31f1 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.b.bpmn20.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.c.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.c.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..9b8ecc6bdae74c04b330dcd09b188bda232ec343 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/autodeploy.c.bpmn20.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/subdirectory/autodeploy.d.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/subdirectory/autodeploy.d.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..5ba50c1a25b98d4ad7077944187e4270bde43e08 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/autodeployment/subdirectory/autodeploy.d.bpmn20.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/ScopingTests-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/ScopingTests-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..fae13c5c52b97ce435d94da35574fcebafd817bb --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/ScopingTests-context.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringJobExecutorRollBack.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringJobExecutorRollBack.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..b8abb5ce43f9a5f5c9e23b70d01784c6a699de77 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringJobExecutorRollBack.bpmn20.xml @@ -0,0 +1,57 @@ + + + + + + + + + PT1S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringTimersProcess.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringTimersProcess.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..a2271c2807b0de848618838bca751eeb435ca1c5 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringTimersProcess.bpmn20.xml @@ -0,0 +1,49 @@ + + + + + + + + PT1S + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringjobExecutorTest-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringjobExecutorTest-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1bd1e9e2b2b7ba53bbadb970cc651ed361cc88d --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/SpringjobExecutorTest-context.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + classpath:/org/activiti5/spring/test/components/SpringTimersProcess.bpmn20.xml + classpath:/org/activiti5/spring/test/components/SpringJobExecutorRollBack.bpmn20.xml + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/StateHandlerTests-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/StateHandlerTests-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..605a7dc2711230ba901d7578a871aeb512091cf5 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/StateHandlerTests-context.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + classpath:/org/activiti/spring/test/autodeployment/autodeploy.b.bpmn20.xml + classpath:/org/activiti/spring/test/components/waiter.bpmn20.xml + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/spring-component-waiter.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/spring-component-waiter.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..9b29247b67a8ee0ad289654b32ab320ed1d2a29a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/spring-component-waiter.bpmn20.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/waiter.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/waiter.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..a2be1a9842d63ba89a83caafc256a4570be2ecc7 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/components/waiter.bpmn20.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/email/EmailTaskUsingJndi.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/email/EmailTaskUsingJndi.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..425594b95c5f10f75e8d7b793a0e0d78b674442b --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/email/EmailTaskUsingJndi.bpmn20.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/email/jndiEmailConfiguaration-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/email/jndiEmailConfiguaration-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..dbf4b4b78c2f6041301d561d5dbf3fc517b56eac --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/email/jndiEmailConfiguaration-context.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/engine/springProcessEngine-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/engine/springProcessEngine-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..baa9c0f8e6d463a00d4ff26d555d541dc25826b5 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/engine/springProcessEngine-context.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/SpringLimitedExpressionsTest.testLimitedBeansExposed.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/SpringLimitedExpressionsTest.testLimitedBeansExposed.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..b6e38b24097602827bf76fd48cb8b7451e4d3c4f --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/SpringLimitedExpressionsTest.testLimitedBeansExposed.bpmn20.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/CallActivityBasedOnSpringBeansExpressionTest.testCallActivityByExpression.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/CallActivityBasedOnSpringBeansExpressionTest.testCallActivityByExpression.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..ab71e852b1a7576995a4bdcf1effea14d5cb33b9 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/CallActivityBasedOnSpringBeansExpressionTest.testCallActivityByExpression.bpmn20.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/simpleSubProcess.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/simpleSubProcess.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..cb5625601296f313ff4b9c1cb554156a182fd984 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/simpleSubProcess.bpmn20.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/testCallActivityByExpression-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/testCallActivityByExpression-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..0db66b1c48aab42034099f5106ccb2746e76dc56 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/callactivity/testCallActivityByExpression-context.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/expressionLimitedBeans-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/expressionLimitedBeans-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..0ccba2c62252f4062c0190b97c996d2f43198e95 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/expression/expressionLimitedBeans-context.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/JPASpringTest-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/JPASpringTest-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..dd56ba1cab34a01c41e4f50ac1413ca3050e3697 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/JPASpringTest-context.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/JPASpringTest.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/JPASpringTest.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b30c4866d92315827bf451317407bb4c7e3f0bc --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/JPASpringTest.bpmn20.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + ${loanRequest.approved} + + + ${!loanRequest.approved} + + + + + + + + + + diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/custom-persistence.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/custom-persistence.xml new file mode 100644 index 0000000000000000000000000000000000000000..1e961afdf11d8b0273a8669ff7d81ef9455e845a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/jpa/custom-persistence.xml @@ -0,0 +1,21 @@ + + + org.apache.openjpa.persistence.PersistenceProviderImpl + + org.activiti5.spring.test.jpa.LoanRequest + + true + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/junit4/SpringJunit4Test.simpleProcessTest.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/junit4/SpringJunit4Test.simpleProcessTest.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..06f12e6b907f2fdf8e6b6675bb4bdf496b9ede01 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/junit4/SpringJunit4Test.simpleProcessTest.bpmn20.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/junit4/springTypicalUsageTest-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/junit4/springTypicalUsageTest-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..bde2cbb24ebd63bd71358dead13123609c0123cd --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/junit4/springTypicalUsageTest-context.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/BoundaryErrorEventSpringTest.testCatchErrorThrownByJavaDelegateOnServiceTask.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/BoundaryErrorEventSpringTest.testCatchErrorThrownByJavaDelegateOnServiceTask.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..99f3d3f86ee35f8d6fa2a89f21b1c288c37475e8 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/BoundaryErrorEventSpringTest.testCatchErrorThrownByJavaDelegateOnServiceTask.bpmn20.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testAsyncDelegateExpression.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testAsyncDelegateExpression.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..513e289b6bf5697b2a47b338b34f473b1f5d79e3 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testAsyncDelegateExpression.bpmn20.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testAsyncMethodExpressionOnSpringBean.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testAsyncMethodExpressionOnSpringBean.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..ea1b9aec65951c6b08d8acc04805a51cd1da3ec6 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testAsyncMethodExpressionOnSpringBean.bpmn20.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testDelegateExpression.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testDelegateExpression.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..be5a9fc0fe8f99bfc94af5940db1c7a7bb24c165 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testDelegateExpression.bpmn20.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testExecutionAndTaskListenerDelegationExpression.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testExecutionAndTaskListenerDelegationExpression.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..a47d145798feb4599aa47f3f43001e78321450b4 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testExecutionAndTaskListenerDelegationExpression.bpmn20.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testMethodExpressionOnSpringBean.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testMethodExpressionOnSpringBean.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..381d0d3706d7627f77d34df022fd254c62c46995 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/ServiceTaskSpringDelegationTest.testMethodExpressionOnSpringBean.bpmn20.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testRollBackOnException.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testRollBackOnException.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..b932d8df3778edf97c1a50ab8ec0594bad6cdb8a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testRollBackOnException.bpmn20.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testUseInjectedRuntimeServiceInServiceTask.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testUseInjectedRuntimeServiceInServiceTask.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..89aaa4620227de4852f0f8b97e8557e3ad291cdb --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testUseInjectedRuntimeServiceInServiceTask.bpmn20.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testUseRuntimeServiceNotInjectedInServiceTask.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testUseRuntimeServiceNotInjectedInServiceTask.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..6cb5972e5548904e3f5142b2767a17612e1a2d18 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/UseActivitiServiceInServiceTaskTest.testUseRuntimeServiceNotInjectedInServiceTask.bpmn20.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/serviceraskSpringTestCatchError-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/serviceraskSpringTestCatchError-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..7652e26c4202791542caebb62bb224a3362f6b4d --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/serviceraskSpringTestCatchError-context.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/servicetaskSpringTest-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/servicetaskSpringTest-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..b4cdd2fa25afffac24add4f01d616e9ccaf9ac0b --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/servicetask/servicetaskSpringTest-context.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskListener/TaskListenerDelegateExpressionTest-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskListener/TaskListenerDelegateExpressionTest-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..e17adc5b370f50ea5b7ef7b1fa78c67c9ff5785b --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskListener/TaskListenerDelegateExpressionTest-context.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskListener/TaskListenerSpringTest.testTaskListenerDelegateExpression.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskListener/TaskListenerSpringTest.testTaskListenerDelegateExpression.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..1aea6b15d1ac4e7affa092696d101edf7f585995 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskListener/TaskListenerSpringTest.testTaskListenerDelegateExpression.bpmn20.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetAssigneeThroughSpringService.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetAssigneeThroughSpringService.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..dad55711d28f6f4b405ce106fabcd14b1f4d74b6 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetAssigneeThroughSpringService.bpmn20.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetCandidateGroupsThroughSpringService.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetCandidateGroupsThroughSpringService.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..7a6dd0ca632694205d4baeea1cb628b7b2ee340f --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetCandidateGroupsThroughSpringService.bpmn20.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetCandidateUsersThroughSpringService.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetCandidateUsersThroughSpringService.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..3ff1f30601187af9398c063f328f50fa518ec681 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/CustomTaskAssignmentTest.testSetCandidateUsersThroughSpringService.bpmn20.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/taskassignment-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/taskassignment-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..14dc2da04de2f555fe65e6d06c447369010db2ed --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/taskassignment/taskassignment-context.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest-context.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest-context.xml new file mode 100644 index 0000000000000000000000000000000000000000..e8ab98c7ec53cf7689b64c64f3f3891b09964d5a --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest-context.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.testBasicActivitiSpringIntegration.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.testBasicActivitiSpringIntegration.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..289e8929e7fb952f34502f59dcffdd7befdce55c --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.testBasicActivitiSpringIntegration.bpmn20.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.testRollbackTransactionOnActivitiException.bpmn20.xml b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.testRollbackTransactionOnActivitiException.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..13aec98dfb76b76586376bb3d9cb9f1d136a23d0 --- /dev/null +++ b/modules/activiti5-spring-test/src/test/resources/org/activiti5/spring/test/transaction/SpringTransactionIntegrationTest.testRollbackTransactionOnActivitiException.bpmn20.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti5-spring/pom.xml b/modules/activiti5-spring/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..85b6da0f46ff06f70e4dfa0fb97049adf36e5127 --- /dev/null +++ b/modules/activiti5-spring/pom.xml @@ -0,0 +1,175 @@ + + 4.0.0 + + Activiti 5 - Spring + activiti5-spring + + + org.activiti + activiti-root + ../.. + 6.0.0-SNAPSHOT + + + + UTF-8 + + org.activiti5.spring + + + org.springframework.test.context*;resolution:=optional, + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.6 + 1.6 + + + + maven-jar-plugin + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + + + + org.apache.felix + maven-bundle-plugin + + + generate-sources + + cleanVersions + + + + bundle-manifest + process-classes + + manifest + + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + org.apache.felix + + maven-bundle-plugin + + + [2.1.0,) + + + cleanVersions + manifest + + + + + + + + + + + + + + + + + org.activiti + activiti5-engine + + + org.springframework + spring-context + + + org.springframework + spring-jdbc + + + + org.springframework + spring-tx + + + org.springframework + spring-test + provided + + + org.apache.commons + commons-lang3 + + + junit + junit + provided + + + cglib + cglib + provided + + + javax.persistence + persistence-api + provided + + + org.codehaus.groovy + groovy-all + provided + + + org.springframework + spring-orm + + + + + + distro + + + + org.apache.maven.plugins + maven-source-plugin + 2.1.1 + + + attach-sources + package + + jar-no-fork + + + + + + + + + diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/ApplicationContextElResolver.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/ApplicationContextElResolver.java new file mode 100644 index 0000000000000000000000000000000000000000..2c343f5e944e6858fb5d1ee980681063f231d076 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/ApplicationContextElResolver.java @@ -0,0 +1,74 @@ +/* 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.spring; + +import java.beans.FeatureDescriptor; +import java.util.Iterator; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.engine.impl.javax.el.ELContext; +import org.activiti5.engine.impl.javax.el.ELResolver; +import org.springframework.context.ApplicationContext; + +/** + * @author Tom Baeyens + * @author Frederik Heremans + */ +public class ApplicationContextElResolver extends ELResolver { + + protected ApplicationContext applicationContext; + + public ApplicationContextElResolver(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + + public Object getValue(ELContext context, Object base, Object property) { + if (base == null) { + // according to javadoc, can only be a String + String key = (String) property; + + if (applicationContext.containsBean(key)) { + context.setPropertyResolved(true); + return applicationContext.getBean(key); + } + } + + return null; + } + + public boolean isReadOnly(ELContext context, Object base, Object property) { + return true; + } + + public void setValue(ELContext context, Object base, Object property, Object value) { + if (base == null) { + String key = (String) property; + if (applicationContext.containsBean(key)) { + throw new ActivitiException("Cannot set value of '" + property + "', it resolves to a bean defined in the Spring application-context."); + } + } + } + + public Class getCommonPropertyType(ELContext context, Object arg) { + return Object.class; + } + + public Iterator getFeatureDescriptors(ELContext context, Object arg) { + return null; + } + + public Class getType(ELContext context, Object arg1, Object arg2) { + return Object.class; + } +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/ProcessEngineFactoryBean.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/ProcessEngineFactoryBean.java new file mode 100644 index 0000000000000000000000000000000000000000..c23f8d07782744bef0ce8c63ac0b6f1c915310d4 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/ProcessEngineFactoryBean.java @@ -0,0 +1,103 @@ +/* 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.spring; + +import org.activiti5.engine.ProcessEngine; +import org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl; +import org.activiti5.engine.impl.cfg.SpringBeanFactoryProxyMap; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.FactoryBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; + +/** + * @author Dave Syer + * @author Christian Stettler + * @author Tom Baeyens + * @author Joram Barrez + * @author Josh Long + */ +public class ProcessEngineFactoryBean implements FactoryBean, DisposableBean, ApplicationContextAware { + + protected ProcessEngineConfigurationImpl processEngineConfiguration; + + protected ApplicationContext applicationContext; + protected ProcessEngine processEngine; + + public void destroy() throws Exception { + if (processEngine != null) { + processEngine.close(); + } + } + + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.applicationContext = applicationContext; + } + + public ProcessEngine getObject() throws Exception { + configureExpressionManager(); + configureExternallyManagedTransactions(); + + if (processEngineConfiguration.getBeans() == null) { + processEngineConfiguration.setBeans(new SpringBeanFactoryProxyMap(applicationContext)); + } + + this.processEngine = processEngineConfiguration.buildProcessEngine(); + return this.processEngine; + } + + protected void configureExpressionManager() { + if (processEngineConfiguration.getExpressionManager() == null && applicationContext != null) { + processEngineConfiguration.setExpressionManager(new SpringExpressionManager(applicationContext, processEngineConfiguration.getBeans())); + } + } + + protected void configureExternallyManagedTransactions() { + if (processEngineConfiguration instanceof SpringProcessEngineConfiguration) { // remark: + // any + // config + // can + // be + // injected, + // so + // we + // cannot + // have + // SpringConfiguration + // as + // member + SpringProcessEngineConfiguration engineConfiguration = (SpringProcessEngineConfiguration) processEngineConfiguration; + if (engineConfiguration.getTransactionManager() != null) { + processEngineConfiguration.setTransactionsExternallyManaged(true); + } + } + } + + public Class getObjectType() { + return ProcessEngine.class; + } + + public boolean isSingleton() { + return true; + } + + public ProcessEngineConfigurationImpl getProcessEngineConfiguration() { + return processEngineConfiguration; + } + + public void setProcessEngineConfiguration(ProcessEngineConfigurationImpl processEngineConfiguration) { + this.processEngineConfiguration = processEngineConfiguration; + } +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringAdvancedBusinessCalendarManagerFactory.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringAdvancedBusinessCalendarManagerFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..046db5be4816493bbb9ce21a2719330506c46c7b --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringAdvancedBusinessCalendarManagerFactory.java @@ -0,0 +1,69 @@ +package org.activiti5.spring; + +import org.activiti5.engine.impl.calendar.AdvancedCycleBusinessCalendar; +import org.activiti5.engine.impl.calendar.BusinessCalendarManager; +import org.activiti5.engine.impl.calendar.DueDateBusinessCalendar; +import org.activiti5.engine.impl.calendar.DurationBusinessCalendar; +import org.activiti5.engine.impl.calendar.MapBusinessCalendarManager; +import org.activiti5.engine.impl.util.DefaultClockImpl; +import org.activiti5.engine.runtime.Clock; + +/** + * Creates an advanced cycle business calendar manager (ACBCM). The ACBCM can handle daylight savings changes when the scheduled time zone is different than the server time zone. + *

    + * Create a factory bean + * + *

    + * <bean id="businessCalendarManagerFactory" class="org.activiti.spring.SpringAdvancedBusinessCalendarManagerFactory" />
    + * 
    + * + * Add the manager to your org.activiti.spring.SpringProcessEngineConfiguration bean + * + *
    + *  <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    + *    ...
    + *    <property name="businessCalendarManager">
    + *      <bean id="advancedBusinessCalendarManager" factory-bean="businessCalendarManagerFactory" factory-method="getBusinessCalendarManager" />
    + *    </property>
    + *    ...
    + *  </bean>
    + * 
    + * + * @author mseiden + * @see AdvancedCycleBusinessCalendar + */ +public class SpringAdvancedBusinessCalendarManagerFactory { + + private Integer defaultScheduleVersion; + + private Clock clock; + + public Integer getDefaultScheduleVersion() { + return defaultScheduleVersion; + } + + public void setDefaultScheduleVersion(Integer defaultScheduleVersion) { + this.defaultScheduleVersion = defaultScheduleVersion; + } + + public Clock getClock() { + if (clock == null) { + clock = new DefaultClockImpl(); + } + return clock; + } + + public void setClock(Clock clock) { + this.clock = clock; + } + + public BusinessCalendarManager getBusinessCalendarManager() { + MapBusinessCalendarManager mapBusinessCalendarManager = new MapBusinessCalendarManager(); + mapBusinessCalendarManager.addBusinessCalendar(DurationBusinessCalendar.NAME, new DurationBusinessCalendar(getClock())); + mapBusinessCalendarManager.addBusinessCalendar(DueDateBusinessCalendar.NAME, new DueDateBusinessCalendar(getClock())); + mapBusinessCalendarManager.addBusinessCalendar(AdvancedCycleBusinessCalendar.NAME, new AdvancedCycleBusinessCalendar(getClock(), defaultScheduleVersion)); + + return mapBusinessCalendarManager; + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringAsyncExecutor.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringAsyncExecutor.java new file mode 100644 index 0000000000000000000000000000000000000000..75f6a8c6dc16a758ce1b37c669cab0f6562b0432 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringAsyncExecutor.java @@ -0,0 +1,82 @@ +/* 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.spring; + +import java.util.concurrent.RejectedExecutionException; + +import org.activiti5.engine.impl.asyncexecutor.DefaultAsyncJobExecutor; +import org.activiti5.engine.impl.asyncexecutor.ExecuteAsyncRunnable; +import org.activiti5.engine.impl.jobexecutor.JobExecutor; +import org.activiti5.engine.impl.jobexecutor.RejectedJobsHandler; +import org.activiti5.engine.impl.persistence.entity.JobEntity; +import org.springframework.core.task.TaskExecutor; + +/** + *

    + * This is a spring based implementation of the {@link JobExecutor} using spring abstraction {@link TaskExecutor} for performing background task execution. + *

    + *

    + * The idea behind this implementation is to externalize the configuration of the task executor, so it can leverage to Application servers controller thread pools, for example using the commonj API. + * The use of unmanaged thread in application servers is discouraged by the Java EE spec. + *

    + * + * @author Pablo Ganga + */ +public class SpringAsyncExecutor extends DefaultAsyncJobExecutor { + + protected TaskExecutor taskExecutor; + protected SpringRejectedJobsHandler rejectedJobsHandler; + + public SpringAsyncExecutor() { + } + + public SpringAsyncExecutor(TaskExecutor taskExecutor, SpringRejectedJobsHandler rejectedJobsHandler) { + this.taskExecutor = taskExecutor; + this.rejectedJobsHandler = rejectedJobsHandler; + } + + public TaskExecutor getTaskExecutor() { + return taskExecutor; + } + + /** + * Required spring injected {@link TaskExecutor} implementation that will be used to execute runnable jobs. + * + * @param taskExecutor + */ + public void setTaskExecutor(TaskExecutor taskExecutor) { + this.taskExecutor = taskExecutor; + } + + public SpringRejectedJobsHandler getRejectedJobsHandler() { + return rejectedJobsHandler; + } + + /** + * Required spring injected {@link RejectedJobsHandler} implementation that will be used when jobs were rejected by the task executor. + * + * @param taskExecutor + */ + public void setRejectedJobsHandler(SpringRejectedJobsHandler rejectedJobsHandler) { + this.rejectedJobsHandler = rejectedJobsHandler; + } + + @Override + public void executeAsyncJob(JobEntity job) { + try { + taskExecutor.execute(new ExecuteAsyncRunnable(job, commandExecutor)); + } catch (RejectedExecutionException e) { + rejectedJobsHandler.jobRejected(this, job); + } + } +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringCallerRunsRejectedJobsHandler.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringCallerRunsRejectedJobsHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..c4e77d94c622df9dc790e03d11965b5ea2f518f5 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringCallerRunsRejectedJobsHandler.java @@ -0,0 +1,40 @@ +/* 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.spring; + +import org.activiti5.engine.impl.asyncexecutor.AsyncExecutor; +import org.activiti5.engine.impl.asyncexecutor.ExecuteAsyncRunnable; +import org.activiti5.engine.impl.persistence.entity.JobEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author Tijs Rademakers + */ +public class SpringCallerRunsRejectedJobsHandler implements SpringRejectedJobsHandler { + + private static Logger log = LoggerFactory.getLogger(SpringCallerRunsRejectedJobsHandler.class); + + public void jobRejected(AsyncExecutor asyncExecutor, JobEntity job) { + try { + // execute rejected work in caller thread (potentially blocking job + // acquisition) + new ExecuteAsyncRunnable(job, asyncExecutor.getCommandExecutor()).run(); + } catch (Exception e) { + log.error("Failed to execute rejected job " + job.getId(), e); + } + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringConfigurationHelper.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringConfigurationHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..35c17a0861b13f107bad1d768729d0ae756f9d61 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringConfigurationHelper.java @@ -0,0 +1,49 @@ +/* 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.spring; + +import java.net.URL; +import java.util.Map; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.engine.ProcessEngine; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.GenericXmlApplicationContext; +import org.springframework.core.io.UrlResource; + +/** + * @author Tom Baeyens + */ +class SpringConfigurationHelper { + + private static Logger log = LoggerFactory.getLogger(SpringConfigurationHelper.class); + + private static ProcessEngine buildProcessEngine(URL resource) { + log.debug("==== BUILDING SPRING APPLICATION CONTEXT AND PROCESS ENGINE ========================================="); + + ApplicationContext applicationContext = new GenericXmlApplicationContext(new UrlResource(resource)); + Map beansOfType = applicationContext.getBeansOfType(ProcessEngine.class); + if ((beansOfType == null) || (beansOfType.isEmpty())) { + throw new ActivitiException("no " + ProcessEngine.class.getName() + " defined in the application context " + resource.toString()); + } + + ProcessEngine processEngine = beansOfType.values().iterator().next(); + + log.debug("==== SPRING PROCESS ENGINE CREATED =================================================================="); + return processEngine; + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringEntityManagerSessionFactory.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringEntityManagerSessionFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..e3eb0faa80951b0c4a30d94f2636ab8fd72d1d56 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringEntityManagerSessionFactory.java @@ -0,0 +1,57 @@ +/* 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.spring; + +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; + +import org.activiti5.engine.impl.interceptor.Session; +import org.activiti5.engine.impl.interceptor.SessionFactory; +import org.activiti5.engine.impl.variable.EntityManagerSession; +import org.activiti5.engine.impl.variable.EntityManagerSessionImpl; +import org.springframework.orm.jpa.EntityManagerFactoryUtils; + +/** + * Session Factory for {@link EntityManagerSession}. + *

    + * Must be used when the {@link EntityManagerFactory} is managed by Spring. This implementation will retrieve the {@link EntityManager} bound to the thread by Spring in case a transaction already + * started. + * + * @author Joram Barrez + */ +public class SpringEntityManagerSessionFactory implements SessionFactory { + + protected EntityManagerFactory entityManagerFactory; + protected boolean handleTransactions; + protected boolean closeEntityManager; + + public SpringEntityManagerSessionFactory(Object entityManagerFactory, boolean handleTransactions, boolean closeEntityManager) { + this.entityManagerFactory = (EntityManagerFactory) entityManagerFactory; + this.handleTransactions = handleTransactions; + this.closeEntityManager = closeEntityManager; + } + + public Class getSessionType() { + return EntityManagerFactory.class; + } + + public Session openSession() { + EntityManager entityManager = EntityManagerFactoryUtils.getTransactionalEntityManager(entityManagerFactory); + if (entityManager == null) { + return new EntityManagerSessionImpl(entityManagerFactory, handleTransactions, closeEntityManager); + } + return new EntityManagerSessionImpl(entityManagerFactory, entityManager, false, false); + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringExpressionManager.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringExpressionManager.java new file mode 100644 index 0000000000000000000000000000000000000000..95b9bd610910be6f54237220866ab430e7aaf247 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringExpressionManager.java @@ -0,0 +1,70 @@ +/* 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.spring; + +import java.util.Map; + +import org.activiti.engine.delegate.VariableScope; +import org.activiti5.engine.impl.el.ExpressionManager; +import org.activiti5.engine.impl.el.ReadOnlyMapELResolver; +import org.activiti5.engine.impl.el.VariableScopeElResolver; +import org.activiti5.engine.impl.javax.el.ArrayELResolver; +import org.activiti5.engine.impl.javax.el.BeanELResolver; +import org.activiti5.engine.impl.javax.el.CompositeELResolver; +import org.activiti5.engine.impl.javax.el.ELResolver; +import org.activiti5.engine.impl.javax.el.ListELResolver; +import org.activiti5.engine.impl.javax.el.MapELResolver; +import org.springframework.context.ApplicationContext; + +/** + * {@link ExpressionManager} that exposes the full application-context or a limited set of beans in expressions. + * + * @author Tom Baeyens + */ +public class SpringExpressionManager extends ExpressionManager { + + protected ApplicationContext applicationContext; + + /** + * @param applicationContext + * the applicationContext to use. Ignored when 'beans' parameter is not null. + * @param beans + * a map of custom beans to expose. If null, all beans in the application-context will be exposed. + */ + public SpringExpressionManager(ApplicationContext applicationContext, Map beans) { + super(beans); + this.applicationContext = applicationContext; + } + + @Override + protected ELResolver createElResolver(VariableScope variableScope) { + CompositeELResolver compositeElResolver = new CompositeELResolver(); + compositeElResolver.add(new VariableScopeElResolver(variableScope)); + + if (beans != null) { + // Only expose limited set of beans in expressions + compositeElResolver.add(new ReadOnlyMapELResolver(beans)); + } else { + // Expose full application-context in expressions + compositeElResolver.add(new ApplicationContextElResolver(applicationContext)); + } + + compositeElResolver.add(new ArrayELResolver()); + compositeElResolver.add(new ListELResolver()); + compositeElResolver.add(new MapELResolver()); + compositeElResolver.add(new BeanELResolver()); + return compositeElResolver; + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringJobExecutor.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringJobExecutor.java new file mode 100644 index 0000000000000000000000000000000000000000..59603a9a8d46c4c7341be5fcb9512f13eb99b12f --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringJobExecutor.java @@ -0,0 +1,75 @@ +/* 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.spring; + +import java.util.List; +import java.util.concurrent.RejectedExecutionException; + +import org.activiti5.engine.impl.jobexecutor.ExecuteJobsRunnable; +import org.activiti5.engine.impl.jobexecutor.JobExecutor; +import org.springframework.core.task.TaskExecutor; + +/** + *

    + * This is a spring based implementation of the {@link JobExecutor} using spring abstraction {@link TaskExecutor} for performing background task execution. + *

    + *

    + * The idea behind this implementation is to externalize the configuration of the task executor, so it can leverage to Application servers controller thread pools, for example using the commonj API. + * The use of unmanaged thread in application servers is discouraged by the Java EE spec. + *

    + * + * @author Pablo Ganga + */ +public class SpringJobExecutor extends JobExecutor { + + private TaskExecutor taskExecutor; + + public SpringJobExecutor() { + } + + public SpringJobExecutor(TaskExecutor taskExecutor) { + this.taskExecutor = taskExecutor; + } + + public TaskExecutor getTaskExecutor() { + return taskExecutor; + } + + /** + * Required spring injected {@link TaskExecutor} implementation that will be used to execute runnable jobs. + * + * @param taskExecutor + */ + public void setTaskExecutor(TaskExecutor taskExecutor) { + this.taskExecutor = taskExecutor; + } + + @Override + public void executeJobs(List jobIds) { + try { + taskExecutor.execute(new ExecuteJobsRunnable(this, jobIds)); + } catch (RejectedExecutionException e) { + rejectedJobsHandler.jobsRejected(this, jobIds); + } + } + + @Override + protected void startExecutingJobs() { + startJobAcquisitionThread(); + } + + @Override + protected void stopExecutingJobs() { + stopJobAcquisitionThread(); + } +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringProcessEngineConfiguration.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringProcessEngineConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..13554c6148bcf6e4bb2b15fa0e86a18bcfe7f00d --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringProcessEngineConfiguration.java @@ -0,0 +1,185 @@ +/* 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.spring; + +import java.util.ArrayList; +import java.util.Collection; + +import javax.sql.DataSource; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.engine.ProcessEngine; +import org.activiti5.engine.ProcessEngineConfiguration; +import org.activiti5.engine.ProcessEngines; +import org.activiti5.engine.impl.cfg.ProcessEngineConfigurationImpl; +import org.activiti5.engine.impl.cfg.StandaloneProcessEngineConfiguration; +import org.activiti5.engine.impl.interceptor.CommandConfig; +import org.activiti5.engine.impl.interceptor.CommandInterceptor; +import org.activiti5.engine.impl.variable.EntityManagerSession; +import org.activiti5.spring.autodeployment.AutoDeploymentStrategy; +import org.activiti5.spring.autodeployment.DefaultAutoDeploymentStrategy; +import org.activiti5.spring.autodeployment.ResourceParentFolderAutoDeploymentStrategy; +import org.activiti5.spring.autodeployment.SingleResourceAutoDeploymentStrategy; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.core.io.Resource; +import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy; +import org.springframework.transaction.PlatformTransactionManager; + +/** + * @author Tom Baeyens + * @author David Syer + * @author Joram Barrez + * @author Tiese Barrell + */ +public class SpringProcessEngineConfiguration extends ProcessEngineConfigurationImpl implements ApplicationContextAware { + + protected PlatformTransactionManager transactionManager; + protected String deploymentName = "SpringAutoDeployment"; + protected Resource[] deploymentResources = new Resource[0]; + protected String deploymentMode = "default"; + protected ApplicationContext applicationContext; + protected Integer transactionSynchronizationAdapterOrder = null; + private Collection deploymentStrategies = new ArrayList(); + + public SpringProcessEngineConfiguration() { + this.transactionsExternallyManaged = true; + deploymentStrategies.add(new DefaultAutoDeploymentStrategy()); + deploymentStrategies.add(new SingleResourceAutoDeploymentStrategy()); + deploymentStrategies.add(new ResourceParentFolderAutoDeploymentStrategy()); + } + + @Override + public ProcessEngine buildProcessEngine() { + ProcessEngine processEngine = super.buildProcessEngine(); + ProcessEngines.setInitialized(true); + autoDeployResources(processEngine); + return processEngine; + } + + public void setTransactionSynchronizationAdapterOrder(Integer transactionSynchronizationAdapterOrder) { + this.transactionSynchronizationAdapterOrder = transactionSynchronizationAdapterOrder; + } + + @Override + protected void initDefaultCommandConfig() { + if (defaultCommandConfig == null) { + defaultCommandConfig = new CommandConfig().setContextReusePossible(true); + } + } + + @Override + protected CommandInterceptor createTransactionInterceptor() { + if (transactionManager == null) { + throw new ActivitiException("transactionManager is required property for SpringProcessEngineConfiguration, use " + StandaloneProcessEngineConfiguration.class.getName() + " otherwise"); + } + + return new SpringTransactionInterceptor(transactionManager); + } + + @Override + protected void initTransactionContextFactory() { + if (transactionContextFactory == null && transactionManager != null) { + transactionContextFactory = new SpringTransactionContextFactory(transactionManager, transactionSynchronizationAdapterOrder); + } + } + + @Override + protected void initJpa() { + super.initJpa(); + if (jpaEntityManagerFactory != null) { + sessionFactories.put(EntityManagerSession.class, new SpringEntityManagerSessionFactory(jpaEntityManagerFactory, jpaHandleTransaction, jpaCloseEntityManager)); + } + } + + protected void autoDeployResources(ProcessEngine processEngine) { + if (deploymentResources != null && deploymentResources.length > 0) { + final AutoDeploymentStrategy strategy = getAutoDeploymentStrategy(deploymentMode); + strategy.deployResources(deploymentName, deploymentResources, processEngine.getRepositoryService()); + } + } + + @Override + public ProcessEngineConfiguration setDataSource(DataSource dataSource) { + if (dataSource instanceof TransactionAwareDataSourceProxy) { + return super.setDataSource(dataSource); + } else { + // Wrap datasource in Transaction-aware proxy + DataSource proxiedDataSource = new TransactionAwareDataSourceProxy(dataSource); + return super.setDataSource(proxiedDataSource); + } + } + + public PlatformTransactionManager getTransactionManager() { + return transactionManager; + } + + public void setTransactionManager(PlatformTransactionManager transactionManager) { + this.transactionManager = transactionManager; + } + + public String getDeploymentName() { + return deploymentName; + } + + public void setDeploymentName(String deploymentName) { + this.deploymentName = deploymentName; + } + + public Resource[] getDeploymentResources() { + return deploymentResources; + } + + public void setDeploymentResources(Resource[] deploymentResources) { + this.deploymentResources = deploymentResources; + } + + public ApplicationContext getApplicationContext() { + return applicationContext; + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.applicationContext = applicationContext; + } + + public String getDeploymentMode() { + return deploymentMode; + } + + public void setDeploymentMode(String deploymentMode) { + this.deploymentMode = deploymentMode; + } + + /** + * Gets the {@link AutoDeploymentStrategy} for the provided mode. This method may be overridden to implement custom deployment strategies if required, but implementors should take care not to return + * null. + * + * @param mode + * the mode to get the strategy for + * @return the deployment strategy to use for the mode. Never null + */ + protected AutoDeploymentStrategy getAutoDeploymentStrategy(final String mode) { + AutoDeploymentStrategy result = new DefaultAutoDeploymentStrategy(); + for (final AutoDeploymentStrategy strategy : deploymentStrategies) { + if (strategy.handlesMode(mode)) { + result = strategy; + break; + } + } + return result; + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringRejectedJobsHandler.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringRejectedJobsHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..4e5e5263a3165443c4c025c2a1167d6dcdeaa400 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringRejectedJobsHandler.java @@ -0,0 +1,29 @@ +/* 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.spring; + +import org.activiti5.engine.impl.asyncexecutor.AsyncExecutor; +import org.activiti5.engine.impl.persistence.entity.JobEntity; + +/** + *

    + * Strategy for handling jobs that were acquired but cannot be executed at this point (queue-size exceeded). + *

    + * + * @author Tijs Rademakers + */ +public interface SpringRejectedJobsHandler { + + public void jobRejected(AsyncExecutor asyncExecutor, JobEntity job); +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionContext.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionContext.java new file mode 100644 index 0000000000000000000000000000000000000000..2145b78a5229eb09a3a18564771a0e4085b608f0 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionContext.java @@ -0,0 +1,134 @@ +/* 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.spring; + +import org.activiti5.engine.impl.cfg.TransactionContext; +import org.activiti5.engine.impl.cfg.TransactionListener; +import org.activiti5.engine.impl.cfg.TransactionState; +import org.activiti5.engine.impl.interceptor.CommandContext; +import org.springframework.core.Ordered; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.support.TransactionSynchronization; +import org.springframework.transaction.support.TransactionSynchronizationManager; + +/** + * @author Frederik Heremans + * @author Joram Barrez + */ +public class SpringTransactionContext implements TransactionContext { + + protected PlatformTransactionManager transactionManager; + protected CommandContext commandContext; + protected Integer transactionSynchronizationAdapterOrder; + + public SpringTransactionContext(PlatformTransactionManager transactionManager, CommandContext commandContext) { + this(transactionManager, commandContext, null); + } + + public SpringTransactionContext(PlatformTransactionManager transactionManager, CommandContext commandContext, Integer transactionSynchronizationAdapterOrder) { + this.transactionManager = transactionManager; + this.commandContext = commandContext; + if (transactionSynchronizationAdapterOrder != null) { + this.transactionSynchronizationAdapterOrder = transactionSynchronizationAdapterOrder; + } else { + // Revert to default, which is a high number as the behaviour prior + // to adding the order would + // case the TransactionSynchronizationAdapter to be called AFTER all + // Adapters that implement Ordered + this.transactionSynchronizationAdapterOrder = Integer.MAX_VALUE; + } + } + + public void commit() { + // Do nothing, transaction is managed by spring + } + + public void rollback() { + // Just in case the rollback isn't triggered by an + // exception, we mark the current transaction rollBackOnly. + transactionManager.getTransaction(null).setRollbackOnly(); + } + + public void addTransactionListener(final TransactionState transactionState, final TransactionListener transactionListener) { + if (transactionState.equals(TransactionState.COMMITTING)) { + + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { + @Override + public void beforeCommit(boolean readOnly) { + transactionListener.execute(commandContext); + } + }); + + } else if (transactionState.equals(TransactionState.COMMITTED)) { + + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { + @Override + public void afterCommit() { + transactionListener.execute(commandContext); + } + }); + + } else if (transactionState.equals(TransactionState.ROLLINGBACK)) { + + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { + @Override + public void beforeCompletion() { + transactionListener.execute(commandContext); + } + }); + + } else if (transactionState.equals(TransactionState.ROLLED_BACK)) { + + TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { + @Override + public void afterCompletion(int status) { + if (TransactionSynchronization.STATUS_ROLLED_BACK == status) { + transactionListener.execute(commandContext); + } + } + }); + } + } + + protected abstract class TransactionSynchronizationAdapter implements TransactionSynchronization, Ordered { + + public void suspend() { + } + + public void resume() { + } + + public void flush() { + } + + public void beforeCommit(boolean readOnly) { + } + + public void beforeCompletion() { + } + + public void afterCommit() { + } + + public void afterCompletion(int status) { + } + + @Override + public int getOrder() { + return transactionSynchronizationAdapterOrder; + } + + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionContextFactory.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionContextFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..915d5dc4e931f60aba4355f93ab6c236a65135dc --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionContextFactory.java @@ -0,0 +1,42 @@ +/* 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.spring; + +import org.activiti5.engine.impl.cfg.TransactionContext; +import org.activiti5.engine.impl.cfg.TransactionContextFactory; +import org.activiti5.engine.impl.interceptor.CommandContext; +import org.springframework.transaction.PlatformTransactionManager; + +/** + * @author Frederik Heremans + */ +public class SpringTransactionContextFactory implements TransactionContextFactory { + + protected PlatformTransactionManager transactionManager; + protected Integer transactionSynchronizationAdapterOrder; + + public SpringTransactionContextFactory(PlatformTransactionManager transactionManager) { + this(transactionManager, null); + } + + public SpringTransactionContextFactory(PlatformTransactionManager transactionManager, Integer transactionSynchronizationAdapterOrder) { + this.transactionManager = transactionManager; + this.transactionSynchronizationAdapterOrder = transactionSynchronizationAdapterOrder; + } + + public TransactionContext openTransactionContext(CommandContext commandContext) { + return new SpringTransactionContext(transactionManager, commandContext, transactionSynchronizationAdapterOrder); + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionInterceptor.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionInterceptor.java new file mode 100644 index 0000000000000000000000000000000000000000..a30908b486649559e7ab76df12deef9dc47efe39 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/SpringTransactionInterceptor.java @@ -0,0 +1,66 @@ +/* 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.spring; + +import org.activiti5.engine.ActivitiIllegalArgumentException; +import org.activiti5.engine.impl.interceptor.AbstractCommandInterceptor; +import org.activiti5.engine.impl.interceptor.Command; +import org.activiti5.engine.impl.interceptor.CommandConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.TransactionCallback; +import org.springframework.transaction.support.TransactionTemplate; + +/** + * @author Dave Syer + * @author Tom Baeyens + */ +public class SpringTransactionInterceptor extends AbstractCommandInterceptor { + private static final Logger LOGGER = LoggerFactory.getLogger(SpringTransactionInterceptor.class); + + protected PlatformTransactionManager transactionManager; + + public SpringTransactionInterceptor(PlatformTransactionManager transactionManager) { + this.transactionManager = transactionManager; + } + + public T execute(final CommandConfig config, final Command command) { + LOGGER.debug("Running command with propagation {}", config.getTransactionPropagation()); + + TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager); + transactionTemplate.setPropagationBehavior(getPropagation(config)); + + T result = transactionTemplate.execute(new TransactionCallback() { + public T doInTransaction(TransactionStatus status) { + return next.execute(config, command); + } + }); + + return result; + } + + private int getPropagation(CommandConfig config) { + switch (config.getTransactionPropagation()) { + case NOT_SUPPORTED: + return TransactionTemplate.PROPAGATION_NOT_SUPPORTED; + case REQUIRED: + return TransactionTemplate.PROPAGATION_REQUIRED; + case REQUIRES_NEW: + return TransactionTemplate.PROPAGATION_REQUIRES_NEW; + default: + throw new ActivitiIllegalArgumentException("Unsupported transaction propagation: " + config.getTransactionPropagation()); + } + } +} \ No newline at end of file diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/AbstractAutoDeploymentStrategy.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/AbstractAutoDeploymentStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..69ad76951a1f5fcb8301728f82304a89a37236c4 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/AbstractAutoDeploymentStrategy.java @@ -0,0 +1,68 @@ +/* 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.spring.autodeployment; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.ContextResource; +import org.springframework.core.io.Resource; + +import java.io.IOException; + +/** + * Abstract base class for implementations of {@link AutoDeploymentStrategy}. + * + * @author Tiese Barrell + */ +public abstract class AbstractAutoDeploymentStrategy implements AutoDeploymentStrategy { + + /** + * Gets the deployment mode this strategy handles. + * + * @return the name of the deployment mode + */ + protected abstract String getDeploymentMode(); + + @Override + public boolean handlesMode(final String mode) { + return StringUtils.equalsIgnoreCase(mode, getDeploymentMode()); + } + + /** + * Determines the name to be used for the provided resource. + * + * @param resource + * the resource to get the name for + * @return the name of the resource + */ + protected String determineResourceName(final Resource resource) { + String resourceName = null; + + if (resource instanceof ContextResource) { + resourceName = ((ContextResource) resource).getPathWithinContext(); + + } else if (resource instanceof ByteArrayResource) { + resourceName = resource.getDescription(); + + } else { + try { + resourceName = resource.getFile().getAbsolutePath(); + } catch (IOException e) { + resourceName = resource.getFilename(); + } + } + return resourceName; + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/AutoDeploymentStrategy.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/AutoDeploymentStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..7509107e18ad8c4565aefb6bc5a92f52686f5253 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/AutoDeploymentStrategy.java @@ -0,0 +1,50 @@ +/* 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.spring.autodeployment; + +import org.activiti5.engine.RepositoryService; +import org.springframework.core.io.Resource; + +/** + * Strategy interface for implementations of automatically deploying resources. A strategy may perform any amount of deployments for the {@link Resource}s it is provided with. + *

    + *

    + * A strategy is capable of handling deployments corresponding to a certain indicated deployment mode. This applicability is verified using the {@link #handlesMode(String)} method. + * + * @author Tiese Barrell + */ +public interface AutoDeploymentStrategy { + + /** + * Determines whether the strategy handles deployments for the provided deployment mode. + * + * @param mode + * the mode to determine handling for + * @return true if the strategy handles the mode; false otherwise + */ + boolean handlesMode(final String mode); + + /** + * Performs deployment for the provided resources, using the provided name as a hint and the provided {@link RepositoryService} to perform deployment(s). + * + * @param deploymentName + * the hint for the name of deployment(s) performed + * @param resources + * the resources to be deployed + * @param repositoryService + * the repository service to use for deployment(s) + */ + void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService); + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/DefaultAutoDeploymentStrategy.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/DefaultAutoDeploymentStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..cc65e15dd2f0ff8e9d3c102b11645fe3344ce37e --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/DefaultAutoDeploymentStrategy.java @@ -0,0 +1,66 @@ +/* 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.spring.autodeployment; + +import java.io.IOException; +import java.util.zip.ZipInputStream; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.engine.RepositoryService; +import org.activiti5.engine.repository.DeploymentBuilder; +import org.springframework.core.io.Resource; + +/** + * Default implementation of {@link AutoDeploymentStrategy} that groups all {@link Resource}s into a single deployment. This implementation is equivalent to the previously used implementation. + * + * @author Tiese Barrell + */ +public class DefaultAutoDeploymentStrategy extends AbstractAutoDeploymentStrategy { + + /** + * The deployment mode this strategy handles. + */ + public static final String DEPLOYMENT_MODE = "default"; + + @Override + protected String getDeploymentMode() { + return DEPLOYMENT_MODE; + } + + @Override + public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) { + + // Create a single deployment for all resources using the name hint as + // the literal name + final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentNameHint); + + for (final Resource resource : resources) { + final String resourceName = determineResourceName(resource); + + try { + if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) { + deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream())); + } else { + deploymentBuilder.addInputStream(resourceName, resource.getInputStream()); + } + } catch (IOException e) { + throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e); + } + } + + deploymentBuilder.deploy(); + + } + +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/ResourceParentFolderAutoDeploymentStrategy.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/ResourceParentFolderAutoDeploymentStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..6a386f72d1b0e306ca8e4234f7b56735ff392d28 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/ResourceParentFolderAutoDeploymentStrategy.java @@ -0,0 +1,113 @@ +/* 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.spring.autodeployment; + +import java.io.IOException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.zip.ZipInputStream; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.engine.RepositoryService; +import org.activiti5.engine.repository.DeploymentBuilder; +import org.springframework.core.io.Resource; + +/** + * Implementation of {@link AutoDeploymentStrategy} that performs a separate deployment for each set of {@link Resource}s that share the same parent folder. The namehint is used to prefix the names of + * deployments. If the parent folder for a {@link Resource} cannot be determined, the resource's name is used. + * + * @author Tiese Barrell + */ +public class ResourceParentFolderAutoDeploymentStrategy extends AbstractAutoDeploymentStrategy { + + /** + * The deployment mode this strategy handles. + */ + public static final String DEPLOYMENT_MODE = "resource-parent-folder"; + + private static final String DEPLOYMENT_NAME_PATTERN = "%s.%s"; + + @Override + protected String getDeploymentMode() { + return DEPLOYMENT_MODE; + } + + @Override + public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) { + + // Create a deployment for each distinct parent folder using the name + // hint + // as a prefix + final Map> resourcesMap = createMap(resources); + + for (final Entry> group : resourcesMap.entrySet()) { + + final String deploymentName = determineDeploymentName(deploymentNameHint, group.getKey()); + + final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentName); + + for (final Resource resource : group.getValue()) { + final String resourceName = determineResourceName(resource); + + try { + if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) { + deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream())); + } else { + deploymentBuilder.addInputStream(resourceName, resource.getInputStream()); + } + } catch (IOException e) { + throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e); + } + } + deploymentBuilder.deploy(); + } + + } + + private Map> createMap(final Resource[] resources) { + final Map> resourcesMap = new HashMap>(); + + for (final Resource resource : resources) { + final String parentFolderName = determineGroupName(resource); + if (resourcesMap.get(parentFolderName) == null) { + resourcesMap.put(parentFolderName, new HashSet()); + } + resourcesMap.get(parentFolderName).add(resource); + } + return resourcesMap; + } + + private String determineGroupName(final Resource resource) { + String result = determineResourceName(resource); + try { + if (resourceParentIsDirectory(resource)) { + result = resource.getFile().getParentFile().getName(); + } + } catch (IOException e) { + // no-op, fallback to resource name + } + return result; + } + + private boolean resourceParentIsDirectory(final Resource resource) throws IOException { + return resource.getFile() != null && resource.getFile().getParentFile() != null && resource.getFile().getParentFile().isDirectory(); + } + + private String determineDeploymentName(final String deploymentNameHint, final String groupName) { + return String.format(DEPLOYMENT_NAME_PATTERN, deploymentNameHint, groupName); + } +} diff --git a/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/SingleResourceAutoDeploymentStrategy.java b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/SingleResourceAutoDeploymentStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..62fbde1345c86445579daf6c88db44d21f5538e4 --- /dev/null +++ b/modules/activiti5-spring/src/main/java/org/activiti5/spring/autodeployment/SingleResourceAutoDeploymentStrategy.java @@ -0,0 +1,66 @@ +/* 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.spring.autodeployment; + +import java.io.IOException; +import java.util.zip.ZipInputStream; + +import org.activiti5.engine.ActivitiException; +import org.activiti5.engine.RepositoryService; +import org.activiti5.engine.repository.DeploymentBuilder; +import org.springframework.core.io.Resource; + +/** + * Implementation of {@link AutoDeploymentStrategy} that performs a separate deployment for each resource by name. + * + * @author Tiese Barrell + */ +public class SingleResourceAutoDeploymentStrategy extends AbstractAutoDeploymentStrategy { + + /** + * The deployment mode this strategy handles. + */ + public static final String DEPLOYMENT_MODE = "single-resource"; + + @Override + protected String getDeploymentMode() { + return DEPLOYMENT_MODE; + } + + @Override + public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) { + + // Create a separate deployment for each resource using the resource + // name + + for (final Resource resource : resources) { + + final String resourceName = determineResourceName(resource); + final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(resourceName); + + try { + if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) { + deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream())); + } else { + deploymentBuilder.addInputStream(resourceName, resource.getInputStream()); + } + } catch (IOException e) { + throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e); + } + + deploymentBuilder.deploy(); + } + } + +} diff --git a/modules/activiti5-test/pom.xml b/modules/activiti5-test/pom.xml index 1989b4315295fdbcd93acdbd3a49dd45f2994b6f..f6cf31f45e619ef8b42b204a2d962db4de40c8c3 100755 --- a/modules/activiti5-test/pom.xml +++ b/modules/activiti5-test/pom.xml @@ -33,7 +33,6 @@ org.activiti activiti5-compatibility - 6.0.0-SNAPSHOT diff --git a/modules/activiti5-test/src/main/java/org/activiti5/engine/impl/test/NoOpServiceTask.java b/modules/activiti5-test/src/main/java/org/activiti5/engine/impl/test/NoOpServiceTask.java index 65cba8d7ed797da051fe47df8f3e3d3058675b2f..1925d42b7596167183f16f5ae13bf7b24a95cd06 100644 --- a/modules/activiti5-test/src/main/java/org/activiti5/engine/impl/test/NoOpServiceTask.java +++ b/modules/activiti5-test/src/main/java/org/activiti5/engine/impl/test/NoOpServiceTask.java @@ -17,9 +17,9 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.JavaDelegate; /** * @author Joram Barrez diff --git a/modules/activiti5-test/src/main/java/org/activiti5/engine/test/ActivitiRule.java b/modules/activiti5-test/src/main/java/org/activiti5/engine/test/ActivitiRule.java index 5b734af23a9b67ee3cc34a94b7bcc5d32c19622a..e0a52d0133fb7ae6a9ad730e91c28ab34f39f816 100644 --- a/modules/activiti5-test/src/main/java/org/activiti5/engine/test/ActivitiRule.java +++ b/modules/activiti5-test/src/main/java/org/activiti5/engine/test/ActivitiRule.java @@ -207,6 +207,8 @@ public class ActivitiRule implements TestRule { initializeProcessEngine(); } + Context.setProcessEngineConfiguration((ProcessEngineConfigurationImpl) processEngine.getProcessEngineConfiguration()); + if (processEngineConfiguration == null) { initializeServices(); } @@ -237,7 +239,6 @@ public class ActivitiRule implements TestRule { protected void initializeProcessEngine() { processEngine = TestHelper.getProcessEngine(configurationResource); - Context.setProcessEngineConfiguration((ProcessEngineConfigurationImpl) processEngine.getProcessEngineConfiguration()); } protected void initializeServices() { diff --git a/modules/activiti5-test/src/main/java/org/activiti5/engine/test/TestActivityBehaviorFactory.java b/modules/activiti5-test/src/main/java/org/activiti5/engine/test/TestActivityBehaviorFactory.java index b413e3113267966bfefda249b6a8e85a4252e96b..e5376270a73036ee99f1de2ef6f145f33d0807bb 100644 --- a/modules/activiti5-test/src/main/java/org/activiti5/engine/test/TestActivityBehaviorFactory.java +++ b/modules/activiti5-test/src/main/java/org/activiti5/engine/test/TestActivityBehaviorFactory.java @@ -43,7 +43,7 @@ import org.activiti.bpmn.model.Task; import org.activiti.bpmn.model.ThrowEvent; import org.activiti.bpmn.model.Transaction; import org.activiti.bpmn.model.UserTask; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.Expression; import org.activiti5.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior; import org.activiti5.engine.impl.bpmn.behavior.BoundaryEventActivityBehavior; import org.activiti5.engine.impl.bpmn.behavior.BusinessRuleTaskActivityBehavior; diff --git a/modules/activiti5-test/src/main/java/org/activiti5/engine/test/mock/MockExpressionManager.java b/modules/activiti5-test/src/main/java/org/activiti5/engine/test/mock/MockExpressionManager.java index ce121faee95238481bd8780d57cf17b4b97863d0..d0148130630c2f6e1052b17afd5ab90d2ca83d2d 100644 --- a/modules/activiti5-test/src/main/java/org/activiti5/engine/test/mock/MockExpressionManager.java +++ b/modules/activiti5-test/src/main/java/org/activiti5/engine/test/mock/MockExpressionManager.java @@ -13,7 +13,7 @@ package org.activiti5.engine.test.mock; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.impl.el.ExpressionManager; import org.activiti5.engine.impl.el.VariableScopeElResolver; import org.activiti5.engine.impl.javax.el.ArrayELResolver; diff --git a/modules/activiti5-test/src/main/java/org/activiti5/engine/test/mock/MockResolverFactory.java b/modules/activiti5-test/src/main/java/org/activiti5/engine/test/mock/MockResolverFactory.java index adf523a0069cbc832dae57fa61c783603e7c9377..67f70e5b33caecf755ebb7d3397c59846e12cd59 100644 --- a/modules/activiti5-test/src/main/java/org/activiti5/engine/test/mock/MockResolverFactory.java +++ b/modules/activiti5-test/src/main/java/org/activiti5/engine/test/mock/MockResolverFactory.java @@ -12,7 +12,7 @@ */ package org.activiti5.engine.test.mock; -import org.activiti5.engine.delegate.VariableScope; +import org.activiti.engine.delegate.VariableScope; import org.activiti5.engine.impl.scripting.Resolver; import org.activiti5.engine.impl.scripting.ResolverFactory; 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 e424e5dffc79e65b8bfd120fbeabc28b7c9af348..404b02602aeebb4b1f3785883ef7d95947bb6cf1 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,6 +14,7 @@ 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; @@ -21,7 +22,6 @@ import org.activiti5.engine.delegate.event.ActivitiEvent; import org.activiti5.engine.delegate.event.ActivitiEventType; import org.activiti5.engine.impl.identity.Authentication; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; -import org.activiti5.engine.task.IdentityLink; /** * Test case for all {@link ActivitiEvent}s related to process definitions. @@ -222,7 +222,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(org.activiti5.engine.task.IdentityLink.class); + listener = new TestActivitiEntityEventListener(IdentityLink.class); activiti5ProcessConfig.getEventDispatcher().addEventListener(listener); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/VariableEventsExecutionListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/VariableEventsExecutionListener.java index 597b541417bac9aece3230a80a0ae1fbb58f4e94..698e8163f60251ce6dea1a51229aad05b276e144 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/VariableEventsExecutionListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/VariableEventsExecutionListener.java @@ -12,15 +12,15 @@ */ package org.activiti5.engine.test.api.event; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; public class VariableEventsExecutionListener implements ExecutionListener { private static final long serialVersionUID = 1L; @Override - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { // Create, update and remove variable execution.setVariable("variable", 123); execution.setVariable("variable", 456); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/VariableEventsTaskListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/VariableEventsTaskListener.java index d1917fbb29741c2d89d7ad8eb950dc9bb51c65f6..59bc172eaf36448b74afe00e4e9b1f96666b6499 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/VariableEventsTaskListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/event/VariableEventsTaskListener.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.test.api.event; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; public class VariableEventsTaskListener implements TaskListener { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/runtime/ProcessInstanceUpdateBusinessKeyTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/runtime/ProcessInstanceUpdateBusinessKeyTest.java index fa6a12d4c9a868744efeafed383bde80a2c0eb0a..998cacacaebb87fce39124e1fa7a7732c9b0653e 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/runtime/ProcessInstanceUpdateBusinessKeyTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/runtime/ProcessInstanceUpdateBusinessKeyTest.java @@ -12,12 +12,12 @@ */ package org.activiti5.engine.test.api.runtime; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti.engine.history.HistoricProcessInstance; import org.activiti.engine.impl.history.HistoryLevel; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.test.Deployment; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/task/DelegateTaskTestTaskListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/task/DelegateTaskTestTaskListener.java index 1b1f37bcf814e72d5d236a386b89b63aef1de83a..9b3068a97cd96ff22418041b6b65b86ec223136c 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/task/DelegateTaskTestTaskListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/task/DelegateTaskTestTaskListener.java @@ -3,9 +3,9 @@ package org.activiti5.engine.test.api.task; import java.util.HashSet; import java.util.Set; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; -import org.activiti5.engine.task.IdentityLink; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.activiti.engine.task.IdentityLink; public class DelegateTaskTestTaskListener implements TaskListener { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/task/DeleteCandidateTaskListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/task/DeleteCandidateTaskListener.java index 223eea78a8dbf759512a1d9210ad9620caff526f..43ca99bcc0aae78ba2bd6c8a5934267ce0a7e3e3 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/task/DeleteCandidateTaskListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/task/DeleteCandidateTaskListener.java @@ -1,8 +1,8 @@ package org.activiti5.engine.test.api.task; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; public class DeleteCandidateTaskListener implements TaskListener { public void notify(DelegateTask delegateTask) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/variables/VariablesTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/variables/VariablesTest.java index fb96691f4eabf2a5999417612afcf32df849766a..54a307937c5342c118c12f3b942b336a25463f37 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/variables/VariablesTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/api/variables/VariablesTest.java @@ -6,11 +6,11 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti.engine.repository.Deployment; import org.activiti.engine.repository.DeploymentProperties; import org.activiti.engine.task.Task; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/StartToEndTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/StartToEndTest.java index b2ed4f89f6f73c1f7ccde481f44c0fc2b0664907..6d3b0e07678737f509f8c851cc4af76a89038a96 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/StartToEndTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/StartToEndTest.java @@ -17,10 +17,10 @@ import java.util.HashMap; import java.util.Map; import org.activiti.compatibility.wrapper.Activiti5ProcessInstanceWrapper; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.test.Deployment; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncListener.java index 3f7718ae6e2d58843af18a2f71a5bdcf77c7726e..71a397dab99bc0ee64c15b80cd068fd71b91fac5 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncListener.java @@ -12,15 +12,15 @@ */ package org.activiti5.engine.test.bpmn.async; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; public class AsyncListener implements ExecutionListener { private static final long serialVersionUID = 1L; - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { execution.setVariable("listener", "listener invoked"); } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncService.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncService.java index 8fbd6daa9e861c6dacd29e60f32cc407571318ab..2bdefd82b19ef00da9383d4af9f186514995e24c 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncService.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncService.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.test.bpmn.async; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** * @@ -21,7 +21,7 @@ import org.activiti5.engine.delegate.JavaDelegate; */ public class AsyncService implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { AsyncTaskTest.INVOCATION = true; } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncTaskListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncTaskListener.java index 964630609cee5998c6ed54a4344b5e41389e3472..a8d9093fdde102f4555c6bc62309b2b5fd6042f7 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncTaskListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/AsyncTaskListener.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.test.bpmn.async; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; public class AsyncTaskListener implements TaskListener { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/FailingAsyncService.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/FailingAsyncService.java index a24305b86d76940d829aabb352656486cb30cb92..0bc067c26e2c03f2a667918f9164db6729fb712e 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/FailingAsyncService.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/async/FailingAsyncService.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.test.bpmn.async; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** * @@ -21,7 +21,7 @@ import org.activiti5.engine.delegate.JavaDelegate; */ public class FailingAsyncService implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { throw new RuntimeException(); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/IntermediateNoneEventTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/IntermediateNoneEventTest.java index 78799612ba8188e29433e6c953fe763bab9b5236..c18da319cbb0c17e182a46c23d09a7065b8aabc6 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/IntermediateNoneEventTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/IntermediateNoneEventTest.java @@ -12,10 +12,10 @@ */ package org.activiti5.engine.test.bpmn.event; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.test.Deployment; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; public class IntermediateNoneEventTest extends PluggableActivitiTestCase { @@ -23,7 +23,7 @@ public class IntermediateNoneEventTest extends PluggableActivitiTestCase { private static boolean listenerExcecuted = false; public static class MyExecutionListener implements ExecutionListener { - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { listenerExcecuted = true; } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/GetVariablesDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/GetVariablesDelegate.java index 0c24fa830f0b59cabf8e345ed892ccbd39686664..d72af03f061465c5fcc2a2455f02836f7dc387a7 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/GetVariablesDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/GetVariablesDelegate.java @@ -13,9 +13,9 @@ package org.activiti5.engine.test.bpmn.event.compensate.helper; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.ActivitiIllegalArgumentException; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; /** @@ -23,7 +23,7 @@ import org.activiti5.engine.delegate.JavaDelegate; */ public class GetVariablesDelegate implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Object nrOfCompletedInstances = execution.getVariable("nrOfCompletedInstances"); Integer variable = SetVariablesDelegate.variablesMap.get(nrOfCompletedInstances); Object variableLocal = execution.getVariable("variable"); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/SetVariablesDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/SetVariablesDelegate.java index 85e07bf04ff4c08d8186fae42344495fb8fbf44e..19a09811012c76d7f04f11b624104bd6b95468c3 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/SetVariablesDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/SetVariablesDelegate.java @@ -16,8 +16,8 @@ package org.activiti5.engine.test.bpmn.event.compensate.helper; import java.util.HashMap; import java.util.Map; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** @@ -30,7 +30,7 @@ public class SetVariablesDelegate implements JavaDelegate { // activiti creates a single instance of the delegate protected int lastInt = 0; - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Object nrOfCompletedInstances = execution.getVariableLocal("nrOfCompletedInstances"); variablesMap.put(nrOfCompletedInstances, lastInt); execution.setVariableLocal("variable", lastInt); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/UndoService.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/UndoService.java index 509c09d916384879c63b3d642780fbf69caff855..81d4772b89f52548c55cd9467fa87d728d7de046 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/UndoService.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/compensate/helper/UndoService.java @@ -13,9 +13,9 @@ package org.activiti5.engine.test.bpmn.event.compensate.helper; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.JavaDelegate; /** @@ -25,7 +25,7 @@ public class UndoService implements JavaDelegate { private Expression counterName; - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { String variableName = (String) counterName.getValue(execution); Object variable = execution.getVariable(variableName); if(variable == null) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/end/EndEventTestJavaDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/end/EndEventTestJavaDelegate.java index c15faae5c6f7cd3f18223adaaf04c879e39525ee..45e17215a90f11c3a894be016b4c60bdcaafbbe3 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/end/EndEventTestJavaDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/end/EndEventTestJavaDelegate.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.test.bpmn.event.end; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** * @author Joram Barrez @@ -22,9 +22,13 @@ public class EndEventTestJavaDelegate implements JavaDelegate { public static int timesCalled = 0; - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { timesCalled++; - Thread.sleep(3000L); + try { + Thread.sleep(3000L); + } catch (InterruptedException e) { + e.printStackTrace(); + } } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/end/TerminateEndEventTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/end/TerminateEndEventTest.java index 09203370a582877fc9fe6faeb1bc02cab0e7c5a8..8a7e7068cf6c23593a3398ec4552187aa1128204 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/end/TerminateEndEventTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/end/TerminateEndEventTest.java @@ -24,13 +24,13 @@ import java.util.Map; import org.activiti.bpmn.model.ExtensionAttribute; import org.activiti.bpmn.model.ExtensionElement; import org.activiti.compatibility.wrapper.Activiti5ProcessDefinitionWrapper; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti.engine.repository.DeploymentProperties; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.test.Deployment; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; import org.activiti5.engine.impl.bpmn.behavior.TerminateEndEventActivityBehavior; import org.activiti5.engine.impl.persistence.entity.ProcessDefinitionEntity; import org.activiti5.engine.impl.pvm.process.ActivityImpl; @@ -45,7 +45,7 @@ public class TerminateEndEventTest extends PluggableActivitiTestCase { public static class CountDelegate implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { serviceTaskInvokedCount++; // leave only 3 out of n subprocesses @@ -57,7 +57,7 @@ public class TerminateEndEventTest extends PluggableActivitiTestCase { public static class CountDelegate2 implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { serviceTaskInvokedCount2++; } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/BpmnErrorBean.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/BpmnErrorBean.java index 31c81a5400401e0f1d21dcb778082fae67e648ec..72670090ce4b5e72cac2a841abc7873ac74efd99 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/BpmnErrorBean.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/BpmnErrorBean.java @@ -15,8 +15,8 @@ package org.activiti5.engine.test.bpmn.event.error; import java.io.Serializable; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.delegate.BpmnError; -import org.activiti5.engine.delegate.JavaDelegate; /** * @author Falko Menge diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/ThrowBpmnErrorDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/ThrowBpmnErrorDelegate.java index 819994204ea9ccdf40eef5f883a759108ff8e760..b32fd0750fdd83d5690ce3e62b148125109b52db 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/ThrowBpmnErrorDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/ThrowBpmnErrorDelegate.java @@ -13,9 +13,9 @@ package org.activiti5.engine.test.bpmn.event.error; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.delegate.BpmnError; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; /** @@ -23,7 +23,7 @@ import org.activiti5.engine.delegate.JavaDelegate; */ public class ThrowBpmnErrorDelegate implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Integer executionsBeforeError = (Integer) execution.getVariable("executionsBeforeError"); Integer executions = (Integer) execution.getVariable("executions"); if (executions == null) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/BoundaryErrorParentException.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/BoundaryErrorParentException.java index 6211ea147faf2b1f12186e43d5a29c9926471497..d3c5275e59e7299e761a5bbe5210d6d94417af7b 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/BoundaryErrorParentException.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/BoundaryErrorParentException.java @@ -16,7 +16,7 @@ package org.activiti5.engine.test.bpmn.event.error.mapError; * @author Saeid Mirzaei */ -public class BoundaryErrorParentException extends Exception{ +public class BoundaryErrorParentException extends RuntimeException { } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/FlagDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/FlagDelegate.java index cfa25a1219e9127d5ac45c6f7a0950bc28e09e2f..0fa9e295f2d9213d1d344c47022a3aa76aaed4b3 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/FlagDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/FlagDelegate.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.test.bpmn.event.error.mapError; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** @@ -31,7 +31,7 @@ public class FlagDelegate implements JavaDelegate{ } @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { visited = true; } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/ThrowCustomExceptionDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/ThrowCustomExceptionDelegate.java index 7a29278124c988206ecb20b3ec4e4c8324689d1b..5074a4405aac1330168df60c1f5d16c5d112459a 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/ThrowCustomExceptionDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/error/mapError/ThrowCustomExceptionDelegate.java @@ -12,18 +12,19 @@ */ package org.activiti5.engine.test.bpmn.event.error.mapError; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; +import org.activiti5.engine.ActivitiException; import org.apache.commons.lang3.StringUtils; /** * @author Saeid Mirzaei */ -public class ThrowCustomExceptionDelegate implements JavaDelegate{ +public class ThrowCustomExceptionDelegate implements JavaDelegate { @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Object exceptionClassVar = execution.getVariable("exceptionClass"); if (exceptionClassVar == null) return; @@ -31,9 +32,17 @@ public class ThrowCustomExceptionDelegate implements JavaDelegate{ String exceptionClassName = exceptionClassVar.toString(); if (StringUtils.isNotEmpty(exceptionClassName)) { - Class clazz = Class.forName(exceptionClassName); - Exception exception = (Exception) clazz.newInstance(); - throw exception; + try { + Class clazz = Class.forName(exceptionClassName); + RuntimeException exception = (RuntimeException) clazz.newInstance(); + throw exception; + + } catch (RuntimeException e) { + throw e; + + } catch (Exception e) { + throw new ActivitiException(e.getMessage(), e); + } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/timer/BoundaryTimerEventTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/timer/BoundaryTimerEventTest.java index bfb1d7356daed8ea4f82f889a2e6ca823eff9ea7..1a0b682aef5a7770858adeebb2164b0fa4d9dd0b 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/timer/BoundaryTimerEventTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/event/timer/BoundaryTimerEventTest.java @@ -17,14 +17,14 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti.engine.runtime.Clock; import org.activiti.engine.runtime.Job; import org.activiti.engine.runtime.JobQuery; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.test.Deployment; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; /** @@ -38,7 +38,7 @@ public class BoundaryTimerEventTest extends PluggableActivitiTestCase { public static class MyExecutionListener implements ExecutionListener { private static final long serialVersionUID = 1L; - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { if ("end".equals(execution.getEventName())) { listenerExecutedEndEvent = true; } else if ("start".equals(execution.getEventName())) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/ActivityStartListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/ActivityStartListener.java index 06a35422a041dde1d89fd1e999bfc34db7ceb966..733f0ba6cb42823b842851109045b091519a2d00 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/ActivityStartListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/ActivityStartListener.java @@ -13,8 +13,8 @@ package org.activiti5.engine.test.bpmn.multiinstance; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; /** @@ -22,7 +22,7 @@ import org.activiti5.engine.delegate.ExecutionListener; */ public class ActivityStartListener implements ExecutionListener { - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { Integer loopCounter = (Integer) execution.getVariable("loopCounter"); if (loopCounter != null) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/MultiInstanceDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/MultiInstanceDelegate.java index 9276ce85984217e9bd5f4cd62dd514072e57e349..9493ee4fb94e92cece3f3efc60220d103ce7eab2 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/MultiInstanceDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/MultiInstanceDelegate.java @@ -12,8 +12,8 @@ */ package org.activiti5.engine.test.bpmn.multiinstance; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** @@ -21,7 +21,7 @@ import org.activiti5.engine.delegate.JavaDelegate; */ public class MultiInstanceDelegate implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Integer result = (Integer) execution.getVariable("result"); Integer item = (Integer) execution.getVariable("item"); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/MultiInstanceTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/MultiInstanceTest.java index 80fc49e1c1f5501dbada08937b687ad6c5f498e4..39583944be498476435ae29e03fcab7798eb8c19 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/MultiInstanceTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/MultiInstanceTest.java @@ -23,6 +23,10 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.history.HistoricActivityInstance; import org.activiti.engine.history.HistoricProcessInstance; import org.activiti.engine.history.HistoricTaskInstance; @@ -34,10 +38,6 @@ import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.activiti.engine.task.TaskQuery; import org.activiti.engine.test.Deployment; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.TaskListener; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; import org.activiti5.engine.impl.util.CollectionUtil; diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/TaskCompletionListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/TaskCompletionListener.java index bc04f8158d357cd85388df1e9cb2beaad62eacdf..69b60260b49dcd8dd11f55ef1e81931ce36a3078 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/TaskCompletionListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/TaskCompletionListener.java @@ -13,8 +13,8 @@ package org.activiti5.engine.test.bpmn.multiinstance; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/TestSampleServiceTask.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/TestSampleServiceTask.java index 0ff29aaf73aa223f5f3a28eebf5549da87aa8ac5..161202fd770ca81e5a5efce7fc4b52de4bef7112 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/TestSampleServiceTask.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/multiinstance/TestSampleServiceTask.java @@ -8,7 +8,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class TestSampleServiceTask extends AbstractBpmnActivityBehavior { @Override - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { System.out.println("###: execution: " + execution.getId() + "; " + execution.getVariable("value") + "; " + getMultiInstanceActivityBehavior()); leave(execution); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/CreateUserAndMembershipTestDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/CreateUserAndMembershipTestDelegate.java index eeac4e3bddac9fd76cb6947126c9a273ad9f5cee..b28ad2d12d78a9b2c3413dcef9417f98311bdd33 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/CreateUserAndMembershipTestDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/CreateUserAndMembershipTestDelegate.java @@ -12,11 +12,12 @@ */ package org.activiti5.engine.test.bpmn.servicetask; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.IdentityService; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; import org.activiti5.engine.identity.Group; import org.activiti5.engine.identity.User; +import org.activiti5.engine.impl.context.Context; /** * @author Joram Barrez @@ -24,9 +25,9 @@ import org.activiti5.engine.identity.User; public class CreateUserAndMembershipTestDelegate implements JavaDelegate { @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { - IdentityService identityService = execution.getEngineServices().getIdentityService(); + IdentityService identityService = Context.getProcessEngineConfiguration().getIdentityService(); String username = "Kermit"; User user = identityService.newUser(username); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/DummyServiceTask.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/DummyServiceTask.java index 3ebd50f11423e1504251762ed777c2bb18f73801..098f6a039b3c42ec8dfb77c76469e5e866b71d52 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/DummyServiceTask.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/DummyServiceTask.java @@ -13,8 +13,8 @@ package org.activiti5.engine.test.bpmn.servicetask; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** @@ -22,7 +22,7 @@ import org.activiti5.engine.delegate.JavaDelegate; */ public class DummyServiceTask implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Integer count = (Integer) execution.getVariable("count"); count = count+1; execution.setVariable("count", count); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/ServiceTaskVariablesTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/ServiceTaskVariablesTest.java index de0559fc388f941b8ad2f185778e6c2fbcc14f98..6d75bf624536507e2a6ac384b491f37483e30471 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/ServiceTaskVariablesTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/ServiceTaskVariablesTest.java @@ -15,9 +15,9 @@ package org.activiti5.engine.test.bpmn.servicetask; import java.io.Serializable; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti.engine.test.Deployment; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; import org.activiti5.engine.impl.test.PluggableActivitiTestCase; @@ -37,7 +37,7 @@ public class ServiceTaskVariablesTest extends PluggableActivitiTestCase { public static class Delegate1 implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Variable v = new Variable(); execution.setVariable("variable", v); v.value = "delegate1"; @@ -47,7 +47,7 @@ public class ServiceTaskVariablesTest extends PluggableActivitiTestCase { public static class Delegate2 implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Variable v = (Variable) execution.getVariable("variable"); synchronized (ServiceTaskVariablesTest.class) { // we expect this to be 'true' @@ -60,7 +60,7 @@ public class ServiceTaskVariablesTest extends PluggableActivitiTestCase { public static class Delegate3 implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Variable v = (Variable) execution.getVariable("variable"); synchronized (ServiceTaskVariablesTest.class) { // we expect this to be 'true' as well diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/StartProcessInstanceTestDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/StartProcessInstanceTestDelegate.java index 63c5dc600816e3f85c14f0a5d007232291fbb37b..b5f8518325f3a47bbc2f47a43984d9fa115c2f97 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/StartProcessInstanceTestDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/servicetask/StartProcessInstanceTestDelegate.java @@ -12,17 +12,18 @@ */ package org.activiti5.engine.test.bpmn.servicetask; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.RuntimeService; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti5.engine.impl.context.Context; /** * @author Joram Barrez */ public class StartProcessInstanceTestDelegate implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { - RuntimeService runtimeService = execution.getEngineServices().getRuntimeService(); + public void execute(DelegateExecution execution) { + RuntimeService runtimeService = Context.getProcessEngineConfiguration().getRuntimeService(); runtimeService.startProcessInstanceByKey("oneTaskProcess"); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/usertask/UserTaskTestCreateTaskListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/usertask/UserTaskTestCreateTaskListener.java index adfcc2c9d9436194c8419a6722e705543404ff0a..0963874ef4138e0d04636909491e6947b3a83299 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/usertask/UserTaskTestCreateTaskListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/bpmn/usertask/UserTaskTestCreateTaskListener.java @@ -13,8 +13,8 @@ package org.activiti5.engine.test.bpmn.usertask; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.impl.el.Expression; diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/cmd/FailingDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/cmd/FailingDelegate.java index ab54be80a3b34c46318eca80d1a728c671958090..f1590cd288ffde8319b98c80b7f41dfa1817b5b6 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/cmd/FailingDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/cmd/FailingDelegate.java @@ -12,9 +12,9 @@ */ package org.activiti5.engine.test.cmd; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; /** * @author Saeid Mirzaei */ @@ -22,7 +22,7 @@ public class FailingDelegate implements JavaDelegate { public static final String EXCEPTION_MESSAGE = "Expected exception."; @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { Boolean fail = (Boolean) execution.getVariable("fail"); if (fail == null || fail) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/concurrency/CompetingSignalsTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/concurrency/CompetingSignalsTest.java index 56a40b0ce8af925253f1ad0c0a65d848f2114f28..4e69993d6fc6020fdfae19c66771e8c374f3af23 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/concurrency/CompetingSignalsTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/concurrency/CompetingSignalsTest.java @@ -64,7 +64,7 @@ public class CompetingSignalsTest extends PluggableActivitiTestCase { public static class ControlledConcurrencyBehavior implements ActivityBehavior { private static final long serialVersionUID = 1L; - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { activeThread.returnControlToTestThreadAndWait(); } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/concurrency/SetRandomVariablesTaskListener.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/concurrency/SetRandomVariablesTaskListener.java index 1c1048266e7b6c96e16be43e138a5005cfafbdef..383641bd2c580eacbd2ceafbd0274c76cd177e88 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/concurrency/SetRandomVariablesTaskListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/concurrency/SetRandomVariablesTaskListener.java @@ -15,8 +15,8 @@ package org.activiti5.engine.test.concurrency; import java.util.Random; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/GetVariableLocalTask.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/GetVariableLocalTask.java index a110d7ac75b14cff8a355e5362d8859cdf91bfa9..cf81b7397737e0ad1e5169f3575206aa625ea84f 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/GetVariableLocalTask.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/GetVariableLocalTask.java @@ -1,13 +1,14 @@ package org.activiti5.engine.test.db; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.RuntimeService; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti5.engine.impl.context.Context; public class GetVariableLocalTask implements JavaDelegate { @Override - public void execute(DelegateExecution execution) throws Exception { - RuntimeService runtimeService = execution.getEngineServices().getRuntimeService(); + public void execute(DelegateExecution execution) { + RuntimeService runtimeService = Context.getProcessEngineConfiguration().getRuntimeService(); runtimeService.getVariableLocal(execution.getProcessInstanceId(), "Variable-That-Does-Not-Exist"); } } \ No newline at end of file diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/IdGeneratorDataSourceDoNothing.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/IdGeneratorDataSourceDoNothing.java index 0445a15b60e7b3cf63f3ed3bdc85c2b92896329d..026ea96afac2d8c92fbdb105285ceb9047c875da 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/IdGeneratorDataSourceDoNothing.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/IdGeneratorDataSourceDoNothing.java @@ -6,7 +6,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; public class IdGeneratorDataSourceDoNothing implements ActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/SetLocalVariableTask.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/SetLocalVariableTask.java index f09a0aeb60a846a942123b0d8162b7aa46cd8c52..0b54172a6fbb9f31c866a6f829083d36471779ed 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/SetLocalVariableTask.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/db/SetLocalVariableTask.java @@ -1,11 +1,11 @@ package org.activiti5.engine.test.db; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; public class SetLocalVariableTask implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { execution.setVariableLocal("test", "test2"); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/el/ExecutionTestVariable.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/el/ExecutionTestVariable.java index c9d5733e5d47266adc69ac2e72ddf38432956e83..1d2f5dcee7844aea645f741ab8c4d8188672c7a3 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/el/ExecutionTestVariable.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/el/ExecutionTestVariable.java @@ -15,7 +15,7 @@ package org.activiti5.engine.test.el; import java.io.Serializable; -import org.activiti5.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateExecution; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/helper/PassThroughServiceTask.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/helper/PassThroughServiceTask.java index 9f84a756baa04c84d1173f3f9cac5deaf6d390c6..1d9b1d19383d4298f722facc358ac0a0f948d3f1 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/helper/PassThroughServiceTask.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/helper/PassThroughServiceTask.java @@ -12,13 +12,13 @@ */ package org.activiti5.engine.test.helper; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; public class PassThroughServiceTask implements JavaDelegate { @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/history/Noop.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/history/Noop.java index 02ef3f25e020533618533b42aefac15b5f3c53f9..acf9aa4c604da36ec5a626d6b59ff1747348a0a0 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/history/Noop.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/history/Noop.java @@ -23,7 +23,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class Noop implements ActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { PvmTransition transition = execution.getActivity().getOutgoingTransitions().get(0); execution.take(transition); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/jobexecutor/RetryFailingDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/jobexecutor/RetryFailingDelegate.java index 9c02e27c1fd0bf83b1d7494bdddfbc7c33731b63..325f24a6f2034b69fca2ce5ade9dde8984268886 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/jobexecutor/RetryFailingDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/jobexecutor/RetryFailingDelegate.java @@ -3,9 +3,9 @@ package org.activiti5.engine.test.jobexecutor; import java.util.ArrayList; import java.util.List; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.ActivitiException; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; public class RetryFailingDelegate implements JavaDelegate { @@ -19,7 +19,7 @@ public class RetryFailingDelegate implements JavaDelegate { } @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { times.add(System.currentTimeMillis()); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/logging/mdc/TestService.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/logging/mdc/TestService.java index 4aae8bca81f4ee4b1d92bba28557cd84705f2cd5..77766254877cbc8aaf62b1c6248eb130dc99bb20 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/logging/mdc/TestService.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/logging/mdc/TestService.java @@ -1,7 +1,7 @@ package org.activiti5.engine.test.logging.mdc; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; public class TestService implements JavaDelegate{ static String processInstanceId = null; @@ -11,14 +11,13 @@ public class TestService implements JavaDelegate{ @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { TestService.processDefinitionId = execution.getProcessDefinitionId(); TestService.processInstanceId = execution.getProcessInstanceId(); TestService.executionId = execution.getId(); - TestService.businessKey = execution.getBusinessKey(); - - throw new Exception("test"); + TestService.businessKey = execution.getProcessInstanceBusinessKey(); + throw new RuntimeException("test"); } public void clearProcessVariables() { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/EventCollector.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/EventCollector.java index bd707d39c63388d7d0d4d3bef56056e0bbca4d9f..475c2937cb1677847073b4e6a99f6cd333234b7c 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/EventCollector.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/EventCollector.java @@ -16,8 +16,8 @@ package org.activiti5.engine.test.pvm; import java.util.ArrayList; import java.util.List; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.pvm.delegate.ExecutionListenerExecution; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,7 +34,7 @@ public class EventCollector implements ExecutionListener { public List events = new ArrayList(); - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { notify((ExecutionListenerExecution)execution); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/Automatic.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/Automatic.java index 3e2bd42e967a6f829a13f4c56f3e420beb29cbb7..402f30938cc0f3c50491d298f274036dc4357081 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/Automatic.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/Automatic.java @@ -25,7 +25,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class Automatic implements ActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { List outgoingTransitions = execution.getActivity().getOutgoingTransitions(); if(outgoingTransitions.isEmpty()) { execution.end(); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/EmbeddedSubProcess.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/EmbeddedSubProcess.java index 0b5e045c5a43ac29ef37bb078f6cb7c509054e0b..8f4d1e7b33ee38e21a98e485bc192b82678fddfa 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/EmbeddedSubProcess.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/EmbeddedSubProcess.java @@ -28,7 +28,7 @@ import org.activiti5.engine.impl.pvm.delegate.CompositeActivityBehavior; */ public class EmbeddedSubProcess implements CompositeActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { List startActivities = new ArrayList(); for (PvmActivity activity: execution.getActivity().getActivities()) { if (activity.getIncomingTransitions().isEmpty()) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/End.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/End.java index 2d59485ca048f70cd2365f566db2a904de99aef2..badfef25dd7c0cd385d49055c00f0ba30bc3439a 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/End.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/End.java @@ -22,7 +22,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class End implements ActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { execution.end(); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/EventScopeCreatingSubprocess.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/EventScopeCreatingSubprocess.java index 3f117f6cca78d0ba52e2088d4461b1d1390a2c74..64842b3434503eca7a4a4a170c11bff434fd470c 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/EventScopeCreatingSubprocess.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/EventScopeCreatingSubprocess.java @@ -30,7 +30,7 @@ import org.activiti5.engine.impl.pvm.runtime.InterpretableExecution; */ public class EventScopeCreatingSubprocess implements CompositeActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { List startActivities = new ArrayList(); for (PvmActivity activity: execution.getActivity().getActivities()) { if (activity.getIncomingTransitions().isEmpty()) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/ReusableSubProcess.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/ReusableSubProcess.java index 5b13c869a75bd24332533484b5d065ea1c614525..0455a2e3ed9f479e82513c47eee2edc484e73c07 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/ReusableSubProcess.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/ReusableSubProcess.java @@ -15,7 +15,7 @@ package org.activiti5.engine.test.pvm.activities; import java.util.List; -import org.activiti5.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateExecution; import org.activiti5.engine.impl.pvm.PvmProcessDefinition; import org.activiti5.engine.impl.pvm.PvmProcessInstance; import org.activiti5.engine.impl.pvm.PvmTransition; @@ -34,7 +34,7 @@ public class ReusableSubProcess implements SubProcessActivityBehavior { this.processDefinition = processDefinition; } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { PvmProcessInstance subProcessInstance = execution.createSubProcessInstance(processDefinition); // TODO set variables diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/WaitState.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/WaitState.java index 633091601ef0f49c5c48ce2bb3176c0526650afb..d4f74a9d10aa39dbcc3baa4fe4314557311e5124 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/WaitState.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/WaitState.java @@ -23,7 +23,7 @@ import org.activiti5.engine.impl.pvm.delegate.SignallableActivityBehavior; */ public class WaitState implements SignallableActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { } public void signal(ActivityExecution execution, String signalName, Object signalData) throws Exception { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/While.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/While.java index 21e0eb1806685ffb2946267f542d70a5b825a624..0e5fe48ccf71e8564f49470359c19325f6c06a43 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/While.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/pvm/activities/While.java @@ -33,7 +33,7 @@ public class While implements ActivityBehavior { this.to = to; } - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { PvmTransition more = execution.getActivity().findOutgoingTransition("more"); PvmTransition done = execution.getActivity().findOutgoingTransition("done"); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/regression/ThrowBpmnError.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/regression/ThrowBpmnError.java index bf436ab7dec61cab5d23c611580e3eecaff3f793..61917f0ae65398704fff5e244f586069c6330faa 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/regression/ThrowBpmnError.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/regression/ThrowBpmnError.java @@ -1,8 +1,8 @@ package org.activiti5.engine.test.regression; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.delegate.BpmnError; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; public class ThrowBpmnError implements JavaDelegate { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/transactions/TransactionRollbackTest.java b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/transactions/TransactionRollbackTest.java index 07548db81e981e228519443917993dd224a517f3..baa1ebacbeb4adcfec6f774761bebb3cdc8385a0 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/engine/test/transactions/TransactionRollbackTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/engine/test/transactions/TransactionRollbackTest.java @@ -26,7 +26,7 @@ import org.activiti5.engine.impl.test.PluggableActivitiTestCase; public class TransactionRollbackTest extends PluggableActivitiTestCase { public static class Buzzz implements ActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { throw new ActivitiException("Buzzz"); } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CurrentActivityExecutionListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CurrentActivityExecutionListener.java index 82ba7ebbb8a1c7a58dcf843ecb4ef5d77fcfb9bd..44c2a8486bd749001bba5d338db8e13214c62f89 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CurrentActivityExecutionListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CurrentActivityExecutionListener.java @@ -16,8 +16,9 @@ package org.activiti5.examples.bpmn.executionlistener; import java.util.ArrayList; import java.util.List; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; /** * Simple {@link ExecutionListener} that sets the current activity id and name attributes on the execution. @@ -46,8 +47,8 @@ public class CurrentActivityExecutionListener implements ExecutionListener { } } - public void notify(DelegateExecution execution) throws Exception { - currentActivities.add(new CurrentActivity(execution.getCurrentActivityId(), execution.getCurrentActivityName())); + public void notify(DelegateExecution execution) { + currentActivities.add(new CurrentActivity(execution.getCurrentActivityId(), ((ExecutionEntity) execution).getCurrentActivityName())); } public static List getCurrentActivities() { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CustomFlowBean.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CustomFlowBean.java index 898ea7471d4b41daeb20f6d3cb41abbd9fec395c..15daf760176a56908fe32014fb3aa3bcefe62180 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CustomFlowBean.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CustomFlowBean.java @@ -2,7 +2,7 @@ package org.activiti5.examples.bpmn.executionlistener; import java.io.Serializable; -import org.activiti5.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateExecution; public class CustomFlowBean implements Serializable { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CustomSetConditionsExecutionListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CustomSetConditionsExecutionListener.java index 4a50ba9cb40ac88f37b26edc0a8a682e49200fe9..415b04f991740566c04e6bda54e15a2ab7ccb8d4 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CustomSetConditionsExecutionListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/CustomSetConditionsExecutionListener.java @@ -3,8 +3,8 @@ package org.activiti5.examples.bpmn.executionlistener; import java.util.ArrayList; import java.util.List; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; public class CustomSetConditionsExecutionListener implements ExecutionListener { @@ -14,7 +14,7 @@ public class CustomSetConditionsExecutionListener implements ExecutionListener { protected String flowId; @Override - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { execution.setVariable(flowId + "_activiti_conditions", conditions); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleExecutionListenerOne.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleExecutionListenerOne.java index a8d285525148e3dd23c452e55c63c492aa0d6040..6fa7c81a16a94d8168dc1bb7d110aff5f67655a3 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleExecutionListenerOne.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleExecutionListenerOne.java @@ -13,8 +13,8 @@ package org.activiti5.examples.bpmn.executionlistener; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; /** * Simple {@link ExecutionListener} that sets 2 variables on the execution. @@ -23,9 +23,9 @@ import org.activiti5.engine.delegate.ExecutionListener; */ public class ExampleExecutionListenerOne implements ExecutionListener { - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { execution.setVariable("variableSetInExecutionListener", "firstValue"); execution.setVariable("eventNameReceived", execution.getEventName()); - execution.setVariable("businessKeyInExecution", execution.getProcessBusinessKey()); + execution.setVariable("businessKeyInExecution", execution.getProcessInstanceBusinessKey()); } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleExecutionListenerTwo.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleExecutionListenerTwo.java index 3aba3e66f7939125a6f9be167c89216ea1626cbe..aebf3dc6d6d0c0f2aea994fb07aec184687cb431 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleExecutionListenerTwo.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleExecutionListenerTwo.java @@ -13,8 +13,8 @@ package org.activiti5.examples.bpmn.executionlistener; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; /** * Simple {@link ExecutionListener} that sets 2 variables on the execution. @@ -23,7 +23,7 @@ import org.activiti5.engine.delegate.ExecutionListener; */ public class ExampleExecutionListenerTwo implements ExecutionListener { - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { execution.setVariable("variableSetInExecutionListener", "secondValue"); execution.setVariable("eventNameReceived", execution.getEventName()); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleFieldInjectedExecutionListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleFieldInjectedExecutionListener.java index 4bfc675e2da48150a611f6778a186cae9584d990..6f2dab73ed75faef465b0f76e2b68e514397d854 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleFieldInjectedExecutionListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/ExampleFieldInjectedExecutionListener.java @@ -13,9 +13,9 @@ package org.activiti5.examples.bpmn.executionlistener; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.Expression; /** * Example {@link ExecutionListener} which gets 2 fields injected. @@ -28,7 +28,7 @@ public class ExampleFieldInjectedExecutionListener implements ExecutionListener private Expression dynamicValue; - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { execution.setVariable("var", fixedValue.getValue(execution).toString() + dynamicValue.getValue(execution).toString()); } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/RecorderExecutionListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/RecorderExecutionListener.java index fac8a5be9bd639573a06975ffbf8c6f877d01f56..81297849c674e2c1c993ba70b57886cd91cb064f 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/RecorderExecutionListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/executionlistener/RecorderExecutionListener.java @@ -16,8 +16,8 @@ package org.activiti5.examples.bpmn.executionlistener; import java.util.ArrayList; import java.util.List; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; import org.activiti5.engine.impl.el.FixedValue; import org.activiti5.engine.impl.persistence.entity.ExecutionEntity; @@ -63,7 +63,7 @@ public class RecorderExecutionListener implements ExecutionListener { } - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { ExecutionEntity executionCasted = ((ExecutionEntity)execution); recordedEvents.add( new RecordedEvent( // executionCasted.getActivityId(), diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/BackwardsCompatibleExpressionDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/BackwardsCompatibleExpressionDelegate.java index 20a601ade5b128ca425ef28ab9e258e4b36d2b51..be7756dd5d92650dac4e8f0d4a5ede04156e9dec 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/BackwardsCompatibleExpressionDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/BackwardsCompatibleExpressionDelegate.java @@ -13,8 +13,8 @@ package org.activiti5.examples.bpmn.servicetask; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; import org.activiti5.engine.impl.el.Expression; diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/BusinessKeyCheckJavaDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/BusinessKeyCheckJavaDelegate.java index 22f8cae064f1f00a0f58cffb1ccfdb0ef479462b..3f32db4134e790cf33796cfccd69eb5dff6687d7 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/BusinessKeyCheckJavaDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/BusinessKeyCheckJavaDelegate.java @@ -13,8 +13,8 @@ package org.activiti5.examples.bpmn.servicetask; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** @@ -25,7 +25,7 @@ import org.activiti5.engine.delegate.JavaDelegate; */ public class BusinessKeyCheckJavaDelegate implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { - execution.setVariable("businessKeySetOnExecution", execution.getProcessBusinessKey()); + public void execute(DelegateExecution execution) { + execution.setVariable("businessKeySetOnExecution", execution.getProcessInstanceBusinessKey()); } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ReverseStringsFieldInjected.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ReverseStringsFieldInjected.java index c41afa11bfbfa2f566ecc60865378d9459c905fc..7cbd16a099a63d3907435198978163f6d73efa6a 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ReverseStringsFieldInjected.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ReverseStringsFieldInjected.java @@ -12,9 +12,9 @@ */ package org.activiti5.examples.bpmn.servicetask; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.JavaDelegate; /** * Example JavaDelegate that uses an injected diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ThrowsExceptionBehavior.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ThrowsExceptionBehavior.java index 8315ec0e11c08e8046e9105b7440e5ec41800da4..c5791d2858d5cae9ecf9256a66e86efd3c506496 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ThrowsExceptionBehavior.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ThrowsExceptionBehavior.java @@ -23,7 +23,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class ThrowsExceptionBehavior implements ActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { String var = (String) execution.getVariable("var"); PvmTransition transition; diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUpperCaseFieldInjected.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUpperCaseFieldInjected.java index c37d94b4ea45c7c6b994ca58b0cef62a6311fd94..90147c7337054bc926e6fbecc424c9e4e92e73a3 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUpperCaseFieldInjected.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUpperCaseFieldInjected.java @@ -13,9 +13,9 @@ */ package org.activiti5.examples.bpmn.servicetask; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.JavaDelegate; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUpperCaseSetterInjected.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUpperCaseSetterInjected.java index af047d416621fde83f56e7b02052e1621a136a9c..8dbb1e7680e6bb3310feafb9d99973d46beda734 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUpperCaseSetterInjected.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUpperCaseSetterInjected.java @@ -13,9 +13,9 @@ */ package org.activiti5.examples.bpmn.servicetask; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.JavaDelegate; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUppercase.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUppercase.java index 70f4902eb106f045230ad93a96f8294bff050a47..5ec20bd1ec8d25b935348ea63f6cc3a06d2e020c 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUppercase.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/servicetask/ToUppercase.java @@ -12,8 +12,8 @@ */ package org.activiti5.examples.bpmn.servicetask; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/AssigneeAssignment.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/AssigneeAssignment.java index 672a46c911c74f09118afb7b32004c62e48e146e..8d1d76ff81ace4f6e06f9f9bc0f7b08bf75dc43c 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/AssigneeAssignment.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/AssigneeAssignment.java @@ -12,8 +12,8 @@ */ package org.activiti5.examples.bpmn.tasklistener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/AssigneeOverwriteFromVariable.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/AssigneeOverwriteFromVariable.java index 1e116cd89d815f3553d39ecc94a8d87fa3b01b94..bccc949cdfa6422ddeb67e2a3ebced07be62833b 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/AssigneeOverwriteFromVariable.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/AssigneeOverwriteFromVariable.java @@ -14,9 +14,9 @@ package org.activiti5.examples.bpmn.tasklistener; import java.util.Map; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/CandidateGroupAssignment.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/CandidateGroupAssignment.java index 002adc59c5df2ffedf18d374beaa1cd64d30d0e2..83d6be1540b0b818a3dda7c79b3c4c0a2c08e9e6 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/CandidateGroupAssignment.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/CandidateGroupAssignment.java @@ -12,8 +12,8 @@ */ package org.activiti5.examples.bpmn.tasklistener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/CandidateUserAssignment.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/CandidateUserAssignment.java index f2bad9adaabbd0e049f679042c0e24ba1935bd6b..f9c298d199528d635c4b97fb33d21359b5c38809 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/CandidateUserAssignment.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/CandidateUserAssignment.java @@ -12,8 +12,8 @@ */ package org.activiti5.examples.bpmn.tasklistener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskAllEventsListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskAllEventsListener.java index 0710ee3f66deaff5a6f32455b71a0811a6ea9df2..419a13cdbfea20254a36ba811b016ad7e11e9785 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskAllEventsListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskAllEventsListener.java @@ -12,8 +12,8 @@ */ package org.activiti5.examples.bpmn.tasklistener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskAssignmentListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskAssignmentListener.java index dca556f724d62ba92f92e78d5a8edec349ccfbed..4849d176bf5f23c22ad39586db046c279e9ccd12 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskAssignmentListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskAssignmentListener.java @@ -12,8 +12,8 @@ */ package org.activiti5.examples.bpmn.tasklistener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskCompleteListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskCompleteListener.java index b35d5bc29c6b36f6e90162871fc2cb44a91e9f63..371f9398907de25442e0e2871cbb6a64be829c17 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskCompleteListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskCompleteListener.java @@ -12,9 +12,9 @@ */ package org.activiti5.examples.bpmn.tasklistener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.Expression; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.Expression; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskCreateListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskCreateListener.java index 6bbfc28b9165df7e7710f856081c1f93d3afe49c..67028a3c887c2884ac1be2d24880c5299729d6b1 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskCreateListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskCreateListener.java @@ -12,8 +12,8 @@ */ package org.activiti5.examples.bpmn.tasklistener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskDeleteListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskDeleteListener.java index 1d1cbf75fdc3b7c01d9505cebb32a268ff5fc25d..8bf661dcd6dfbaf77ab338fe5694c4655749af30 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskDeleteListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskDeleteListener.java @@ -3,8 +3,8 @@ package org.activiti5.examples.bpmn.tasklistener; import java.util.ArrayList; import java.util.List; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskSimpleCompleteListener.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskSimpleCompleteListener.java index 896a9f25cb849ca9755c275d33bc5e8836504c3a..4e0a12bcd3d917ec92ba5529e439f6561d2a022d 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskSimpleCompleteListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/bpmn/tasklistener/TaskSimpleCompleteListener.java @@ -3,8 +3,8 @@ package org.activiti5.examples.bpmn.tasklistener; import java.util.ArrayList; import java.util.List; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/pvm/Automatic.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/pvm/Automatic.java index 053a343f08da39f6e38078aee6e0677a4d5e54dd..83051f2ca5c9c4a010f043d2bd2d7974b6714dd6 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/pvm/Automatic.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/pvm/Automatic.java @@ -22,7 +22,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class Automatic implements ActivityBehavior { - public void execute(ActivityExecution activityContext) throws Exception { + public void execute(ActivityExecution activityContext) { PvmTransition defaultOutgoingTransition = activityContext.getActivity().getOutgoingTransitions().get(0); activityContext.take(defaultOutgoingTransition); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/pvm/Decision.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/pvm/Decision.java index 4752a0e89fa224a08abaf3eaa3060ac7548b38e3..f6f73aa51c1d5b2cf9769a5db0e1292bb5eb7ccc 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/pvm/Decision.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/pvm/Decision.java @@ -22,7 +22,7 @@ import org.activiti5.engine.impl.pvm.delegate.ActivityExecution; */ public class Decision implements ActivityBehavior { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { PvmTransition transition; String creditRating = (String) execution.getVariable("creditRating"); if (creditRating.equals("AAA+")) { diff --git a/modules/activiti5-test/src/test/java/org/activiti5/examples/variables/ChangeVariableType.java b/modules/activiti5-test/src/test/java/org/activiti5/examples/variables/ChangeVariableType.java index 0b8a11e75f3501269c5a704df9eab33215a77c49..05e18810be2c46b44e7b1732e12ce043c785888f 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/examples/variables/ChangeVariableType.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/examples/variables/ChangeVariableType.java @@ -1,11 +1,11 @@ package org.activiti5.examples.variables; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; public class ChangeVariableType implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { // Initially set to null, stored as NullType execution.setVariable("myVar", null); diff --git a/modules/activiti5-test/src/test/java/org/activiti5/standalone/el/ExpressionBeanAccessTest.java b/modules/activiti5-test/src/test/java/org/activiti5/standalone/el/ExpressionBeanAccessTest.java index 74f7db91c52401ab2ce2738d6d075c81d1304deb..0f60aa480eeb847832b8d52a95e43d1e14fb6c9b 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/standalone/el/ExpressionBeanAccessTest.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/standalone/el/ExpressionBeanAccessTest.java @@ -14,7 +14,6 @@ package org.activiti5.standalone.el; import org.activiti.engine.ActivitiException; -import org.activiti.engine.impl.javax.el.PropertyNotFoundException; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.test.Deployment; import org.activiti5.engine.impl.test.ResourceActivitiTestCase; @@ -42,7 +41,6 @@ public class ExpressionBeanAccessTest extends ResourceActivitiTestCase { fail("Exception expected"); } catch(ActivitiException ae) { assertNotNull(ae.getCause()); - assertTrue(ae.getCause() instanceof PropertyNotFoundException); } } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableSetter.java b/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableSetter.java index e312211d3723bce64050ad3ceae57b103c90a0dd..4518602ecbfd8dcb168d4d7e253660384e2b334b 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableSetter.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableSetter.java @@ -16,8 +16,9 @@ package org.activiti5.standalone.history; import java.text.SimpleDateFormat; import java.util.Date; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; +import org.activiti5.engine.ActivitiException; import org.activiti5.engine.impl.context.Context; import org.activiti5.engine.test.history.SerializableVariable; @@ -27,25 +28,28 @@ import org.activiti5.engine.test.history.SerializableVariable; */ public class VariableSetter implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { - - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss SSS"); - // We set the time to check of the updated time is picked up in the history - Date updatedDate = sdf.parse("01/01/2001 01:23:46 000"); - Context.getProcessEngineConfiguration().getClock().setCurrentTime(updatedDate); - - - execution.setVariable("aVariable", "updated value"); - execution.setVariable("bVariable", 123); - execution.setVariable("cVariable", 12345L); - execution.setVariable("dVariable", 1234.567); - execution.setVariable("eVariable", (short)12); - - Date theDate =sdf.parse("01/01/2001 01:23:45 678"); - execution.setVariable("fVariable", theDate); - - execution.setVariable("gVariable", new SerializableVariable("hello hello")); - execution.setVariable("hVariable", ";-)".getBytes()); + public void execute(DelegateExecution execution) { + try { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss SSS"); + // We set the time to check of the updated time is picked up in the history + Date updatedDate = sdf.parse("01/01/2001 01:23:46 000"); + Context.getProcessEngineConfiguration().getClock().setCurrentTime(updatedDate); + + + execution.setVariable("aVariable", "updated value"); + execution.setVariable("bVariable", 123); + execution.setVariable("cVariable", 12345L); + execution.setVariable("dVariable", 1234.567); + execution.setVariable("eVariable", (short)12); + + Date theDate =sdf.parse("01/01/2001 01:23:45 678"); + execution.setVariable("fVariable", theDate); + + execution.setVariable("gVariable", new SerializableVariable("hello hello")); + execution.setVariable("hVariable", ";-)".getBytes()); + } catch (Exception e) { + throw new ActivitiException(e.getMessage(), e); + } } } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableUpdateDelegate.java b/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableUpdateDelegate.java index 74dd7be2d54daa47efe3052c40234a5686ae036d..f6f801a92367966f1ac8e5dcea1f4f47804eea0b 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableUpdateDelegate.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableUpdateDelegate.java @@ -13,8 +13,8 @@ package org.activiti5.standalone.history; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** @@ -22,7 +22,7 @@ import org.activiti5.engine.delegate.JavaDelegate; */ public class VariableUpdateDelegate implements JavaDelegate { - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { execution.setVariable("zzz", 123456789L); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableUpdateExecutionListener.java b/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableUpdateExecutionListener.java index 86710497bbd1dde2aa1707e0b6926d3b59630e2d..de481cb552851436bb9cb4aa9a4576647779c757 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableUpdateExecutionListener.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/standalone/history/VariableUpdateExecutionListener.java @@ -14,9 +14,9 @@ package org.activiti5.standalone.history; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.ExecutionListener; -import org.activiti5.engine.delegate.Expression; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.activiti.engine.delegate.Expression; /** @@ -26,7 +26,7 @@ public class VariableUpdateExecutionListener implements ExecutionListener { private Expression varName; - public void notify(DelegateExecution execution) throws Exception { + public void notify(DelegateExecution execution) { String variableName = (String) varName.getValue(execution); execution.setVariable(variableName, "Event: " + execution.getEventName()); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/standalone/parsing/CustomActivityBehaviorFactory.java b/modules/activiti5-test/src/test/java/org/activiti5/standalone/parsing/CustomActivityBehaviorFactory.java index 9be7e7c7275bab86f063066053993c2d068ce2e2..ffd8d5b8f2d4f23812d97209ffee09e72835a364 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/standalone/parsing/CustomActivityBehaviorFactory.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/standalone/parsing/CustomActivityBehaviorFactory.java @@ -25,7 +25,7 @@ public class CustomActivityBehaviorFactory extends DefaultActivityBehaviorFactor @Override public NoneStartEventActivityBehavior createNoneStartEventActivityBehavior(StartEvent startEvent) { return new NoneStartEventActivityBehavior() { - public void execute(ActivityExecution execution) throws Exception { + public void execute(ActivityExecution execution) { super.execute(execution); CustomActivityBehaviorFactoryTest.COUNTER.addAndGet(1); } diff --git a/modules/activiti5-test/src/test/java/org/activiti5/standalone/parsing/CustomListenerFactory.java b/modules/activiti5-test/src/test/java/org/activiti5/standalone/parsing/CustomListenerFactory.java index df8bf15763bf2f5eabf86755a72c1f13942d3041..84f6fd803275cb2d561b0e744cf6c53386ad1dec 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/standalone/parsing/CustomListenerFactory.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/standalone/parsing/CustomListenerFactory.java @@ -13,8 +13,8 @@ package org.activiti5.standalone.parsing; import org.activiti.bpmn.model.ActivitiListener; -import org.activiti5.engine.delegate.DelegateTask; -import org.activiti5.engine.delegate.TaskListener; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; import org.activiti5.engine.impl.bpmn.parser.factory.DefaultListenerFactory; /** diff --git a/modules/activiti5-test/src/test/java/org/activiti5/standalone/testing/helpers/ServiceTaskTestMock.java b/modules/activiti5-test/src/test/java/org/activiti5/standalone/testing/helpers/ServiceTaskTestMock.java index a6f224a6cf056ed07e2039e0373a2209a97cffd1..28d18a5d08d2f58a0d465c703d573e9b72c5b735 100644 --- a/modules/activiti5-test/src/test/java/org/activiti5/standalone/testing/helpers/ServiceTaskTestMock.java +++ b/modules/activiti5-test/src/test/java/org/activiti5/standalone/testing/helpers/ServiceTaskTestMock.java @@ -14,8 +14,8 @@ package org.activiti5.standalone.testing.helpers; import java.util.concurrent.atomic.AtomicInteger; -import org.activiti5.engine.delegate.DelegateExecution; -import org.activiti5.engine.delegate.JavaDelegate; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.JavaDelegate; /** * @author Joram Barrez @@ -25,7 +25,7 @@ public class ServiceTaskTestMock implements JavaDelegate { public static AtomicInteger CALL_COUNT = new AtomicInteger(); @Override - public void execute(DelegateExecution execution) throws Exception { + public void execute(DelegateExecution execution) { CALL_COUNT.incrementAndGet(); } diff --git a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/logging/mdc/MDCLoggingTest.testLogger.bpmn20.xml b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/logging/mdc/MDCLoggingTest.testLogger.bpmn20.xml index 517f1647ffac7d29f8fc7bd223cf3ca2413383e5..886f0236fa82baa6e20015e591440dd0749c5b1b 100644 --- a/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/logging/mdc/MDCLoggingTest.testLogger.bpmn20.xml +++ b/modules/activiti5-test/src/test/resources/org/activiti5/engine/test/logging/mdc/MDCLoggingTest.testLogger.bpmn20.xml @@ -3,7 +3,7 @@ - + diff --git a/pom.xml b/pom.xml index a4546462f2e570dc9e18354169366e30c5b98315..0319f8f3ac37b1ed98556fa217ce838a799e85f6 100755 --- a/pom.xml +++ b/pom.xml @@ -268,11 +268,21 @@ activiti5-engine ${project.version} + + org.activiti + activiti5-spring + ${project.version} + org.activiti activiti5-compatibility ${project.version} + + org.activiti + activiti5-spring-compatibility + ${project.version} + org.activiti activiti-jmx diff --git a/scripts/run-compatibility-tests.sh b/scripts/run-compatibility-tests.sh index 0b68b1fa9e5a1e1beb7d2f4587312092675bc7ad..d7aa72c033456da9034237daf5cfee1708966a1e 100755 --- a/scripts/run-compatibility-tests.sh +++ b/scripts/run-compatibility-tests.sh @@ -1,9 +1,9 @@ #!/bin/sh echo "Dropping DB schema" -mysql -u activiti -pactiviti -e "DROP SCHEMA activiti-compatibility" +mysql -u activiti -pactiviti -e "DROP SCHEMA activiticompatibility" echo "Creating DB schema" -mysql -u activiti -pactiviti -e "CREATE SCHEMA activiti-compatibility DEFAULT CHARACTER SET utf8 COLLATE utf8_bin" +mysql -u activiti -pactiviti -e "CREATE SCHEMA activiticompatibility DEFAULT CHARACTER SET utf8 COLLATE utf8_bin" echo "Building dependencies" cd ..