diff --git a/udf-server/udf-demo-server/pom.xml b/udf-server/udf-demo-server/pom.xml
index 95a37c0..08d7eff 100644
--- a/udf-server/udf-demo-server/pom.xml
+++ b/udf-server/udf-demo-server/pom.xml
@@ -47,12 +47,6 @@
org.activiti
activiti-json-converter
${activiti.version}
-
-
- org.activiti
- activiti-bpmn-model
-
-
diff --git a/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/core/ActivitiConfig.java b/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/core/ActivitiConfig.java
index cf587ea..2a03dfd 100644
--- a/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/core/ActivitiConfig.java
+++ b/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/core/ActivitiConfig.java
@@ -1,5 +1,7 @@
package org.itkk.udf.demo.server.core;
+import org.activiti.engine.ProcessEngineConfiguration;
+import org.activiti.engine.impl.history.HistoryLevel;
import org.activiti.spring.SpringAsyncExecutor;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.activiti.spring.boot.AbstractProcessEngineAutoConfiguration;
@@ -18,7 +20,19 @@ public class ActivitiConfig extends AbstractProcessEngineAutoConfiguration {
@Bean
public SpringProcessEngineConfiguration springProcessEngineConfiguration(DataSource dataSource, PlatformTransactionManager transactionManager, SpringAsyncExecutor springAsyncExecutor) throws IOException {
- return this.baseSpringProcessEngineConfiguration(dataSource, transactionManager, springAsyncExecutor);
+ //默认构造
+ SpringProcessEngineConfiguration configuration = this.baseSpringProcessEngineConfiguration(dataSource, transactionManager, springAsyncExecutor);
+ // 是否自动创建流程引擎表
+ configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
+ configuration.setAsyncExecutorActivate(false);
+ // 流程历史等级
+ configuration.setHistoryLevel(HistoryLevel.FULL);
+ // 流程图字体
+ configuration.setActivityFontName("宋体");
+ configuration.setAnnotationFontName("宋体");
+ configuration.setLabelFontName("宋体");
+ //返回
+ return configuration;
}
}
diff --git a/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/ModelEditorJsonRestResource.java b/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/ModelEditorJsonRestResource.java
new file mode 100644
index 0000000..abbc0d9
--- /dev/null
+++ b/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/ModelEditorJsonRestResource.java
@@ -0,0 +1,72 @@
+/* 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.itkk.udf.demo.server.web;
+
+import org.activiti.editor.constants.ModelDataJsonConstants;
+import org.activiti.engine.ActivitiException;
+import org.activiti.engine.RepositoryService;
+import org.activiti.engine.repository.Model;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+/**
+ * @author Tijs Rademakers
+ */
+@RestController
+@RequestMapping(value = "/service")
+public class ModelEditorJsonRestResource implements ModelDataJsonConstants {
+
+ protected static final Logger LOGGER = LoggerFactory.getLogger(ModelEditorJsonRestResource.class);
+
+ @Autowired
+ private RepositoryService repositoryService;
+
+ @Autowired
+ private ObjectMapper objectMapper;
+
+ @RequestMapping(value="/model/{modelId}/json", method = RequestMethod.GET, produces = "application/json")
+ public ObjectNode getEditorJson(@PathVariable String modelId) {
+ ObjectNode modelNode = null;
+
+ Model model = repositoryService.getModel(modelId);
+
+ if (model != null) {
+ try {
+ if (StringUtils.isNotEmpty(model.getMetaInfo())) {
+ modelNode = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
+ } else {
+ modelNode = objectMapper.createObjectNode();
+ modelNode.put(MODEL_NAME, model.getName());
+ }
+ modelNode.put(MODEL_ID, model.getId());
+ ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree(
+ new String(repositoryService.getModelEditorSource(model.getId()), "utf-8"));
+ modelNode.put("model", editorJsonNode);
+
+ } catch (Exception e) {
+ LOGGER.error("Error creating model JSON", e);
+ throw new ActivitiException("Error creating model JSON", e);
+ }
+ }
+ return modelNode;
+ }
+}
diff --git a/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/ModelSaveRestResource.java b/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/ModelSaveRestResource.java
new file mode 100644
index 0000000..1cc5615
--- /dev/null
+++ b/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/ModelSaveRestResource.java
@@ -0,0 +1,77 @@
+/* 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.itkk.udf.demo.server.web;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.activiti.editor.constants.ModelDataJsonConstants;
+import org.activiti.engine.ActivitiException;
+import org.activiti.engine.RepositoryService;
+import org.activiti.engine.repository.Model;
+import org.apache.batik.transcoder.TranscoderInput;
+import org.apache.batik.transcoder.TranscoderOutput;
+import org.apache.batik.transcoder.image.PNGTranscoder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+
+/**
+ * @author Tijs Rademakers
+ */
+@RestController
+@RequestMapping(value = "/service")
+public class ModelSaveRestResource implements ModelDataJsonConstants {
+
+ protected static final Logger LOGGER = LoggerFactory.getLogger(ModelSaveRestResource.class);
+ @Autowired
+ private RepositoryService repositoryService;
+ @Autowired
+ private ObjectMapper objectMapper;
+
+ @RequestMapping(value = "/model/{modelId}/save", method = RequestMethod.PUT)
+ @ResponseStatus(value = HttpStatus.OK)
+ public void saveModel(@PathVariable String modelId, @RequestParam("name") String name, @RequestParam("json_xml") String json_xml, @RequestParam("svg_xml") String svg_xml, @RequestParam("description") String description) {
+ //对接收参数修改
+ try {
+ Model model = repositoryService.getModel(modelId);
+ ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
+ modelJson.put(MODEL_NAME, name);
+ modelJson.put(MODEL_DESCRIPTION, description);
+ model.setMetaInfo(modelJson.toString());
+ model.setName(name);
+ repositoryService.saveModel(model);
+ repositoryService.addModelEditorSource(model.getId(), json_xml.getBytes("utf-8"));
+ InputStream svgStream = new ByteArrayInputStream(svg_xml.getBytes("utf-8"));
+ TranscoderInput input = new TranscoderInput(svgStream);
+ PNGTranscoder transcoder = new PNGTranscoder();
+ // Setup output
+ ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+ TranscoderOutput output = new TranscoderOutput(outStream);
+ // Do the transformation
+ transcoder.transcode(input, output);
+ final byte[] result = outStream.toByteArray();
+ repositoryService.addModelEditorSourceExtra(model.getId(), result);
+ outStream.close();
+ } catch (Exception e) {
+ LOGGER.error("Error saving model", e);
+ throw new ActivitiException("Error saving model", e);
+ }
+ }
+
+}
diff --git a/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/StencilsetRestResource.java b/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/StencilsetRestResource.java
new file mode 100644
index 0000000..43e8bec
--- /dev/null
+++ b/udf-server/udf-demo-server/src/main/java/org/itkk/udf/demo/server/web/StencilsetRestResource.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.itkk.udf.demo.server.web;
+
+import org.activiti.engine.ActivitiException;
+import org.apache.commons.io.IOUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.InputStream;
+
+/**
+ * @author Tijs Rademakers
+ */
+@RestController
+@RequestMapping(value = "/service")
+public class StencilsetRestResource {
+
+ @RequestMapping(value="/editor/stencilset", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
+ public @ResponseBody String getStencilset() {
+ InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("stencilset.json");
+ try {
+ return IOUtils.toString(stencilsetStream, "utf-8");
+ } catch (Exception e) {
+ throw new ActivitiException("Error while loading stencil set", e);
+ }
+ }
+}
diff --git a/udf-server/udf-demo-server/src/main/resources/stencilset.json b/udf-server/udf-demo-server/src/main/resources/stencilset.json
new file mode 100644
index 0000000..c15c6a6
--- /dev/null
+++ b/udf-server/udf-demo-server/src/main/resources/stencilset.json
@@ -0,0 +1,1339 @@
+{
+ "title" : "Process editor",
+ "namespace" : "http://b3mn.org/stencilset/bpmn2.0#",
+ "description" : "BPMN process editor",
+ "propertyPackages" : [ {
+ "name" : "process_idpackage",
+ "properties" : [ {
+ "id" : "process_id",
+ "type" : "String",
+ "title" : "Process identifier",
+ "value" : "process",
+ "description" : "Unique identifier of the process definition.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "overrideidpackage",
+ "properties" : [ {
+ "id" : "overrideid",
+ "type" : "String",
+ "title" : "Id",
+ "value" : "",
+ "description" : "Unique identifier of the element.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "namepackage",
+ "properties" : [ {
+ "id" : "name",
+ "type" : "String",
+ "title" : "Name",
+ "value" : "",
+ "description" : "The descriptive name of the BPMN element.",
+ "popular" : true,
+ "refToView" : "text_name"
+ } ]
+ }, {
+ "name" : "documentationpackage",
+ "properties" : [ {
+ "id" : "documentation",
+ "type" : "Text",
+ "title" : "Documentation",
+ "value" : "",
+ "description" : "The descriptive name of the BPMN element.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "process_authorpackage",
+ "properties" : [ {
+ "id" : "process_author",
+ "type" : "String",
+ "title" : "Process author",
+ "value" : "",
+ "description" : "Author of the process definition.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "process_versionpackage",
+ "properties" : [ {
+ "id" : "process_version",
+ "type" : "String",
+ "title" : "Process version string (documentation only)",
+ "value" : "",
+ "description" : "Version identifier for documentation purpose.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "process_namespacepackage",
+ "properties" : [ {
+ "id" : "process_namespace",
+ "type" : "String",
+ "title" : "Target namespace",
+ "value" : "http://www.activiti.org/processdef",
+ "description" : "Target namespace for the process definition.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "asynchronousdefinitionpackage",
+ "properties" : [ {
+ "id" : "asynchronousdefinition",
+ "type" : "Boolean",
+ "title" : "Asynchronous",
+ "value" : "false",
+ "description" : "Define the activity as asynchronous.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "exclusivedefinitionpackage",
+ "properties" : [ {
+ "id" : "exclusivedefinition",
+ "type" : "Boolean",
+ "title" : "Exclusive",
+ "value" : "false",
+ "description" : "Define the activity as exclusive.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "executionlistenerspackage",
+ "properties" : [ {
+ "id" : "executionlisteners",
+ "type" : "multiplecomplex",
+ "title" : "Execution listeners",
+ "value" : "",
+ "description" : "Listeners for an activity, process, sequence flow, start and end event.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "tasklistenerspackage",
+ "properties" : [ {
+ "id" : "tasklisteners",
+ "type" : "multiplecomplex",
+ "title" : "Task listeners",
+ "value" : "",
+ "description" : "Listeners for a user task",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "eventlistenerspackage",
+ "properties" : [ {
+ "id" : "eventlisteners",
+ "type" : "multiplecomplex",
+ "title" : "Event listeners",
+ "value" : "",
+ "description" : "Listeners for any event happening in the Activiti Engine. It's also possible to rethrow the event as a signal, message or error event",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "usertaskassignmentpackage",
+ "properties" : [ {
+ "id" : "usertaskassignment",
+ "type" : "Complex",
+ "title" : "Assignments",
+ "value" : "",
+ "description" : "Assignment definition for the user task",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "formpropertiespackage",
+ "properties" : [ {
+ "id" : "formproperties",
+ "type" : "Complex",
+ "title" : "Form properties",
+ "value" : "",
+ "description" : "Definition of the form with a list of form properties",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "formkeydefinitionpackage",
+ "properties" : [ {
+ "id" : "formkeydefinition",
+ "type" : "String",
+ "title" : "Form key",
+ "value" : "",
+ "description" : "Form key that provides a reference to a form.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "duedatedefinitionpackage",
+ "properties" : [ {
+ "id" : "duedatedefinition",
+ "type" : "String",
+ "title" : "Due date",
+ "value" : "",
+ "description" : "Due date of the user task.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "prioritydefinitionpackage",
+ "properties" : [ {
+ "id" : "prioritydefinition",
+ "type" : "String",
+ "title" : "Priority",
+ "value" : "",
+ "description" : "Priority of the user task.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "duedatedefinitionpackage",
+ "properties" : [ {
+ "id" : "duedatedefinition",
+ "type" : "String",
+ "title" : "Due date",
+ "value" : "",
+ "description" : "Due date of the user task.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "servicetaskclasspackage",
+ "properties" : [ {
+ "id" : "servicetaskclass",
+ "type" : "String",
+ "title" : "Class",
+ "value" : "",
+ "description" : "Class that implements the service task logic.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "servicetaskexpressionpackage",
+ "properties" : [ {
+ "id" : "servicetaskexpression",
+ "type" : "String",
+ "title" : "Expression",
+ "value" : "",
+ "description" : "Service task logic defined with an expression.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "servicetaskdelegateexpressionpackage",
+ "properties" : [ {
+ "id" : "servicetaskdelegateexpression",
+ "type" : "String",
+ "title" : "Delegate expression",
+ "value" : "",
+ "description" : "Service task logic defined with a delegate expression.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "servicetaskfieldspackage",
+ "properties" : [ {
+ "id" : "servicetaskfields",
+ "type" : "Complex",
+ "title" : "Class fields",
+ "value" : "",
+ "description" : "Field extensions",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "servicetaskresultvariablepackage",
+ "properties" : [ {
+ "id" : "servicetaskresultvariable",
+ "type" : "String",
+ "title" : "Result variable name",
+ "value" : "",
+ "description" : "Process variable name to store the service task result.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "scriptformatpackage",
+ "properties" : [ {
+ "id" : "scriptformat",
+ "type" : "String",
+ "title" : "Script format",
+ "value" : "",
+ "description" : "Script format of the script task.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "scripttextpackage",
+ "properties" : [ {
+ "id" : "scripttext",
+ "type" : "Text",
+ "title" : "Script",
+ "value" : "",
+ "description" : "Script text of the script task.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "ruletask_rulespackage",
+ "properties" : [ {
+ "id" : "ruletask_rules",
+ "type" : "String",
+ "title" : "Rules",
+ "value" : "",
+ "description" : "Rules of the rule task.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "ruletask_variables_inputpackage",
+ "properties" : [ {
+ "id" : "ruletask_variables_input",
+ "type" : "String",
+ "title" : "Input variables",
+ "value" : "",
+ "description" : "Input variables of the rule task.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "ruletask_excludepackage",
+ "properties" : [ {
+ "id" : "ruletask_exclude",
+ "type" : "Boolean",
+ "title" : "Exclude",
+ "value" : "false",
+ "description" : "Use the rules property as exclusion.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "ruletask_resultpackage",
+ "properties" : [ {
+ "id" : "ruletask_result",
+ "type" : "String",
+ "title" : "Result variable",
+ "value" : "",
+ "description" : "Result variable of the rule task.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "mailtasktopackage",
+ "properties" : [ {
+ "id" : "mailtaskto",
+ "type" : "Text",
+ "title" : "To",
+ "value" : "",
+ "description" : "The recipients if the e-mail. Multiple recipients are defined in a comma-separated list.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "mailtaskfrompackage",
+ "properties" : [ {
+ "id" : "mailtaskfrom",
+ "type" : "Text",
+ "title" : "From",
+ "value" : "",
+ "description" : "The sender e-mail address. If not provided, the default configured from address is used.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "mailtasksubjectpackage",
+ "properties" : [ {
+ "id" : "mailtasksubject",
+ "type" : "Text",
+ "title" : "Subject",
+ "value" : "",
+ "description" : "The subject of the e-mail.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "mailtaskccpackage",
+ "properties" : [ {
+ "id" : "mailtaskcc",
+ "type" : "Text",
+ "title" : "Cc",
+ "value" : "",
+ "description" : "The cc's of the e-mail. Multiple recipients are defined in a comma-separated list",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "mailtaskbccpackage",
+ "properties" : [ {
+ "id" : "mailtaskbcc",
+ "type" : "Text",
+ "title" : "Bcc",
+ "value" : "",
+ "description" : "The bcc's of the e-mail. Multiple recipients are defined in a comma-separated list",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "mailtasktextpackage",
+ "properties" : [ {
+ "id" : "mailtasktext",
+ "type" : "Text",
+ "title" : "Text",
+ "value" : "",
+ "description" : "The content of the e-mail, in case one needs to send plain none-rich e-mails. Can be used in combination with html, for e-mail clients that don't support rich content. The client will then fall back to this text-only alternative.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "mailtaskhtmlpackage",
+ "properties" : [ {
+ "id" : "mailtaskhtml",
+ "type" : "Text",
+ "title" : "Html",
+ "value" : "",
+ "description" : "A piece of HTML that is the content of the e-mail.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "mailtaskcharsetpackage",
+ "properties" : [ {
+ "id" : "mailtaskcharset",
+ "type" : "String",
+ "title" : "Charset",
+ "value" : "",
+ "description" : "Allows to change the charset of the email, which is necessary for many non-English languages. ",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "callactivitycalledelementpackage",
+ "properties" : [ {
+ "id" : "callactivitycalledelement",
+ "type" : "String",
+ "title" : "Called element",
+ "value" : "",
+ "description" : "Process reference.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "callactivityinparameterspackage",
+ "properties" : [ {
+ "id" : "callactivityinparameters",
+ "type" : "Complex",
+ "title" : "In parameters",
+ "value" : "",
+ "description" : "Definition of the input parameters",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "callactivityoutparameterspackage",
+ "properties" : [ {
+ "id" : "callactivityoutparameters",
+ "type" : "Complex",
+ "title" : "Out parameters",
+ "value" : "",
+ "description" : "Definition of the output parameters",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "cameltaskcamelcontextpackage",
+ "properties" : [ {
+ "id" : "cameltaskcamelcontext",
+ "type" : "String",
+ "title" : "Camel context",
+ "value" : "",
+ "description" : "An optional camel context definition, if left empty the default is used.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "muletaskendpointurlpackage",
+ "properties" : [ {
+ "id" : "muletaskendpointurl",
+ "type" : "String",
+ "title" : "Endpoint url",
+ "value" : "",
+ "description" : "A required endpoint url to sent the message to Mule.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "muletasklanguagepackage",
+ "properties" : [ {
+ "id" : "muletasklanguage",
+ "type" : "String",
+ "title" : "Language",
+ "value" : "",
+ "description" : "A required definition for the language to resolve the payload expression, like juel.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "muletaskpayloadexpressionpackage",
+ "properties" : [ {
+ "id" : "muletaskpayloadexpression",
+ "type" : "String",
+ "title" : "Payload expression",
+ "value" : "",
+ "description" : "A required definition for the payload of the message sent to Mule.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "muletaskresultvariablepackage",
+ "properties" : [ {
+ "id" : "muletaskresultvariable",
+ "type" : "String",
+ "title" : "Result variable",
+ "value" : "",
+ "description" : "An optional result variable for the payload returned.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "conditionsequenceflowpackage",
+ "properties" : [ {
+ "id" : "conditionsequenceflow",
+ "type" : "Complex",
+ "title" : "Flow condition",
+ "value" : "",
+ "description" : "The condition of the sequence flow",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "defaultflowpackage",
+ "properties" : [ {
+ "id" : "defaultflow",
+ "type" : "Boolean",
+ "title" : "Default flow",
+ "value" : "false",
+ "description" : "Define the sequence flow as default",
+ "popular" : true,
+ "refToView" : "default"
+ } ]
+ }, {
+ "name" : "conditionalflowpackage",
+ "properties" : [ {
+ "id" : "conditionalflow",
+ "type" : "Boolean",
+ "title" : "Conditional flow",
+ "value" : "false",
+ "description" : "Define the sequence flow with a condition",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "timercycledefinitionpackage",
+ "properties" : [ {
+ "id" : "timercycledefinition",
+ "type" : "String",
+ "title" : "Time cycle (e.g. R3/PT10H)",
+ "value" : "",
+ "description" : "Define the timer with a ISO-8601 cycle.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "timerdatedefinitionpackage",
+ "properties" : [ {
+ "id" : "timerdatedefinition",
+ "type" : "String",
+ "title" : "Time date in ISO-8601",
+ "value" : "",
+ "description" : "Define the timer with a ISO-8601 date definition.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "timerdurationdefinitionpackage",
+ "properties" : [ {
+ "id" : "timerdurationdefinition",
+ "type" : "String",
+ "title" : "Time duration (e.g. PT5M)",
+ "value" : "",
+ "description" : "Define the timer with a ISO-8601 duration.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "timerenddatedefinitionpackage",
+ "properties" : [ {
+ "id" : "timerenddatedefinition",
+ "type" : "String",
+ "title" : "Time End Date in ISO-8601",
+ "value" : "",
+ "description" : "Define the timer with a ISO-8601 duration.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "messagerefpackage",
+ "properties" : [ {
+ "id" : "messageref",
+ "type" : "String",
+ "title" : "Message reference",
+ "value" : "",
+ "description" : "Define the message name.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "signalrefpackage",
+ "properties" : [ {
+ "id" : "signalref",
+ "type" : "String",
+ "title" : "Signal reference",
+ "value" : "",
+ "description" : "Define the signal name.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "errorrefpackage",
+ "properties" : [ {
+ "id" : "errorref",
+ "type" : "String",
+ "title" : "Error reference",
+ "value" : "",
+ "description" : "Define the error name.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "cancelactivitypackage",
+ "properties" : [ {
+ "id" : "cancelactivity",
+ "type" : "Boolean",
+ "title" : "Cancel activity",
+ "value" : "true",
+ "description" : "Should the activity be cancelled",
+ "popular" : true,
+ "refToView" : [ "frame", "frame2" ]
+ } ]
+ }, {
+ "name" : "initiatorpackage",
+ "properties" : [ {
+ "id" : "initiator",
+ "type" : "String",
+ "title" : "Initiator",
+ "value" : "",
+ "description" : "Initiator of the process.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "textpackage",
+ "properties" : [ {
+ "id" : "text",
+ "type" : "String",
+ "title" : "Text",
+ "value" : "",
+ "description" : "The text of the text annotation.",
+ "popular" : true,
+ "refToView" : "text"
+ } ]
+ }, {
+ "name" : "multiinstance_typepackage",
+ "properties" : [ {
+ "id" : "multiinstance_type",
+ "type" : "kisbpm-multiinstance",
+ "title" : "Multi-instance type",
+ "value" : "None",
+ "description" : "Repeated activity execution (parallel or sequential) can be displayed through different loop types",
+ "popular" : true,
+ "refToView" : "multiinstance"
+ } ]
+ }, {
+ "name" : "multiinstance_cardinalitypackage",
+ "properties" : [ {
+ "id" : "multiinstance_cardinality",
+ "type" : "String",
+ "title" : "Cardinality (Multi-instance)",
+ "value" : "",
+ "description" : "Define the cardinality of multi instance.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "multiinstance_collectionpackage",
+ "properties" : [ {
+ "id" : "multiinstance_collection",
+ "type" : "String",
+ "title" : "Collection (Multi-instance)",
+ "value" : "",
+ "description" : "Define the collection for the multi instance.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "multiinstance_variablepackage",
+ "properties" : [ {
+ "id" : "multiinstance_variable",
+ "type" : "String",
+ "title" : "Element variable (Multi-instance)",
+ "value" : "",
+ "description" : "Define the element variable for the multi instance.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "multiinstance_conditionpackage",
+ "properties" : [ {
+ "id" : "multiinstance_condition",
+ "type" : "String",
+ "title" : "Completion condition (Multi-instance)",
+ "value" : "",
+ "description" : "Define the completion condition for the multi instance.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "isforcompensationpackage",
+ "properties" : [ {
+ "id" : "isforcompensation",
+ "type" : "Boolean",
+ "title" : "Is for compensation",
+ "value" : "false",
+ "description" : "A flag that identifies whether this activity is intended for the purposes of compensation.",
+ "popular" : true,
+ "refToView" : "compensation"
+ } ]
+ }, {
+ "name" : "sequencefloworderpackage",
+ "properties" : [ {
+ "id" : "sequencefloworder",
+ "type" : "Complex",
+ "title" : "Flow order",
+ "value" : "",
+ "description" : "Order outgoing sequence flows.",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "signaldefinitionspackage",
+ "properties" : [ {
+ "id" : "signaldefinitions",
+ "type" : "multiplecomplex",
+ "title" : "Signal definitions",
+ "value" : "",
+ "description" : "Signal definitions",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "messagedefinitionspackage",
+ "properties" : [ {
+ "id" : "messagedefinitions",
+ "type" : "multiplecomplex",
+ "title" : "Message definitions",
+ "value" : "",
+ "description" : "Message definitions",
+ "popular" : true
+ } ]
+ }, {
+ "name" : "istransactionpackage",
+ "properties" : [ {
+ "id" : "istransaction",
+ "type" : "Boolean",
+ "title" : "Is a transaction sub process",
+ "value" : "false",
+ "description" : "A flag that identifies whether this sub process is of type transaction.",
+ "popular" : true,
+ "refToView" : "border"
+ } ]
+ }, {
+ "name" : "terminateAllpackage",
+ "properties" : [ {
+ "id" : "terminateAll",
+ "type" : "Boolean",
+ "title" : "Terminate all",
+ "value" : "false",
+ "description" : "Enable to terminate the process instance",
+ "popular" : true
+ } ]
+ } ],
+ "stencils" : [ {
+ "type" : "node",
+ "id" : "BPMNDiagram",
+ "title" : "BPMN-Diagram",
+ "description" : "A BPMN 2.0 diagram.",
+ "view" : "\n",
+ "icon" : "diagram.png",
+ "groups" : [ "Diagram" ],
+ "mayBeRoot" : true,
+ "hide" : true,
+ "propertyPackages" : [ "process_idpackage", "namepackage", "documentationpackage", "process_authorpackage", "process_versionpackage", "process_namespacepackage", "executionlistenerspackage", "eventlistenerspackage", "signaldefinitionspackage", "messagedefinitionspackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ ]
+ }, {
+ "type" : "node",
+ "id" : "StartNoneEvent",
+ "title" : "Start event",
+ "description" : "A start event without a specific trigger",
+ "view" : "\n",
+ "icon" : "startevent/none.png",
+ "groups" : [ "Start Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "initiatorpackage", "formkeydefinitionpackage", "formpropertiespackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "StartTimerEvent",
+ "title" : "Start timer event",
+ "description" : "A start event with a timer trigger",
+ "view" : "\n",
+ "icon" : "startevent/timer.png",
+ "groups" : [ "Start Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "StartSignalEvent",
+ "title" : "Start signal event",
+ "description" : "A start event with a signal trigger",
+ "view" : "\n",
+ "icon" : "startevent/signal.png",
+ "groups" : [ "Start Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "StartMessageEvent",
+ "title" : "Start message event",
+ "description" : "A start event with a message trigger",
+ "view" : "\n",
+ "icon" : "startevent/message.png",
+ "groups" : [ "Start Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "StartErrorEvent",
+ "title" : "Start error event",
+ "description" : "A start event that catches a thrown BPMN error",
+ "view" : "\n",
+ "icon" : "startevent/error.png",
+ "groups" : [ "Start Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "UserTask",
+ "title" : "User task",
+ "description" : "A manual task assigned to a specific person",
+ "view" : "\n",
+ "icon" : "activity/list/type.user.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "usertaskassignmentpackage", "formkeydefinitionpackage", "duedatedefinitionpackage", "prioritydefinitionpackage", "formpropertiespackage", "tasklistenerspackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "ServiceTask",
+ "title" : "Service task",
+ "description" : "An automatic task with service logic",
+ "view" : "\n",
+ "icon" : "activity/list/type.service.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "servicetaskclasspackage", "servicetaskexpressionpackage", "servicetaskdelegateexpressionpackage", "servicetaskfieldspackage", "servicetaskresultvariablepackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "ScriptTask",
+ "title" : "Script task",
+ "description" : "An automatic task with script logic",
+ "view" : "\n",
+ "icon" : "activity/list/type.script.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "scriptformatpackage", "scripttextpackage", "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "BusinessRule",
+ "title" : "Business rule task",
+ "description" : "An automatic task with rule logic",
+ "view" : "\n",
+ "icon" : "activity/list/type.business.rule.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "ruletask_rulespackage", "ruletask_variables_inputpackage", "ruletask_excludepackage", "ruletask_resultpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "ReceiveTask",
+ "title" : "Receive task",
+ "description" : "An task that waits for a signal",
+ "view" : "\n",
+ "icon" : "activity/list/type.receive.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "ManualTask",
+ "title" : "Manual task",
+ "description" : "An automatic task with no logic",
+ "view" : "\n",
+ "icon" : "activity/list/type.manual.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "MailTask",
+ "title" : "Mail task",
+ "description" : "An mail task",
+ "view" : "\n",
+ "icon" : "activity/list/type.send.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "mailtasktopackage", "mailtaskfrompackage", "mailtasksubjectpackage", "mailtaskccpackage", "mailtaskbccpackage", "mailtasktextpackage", "mailtaskhtmlpackage", "mailtaskcharsetpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "CamelTask",
+ "title" : "Camel task",
+ "description" : "An task that sends a message to Camel",
+ "view" : "\n",
+ "icon" : "activity/list/type.camel.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "cameltaskcamelcontextpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "MuleTask",
+ "title" : "Mule task",
+ "description" : "An task that sends a message to Mule",
+ "view" : "\n",
+ "icon" : "activity/list/type.mule.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "muletaskendpointurlpackage", "muletasklanguagepackage", "muletaskpayloadexpressionpackage", "muletaskresultvariablepackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "SendTask",
+ "title" : "Send task",
+ "description" : "An task that sends a message",
+ "view" : "\n",
+ "icon" : "activity/list/type.send.png",
+ "groups" : [ "Activities" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "SubProcess",
+ "title" : "Sub process",
+ "description" : "A sub process scope",
+ "view" : "\n",
+ "icon" : "activity/expanded.subprocess.png",
+ "groups" : [ "Structural" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "istransactionpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "EventSubProcess",
+ "title" : "Event sub process",
+ "description" : "A event sub process scope",
+ "view" : "\n",
+ "icon" : "activity/event.subprocess.png",
+ "groups" : [ "Structural" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "CallActivity",
+ "title" : "Call activity",
+ "description" : "A call activity",
+ "view" : "\n",
+ "icon" : "activity/task.png",
+ "groups" : [ "Structural" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "callactivitycalledelementpackage", "callactivityinparameterspackage", "callactivityoutparameterspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "ExclusiveGateway",
+ "title" : "Exclusive gateway",
+ "description" : "A choice gateway",
+ "view" : "\n\n",
+ "icon" : "gateway/exclusive.databased.png",
+ "groups" : [ "Gateways" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "ParallelGateway",
+ "title" : "Parallel gateway",
+ "description" : "A parallel gateway",
+ "view" : "\n\n",
+ "icon" : "gateway/parallel.png",
+ "groups" : [ "Gateways" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "InclusiveGateway",
+ "title" : "Inclusive gateway",
+ "description" : "An inclusive gateway",
+ "view" : "\n\n",
+ "icon" : "gateway/inclusive.png",
+ "groups" : [ "Gateways" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "EventGateway",
+ "title" : "Event gateway",
+ "description" : "An event gateway",
+ "view" : "\n\n",
+ "icon" : "gateway/eventbased.png",
+ "groups" : [ "Gateways" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "BoundaryErrorEvent",
+ "title" : "Boundary error event",
+ "description" : "A boundary event that catches a BPMN error",
+ "view" : "\n",
+ "icon" : "catching/error.png",
+ "groups" : [ "Boundary Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "errorrefpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
+ }, {
+ "type" : "node",
+ "id" : "BoundaryTimerEvent",
+ "title" : "Boundary timer event",
+ "description" : "A boundary event with a timer trigger",
+ "view" : "\n",
+ "icon" : "catching/timer.png",
+ "groups" : [ "Boundary Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage", "timerenddatedefinitionpackage", "cancelactivitypackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
+ }, {
+ "type" : "node",
+ "id" : "BoundarySignalEvent",
+ "title" : "Boundary signal event",
+ "description" : "A boundary event with a signal trigger",
+ "view" : "\n",
+ "icon" : "catching/signal.png",
+ "groups" : [ "Boundary Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "signalrefpackage", "cancelactivitypackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
+ }, {
+ "type" : "node",
+ "id" : "BoundaryMessageEvent",
+ "title" : "Boundary message event",
+ "description" : "A boundary event with a message trigger",
+ "view" : "\n",
+ "icon" : "catching/message.png",
+ "groups" : [ "Boundary Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "messagerefpackage", "cancelactivitypackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
+ }, {
+ "type" : "node",
+ "id" : "BoundaryCancelEvent",
+ "title" : "Boundary cancel event",
+ "description" : "A boundary cancel event",
+ "view" : "\n",
+ "icon" : "catching/cancel.png",
+ "groups" : [ "Boundary Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
+ }, {
+ "type" : "node",
+ "id" : "BoundaryCompensationEvent",
+ "title" : "Boundary compensation event",
+ "description" : "A boundary compensation event",
+ "view" : "\n",
+ "icon" : "catching/compensation.png",
+ "groups" : [ "Boundary Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "CatchTimerEvent",
+ "title" : "Intermediate timer catching event",
+ "description" : "An intermediate catching event with a timer trigger",
+ "view" : "\n",
+ "icon" : "catching/timer.png",
+ "groups" : [ "Intermediate Catching Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "CatchSignalEvent",
+ "title" : "Intermediate signal catching event",
+ "description" : "An intermediate catching event with a signal trigger",
+ "view" : "\n",
+ "icon" : "catching/signal.png",
+ "groups" : [ "Intermediate Catching Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "CatchMessageEvent",
+ "title" : "Intermediate message catching event",
+ "description" : "An intermediate catching event with a message trigger",
+ "view" : "\n",
+ "icon" : "catching/message.png",
+ "groups" : [ "Intermediate Catching Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "ThrowNoneEvent",
+ "title" : "Intermediate none throwing event",
+ "description" : "An intermediate event without a specific trigger",
+ "view" : "\n",
+ "icon" : "throwing/none.png",
+ "groups" : [ "Intermediate Throwing Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "ThrowSignalEvent",
+ "title" : "Intermediate signal throwing event",
+ "description" : "An intermediate event with a signal trigger",
+ "view" : "\n",
+ "icon" : "throwing/signal.png",
+ "groups" : [ "Intermediate Throwing Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "EndNoneEvent",
+ "title" : "End event",
+ "description" : "An end event without a specific trigger",
+ "view" : "\n",
+ "icon" : "endevent/none.png",
+ "groups" : [ "End Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "EndErrorEvent",
+ "title" : "End error event",
+ "description" : "An end event that throws an error event",
+ "view" : "\n",
+ "icon" : "endevent/error.png",
+ "groups" : [ "End Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "EndCancelEvent",
+ "title" : "End cancel event",
+ "description" : "A cancel end event",
+ "view" : "\n",
+ "icon" : "endevent/cancel.png",
+ "groups" : [ "End Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "EndTerminateEvent",
+ "title" : "End terminate event",
+ "description" : "A terminate end event",
+ "view" : "\n",
+ "icon" : "endevent/terminate.png",
+ "groups" : [ "End Events" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "terminateAllpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "Pool",
+ "title" : "Pool",
+ "description" : "A pool to stucture the process definition",
+ "view" : "\n",
+ "icon" : "swimlane/pool.png",
+ "groups" : [ "Swimlanes" ],
+ "layout" : [ {
+ "type" : "layout.bpmn2_0.pool"
+ } ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "process_idpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "canContainArtifacts", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "Lane",
+ "title" : "Lane",
+ "description" : "A lane to stucture the process definition",
+ "view" : "\n",
+ "icon" : "swimlane/lane.png",
+ "groups" : [ "Swimlanes" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "PoolChild", "canContainArtifacts", "all" ]
+ }, {
+ "type" : "edge",
+ "id" : "SequenceFlow",
+ "title" : "Sequence flow",
+ "description" : "Sequence flow defines the execution order of activities.",
+ "view" : "\r\n",
+ "icon" : "connector/sequenceflow.png",
+ "groups" : [ "Connecting Objects" ],
+ "layout" : [ {
+ "type" : "layout.bpmn2_0.sequenceflow"
+ } ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "conditionsequenceflowpackage", "executionlistenerspackage", "defaultflowpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "ConnectingObjectsMorph", "all" ]
+ }, {
+ "type" : "edge",
+ "id" : "MessageFlow",
+ "title" : "Message flow",
+ "description" : "Message flow to connect elements in different pools.",
+ "view" : "\r\n",
+ "icon" : "connector/messageflow.png",
+ "groups" : [ "Connecting Objects" ],
+ "layout" : [ {
+ "type" : "layout.bpmn2_0.sequenceflow"
+ } ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "ConnectingObjectsMorph", "all" ]
+ }, {
+ "type" : "edge",
+ "id" : "Association",
+ "title" : "Association",
+ "description" : "Associates a text annotation with an element.",
+ "view" : "\r\n",
+ "icon" : "connector/association.undirected.png",
+ "groups" : [ "Connecting Objects" ],
+ "layout" : [ {
+ "type" : "layout.bpmn2_0.sequenceflow"
+ } ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "ConnectingObjectsMorph", "all" ]
+ }, {
+ "type" : "edge",
+ "id" : "DataAssociation",
+ "title" : "DataAssociation",
+ "description" : "Associates a data element with an activity.",
+ "view" : "\r\n",
+ "icon" : "connector/association.unidirectional.png",
+ "groups" : [ "Connecting Objects" ],
+ "layout" : [ {
+ "type" : "layout.bpmn2_0.sequenceflow"
+ } ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "ConnectingObjectsMorph", "all" ]
+ }, {
+ "type" : "node",
+ "id" : "TextAnnotation",
+ "title" : "Text annotation",
+ "description" : "Annotates elements with description text.",
+ "view" : "\n",
+ "icon" : "artifact/text.annotation.png",
+ "groups" : [ "Artifacts" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "textpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "all" ]
+ }, {
+ "type" : "node",
+ "id" : "DataStore",
+ "title" : "Data store",
+ "description" : "Reference to a data store.",
+ "view" : "\r\n\r\n",
+ "icon" : "dataobject/data.store.png",
+ "groups" : [ "Artifacts" ],
+ "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
+ "hiddenPropertyPackages" : [ ],
+ "roles" : [ "all" ]
+ } ],
+ "rules" : {
+ "cardinalityRules" : [ {
+ "role" : "Startevents_all",
+ "incomingEdges" : [ {
+ "role" : "SequenceFlow",
+ "maximum" : 0
+ } ]
+ }, {
+ "role" : "Endevents_all",
+ "outgoingEdges" : [ {
+ "role" : "SequenceFlow",
+ "maximum" : 0
+ } ]
+ } ],
+ "connectionRules" : [ {
+ "role" : "SequenceFlow",
+ "connects" : [ {
+ "from" : "sequence_start",
+ "to" : [ "sequence_end" ]
+ } ]
+ }, {
+ "role" : "Association",
+ "connects" : [ {
+ "from" : "sequence_start",
+ "to" : [ "TextAnnotation" ]
+ }, {
+ "from" : "sequence_end",
+ "to" : [ "TextAnnotation" ]
+ }, {
+ "from" : "TextAnnotation",
+ "to" : [ "sequence_end" ]
+ }, {
+ "from" : "BoundaryCompensationEvent",
+ "to" : [ "sequence_end" ]
+ }, {
+ "from" : "TextAnnotation",
+ "to" : [ "sequence_start" ]
+ }, {
+ "from" : "BoundaryCompensationEvent",
+ "to" : [ "sequence_start" ]
+ } ]
+ }, {
+ "role" : "DataAssociation",
+ "connects" : [ {
+ "from" : "sequence_start",
+ "to" : [ "DataStore" ]
+ }, {
+ "from" : "sequence_end",
+ "to" : [ "DataStore" ]
+ }, {
+ "from" : "DataStore",
+ "to" : [ "sequence_end" ]
+ }, {
+ "from" : "DataStore",
+ "to" : [ "sequence_start" ]
+ } ]
+ }, {
+ "role" : "IntermediateEventOnActivityBoundary",
+ "connects" : [ {
+ "from" : "Activity",
+ "to" : [ "IntermediateEventOnActivityBoundary" ]
+ } ]
+ } ],
+ "containmentRules" : [ {
+ "role" : "BPMNDiagram",
+ "contains" : [ "all" ]
+ }, {
+ "role" : "SubProcess",
+ "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "EventSubProcess", "TextAnnotation", "DataStore" ]
+ }, {
+ "role" : "EventSubProcess",
+ "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation", "DataStore" ]
+ }, {
+ "role" : "Pool",
+ "contains" : [ "Lane" ]
+ }, {
+ "role" : "Lane",
+ "contains" : [ "sequence_start", "sequence_end", "EventSubProcess", "TextAnnotation", "DataStore" ]
+ } ],
+ "morphingRules" : [ {
+ "role" : "ActivitiesMorph",
+ "baseMorphs" : [ "UserTask" ],
+ "preserveBounds" : true
+ }, {
+ "role" : "GatewaysMorph",
+ "baseMorphs" : [ "ExclusiveGateway" ]
+ }, {
+ "role" : "StartEventsMorph",
+ "baseMorphs" : [ "StartNoneEvent" ]
+ }, {
+ "role" : "EndEventsMorph",
+ "baseMorphs" : [ "StartNoneEvent" ]
+ }, {
+ "role" : "CatchEventsMorph",
+ "baseMorphs" : [ "CatchTimerEvent" ]
+ }, {
+ "role" : "ThrowEventsMorph",
+ "baseMorphs" : [ "ThrowNoneEvent" ]
+ }, {
+ "role" : "BoundaryEventsMorph",
+ "baseMorphs" : [ "ThrowNoneEvent" ]
+ }, {
+ "role" : "BoundaryCompensationEvent",
+ "baseMorphs" : [ "BoundaryCompensationEvent" ]
+ }, {
+ "role" : "TextAnnotation",
+ "baseMorphs" : [ "TextAnnotation" ]
+ }, {
+ "role" : "DataStore",
+ "baseMorphs" : [ "DataStore" ]
+ } ]
+ }
+}