diff --git a/distro/build.xml b/distro/build.xml index 50a2a19b7854f0cf5a387e692d266daee6047ee7..206fb8c1370fd01fa4b992bb76075bdd02b41c75 100644 --- a/distro/build.xml +++ b/distro/build.xml @@ -4,7 +4,7 @@ - + @@ -63,6 +63,9 @@ + + + diff --git a/distro/src/readme.html b/distro/src/readme.html index 93d94b244ef11b0e419cbb72e29ef29db7fa2682..1a6c9c559e3e80c9e1a6e26eeff62c0f7f6491e7 100644 --- a/distro/src/readme.html +++ b/distro/src/readme.html @@ -35,6 +35,14 @@

Activiti Release Notes

+

Release Notes - Activiti - Version 5.15.1

+ +

Highlights

+
    +
  • Bug fix release for a MySQL upgrade issue (more details here)
  • +
  • Some small improvements from pull requests
  • +
+

Release Notes - Activiti - Version 5.15

Highlights

diff --git a/modules/activiti-bpmn-converter/pom.xml b/modules/activiti-bpmn-converter/pom.xml index c1703a4a10e52c19a1f3f4a2d98f3c4eb53ca684..ea3eb4f6ab8b26eb25126226dca20b60cb96ec23 100644 --- a/modules/activiti-bpmn-converter/pom.xml +++ b/modules/activiti-bpmn-converter/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-bpmn-layout/pom.xml b/modules/activiti-bpmn-layout/pom.xml index dec39ba0ed657709ce626e136b8a24f38dafecd1..19688da6d232eff2ab270351151e1f545b8836b9 100644 --- a/modules/activiti-bpmn-layout/pom.xml +++ b/modules/activiti-bpmn-layout/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-bpmn-model/pom.xml b/modules/activiti-bpmn-model/pom.xml index ed56cc6ce60c137f17322a54f2fa509328ae4cb0..d9e366c3129d76ba1549cd72f349c1a00eeefeb6 100644 --- a/modules/activiti-bpmn-model/pom.xml +++ b/modules/activiti-bpmn-model/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-camel/pom.xml b/modules/activiti-camel/pom.xml index 3fd761e73bafb9cd982a98644c6315cb327f47f3..0010074e0bce4b06d715b1ced8fec400fef0169a 100644 --- a/modules/activiti-camel/pom.xml +++ b/modules/activiti-camel/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-cdi/pom.xml b/modules/activiti-cdi/pom.xml index 47b4ad27950558221aaa5a4dfa866a9adf8c68aa..d136c8fc492db6359c47306755b1254eba89ed4b 100755 --- a/modules/activiti-cdi/pom.xml +++ b/modules/activiti-cdi/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-cdi/src/test/java/org/activiti/cdi/test/api/BusinessProcessBeanTest.java b/modules/activiti-cdi/src/test/java/org/activiti/cdi/test/api/BusinessProcessBeanTest.java index 9c281d48d1b057cf26c96d98d99ce462cdbe374a..345e9e72f8e7f95642e6c3efa9631f1a1de2719d 100644 --- a/modules/activiti-cdi/src/test/java/org/activiti/cdi/test/api/BusinessProcessBeanTest.java +++ b/modules/activiti-cdi/src/test/java/org/activiti/cdi/test/api/BusinessProcessBeanTest.java @@ -61,6 +61,18 @@ public class BusinessProcessBeanTest extends CdiActivitiTestCase { assertNull(processEngine.getRuntimeService().createProcessInstanceQuery().singleResult()); } + + @Test + @Deployment + public void testProcessWithoutWaitState() { + BusinessProcess businessProcess = getBeanInstance(BusinessProcess.class); + + // start the process + businessProcess.startProcessByKey("businessProcessBeanTest").getId(); + + // assert that the process is ended: + assertNull(processEngine.getRuntimeService().createProcessInstanceQuery().singleResult()); + } @Test @Deployment(resources = "org/activiti/cdi/test/api/BusinessProcessBeanTest.test.bpmn20.xml") diff --git a/modules/activiti-cdi/src/test/resources/org/activiti/cdi/test/api/BusinessProcessBeanTest.testProcessWithoutWaitState.bpmn20.xml b/modules/activiti-cdi/src/test/resources/org/activiti/cdi/test/api/BusinessProcessBeanTest.testProcessWithoutWaitState.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..d1da8aa03d667a1934ab82079e438ffbae306eaa --- /dev/null +++ b/modules/activiti-cdi/src/test/resources/org/activiti/cdi/test/api/BusinessProcessBeanTest.testProcessWithoutWaitState.bpmn20.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti-common-rest/pom.xml b/modules/activiti-common-rest/pom.xml index 46e33522ff49c3a356ddfcb859f89f7807408f71..68ad1f1ce27f97221959082d78f7802a9437833a 100644 --- a/modules/activiti-common-rest/pom.xml +++ b/modules/activiti-common-rest/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-cxf/pom.xml b/modules/activiti-cxf/pom.xml index ce31db853521d51e92cd5b7e1fea2a25ec9089e6..f82d36d62cd6c196936d40f7a1cf58abf96376c3 100644 --- a/modules/activiti-cxf/pom.xml +++ b/modules/activiti-cxf/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-diagram-rest/pom.xml b/modules/activiti-diagram-rest/pom.xml index 4708129e3df43c135a629ef02c023b8de15e0fce..f95e4a06a77fccbfd96d948af6ffc15f264e3f5e 100644 --- a/modules/activiti-diagram-rest/pom.xml +++ b/modules/activiti-diagram-rest/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-diagram-rest/src/main/java/org/activiti/rest/diagram/services/ProcessInstanceHighlightsResource.java b/modules/activiti-diagram-rest/src/main/java/org/activiti/rest/diagram/services/ProcessInstanceHighlightsResource.java index caeb9573e227a45b205e996dd99b851243053285..241f93733b69229c83f6538be3f211db847ace3e 100644 --- a/modules/activiti-diagram-rest/src/main/java/org/activiti/rest/diagram/services/ProcessInstanceHighlightsResource.java +++ b/modules/activiti-diagram-rest/src/main/java/org/activiti/rest/diagram/services/ProcessInstanceHighlightsResource.java @@ -55,7 +55,6 @@ public class ProcessInstanceHighlightsResource extends SecuredResource { responseJSON.put("processDefinitionId", processInstance.getProcessDefinitionId()); List highLightedActivities = runtimeService.getActiveActivityIds(processInstanceId); - System.out.println(highLightedActivities); List highLightedFlows = getHighLightedFlows(processDefinition, processInstanceId); for (String activityId : highLightedActivities) { diff --git a/modules/activiti-engine/pom.xml b/modules/activiti-engine/pom.xml index f27bfc4fefc278d79aead35ced5a82a54b0bd6af..e70d0b35bb3ad85b7a43ae95d29b50929a57244e 100755 --- a/modules/activiti-engine/pom.xml +++ b/modules/activiti-engine/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT 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 60a5b97b366911327aca50220ca3d151ac8eed54..63c1490dd4f06701eb7cf85e5136b32f16940b34 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 @@ -49,7 +49,7 @@ package org.activiti.engine; public interface ProcessEngine extends EngineServices { /** the version of the activiti library */ - public static String VERSION = "5.15.1-SNAPSHOT"; + public static String VERSION = "5.16-SNAPSHOT"; /** The name as specified in 'process-engine-name' in * the activiti.cfg.xml configuration file. 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 c4cc51083574d37939064bdbfc686d63a31b77f9..787f3f6390b926519da13ee550a68d5e1f689cb0 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngineConfiguration.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/ProcessEngineConfiguration.java @@ -96,7 +96,7 @@ public abstract class ProcessEngineConfiguration implements EngineServices { public static final String NO_TENANT_ID = ""; protected String processEngineName = ProcessEngines.NAME_DEFAULT; - protected int idBlockSize = 100; + protected int idBlockSize = 2500; protected String history = HistoryLevel.AUDIT.getKey(); protected boolean jobExecutorActivate; diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/MailActivityBehavior.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/MailActivityBehavior.java index e094c7589f3d5d52acdb7f660570a61389850c03..cb16dc6e8acbb1dc39abf8b43066f9884b72c6d1 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/MailActivityBehavior.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/behavior/MailActivityBehavior.java @@ -26,6 +26,8 @@ import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; import org.apache.commons.mail.SimpleEmail; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author Joram Barrez @@ -36,6 +38,8 @@ public class MailActivityBehavior extends AbstractBpmnActivityBehavior { private static final long serialVersionUID = 1L; + private static final Logger LOG = LoggerFactory.getLogger(MailActivityBehavior.class); + protected Expression to; protected Expression from; protected Expression cc; @@ -46,39 +50,47 @@ public class MailActivityBehavior extends AbstractBpmnActivityBehavior { protected Expression html; protected Expression htmlVar; protected Expression charset; + protected Expression ignoreException; + protected Expression exceptionVariableName; public void execute(ActivityExecution execution) { - String toStr = getStringFromField(to, execution); - String fromStr = getStringFromField(from, execution); - String ccStr = getStringFromField(cc, execution); - String bccStr = getStringFromField(bcc, execution); - String subjectStr = getStringFromField(subject, execution); - String textStr = textVar == null ? getStringFromField(text, execution) - : getStringFromField(getExpression(execution, textVar), execution); - String htmlStr = htmlVar == null ? getStringFromField(html, execution) - : getStringFromField(getExpression(execution, htmlVar), execution); - String charSetStr = getStringFromField(charset, execution); - - Email email = createEmail(textStr, htmlStr); - - addTo(email, toStr); - setFrom(email, fromStr); - addCc(email, ccStr); - addBcc(email, bccStr); - setSubject(email, subjectStr); - setMailServerProperties(email); - setCharset(email, charSetStr); - + + boolean doIgnoreException = Boolean.parseBoolean(getStringFromField(ignoreException, execution)); + String exceptionVariable = getStringFromField(exceptionVariableName, execution); + Email email = null; try { + String toStr = getStringFromField(to, execution); + String fromStr = getStringFromField(from, execution); + String ccStr = getStringFromField(cc, execution); + String bccStr = getStringFromField(bcc, execution); + String subjectStr = getStringFromField(subject, execution); + String textStr = textVar == null ? getStringFromField(text, execution) + : getStringFromField(getExpression(execution, textVar), execution); + String htmlStr = htmlVar == null ? getStringFromField(html, execution) + : getStringFromField(getExpression(execution, htmlVar), execution); + String charSetStr = getStringFromField(charset, execution); + + email = createEmail(textStr, htmlStr); + + addTo(email, toStr); + setFrom(email, fromStr); + addCc(email, ccStr); + addBcc(email, bccStr); + setSubject(email, subjectStr); + setMailServerProperties(email); + setCharset(email, charSetStr); + email.send(); + + } catch (ActivitiException e) { + handleException(execution, e.getMessage(), e, doIgnoreException, exceptionVariable); } catch (EmailException e) { - throw new ActivitiException("Could not send e-mail", e); + handleException(execution, "Could not send e-mail in execution " + execution.getId(), e, doIgnoreException, exceptionVariable); } + leave(execution); } - - protected Email createEmail(String text, String html) { if (html != null) { return createHtmlEmail(text, html); @@ -222,7 +234,7 @@ public class MailActivityBehavior extends AbstractBpmnActivityBehavior { } protected String getStringFromField(Expression expression, DelegateExecution execution) { - if(expression != null) { + if (expression != null) { Object value = expression.getValue(execution); if(value != null) { return value.toString(); @@ -237,4 +249,18 @@ public class MailActivityBehavior extends AbstractBpmnActivityBehavior { .createExpression(variable); } + protected void handleException(ActivityExecution execution, String msg, Exception e, boolean doIgnoreException, String exceptionVariable) { + if (doIgnoreException) { + LOG.info("Ignoring email send error: " + msg, e); + if (exceptionVariable != null && exceptionVariable.length() > 0) { + execution.setVariable(exceptionVariable, msg); + } + } else { + if (e instanceof ActivitiException) { + throw (ActivitiException) e; + } else { + throw new ActivitiException(msg, e); + } + } + } } diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfigurationImpl.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfigurationImpl.java index d712e3967e2e9bf7d2df7e4c070669901f6ee8f0..0ef2527e5e68e040a64f3c52f323739b59b7a3a1 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfigurationImpl.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfigurationImpl.java @@ -197,6 +197,7 @@ import org.activiti.engine.impl.variable.EntityManagerSession; import org.activiti.engine.impl.variable.EntityManagerSessionFactory; import org.activiti.engine.impl.variable.IntegerType; import org.activiti.engine.impl.variable.JPAEntityVariableType; +import org.activiti.engine.impl.variable.LongStringType; import org.activiti.engine.impl.variable.LongType; import org.activiti.engine.impl.variable.NullType; import org.activiti.engine.impl.variable.SerializableType; @@ -1129,7 +1130,8 @@ public abstract class ProcessEngineConfigurationImpl extends ProcessEngineConfig } } variableTypes.addType(new NullType()); - variableTypes.addType(new StringType()); + variableTypes.addType(new StringType(4000)); + variableTypes.addType(new LongStringType(4001)); variableTypes.addType(new BooleanType()); variableTypes.addType(new ShortType()); variableTypes.addType(new IntegerType()); diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/el/ExpressionManager.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/el/ExpressionManager.java index 51852f22813270ddee7d3a0b91f6dd26e59156c2..49cc91b3e69ba79befd1be1fd5b42676c01d7b34 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/el/ExpressionManager.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/el/ExpressionManager.java @@ -57,13 +57,21 @@ public class ExpressionManager { public ExpressionManager() { - this(null); + this(null); + } + + public ExpressionManager(boolean initFactory) { + this(null, false); } public ExpressionManager(Map beans) { - // Use the ExpressionFactoryImpl in activiti build in version of juel, with parametrised method expressions enabled - expressionFactory = new ExpressionFactoryImpl(); - this.beans = beans; + this(beans, true); + } + + public ExpressionManager(Map beans, boolean initFactory) { + // Use the ExpressionFactoryImpl in activiti build in version of juel, with parametrised method expressions enabled + expressionFactory = new ExpressionFactoryImpl(); + this.beans = beans; } 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 eb27fc0648d1e94d514cae9e93c792c39208f46a..f1d0d7de7d439e467390501339aa8e8013b72d0b 100644 --- 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 @@ -248,7 +248,12 @@ public class ExecutionEntity extends VariableScopeImpl implements ActivityExecut if (log.isDebugEnabled()) { log.debug("Child execution {} created with parent ", createdExecution, this); } - + + if (Context.getProcessEngineConfiguration() != null && Context.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { + Context.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent( + ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, createdExecution)); + } + return createdExecution; } @@ -262,7 +267,12 @@ public class ExecutionEntity extends VariableScopeImpl implements ActivityExecut // Initialize the new execution subProcessInstance.setProcessDefinition((ProcessDefinitionImpl) processDefinition); subProcessInstance.setProcessInstance(subProcessInstance); - + + if (Context.getProcessEngineConfiguration() != null && Context.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { + Context.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent( + ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, subProcessInstance)); + } + Context.getCommandContext().getHistoryManager() .recordSubProcessInstanceStart(this, subProcessInstance); @@ -278,11 +288,6 @@ public class ExecutionEntity extends VariableScopeImpl implements ActivityExecut newExecution.setTenantId(getTenantId()); } - if(Context.getProcessEngineConfiguration() != null && Context.getProcessEngineConfiguration().getEventDispatcher().isEnabled()) { - Context.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent( - ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, newExecution)); - } - Context .getCommandContext() .getDbSqlSession() diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/LongStringType.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/LongStringType.java new file mode 100644 index 0000000000000000000000000000000000000000..1717a36ec9faec6d927c9786718881b35751ed94 --- /dev/null +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/LongStringType.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.activiti.engine.impl.variable; + + + +/** + * @author Martin Grofcik + */ +public class LongStringType extends SerializableType { + + private final int minLength; + + public LongStringType(int minLength) {this.minLength = minLength;} + + public String getTypeName() { + return "longString"; + } + + public boolean isAbleToStore(Object value) { + if (value==null) { + return false; + } + if (String.class.isAssignableFrom(value.getClass())) { + String stringValue = (String) value; + return stringValue.length() >= minLength; + } + return false; + } +} diff --git a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/StringType.java b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/StringType.java index cdaacfcf0030ab1d609b8c7a362a9336c64d123c..8cc425eff82fd253cd5f19cfd5aa1ad10a006c33 100644 --- a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/StringType.java +++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/StringType.java @@ -19,7 +19,9 @@ package org.activiti.engine.impl.variable; */ public class StringType implements VariableType { - private static final long serialVersionUID = 1L; + private final int maxLength; + + public StringType(int maxLength) {this.maxLength = maxLength;} public String getTypeName() { return "string"; @@ -41,6 +43,10 @@ public class StringType implements VariableType { if (value==null) { return true; } - return String.class.isAssignableFrom(value.getClass()); + if (String.class.isAssignableFrom(value.getClass())) { + String stringValue = (String) value; + return stringValue.length() <= maxLength; + } + return false; } } diff --git a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.db2.create.engine.sql b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.db2.create.engine.sql index 71104a05ae3cd2cf34e80ef5b1cbf5ce2c33be61..9fd01dbd2543dede7f9be9e3a04bf64960e48b87 100644 --- a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.db2.create.engine.sql +++ b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.db2.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '5.15.1-SNAPSHOT', 1); +values ('schema.version', '5.16-SNAPSHOT', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(5.15.1-SNAPSHOT)', 1); +values ('schema.history', 'create(5.16-SNAPSHOT)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); diff --git a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql index 56324e4ba4b404f992d3aadc498a29c92636a274..0e31651a49974a1724b75e2b0e92d90309bca9e5 100644 --- a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql +++ b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.h2.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '5.15.1-SNAPSHOT', 1); +values ('schema.version', '5.16-SNAPSHOT', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(5.15.1-SNAPSHOT)', 1); +values ('schema.history', 'create(5.16-SNAPSHOT)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); diff --git a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mssql.create.engine.sql b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mssql.create.engine.sql index 041e7dce79c48c434167aefc41b2c16208934189..1ed2b16270166043dcc549a06c5b8f561c7e19d8 100644 --- a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mssql.create.engine.sql +++ b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mssql.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '5.15.1-SNAPSHOT', 1); +values ('schema.version', '5.16-SNAPSHOT', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(5.15.1-SNAPSHOT)', 1); +values ('schema.history', 'create(5.16-SNAPSHOT)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); diff --git a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql.create.engine.sql b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql.create.engine.sql index 73e209059aa095e991b51e37368aa2a2444d3481..fe12f405647a6ecd1682610ae45df428340a7d5c 100644 --- a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql.create.engine.sql +++ b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; insert into ACT_GE_PROPERTY -values ('schema.version', '5.15.1-SNAPSHOT', 1); +values ('schema.version', '5.16-SNAPSHOT', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(5.15.1-SNAPSHOT)', 1); +values ('schema.history', 'create(5.16-SNAPSHOT)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); diff --git a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql55.create.engine.sql b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql55.create.engine.sql index 69d0cca3f2ad17e7e106632c24a045da3eeba05c..4bd7cdee22ca24ea9cb23e7d19855f1526270639 100644 --- a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql55.create.engine.sql +++ b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.mysql55.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; insert into ACT_GE_PROPERTY -values ('schema.version', '5.15.1-SNAPSHOT', 1); +values ('schema.version', '5.16-SNAPSHOT', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(5.15.1-SNAPSHOT)', 1); +values ('schema.history', 'create(5.16-SNAPSHOT)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); diff --git a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.oracle.create.engine.sql b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.oracle.create.engine.sql index 1211d25cfc268b7c3730a915341a6baa5fd23a1d..2f254a8ec1fd33be5efc132e4d21030c558ec1f7 100644 --- a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.oracle.create.engine.sql +++ b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.oracle.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '5.15.1-SNAPSHOT', 1); +values ('schema.version', '5.16-SNAPSHOT', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(5.15.1-SNAPSHOT)', 1); +values ('schema.history', 'create(5.16-SNAPSHOT)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); diff --git a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql index 9a29f6a6cc02afe6f9eca0df5986dd0bc6ba4570..0a64f679a1d9685b98201f98139bfe2bb4813b6b 100644 --- a/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql +++ b/modules/activiti-engine/src/main/resources/org/activiti/db/create/activiti.postgres.create.engine.sql @@ -6,10 +6,10 @@ create table ACT_GE_PROPERTY ( ); insert into ACT_GE_PROPERTY -values ('schema.version', '5.15.1-SNAPSHOT', 1); +values ('schema.version', '5.16-SNAPSHOT', 1); insert into ACT_GE_PROPERTY -values ('schema.history', 'create(5.15.1-SNAPSHOT)', 1); +values ('schema.history', 'create(5.16-SNAPSHOT)', 1); insert into ACT_GE_PROPERTY values ('next.dbid', '1', 1); diff --git a/modules/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Attachment.xml b/modules/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Attachment.xml index df93ceeebf7ec7d0fc62655d9e5f2397e4dfcea7..cbd1b8551739ef084868aed36b018866db2d0530 100644 --- a/modules/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Attachment.xml +++ b/modules/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Attachment.xml @@ -67,6 +67,7 @@ + diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/ProcessInstanceEventsTest.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/ProcessInstanceEventsTest.java index 7ddf852298070bae670e16a66ea69b2638de3628..cbea246a72eaa012a605c2190bbf34be9da78fce 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/ProcessInstanceEventsTest.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/event/ProcessInstanceEventsTest.java @@ -13,12 +13,17 @@ package org.activiti.engine.test.api.event; import org.activiti.engine.delegate.event.ActivitiEvent; +import org.activiti.engine.delegate.event.ActivitiEventListener; import org.activiti.engine.delegate.event.ActivitiEventType; import org.activiti.engine.delegate.event.ActivitiEntityEvent; +import org.activiti.engine.impl.persistence.entity.ExecutionEntity; import org.activiti.engine.impl.test.PluggableActivitiTestCase; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.test.Deployment; +import java.util.ArrayList; +import java.util.List; + /** * Test case for all {@link ActivitiEvent}s related to process instances. * @@ -26,7 +31,7 @@ import org.activiti.engine.test.Deployment; */ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { - private TestActivitiEntityEventListener listener; + private TestInitializedEntityEventListener listener; /** * Test create, update and delete events of process instances. @@ -34,9 +39,9 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { @Deployment(resources= {"org/activiti/engine/test/api/runtime/oneTaskProcess.bpmn20.xml"}) public void testProcessInstanceEvents() throws Exception { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("oneTaskProcess"); - + assertNotNull(processInstance); - + // Check create-event assertEquals(1, listener.getEventsReceived().size()); assertTrue(listener.getEventsReceived().get(0) instanceof ActivitiEntityEvent); @@ -48,7 +53,7 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { assertEquals(processInstance.getId(), event.getExecutionId()); assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); listener.clearEventsReceived(); - + // Check update event when suspended/activated runtimeService.suspendProcessInstanceById(processInstance.getId()); runtimeService.activateProcessInstanceById(processInstance.getId()); @@ -108,14 +113,24 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { assertEquals(processInstance.getProcessDefinitionId(), event.getProcessDefinitionId()); listener.clearEventsReceived(); } - - - @Override + + /** + * Test process with signals start. + */ + @Deployment(resources = {"org/activiti/engine/test/bpmn/event/signal/SignalEventTest.testSignalWithGlobalScope.bpmn20.xml"}) + public void testSignalProcessInstanceStart() throws Exception { + this.runtimeService.startProcessInstanceByKey("processWithSignalCatch"); + listener.clearEventsReceived(); + + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("processWithSignalThrow"); + listener.clearEventsReceived(); + } + + @Override protected void initializeServices() { super.initializeServices(); - - listener = new TestActivitiEntityEventListener(ProcessInstance.class); - processEngineConfiguration.getEventDispatcher().addEventListener(listener); + this.listener = new TestInitializedEntityEventListener(); + processEngineConfiguration.getEventDispatcher().addEventListener(this.listener); } @Override @@ -127,4 +142,38 @@ public class ProcessInstanceEventsTest extends PluggableActivitiTestCase { processEngineConfiguration.getEventDispatcher().removeEventListener(listener); } } + + private class TestInitializedEntityEventListener implements ActivitiEventListener { + + private List eventsReceived; + + public TestInitializedEntityEventListener() { + + eventsReceived = new ArrayList(); + } + + public List getEventsReceived() { + return eventsReceived; + } + + public void clearEventsReceived() { + eventsReceived.clear(); + } + + @Override + public void onEvent(ActivitiEvent event) { + if (event instanceof ActivitiEntityEvent && ProcessInstance.class.isAssignableFrom(((ActivitiEntityEvent) event).getEntity().getClass())) { + // check whether entity in the event is initialized before adding to the list. + assertNotNull(((ExecutionEntity) ((ActivitiEntityEvent) event).getEntity()).getId()); + eventsReceived.add(event); + } + } + + @Override + public boolean isFailOnException() { + return true; + } + + + } } diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/runtime/RuntimeServiceTest.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/runtime/RuntimeServiceTest.java index 9f1e4a0d646ee0bb7b2ed0209a857f6548913291..96f5912a16cbb6800ed4f0ff8afe3db1f1d5e68b 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/runtime/RuntimeServiceTest.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/api/runtime/RuntimeServiceTest.java @@ -49,8 +49,22 @@ public class RuntimeServiceTest extends PluggableActivitiTestCase { Task task = taskService.createTaskQuery().includeProcessVariables().singleResult(); assertNotNull(task.getProcessVariables()); } - - + + @Deployment(resources = {"org/activiti/engine/test/api/oneTaskProcess.bpmn20.xml"}) + public void testStartProcessInstanceWithLongStringVariable() { + Map vars = new HashMap(); + StringBuilder longString = new StringBuilder(); + for (int i=0; i<4001; i++) { + longString.append("c"); + } + vars.put("longString", longString.toString()); + runtimeService.startProcessInstanceByKey("oneTaskProcess", vars); + Task task = taskService.createTaskQuery().includeProcessVariables().singleResult(); + assertNotNull(task.getProcessVariables()); + assertEquals( longString.toString(), task.getProcessVariables().get("longString")); + } + + public void testStartProcessInstanceByKeyNullKey() { try { runtimeService.startProcessInstanceByKey(null); diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.java index 4370b116492c50b12858dc91ff0da4c5d378ad59..0ce8459633ce2bd34af43c95362a8f94ddeed930 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.java @@ -26,6 +26,7 @@ import javax.activation.DataHandler; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; +import org.activiti.engine.ActivitiException; import org.activiti.engine.impl.util.CollectionUtil; import org.activiti.engine.test.Deployment; import org.subethamail.wiser.WiserMessage; @@ -115,6 +116,30 @@ public class EmailSendTaskTest extends EmailTestCase { assertEmailSend(messages.get(0), true, "Test", "Mr. Kermit", "activiti@localhost", Arrays.asList("kermit@activiti.org"), null); } + @Deployment + public void testInvalidAddress() throws Exception { + try { + runtimeService.startProcessInstanceByKey("invalidAddress").getId(); + fail("An Invalid email address should not execute"); + } catch(ActivitiException e) { + // fine + } catch(Exception e) { + fail("Only an ActivitiException is expected here but not: " + e); + } + } + + @Deployment + public void testInvalidAddressWithoutException() throws Exception { + String piId = runtimeService.startProcessInstanceByKey("invalidAddressWithoutException").getId(); + assertNotNull(historyService.createHistoricVariableInstanceQuery().processInstanceId(piId).variableName("emailError").singleResult()); + } + + @Deployment + public void testInvalidAddressWithoutExceptionVariableName() throws Exception { + String piId = runtimeService.startProcessInstanceByKey("invalidAddressWithoutException").getId(); + assertNull(historyService.createHistoricVariableInstanceQuery().processInstanceId(piId).variableName("emailError").singleResult()); + } + // Helper private void assertEmailSend(WiserMessage emailMessage, boolean htmlMail, String subject, String message, diff --git a/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.java b/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.java index 417855af0bdf71c43891b647072e911f3c296899..e8288242ae579c0fefd36f75ef64f21cd1644c81 100644 --- a/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.java +++ b/modules/activiti-engine/src/test/java/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.java @@ -26,6 +26,7 @@ import javax.activation.DataHandler; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; +import org.activiti.engine.ActivitiException; import org.activiti.engine.impl.util.CollectionUtil; import org.activiti.engine.test.Deployment; import org.subethamail.wiser.WiserMessage; @@ -128,6 +129,30 @@ public class EmailServiceTaskTest extends EmailTestCase { assertEmailSend(messages.get(0), true, "Test", "Mr. Kermit", "activiti@localhost", Arrays.asList("kermit@activiti.org"), null); } + @Deployment + public void testInvalidAddress() throws Exception { + try { + runtimeService.startProcessInstanceByKey("invalidAddress").getId(); + fail("An Invalid email address should not execute"); + } catch(ActivitiException e) { + // fine + } catch(Exception e) { + fail("Only an ActivitiException is expected here but not: " + e); + } + } + + @Deployment + public void testInvalidAddressWithoutException() throws Exception { + String piId = runtimeService.startProcessInstanceByKey("invalidAddressWithoutException").getId(); + assertNotNull(historyService.createHistoricVariableInstanceQuery().processInstanceId(piId).variableName("emailError").singleResult()); + } + + @Deployment + public void testInvalidAddressWithoutExceptionVariableName() throws Exception { + String piId = runtimeService.startProcessInstanceByKey("invalidAddressWithoutException").getId(); + assertNull(historyService.createHistoricVariableInstanceQuery().processInstanceId(piId).variableName("emailError").singleResult()); + } + // Helper public static void assertEmailSend(WiserMessage emailMessage, boolean htmlMail, String subject, String message, diff --git a/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddress.bpmn20.xml b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddress.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..169440ad97737930d1b69e35680378d3a2039230 --- /dev/null +++ b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddress.bpmn20.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + kermit@activiti.org@org + + + Hello Kermit! + + + This a text only e-mail. + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddressWithoutException.bpmn20.xml b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddressWithoutException.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..efee5418b36454707b548b748cadb27681c7d1dd --- /dev/null +++ b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddressWithoutException.bpmn20.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + kermit@activiti.org@org + + + Hello Kermit! + + + This a text only e-mail. + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddressWithoutExceptionVariableName.bpmn20.xml b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddressWithoutExceptionVariableName.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..4c9884cd2888449dad085f68cf80d803ee02c9d1 --- /dev/null +++ b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailSendTaskTest.testInvalidAddressWithoutExceptionVariableName.bpmn20.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + kermit@activiti.org@org + + + Hello Kermit! + + + This a text only e-mail. + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddress.bpmn20.xml b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddress.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..169440ad97737930d1b69e35680378d3a2039230 --- /dev/null +++ b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddress.bpmn20.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + kermit@activiti.org@org + + + Hello Kermit! + + + This a text only e-mail. + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddressWithoutException.bpmn20.xml b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddressWithoutException.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..efee5418b36454707b548b748cadb27681c7d1dd --- /dev/null +++ b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddressWithoutException.bpmn20.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + kermit@activiti.org@org + + + Hello Kermit! + + + This a text only e-mail. + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddressWithoutExceptionVariableName.bpmn20.xml b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddressWithoutExceptionVariableName.bpmn20.xml new file mode 100644 index 0000000000000000000000000000000000000000..4c9884cd2888449dad085f68cf80d803ee02c9d1 --- /dev/null +++ b/modules/activiti-engine/src/test/resources/org/activiti/engine/test/bpmn/mail/EmailServiceTaskTest.testInvalidAddressWithoutExceptionVariableName.bpmn20.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + kermit@activiti.org@org + + + Hello Kermit! + + + This a text only e-mail. + + + + + + + + + + \ No newline at end of file diff --git a/modules/activiti-explorer/pom.xml b/modules/activiti-explorer/pom.xml index 8c591a1f47e38e7e76697a8832e754703dc9f7a9..708fdb15d97d6dade4cdd78416c878266fd6668f 100644 --- a/modules/activiti-explorer/pom.xml +++ b/modules/activiti-explorer/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-json-converter/pom.xml b/modules/activiti-json-converter/pom.xml index bd774fd6c0f3c1528a39b54570c071989063d687..cb688e44702aa8b7ef39c1ef3279aa0fff4d66ed 100644 --- a/modules/activiti-json-converter/pom.xml +++ b/modules/activiti-json-converter/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-ldap/pom.xml b/modules/activiti-ldap/pom.xml index 5343acd6126f58316e75a157d61dd77f911308c2..c3dc0f0f380597bf165327422f59c9d39ee70c0d 100644 --- a/modules/activiti-ldap/pom.xml +++ b/modules/activiti-ldap/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-modeler/pom.xml b/modules/activiti-modeler/pom.xml index 5a6e6d17bc4fa98b19e9684474aa08d2ebce5aa7..ec544322207c55bc737d1e7fc70b579500993b58 100644 --- a/modules/activiti-modeler/pom.xml +++ b/modules/activiti-modeler/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-mule/pom.xml b/modules/activiti-mule/pom.xml index 6320cf53ed20db7eae1d2766996f2a8792ed3a4f..fcdb351d8c21fdbe5b45fd39027107e74bd5fff3 100644 --- a/modules/activiti-mule/pom.xml +++ b/modules/activiti-mule/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-osgi/pom.xml b/modules/activiti-osgi/pom.xml index e9398768ff45ce0ad8689a3f70b370b8d0141ed3..b6c7a22185bb2a285585548f16e351bb9372792b 100644 --- a/modules/activiti-osgi/pom.xml +++ b/modules/activiti-osgi/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-osgi/src/test/java/org/activiti/osgi/blueprint/BlueprintBasicTest.java b/modules/activiti-osgi/src/test/java/org/activiti/osgi/blueprint/BlueprintBasicTest.java index 2c3914c02e1bc80850519496c1af7c8fdd6fe958..4a9eb79ef7928910c80c5a22c79873d21c179b50 100755 --- a/modules/activiti-osgi/src/test/java/org/activiti/osgi/blueprint/BlueprintBasicTest.java +++ b/modules/activiti-osgi/src/test/java/org/activiti/osgi/blueprint/BlueprintBasicTest.java @@ -79,10 +79,10 @@ public class BlueprintBasicTest { @Configuration public Option[] createConfiguration() { Option[] coreBundles = options( - mavenBundle().groupId("org.activiti").artifactId("activiti-bpmn-model").version("5.15.1-SNAPSHOT"), - mavenBundle().groupId("org.activiti").artifactId("activiti-bpmn-converter").version("5.15.1-SNAPSHOT"), - mavenBundle().groupId("org.activiti").artifactId("activiti-process-validation").version("5.15.1-SNAPSHOT"), - mavenBundle().groupId("org.activiti").artifactId("activiti-engine").version("5.15.1-SNAPSHOT"), + mavenBundle().groupId("org.activiti").artifactId("activiti-bpmn-model").version("5.16-SNAPSHOT"), + mavenBundle().groupId("org.activiti").artifactId("activiti-bpmn-converter").version("5.16-SNAPSHOT"), + mavenBundle().groupId("org.activiti").artifactId("activiti-process-validation").version("5.16-SNAPSHOT"), + mavenBundle().groupId("org.activiti").artifactId("activiti-engine").version("5.16-SNAPSHOT"), mavenBundle().groupId("org.apache.commons").artifactId("commons-lang3").version("3.1"), mavenBundle().groupId("org.codehaus.jackson").artifactId("jackson-core-asl").version("1.9.9"), mavenBundle().groupId("log4j").artifactId("log4j").version("1.2.17"), diff --git a/modules/activiti-process-validation/pom.xml b/modules/activiti-process-validation/pom.xml index bef0b55aab6e8270e17cb612604ae0f0d0fbf51f..121a59e99089b9fa9d9b0ad0f88f9d9032c3595a 100644 --- a/modules/activiti-process-validation/pom.xml +++ b/modules/activiti-process-validation/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-rest/pom.xml b/modules/activiti-rest/pom.xml index 2d96b60182ea190a02b47aa267a93404a95d80d7..3d689fbcf54cde8ecbbaa7df4a89d9e641a8f63d 100644 --- a/modules/activiti-rest/pom.xml +++ b/modules/activiti-rest/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/RestResponseFactory.java b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/RestResponseFactory.java index 7c7488dfd901eabd8f72184fc7774b861243c4f7..023b457b0516067d1fc17b8da0ef513b49aa01ee 100644 --- a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/RestResponseFactory.java +++ b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/RestResponseFactory.java @@ -59,10 +59,10 @@ import org.activiti.rest.service.api.engine.variable.IntegerRestVariableConverte import org.activiti.rest.service.api.engine.variable.LongRestVariableConverter; import org.activiti.rest.service.api.engine.variable.QueryVariable; import org.activiti.rest.service.api.engine.variable.RestVariable; +import org.activiti.rest.service.api.engine.variable.RestVariable.RestVariableScope; import org.activiti.rest.service.api.engine.variable.RestVariableConverter; import org.activiti.rest.service.api.engine.variable.ShortRestVariableConverter; import org.activiti.rest.service.api.engine.variable.StringRestVariableConverter; -import org.activiti.rest.service.api.engine.variable.RestVariable.RestVariableScope; import org.activiti.rest.service.api.form.FormDataResponse; import org.activiti.rest.service.api.form.RestEnumFormProperty; import org.activiti.rest.service.api.form.RestFormProperty; @@ -79,10 +79,10 @@ import org.activiti.rest.service.api.identity.UserResponse; import org.activiti.rest.service.api.management.JobResponse; import org.activiti.rest.service.api.management.TableResponse; import org.activiti.rest.service.api.repository.DeploymentResourceResponse; +import org.activiti.rest.service.api.repository.DeploymentResourceResponse.DeploymentResourceType; import org.activiti.rest.service.api.repository.DeploymentResponse; import org.activiti.rest.service.api.repository.ModelResponse; import org.activiti.rest.service.api.repository.ProcessDefinitionResponse; -import org.activiti.rest.service.api.repository.DeploymentResourceResponse.DeploymentResourceType; import org.activiti.rest.service.api.runtime.process.ExecutionResponse; import org.activiti.rest.service.api.runtime.process.ProcessInstanceResponse; import org.activiti.rest.service.api.runtime.task.TaskResponse; @@ -430,6 +430,7 @@ public class RestResponseFactory { result.setId(processInstance.getId()); result.setProcessDefinitionId(processInstance.getProcessDefinitionId()); result.setProcessDefinitionUrl(securedResource.createFullResourceUrl(RestUrls.URL_PROCESS_DEFINITION, processInstance.getProcessDefinitionId())); + result.setEnded(processInstance.isEnded()); result.setSuspended(processInstance.isSuspended()); result.setUrl(securedResource.createFullResourceUrl(RestUrls.URL_PROCESS_INSTANCE, processInstance.getId())); result.setTenantId(processInstance.getTenantId()); diff --git a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ExecutionVariableCollectionResource.java b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ExecutionVariableCollectionResource.java index bbc9896c642a2e3909f9da5b0184b2264fd883bd..0407266127842c6091f010a46f85f05749b713b9 100644 --- a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ExecutionVariableCollectionResource.java +++ b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ExecutionVariableCollectionResource.java @@ -115,7 +115,7 @@ public class ExecutionVariableCollectionResource extends BaseExecutionVariableRe RestVariable[] restVariables = getConverterService().toObject(representation, RestVariable[].class, this); if(restVariables == null || restVariables.length == 0) { - throw new ActivitiIllegalArgumentException("Request didn't cantain a list of variables to create."); + throw new ActivitiIllegalArgumentException("Request didn't contain a list of variables to create."); } RestVariableScope sharedScope = null; diff --git a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceResource.java b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceResource.java index 7e9516d11e2beddb0c0df7ce1f974c4364aac176..fba63633535c293c8a3b3b09f6ac89f075b088fe 100644 --- a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceResource.java +++ b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceResource.java @@ -87,7 +87,7 @@ public class ProcessInstanceResource extends SecuredResource { } ActivitiUtil.getRuntimeService().suspendProcessInstanceById(processInstance.getId()); - ProcessInstanceResponse response = getApplication(ActivitiRestServicesApplication.class).getRestResponseFactory() + ProcessInstanceResponse response = getApplication(ActivitiRestServicesApplication.class).getRestResponseFactory() .createProcessInstanceResponse(this, processInstance); // No need to re-fetch the instance, just alter the suspended state of the result-object diff --git a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceResponse.java b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceResponse.java index 843522da976346f35b6ba7e571505c8c311ede7f..7dc13bc5a445e35f5140b607d450dd8b78036a73 100644 --- a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceResponse.java +++ b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/process/ProcessInstanceResponse.java @@ -26,6 +26,7 @@ public class ProcessInstanceResponse { protected String url; protected String businessKey; protected boolean suspended; + protected boolean ended; protected String processDefinitionId; protected String processDefinitionUrl; protected String activityId; @@ -64,6 +65,14 @@ public class ProcessInstanceResponse { this.suspended = suspended; } + public boolean isEnded() { + return ended; + } + + public void setEnded(boolean ended) { + this.ended = ended; + } + public String getProcessDefinitionId() { return processDefinitionId; } diff --git a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/task/TaskVariableCollectionResource.java b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/task/TaskVariableCollectionResource.java index 8e76aa7ef1a06bb8b088aa9f9f741dc270240aa8..e3bbdb7f7502752e8c7620e9e8378fe84f8ae5fc 100644 --- a/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/task/TaskVariableCollectionResource.java +++ b/modules/activiti-rest/src/main/java/org/activiti/rest/service/api/runtime/task/TaskVariableCollectionResource.java @@ -86,7 +86,7 @@ public class TaskVariableCollectionResource extends TaskVariableBaseResource { RestVariable[] restVariables = getConverterService().toObject(representation, RestVariable[].class, this); if(restVariables == null || restVariables.length == 0) { - throw new ActivitiIllegalArgumentException("Request didn't cantain a list of variables to create."); + throw new ActivitiIllegalArgumentException("Request didn't contain a list of variables to create."); } RestVariableScope sharedScope = null; diff --git a/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceCollectionResourceTest.java b/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceCollectionResourceTest.java index bd3a08a08e35281024291126546c23a1e2217aa9..a769ac57d59efdfcab58b9d7533782bcf17d651e 100644 --- a/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceCollectionResourceTest.java +++ b/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceCollectionResourceTest.java @@ -298,6 +298,11 @@ public class ProcessInstanceCollectionResourceTest extends BaseRestTestCase { client.post(requestNode); assertEquals(Status.SUCCESS_CREATED, client.getResponse().getStatus()); + + JsonNode responseNode = objectMapper.readTree(client.getResponseEntity().getStream()); + assertEquals("processTask", responseNode.get("activityId").asText()); + assertEquals(false, responseNode.get("ended").asBoolean()); + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().singleResult(); assertNotNull(processInstance); diff --git a/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceVariablesCollectionResourceTest.java b/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceVariablesCollectionResourceTest.java index 8aefb207d2204a57720fc58e3ed20458bda57ba2..d7fe882dc17a5c68e039b4307d1b60fb48c77fa2 100644 --- a/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceVariablesCollectionResourceTest.java +++ b/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/ProcessInstanceVariablesCollectionResourceTest.java @@ -257,7 +257,7 @@ public class ProcessInstanceVariablesCollectionResourceTest extends BaseRestTest fail("Exception expected"); } catch (ResourceException expected) { assertEquals(Status.CLIENT_ERROR_BAD_REQUEST, expected.getStatus()); - assertEquals("Request didn't cantain a list of variables to create.", expected.getStatus().getDescription()); + assertEquals("Request didn't contain a list of variables to create.", expected.getStatus().getDescription()); } // Test passing in object instead of array @@ -267,7 +267,7 @@ public class ProcessInstanceVariablesCollectionResourceTest extends BaseRestTest fail("Exception expected"); } catch (ResourceException expected) { assertEquals(Status.CLIENT_ERROR_BAD_REQUEST, expected.getStatus()); - assertEquals("Request didn't cantain a list of variables to create.", expected.getStatus().getDescription()); + assertEquals("Request didn't contain a list of variables to create.", expected.getStatus().getDescription()); } } diff --git a/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/TaskVariablesCollectionResourceTest.java b/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/TaskVariablesCollectionResourceTest.java index f3ffc9797c968adfdf08a9d0640edb8d510b445b..91d4899a5d1cc3f3f12f67f66ec5d222a01a11f8 100644 --- a/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/TaskVariablesCollectionResourceTest.java +++ b/modules/activiti-rest/src/test/java/org/activiti/rest/service/api/runtime/TaskVariablesCollectionResourceTest.java @@ -400,7 +400,7 @@ public class TaskVariablesCollectionResourceTest extends BaseRestTestCase { fail("Exception expected"); } catch (ResourceException expected) { assertEquals(Status.CLIENT_ERROR_BAD_REQUEST, expected.getStatus()); - assertEquals("Request didn't cantain a list of variables to create.", expected.getStatus().getDescription()); + assertEquals("Request didn't contain a list of variables to create.", expected.getStatus().getDescription()); } // Test passing in object instead of array @@ -410,7 +410,7 @@ public class TaskVariablesCollectionResourceTest extends BaseRestTestCase { fail("Exception expected"); } catch (ResourceException expected) { assertEquals(Status.CLIENT_ERROR_BAD_REQUEST, expected.getStatus()); - assertEquals("Request didn't cantain a list of variables to create.", expected.getStatus().getDescription()); + assertEquals("Request didn't contain a list of variables to create.", expected.getStatus().getDescription()); } } finally { // Clean adhoc-tasks even if test fails diff --git a/modules/activiti-simple-workflow-alfresco/pom.xml b/modules/activiti-simple-workflow-alfresco/pom.xml index 106aca7fddd6967733f0bfe7eb8268992150e530..9a8dd85fa725f0122d3a4af13dcbc429a307e15f 100644 --- a/modules/activiti-simple-workflow-alfresco/pom.xml +++ b/modules/activiti-simple-workflow-alfresco/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-simple-workflow/pom.xml b/modules/activiti-simple-workflow/pom.xml index a81b1bf46b4bbe7b28038627b46ce4423ddaff0a..a7a51f677e34d6c45188e1f26a230f45a51efaca 100644 --- a/modules/activiti-simple-workflow/pom.xml +++ b/modules/activiti-simple-workflow/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-spring/pom.xml b/modules/activiti-spring/pom.xml index 3ac76f47f2d6ddfa1259b8c6713176bb758d87c8..cb36634df96f9be6c4a6bd744772d44dd3c455a0 100644 --- a/modules/activiti-spring/pom.xml +++ b/modules/activiti-spring/pom.xml @@ -9,7 +9,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-webapp-angular/pom.xml b/modules/activiti-webapp-angular/pom.xml index dd63dfc002e6a91b2a8585e3777390ca45f36d75..fdf037823dbf7ac6ea2d5f5553a54ef608716f84 100644 --- a/modules/activiti-webapp-angular/pom.xml +++ b/modules/activiti-webapp-angular/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-webapp-explorer2/pom.xml b/modules/activiti-webapp-explorer2/pom.xml index eb2f7ff206355e4fc73df6ebee42a5edd6d5daa0..ec6ec2872b42f481a7851e72e03bbf4018c7bbb4 100644 --- a/modules/activiti-webapp-explorer2/pom.xml +++ b/modules/activiti-webapp-explorer2/pom.xml @@ -11,7 +11,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/modules/activiti-webapp-rest2/pom.xml b/modules/activiti-webapp-rest2/pom.xml index 1b0e6a5068b6195eda7c5e0e8ba6f720ab084525..e4e0e39d802ce4e18b914354a5eb8c2bb04bd162 100644 --- a/modules/activiti-webapp-rest2/pom.xml +++ b/modules/activiti-webapp-rest2/pom.xml @@ -10,7 +10,7 @@ org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/pom.xml b/pom.xml index 131729aff1463e711b38ebfce6d70581c16ee4c9..b45b74783107421d480e3021e395e9e0ab4c49dc 100755 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ pom - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT UTF-8 3.2.7.RELEASE diff --git a/qa/build.xml b/qa/build.xml index 713c3814b7cf233685c4ce12ee6612221bb3c0a7..c7408d1773ae6e039d99e36bd65272de92e3e518 100644 --- a/qa/build.xml +++ b/qa/build.xml @@ -4,7 +4,7 @@ - + diff --git a/qa/dbclean/pom.xml b/qa/dbclean/pom.xml index b3aee3aed706973f6b797bcb82f2be540b4301b0..ef77e080534d7e3dafde3c1ebbb1013351d12324 100644 --- a/qa/dbclean/pom.xml +++ b/qa/dbclean/pom.xml @@ -8,7 +8,7 @@ activiti-dbclean pom - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/qa/upgrade/build.xml b/qa/upgrade/build.xml index 7ef8a990abf2080c4abd7fc87408227046dc57ed..0c8a3ce48a5adc4e08d942f5ca4ca34fd9df74b1 100644 --- a/qa/upgrade/build.xml +++ b/qa/upgrade/build.xml @@ -2,7 +2,7 @@ - + diff --git a/qa/upgrade/pom.xml b/qa/upgrade/pom.xml index 3080d9e745738bbd97b72d758d7e338a03cb2943..e9fb2de69ae66268d9432d2c230505b27b99fecb 100644 --- a/qa/upgrade/pom.xml +++ b/qa/upgrade/pom.xml @@ -6,13 +6,13 @@ Activiti - Upgrade Fetcher org.activiti activiti-upgrade-fetcher - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT org.activiti activiti-root ../.. - 5.15.1-SNAPSHOT + 5.16-SNAPSHOT diff --git a/userguide/src/en/index.xml b/userguide/src/en/index.xml index 6756226f081364789b8d21c8972443ea47ad9685..06c7456a95d0636ba6468454fe1d431347233db1 100644 --- a/userguide/src/en/index.xml +++ b/userguide/src/en/index.xml @@ -22,7 +22,7 @@ - Activiti 5.15.1-SNAPSHOT User Guide + Activiti 5.16-SNAPSHOT User Guide