diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/constants/StencilConstants.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/constants/StencilConstants.java index 4a5179306f3a093dbf85b8be7cd0a78a8add6ec6..ce984692d23057b1f444eda37b3bb24f857f7df4 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/constants/StencilConstants.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/constants/StencilConstants.java @@ -51,6 +51,7 @@ public interface StencilConstants { final String STENCIL_EVENT_BOUNDARY_TIMER = "BoundaryTimerEvent"; final String STENCIL_EVENT_BOUNDARY_ERROR = "BoundaryErrorEvent"; final String STENCIL_EVENT_BOUNDARY_SIGNAL = "BoundarySignalEvent"; + final String STENCIL_EVENT_BOUNDARY_MESSAGE = "BoundaryMessageEvent"; final String STENCIL_EVENT_CATCH_SIGNAL = "CatchSignalEvent"; final String STENCIL_EVENT_CATCH_TIMER = "CatchTimerEvent"; diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BaseBpmnJsonConverter.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BaseBpmnJsonConverter.java index d9395c55b0f2062382aff23e9f9fb8c21a189291..a4bbd1adb11d7824d6ae18dee3898f74875b1849 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BaseBpmnJsonConverter.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BaseBpmnJsonConverter.java @@ -361,7 +361,21 @@ public abstract class BaseBpmnJsonConverter implements EditorJsonConstants, Sten } else if (eventDefinition instanceof MessageEventDefinition) { MessageEventDefinition messageDefinition = (MessageEventDefinition) eventDefinition; if (StringUtils.isNotEmpty(messageDefinition.getMessageRef())) { - propertiesNode.put(PROPERTY_MESSAGEREF, messageDefinition.getMessageRef()); + String messageRef = messageDefinition.getMessageRef(); + // remove the namespace from the message id if set + if (messageRef.startsWith(model.getTargetNamespace())) { + messageRef = messageRef.replace(model.getTargetNamespace(), ""); + messageRef = messageRef.replaceFirst(":", ""); + } else { + for (String prefix : model.getNamespaces().keySet()) { + String namespace = model.getNamespace(prefix); + if (messageRef.startsWith(namespace)) { + messageRef = messageRef.replace(model.getTargetNamespace(), ""); + messageRef = prefix + messageRef; + } + } + } + propertiesNode.put(PROPERTY_MESSAGEREF, messageRef); } } else if (eventDefinition instanceof SignalEventDefinition) { @@ -650,6 +664,10 @@ public abstract class BaseBpmnJsonConverter implements EditorJsonConstants, Sten return JsonConverterUtil.getPropertyValueAsBoolean(name, objectNode); } + protected boolean getPropertyValueAsBoolean(String name, JsonNode objectNode, boolean defaultValue) { + return JsonConverterUtil.getPropertyValueAsBoolean(name, objectNode, defaultValue); + } + protected List getPropertyValueAsList(String name, JsonNode objectNode) { return JsonConverterUtil.getPropertyValueAsList(name, objectNode); } diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java index fe531c1081dd032ad6ff0725f244faa32178ca2d..51c6ba5f68142419eec70e61cb6027ef3d32cc51 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BoundaryEventJsonConverter.java @@ -21,6 +21,7 @@ import org.activiti.bpmn.model.ErrorEventDefinition; import org.activiti.bpmn.model.EventDefinition; import org.activiti.bpmn.model.FlowElement; import org.activiti.bpmn.model.GraphicInfo; +import org.activiti.bpmn.model.MessageEventDefinition; import org.activiti.bpmn.model.SignalEventDefinition; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.node.ArrayNode; @@ -42,6 +43,7 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter { convertersToBpmnMap.put(STENCIL_EVENT_BOUNDARY_TIMER, BoundaryEventJsonConverter.class); convertersToBpmnMap.put(STENCIL_EVENT_BOUNDARY_ERROR, BoundaryEventJsonConverter.class); convertersToBpmnMap.put(STENCIL_EVENT_BOUNDARY_SIGNAL, BoundaryEventJsonConverter.class); + convertersToBpmnMap.put(STENCIL_EVENT_BOUNDARY_MESSAGE, BoundaryEventJsonConverter.class); } public static void fillBpmnTypes(Map, Class> convertersToJsonMap) { @@ -61,6 +63,8 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter { return STENCIL_EVENT_BOUNDARY_ERROR; } else if (eventDefinition instanceof SignalEventDefinition) { return STENCIL_EVENT_BOUNDARY_SIGNAL; + } else if (eventDefinition instanceof MessageEventDefinition) { + return STENCIL_EVENT_BOUNDARY_MESSAGE; } else { return STENCIL_EVENT_BOUNDARY_TIMER; } @@ -77,26 +81,27 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter { dockersArrayNode.add(dockNode); flowElementNode.put("dockers", dockersArrayNode); - if (boundaryEvent.isCancelActivity() == false) { - propertiesNode.put(PROPERTY_CANCEL_ACTIVITY, PROPERTY_VALUE_NO); - } + propertiesNode.put(PROPERTY_CANCEL_ACTIVITY, boundaryEvent.isCancelActivity() ? PROPERTY_VALUE_YES : PROPERTY_VALUE_NO); addEventProperties(boundaryEvent, propertiesNode); } protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map shapeMap) { BoundaryEvent boundaryEvent = new BoundaryEvent(); + boundaryEvent.setAttachedToRefId(lookForAttachedRef(elementNode.get(EDITOR_SHAPE_ID).asText(), modelNode.get(EDITOR_CHILD_SHAPES))); + boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode, true)); + String stencilId = BpmnJsonConverterUtil.getStencilId(elementNode); if (STENCIL_EVENT_BOUNDARY_TIMER.equals(stencilId)) { - boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); convertJsonToTimerDefinition(elementNode, boundaryEvent); } else if (STENCIL_EVENT_BOUNDARY_ERROR.equals(stencilId)) { + boundaryEvent.setCancelActivity(true); //always true convertJsonToErrorDefinition(elementNode, boundaryEvent); } else if (STENCIL_EVENT_BOUNDARY_SIGNAL.equals(stencilId)) { - boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); convertJsonToSignalDefinition(elementNode, boundaryEvent); + } else if (STENCIL_EVENT_BOUNDARY_MESSAGE.equals(stencilId)) { + convertJsonToMessageDefinition(elementNode, boundaryEvent); } - boundaryEvent.setAttachedToRefId(lookForAttachedRef(elementNode.get(EDITOR_SHAPE_ID).asText(), modelNode.get(EDITOR_CHILD_SHAPES))); return boundaryEvent; } diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java index d0dd2c53af3da622e4b93842779c1cc485d5ffd6..a121e94f9b6bab052df4c96adb212e9afbce42ad 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/BpmnJsonConverter.java @@ -117,6 +117,7 @@ public class BpmnJsonConverter implements EditorJsonConstants, StencilConstants, DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_ERROR); DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_SIGNAL); DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_TIMER); + DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_MESSAGE); DI_CIRCLES.add(STENCIL_EVENT_CATCH_MESSAGE); DI_CIRCLES.add(STENCIL_EVENT_CATCH_SIGNAL); @@ -289,10 +290,7 @@ public class BpmnJsonConverter implements EditorJsonConstants, StencilConstants, pool.setId(BpmnJsonConverterUtil.getElementId(shapeNode)); pool.setName(JsonConverterUtil.getPropertyValueAsString(PROPERTY_NAME, shapeNode)); pool.setProcessRef(JsonConverterUtil.getPropertyValueAsString(PROPERTY_PROCESS_ID, shapeNode)); - JsonNode processExecutableNode = JsonConverterUtil.getProperty(PROPERTY_PROCESS_EXECUTABLE, shapeNode); - if (processExecutableNode != null && StringUtils.isNotEmpty(processExecutableNode.asText())) { - pool.setExecutable(JsonConverterUtil.getPropertyValueAsBoolean(PROPERTY_PROCESS_EXECUTABLE, shapeNode)); - } + pool.setExecutable(JsonConverterUtil.getPropertyValueAsBoolean(PROPERTY_PROCESS_EXECUTABLE, shapeNode, true)); bpmnModel.getPools().add(pool); Process process = new Process(); diff --git a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/util/JsonConverterUtil.java b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/util/JsonConverterUtil.java index 34e1708c4f96e82c7d3796d7b61b6315f50ba907..569cd832382214c200e8b35400a57f902e57ae4d 100644 --- a/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/util/JsonConverterUtil.java +++ b/modules/activiti-json-converter/src/main/java/org/activiti/editor/language/json/converter/util/JsonConverterUtil.java @@ -19,11 +19,19 @@ public class JsonConverterUtil implements EditorJsonConstants, StencilConstants } public static boolean getPropertyValueAsBoolean(String name, JsonNode objectNode) { - boolean result = false; + return getPropertyValueAsBoolean(name, objectNode, false); + } + + public static boolean getPropertyValueAsBoolean(String name, JsonNode objectNode, boolean defaultValue) { + boolean result = defaultValue; String stringValue = getPropertyValueAsString(name, objectNode); + if (PROPERTY_VALUE_YES.equalsIgnoreCase(stringValue)) { result = true; + } else if (PROPERTY_VALUE_NO.equalsIgnoreCase(stringValue)) { + result = false; } + return result; } diff --git a/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/AbstractConverterTest.java b/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/AbstractConverterTest.java index 337931d9913209a35ba0e86bfacb87ef09118fa3..21871268feb9a40388fd60a6813fc7dfce9eadf3 100644 --- a/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/AbstractConverterTest.java +++ b/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/AbstractConverterTest.java @@ -1,8 +1,15 @@ package org.activiti.editor.language; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; + import java.io.InputStream; import org.activiti.bpmn.model.BpmnModel; +import org.activiti.bpmn.model.Event; +import org.activiti.bpmn.model.EventDefinition; +import org.activiti.bpmn.model.FlowElement; import org.activiti.editor.language.json.converter.BpmnJsonConverter; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.map.ObjectMapper; @@ -24,5 +31,13 @@ public abstract class AbstractConverterTest { return bpmnModel; } + protected EventDefinition extractEventDefinition(FlowElement flowElement) { + assertNotNull(flowElement); + assertTrue(flowElement instanceof Event); + Event event = (Event)flowElement; + assertFalse(event.getEventDefinitions().isEmpty()); + return event.getEventDefinitions().get(0); + } + protected abstract String getResource(); } diff --git a/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/BoundaryEventConverterTest.java b/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/BoundaryEventConverterTest.java index 8b11648e505f14e840715336c375af85494e2e0e..c7674969e87412844cc5b2b0206004db57b9aa18 100644 --- a/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/BoundaryEventConverterTest.java +++ b/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/BoundaryEventConverterTest.java @@ -1,12 +1,15 @@ package org.activiti.editor.language; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; -import org.activiti.bpmn.converter.BpmnXMLConverter; import org.activiti.bpmn.model.BoundaryEvent; import org.activiti.bpmn.model.BpmnModel; -import org.activiti.bpmn.model.FlowElement; +import org.activiti.bpmn.model.ErrorEventDefinition; +import org.activiti.bpmn.model.MessageEventDefinition; +import org.activiti.bpmn.model.SignalEventDefinition; +import org.activiti.bpmn.model.TimerEventDefinition; import org.junit.Test; @@ -22,7 +25,6 @@ public class BoundaryEventConverterTest extends AbstractConverterTest { public void doubleConversionValidation() throws Exception { BpmnModel bpmnModel = readJsonFile(); bpmnModel = convertToJsonAndBack(bpmnModel); - System.out.println("xml " + new String(new BpmnXMLConverter().convertToXML(bpmnModel), "utf-8")); validateModel(bpmnModel); } @@ -33,24 +35,26 @@ public class BoundaryEventConverterTest extends AbstractConverterTest { private void validateModel(BpmnModel model) { - FlowElement errorElement = model.getMainProcess().getFlowElement("errorEvent"); - assertTrue(errorElement instanceof BoundaryEvent); + BoundaryEvent errorElement = (BoundaryEvent)model.getMainProcess().getFlowElement("errorEvent"); + ErrorEventDefinition errorEvent = (ErrorEventDefinition)extractEventDefinition(errorElement); + assertTrue(errorElement.isCancelActivity()); //always true + assertEquals("errorRef", errorEvent.getErrorCode()); - FlowElement signalElement = model.getMainProcess().getFlowElement("signalEvent"); - assertTrue(signalElement instanceof BoundaryEvent); + BoundaryEvent signalElement = (BoundaryEvent)model.getMainProcess().getFlowElement("signalEvent"); + SignalEventDefinition signalEvent = (SignalEventDefinition)extractEventDefinition(signalElement); + assertFalse(signalElement.isCancelActivity()); + assertEquals("signalRef", signalEvent.getSignalRef()); - FlowElement timerElement = model.getMainProcess().getFlowElement("timerEvent"); - assertTrue(timerElement instanceof BoundaryEvent); + BoundaryEvent messageElement = (BoundaryEvent)model.getMainProcess().getFlowElement("messageEvent"); + MessageEventDefinition messageEvent = (MessageEventDefinition)extractEventDefinition(messageElement); + assertFalse(messageElement.isCancelActivity()); + assertEquals("messageRef", messageEvent.getMessageRef()); - BoundaryEvent errorEvent = (BoundaryEvent) errorElement; - assertTrue(errorEvent.isCancelActivity()); //always true + BoundaryEvent timerElement = (BoundaryEvent)model.getMainProcess().getFlowElement("timerEvent"); + TimerEventDefinition timerEvent = (TimerEventDefinition)extractEventDefinition(timerElement); + assertFalse(timerElement.isCancelActivity()); + assertEquals("PT5M", timerEvent.getTimeDuration()); - BoundaryEvent signalEvent = (BoundaryEvent) signalElement; - assertFalse(signalEvent.isCancelActivity()); - - BoundaryEvent timerEvent = (BoundaryEvent) timerElement; - assertFalse(timerEvent.isCancelActivity()); - } } diff --git a/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/CatchEventConverterTest.java b/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/CatchEventConverterTest.java index 8ca37da417a0a064c0ebe4f10c569ae3a8bd346b..94d9f85e13a9048bd2a018a619b8e763ad6e9929 100644 --- a/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/CatchEventConverterTest.java +++ b/modules/activiti-json-converter/src/test/java/org/activiti/editor/language/CatchEventConverterTest.java @@ -1,13 +1,11 @@ package org.activiti.editor.language; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.activiti.bpmn.model.BpmnModel; import org.activiti.bpmn.model.EventDefinition; import org.activiti.bpmn.model.FlowElement; -import org.activiti.bpmn.model.IntermediateCatchEvent; import org.activiti.bpmn.model.MessageEventDefinition; import org.activiti.bpmn.model.SignalEventDefinition; import org.activiti.bpmn.model.TimerEventDefinition; @@ -55,10 +53,4 @@ public class CatchEventConverterTest extends AbstractConverterTest { } - private EventDefinition extractEventDefinition(FlowElement messageElement) { - assertNotNull(messageElement); - assertTrue(messageElement instanceof IntermediateCatchEvent); - IntermediateCatchEvent messageEvent = (IntermediateCatchEvent)messageElement; - return messageEvent.getEventDefinitions().get(0); - } } diff --git a/modules/activiti-json-converter/src/test/resources/test.boundaryeventmodel.json b/modules/activiti-json-converter/src/test/resources/test.boundaryeventmodel.json index 5eeceab795daf8cff62c9576ad30fee6adaf3c8a..7a56f984b793850555c53a5fbd35afafb6baf0b2 100644 --- a/modules/activiti-json-converter/src/test/resources/test.boundaryeventmodel.json +++ b/modules/activiti-json-converter/src/test/resources/test.boundaryeventmodel.json @@ -1,430 +1 @@ -{ - "resourceId": "canvas", - "properties": { - "name": "CancelActivity", - "documentation": "", - "process_id": "CancelActivity", - "process_author": "", - "process_executable": "Yes", - "process_version": "", - "process_namespace": "http://www.activiti.org/processdef", - "executionlisteners": "" - }, - "stencil": { - "id": "BPMNDiagram" - }, - "childShapes": [{ - "resourceId": "sid-A8989E47-F12C-45F6-9083-0579A76581B0", - "properties": { - "overrideid": "sid-A8989E47-F12C-45F6-9083-0579A76581B0", - "name": "", - "documentation": "", - "formproperties": "{\"totalCount\":0,\"items\":[]}", - "initiator": "", - "formkeydefinition": "", - "executionlisteners": "" - }, - "stencil": { - "id": "StartNoneEvent" - }, - "childShapes": [], - "outgoing": [{ - "resourceId": "sid-CFEB46A7-643C-40C9-B7E4-899C01DF81F8" - }], - "bounds": { - "lowerRight": { - "x": 154, - "y": 196 - }, - "upperLeft": { - "x": 124, - "y": 166 - } - }, - "dockers": [] - }, { - "resourceId": "sid-F0CFBBC4-5B4A-4FC6-B48D-3A1FD9928F1E", - "properties": { - "overrideid": "sid-F0CFBBC4-5B4A-4FC6-B48D-3A1FD9928F1E", - "name": "Error", - "documentation": "", - "formkeydefinition": "", - "duedatedefinition": "", - "prioritydefinition": "", - "usertaskassignment": "", - "formproperties": "{\"totalCount\":0,\"items\":[]}", - "tasklisteners": "{\"totalCount\":0,\"items\":[]}", - "asynchronousdefinition": "No", - "exclusivedefinition": "Yes", - "looptype": "None", - "multiinstance_sequential": "Yes", - "multiinstance_cardinality": "", - "multiinstance_collection": "", - "multiinstance_variable": "", - "multiinstance_condition": "", - "isforcompensation": "false" - }, - "stencil": { - "id": "UserTask" - }, - "childShapes": [], - "outgoing": [{ - "resourceId": "sid-B65C6FC1-315E-4E68-AFC1-6AF2BE15C211" - }, { - "resourceId": "errorEvent" - }], - "bounds": { - "lowerRight": { - "x": 299, - "y": 221 - }, - "upperLeft": { - "x": 199, - "y": 141 - } - }, - "dockers": [] - }, { - "resourceId": "sid-CFEB46A7-643C-40C9-B7E4-899C01DF81F8", - "properties": { - "overrideid": "sid-CFEB46A7-643C-40C9-B7E4-899C01DF81F8", - "name": "", - "documentation": "", - "conditionsequenceflow": "", - "defaultflow": "None", - "conditionalflow": "None" - }, - "stencil": { - "id": "SequenceFlow" - }, - "childShapes": [], - "outgoing": [{ - "resourceId": "sid-F0CFBBC4-5B4A-4FC6-B48D-3A1FD9928F1E" - }], - "bounds": { - "lowerRight": { - "x": 198.15625, - "y": 181 - }, - "upperLeft": { - "x": 154.609375, - "y": 181 - } - }, - "dockers": [{ - "x": 15, - "y": 15 - }, { - "x": 50, - "y": 40 - }], - "target": { - "resourceId": "sid-F0CFBBC4-5B4A-4FC6-B48D-3A1FD9928F1E" - } - }, { - "resourceId": "sid-66B45DB4-082B-4330-B81E-66BAC97C4A9E", - "properties": { - "overrideid": "sid-66B45DB4-082B-4330-B81E-66BAC97C4A9E", - "name": "Signal", - "documentation": "", - "formkeydefinition": "", - "duedatedefinition": "", - "prioritydefinition": "", - "usertaskassignment": "", - "formproperties": "{\"totalCount\":0,\"items\":[]}", - "tasklisteners": "{\"totalCount\":0,\"items\":[]}", - "asynchronousdefinition": "No", - "exclusivedefinition": "Yes", - "looptype": "None", - "multiinstance_sequential": "Yes", - "multiinstance_cardinality": "", - "multiinstance_collection": "", - "multiinstance_variable": "", - "multiinstance_condition": "", - "isforcompensation": "false" - }, - "stencil": { - "id": "UserTask" - }, - "childShapes": [], - "outgoing": [{ - "resourceId": "sid-092C8E0A-3AFB-45AF-80E7-9A4D1A26A2C3" - }, { - "resourceId": "signalEvent" - }], - "bounds": { - "lowerRight": { - "x": 444, - "y": 221 - }, - "upperLeft": { - "x": 344, - "y": 141 - } - }, - "dockers": [] - }, { - "resourceId": "sid-B65C6FC1-315E-4E68-AFC1-6AF2BE15C211", - "properties": { - "overrideid": "sid-B65C6FC1-315E-4E68-AFC1-6AF2BE15C211", - "name": "", - "documentation": "", - "conditionsequenceflow": "", - "defaultflow": "None", - "conditionalflow": "None" - }, - "stencil": { - "id": "SequenceFlow" - }, - "childShapes": [], - "outgoing": [{ - "resourceId": "sid-66B45DB4-082B-4330-B81E-66BAC97C4A9E" - }], - "bounds": { - "lowerRight": { - "x": 343.15625, - "y": 181 - }, - "upperLeft": { - "x": 299.84375, - "y": 181 - } - }, - "dockers": [{ - "x": 50, - "y": 40 - }, { - "x": 50, - "y": 40 - }], - "target": { - "resourceId": "sid-66B45DB4-082B-4330-B81E-66BAC97C4A9E" - } - }, { - "resourceId": "sid-6FAA94BB-370E-4F90-9C94-6AB0EAF8DF58", - "properties": { - "overrideid": "sid-6FAA94BB-370E-4F90-9C94-6AB0EAF8DF58", - "name": "Timer", - "documentation": "", - "formkeydefinition": "", - "duedatedefinition": "", - "prioritydefinition": "", - "usertaskassignment": "", - "formproperties": "{\"totalCount\":0,\"items\":[]}", - "tasklisteners": "{\"totalCount\":0,\"items\":[]}", - "asynchronousdefinition": "No", - "exclusivedefinition": "Yes", - "looptype": "None", - "multiinstance_sequential": "Yes", - "multiinstance_cardinality": "", - "multiinstance_collection": "", - "multiinstance_variable": "", - "multiinstance_condition": "", - "isforcompensation": "false" - }, - "stencil": { - "id": "UserTask" - }, - "childShapes": [], - "outgoing": [{ - "resourceId": "sid-BA041571-52AB-4DDA-B242-58BB5A105A6E" - }, { - "resourceId": "timerEvent" - }], - "bounds": { - "lowerRight": { - "x": 589, - "y": 221 - }, - "upperLeft": { - "x": 489, - "y": 141 - } - }, - "dockers": [] - }, { - "resourceId": "sid-092C8E0A-3AFB-45AF-80E7-9A4D1A26A2C3", - "properties": { - "overrideid": "sid-092C8E0A-3AFB-45AF-80E7-9A4D1A26A2C3", - "name": "", - "documentation": "", - "conditionsequenceflow": "", - "defaultflow": "None", - "conditionalflow": "None" - }, - "stencil": { - "id": "SequenceFlow" - }, - "childShapes": [], - "outgoing": [{ - "resourceId": "sid-6FAA94BB-370E-4F90-9C94-6AB0EAF8DF58" - }], - "bounds": { - "lowerRight": { - "x": 488.15625, - "y": 181 - }, - "upperLeft": { - "x": 444.84375, - "y": 181 - } - }, - "dockers": [{ - "x": 50, - "y": 40 - }, { - "x": 50, - "y": 40 - }], - "target": { - "resourceId": "sid-6FAA94BB-370E-4F90-9C94-6AB0EAF8DF58" - } - }, { - "resourceId": "sid-8CEA4E49-4FB1-4003-98CE-6B6536B68E37", - "properties": { - "overrideid": "sid-8CEA4E49-4FB1-4003-98CE-6B6536B68E37", - "name": "", - "documentation": "", - "executionlisteners": "" - }, - "stencil": { - "id": "EndNoneEvent" - }, - "childShapes": [], - "outgoing": [], - "bounds": { - "lowerRight": { - "x": 662, - "y": 195 - }, - "upperLeft": { - "x": 634, - "y": 167 - } - }, - "dockers": [] - }, { - "resourceId": "sid-BA041571-52AB-4DDA-B242-58BB5A105A6E", - "properties": { - "overrideid": "sid-BA041571-52AB-4DDA-B242-58BB5A105A6E", - "name": "", - "documentation": "", - "conditionsequenceflow": "", - "defaultflow": "None", - "conditionalflow": "None" - }, - "stencil": { - "id": "SequenceFlow" - }, - "childShapes": [], - "outgoing": [{ - "resourceId": "sid-8CEA4E49-4FB1-4003-98CE-6B6536B68E37" - }], - "bounds": { - "lowerRight": { - "x": 633.375, - "y": 181 - }, - "upperLeft": { - "x": 589.390625, - "y": 181 - } - }, - "dockers": [{ - "x": 50, - "y": 40 - }, { - "x": 14, - "y": 14 - }], - "target": { - "resourceId": "sid-8CEA4E49-4FB1-4003-98CE-6B6536B68E37" - } - }, { - "resourceId": "errorEvent", - "properties": { - "cancelactivity": "No", - "overrideid": "errorEvent", - "name": "", - "documentation": "", - "errorref": "errorRef" - }, - "stencil": { - "id": "BoundaryErrorEvent" - }, - "childShapes": [], - "outgoing": [], - "bounds": { - "lowerRight": { - "x": 314.8012179144882, - "y": 227.35323980563692 - }, - "upperLeft": { - "x": 284.8012179144882, - "y": 197.35323980563692 - } - }, - "dockers": [{ - "x": 91.15795302422589, - "y": 65.40165815020094 - }] - }, { - "resourceId": "timerEvent", - "properties": { - "overrideid": "timerEvent", - "name": "", - "documentation": "", - "cancelactivity": "no", - "timerdurationdefinition": "PT5M", - "timerdatedefinition": "", - "timercycledefinition": "" - }, - "stencil": { - "id": "BoundaryTimerEvent" - }, - "childShapes": [], - "outgoing": [], - "bounds": { - "lowerRight": { - "x": 604.5976124197048, - "y": 230.5415236336683 - }, - "upperLeft": { - "x": 574.5976124197048, - "y": 200.5415236336683 - } - }, - "dockers": [{ - "x": 87.2628288572098, - "y": 65.43825334982392 - }] - }, { - "resourceId": "signalEvent", - "properties": { - "overrideid": "signalEvent", - "name": "", - "documentation": "", - "cancelactivity": "No", - "signalref": "signalRef" - }, - "stencil": { - "id": "BoundarySignalEvent" - }, - "childShapes": [], - "outgoing": [], - "bounds": { - "lowerRight": { - "x": 459.597612419705, - "y": 230.5415236336683 - }, - "upperLeft": { - "x": 429.597612419705, - "y": 200.5415236336683 - } - }, - "dockers": [{ - "x": 87.26282885720991, - "y": 65.4382533498239 - }] - }] -} \ No newline at end of file +{"resourceId":"canvas","properties":{"name":"","documentation":"","process_id":"BoundaryProcess","process_author":"","process_executable":"Yes","process_version":"","process_namespace":"http://www.activiti.org/processdef","processresource":"","executionlisteners":""},"stencil":{"id":"BPMNDiagram"},"childShapes":[{"resourceId":"sid-F3E937F5-E2AA-40B2-92F6-6CA3DD16AE42","properties":{"overrideid":"","name":"","documentation":"","formproperties":"","initiator":"","formkeydefinition":"","executionlisteners":""},"stencil":{"id":"StartNoneEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-28B16048-3F64-4C15-B237-5156A5ED6EF8"}],"bounds":{"lowerRight":{"x":198,"y":178},"upperLeft":{"x":168,"y":148}},"dockers":[]},{"resourceId":"sid-F21E9F4D-EA19-44DF-B1D3-14663A809CAE","properties":{"overrideid":"","name":"BoundaryTask","documentation":"","formkeydefinition":"","duedatedefinition":"","prioritydefinition":"","estimatedduration":"","usertaskresource":"","usertaskassignment":"","formproperties":"","tasklisteners":"","asynchronousdefinition":"No","exclusivedefinition":"Yes","looptype":"None","multiinstance_sequential":"Yes","multiinstance_cardinality":"","multiinstance_collection":"","multiinstance_variable":"","multiinstance_condition":"","isforcompensation":"false"},"stencil":{"id":"UserTask"},"childShapes":[],"outgoing":[{"resourceId":"sid-5C99C4CD-ED35-4581-ADAA-609A935479AA"},{"resourceId":"sid-3752F2E2-83DA-43EC-9E37-877BB578D84F"},{"resourceId":"sid-9B824105-7FB9-4ED6-B05A-DEC03616129A"},{"resourceId":"sid-DA1374FF-562E-43E9-9CDA-23B9D88FDA32"},{"resourceId":"sid-616FDD57-A1DF-4BCB-A363-14DB948FEC79"}],"bounds":{"lowerRight":{"x":343,"y":203},"upperLeft":{"x":243,"y":123}},"dockers":[]},{"resourceId":"sid-28B16048-3F64-4C15-B237-5156A5ED6EF8","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-F21E9F4D-EA19-44DF-B1D3-14663A809CAE"}],"bounds":{"lowerRight":{"x":242.15625,"y":163},"upperLeft":{"x":198.609375,"y":163}},"dockers":[{"x":15,"y":15},{"x":50,"y":40}],"target":{"resourceId":"sid-F21E9F4D-EA19-44DF-B1D3-14663A809CAE"}},{"resourceId":"sid-5C99C4CD-ED35-4581-ADAA-609A935479AA","properties":{"overrideid":"errorEvent","name":"","documentation":"","errorref":"errorRef"},"stencil":{"id":"BoundaryErrorEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-E94169B7-65C1-487C-9A3A-0B97E457826A"}],"bounds":{"lowerRight":{"x":282.58718855999683,"y":137.3395016959949},"upperLeft":{"x":252.58718855999683,"y":107.33950169599491}},"dockers":[{"x":30,"y":8}]},{"resourceId":"sid-3752F2E2-83DA-43EC-9E37-877BB578D84F","properties":{"overrideid":"signalEvent","name":"","documentation":"","cancelactivity":"no","signalref":"signalRef"},"stencil":{"id":"BoundarySignalEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-00D945E4-C50A-4D09-8C64-DF62B5DCFDD6"}],"bounds":{"lowerRight":{"x":331.42647844739906,"y":137.84032266160156},"upperLeft":{"x":301.42647844739906,"y":107.84032266160156}},"dockers":[{"x":71,"y":4}]},{"resourceId":"sid-9B824105-7FB9-4ED6-B05A-DEC03616129A","properties":{"overrideid":"messageEvent","name":"","documentation":"","cancelactivity":"no","messageref":"messageRef"},"stencil":{"id":"BoundaryMessageEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-EBB534C3-3C27-44C3-8A45-536B2AC87CC3"}],"bounds":{"lowerRight":{"x":335.4952158555515,"y":218.09718978934598},"upperLeft":{"x":305.4952158555515,"y":188.09718978934598}},"dockers":[{"x":74,"y":75}]},{"resourceId":"sid-DA1374FF-562E-43E9-9CDA-23B9D88FDA32","properties":{"overrideid":"timerEvent","name":"","documentation":"","cancelactivity":"no","timerdurationdefinition":"PT5M","timerdatedefinition":"","timercycledefinition":""},"stencil":{"id":"BoundaryTimerEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-6F59A7D3-5C22-449E-B996-D4A4697C0BB8"}],"bounds":{"lowerRight":{"x":285.1729854536931,"y":218.46607124118043},"upperLeft":{"x":255.17298545369312,"y":188.46607124118043}},"dockers":[{"x":28,"y":79}]},{"resourceId":"sid-F51815EA-3AA1-4B45-B6FC-DFEB267B9DB0","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":416,"y":177},"upperLeft":{"x":388,"y":149}},"dockers":[]},{"resourceId":"sid-616FDD57-A1DF-4BCB-A363-14DB948FEC79","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-F51815EA-3AA1-4B45-B6FC-DFEB267B9DB0"}],"bounds":{"lowerRight":{"x":387.375,"y":163},"upperLeft":{"x":343.390625,"y":163}},"dockers":[{"x":50,"y":40},{"x":14,"y":14}],"target":{"resourceId":"sid-F51815EA-3AA1-4B45-B6FC-DFEB267B9DB0"}},{"resourceId":"sid-8495B25D-0B0F-44BF-8982-1160711D54DF","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":281.58718855999683,"y":73},"upperLeft":{"x":253.58718855999683,"y":45}},"dockers":[]},{"resourceId":"sid-E94169B7-65C1-487C-9A3A-0B97E457826A","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-8495B25D-0B0F-44BF-8982-1160711D54DF"}],"bounds":{"lowerRight":{"x":267.58718855999683,"y":106.4943059859961},"upperLeft":{"x":267.58718855999683,"y":73.85551599599887}},"dockers":[{"x":15,"y":15},{"x":14,"y":14}],"target":{"resourceId":"sid-8495B25D-0B0F-44BF-8982-1160711D54DF"}},{"resourceId":"sid-EDF2257D-D0BA-44B3-9C5E-CCD880CABE67","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":330.42647844739906,"y":73},"upperLeft":{"x":302.42647844739906,"y":45}},"dockers":[]},{"resourceId":"sid-00D945E4-C50A-4D09-8C64-DF62B5DCFDD6","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-EDF2257D-D0BA-44B3-9C5E-CCD880CABE67"}],"bounds":{"lowerRight":{"x":316.42647844739906,"y":106.87774703778868},"upperLeft":{"x":316.42647844739906,"y":73.96507058222535}},"dockers":[{"x":15,"y":15},{"x":14,"y":14}],"target":{"resourceId":"sid-EDF2257D-D0BA-44B3-9C5E-CCD880CABE67"}},{"resourceId":"sid-960DE6F3-5A62-4217-A656-B334AFF1E4D5","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":281.58718855999683,"y":283},"upperLeft":{"x":253.58718855999683,"y":255}},"dockers":[]},{"resourceId":"sid-6F59A7D3-5C22-449E-B996-D4A4697C0BB8","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-960DE6F3-5A62-4217-A656-B334AFF1E4D5"}],"bounds":{"lowerRight":{"x":269.567915686273,"y":254.6891982553599},"upperLeft":{"x":268.15185525095296,"y":218.80084062267707}},"dockers":[{"x":15,"y":15},{"x":14,"y":14}],"target":{"resourceId":"sid-960DE6F3-5A62-4217-A656-B334AFF1E4D5"}},{"resourceId":"sid-B09A28BB-1E9C-4400-BECB-AE3181B7F018","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":334.4952158555515,"y":281},"upperLeft":{"x":306.4952158555515,"y":253}},"dockers":[]},{"resourceId":"sid-EBB534C3-3C27-44C3-8A45-536B2AC87CC3","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-B09A28BB-1E9C-4400-BECB-AE3181B7F018"}],"bounds":{"lowerRight":{"x":320.4952158555515,"y":252.02126026641943},"upperLeft":{"x":320.4952158555515,"y":219.07441093246803}},"dockers":[{"x":15,"y":15},{"x":14,"y":14}],"target":{"resourceId":"sid-B09A28BB-1E9C-4400-BECB-AE3181B7F018"}}],"bounds":{"lowerRight":{"x":1485,"y":1050},"upperLeft":{"x":0,"y":0}},"stencilset":{"url":"../stencilsets/bpmn2.0/bpmn2.0.json","namespace":"http://b3mn.org/stencilset/bpmn2.0#"},"ssextensions":[]} \ No newline at end of file diff --git a/modules/activiti-webapp-explorer2/src/main/resources/stencilset.json b/modules/activiti-webapp-explorer2/src/main/resources/stencilset.json index 45b7641436444808ab7034ae17e66d5bfa8bbf29..3a433c6efdbdc88d2a60473b5962ef129ce6aad8 100644 --- a/modules/activiti-webapp-explorer2/src/main/resources/stencilset.json +++ b/modules/activiti-webapp-explorer2/src/main/resources/stencilset.json @@ -1409,6 +1409,17 @@ "propertyPackages" : [ "elementbase", "baseattributes", "cancelactivityattribute", "signalrefdefinition" ], "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] }, { + "type" : "node", + "id" : "BoundaryMessageEvent", + "title" : "Boundary message event", + "description" : "A boundary event with a message trigger", + "view" : "intermediateevent/message.catching.svg", + "icon" : "catching/message.png", + "groups" : [ "Boundary Events" ], + "propertyPackages" : [ "elementbase", "baseattributes", "cancelactivityattribute", "messagerefdefinition" ], + "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] + }, + { "type" : "node", "id" : "CatchTimerEvent", "title" : "Intermediate timer catching event",