Package org.activiti.bpmn.model

Examples of org.activiti.bpmn.model.BpmnModel


    validateModel(bpmnModel);
  }
 
  @Test
  public void convertModelToXML() throws Exception {
    BpmnModel bpmnModel = readXMLFile();
    BpmnModel parsedModel = exportAndReadXMLFile(bpmnModel);
    validateModel(parsedModel);
    deployProcess(parsedModel);
  }
View Full Code Here


public class CallActivityConverterTest extends AbstractConverterTest {
 
  @Test
  public void connvertXMLToModel() throws Exception {
    BpmnModel bpmnModel = readXMLFile();
    validateModel(bpmnModel);
  }
View Full Code Here

    validateModel(bpmnModel);
  }
 
  @Test
  public void convertModelToXML() throws Exception {
    BpmnModel bpmnModel = readXMLFile();
    BpmnModel parsedModel = exportAndReadXMLFile(bpmnModel);
    validateModel(parsedModel);
    deployProcess(parsedModel);
  }
View Full Code Here

public class MessageFlowConverterTest extends AbstractConverterTest {

  @Test
  public void connvertXMLToModel() throws Exception {
    BpmnModel bpmnModel = readXMLFile();
    validateModel(bpmnModel);
  }
View Full Code Here

    validateModel(bpmnModel);
  }
 
  @Test
  public void convertModelToXML() throws Exception {
    BpmnModel bpmnModel = readXMLFile();
    BpmnModel parsedModel = exportAndReadXMLFile(bpmnModel);
    validateModel(parsedModel);
  }
View Full Code Here

      }
    }
  }
 
  public BpmnModel convertToBpmnModel(JsonNode modelNode) {
    BpmnModel bpmnModel = new BpmnModel();
    Map<String, JsonNode> shapeMap = new HashMap<String, JsonNode>();
    Map<String, JsonNode> sourceRefMap = new HashMap<String, JsonNode>();
    Map<String, JsonNode> edgeMap = new HashMap<String, JsonNode>();
    Map<String, List<JsonNode>> sourceAndTargetMap = new HashMap<String, List<JsonNode>>();
    readShapeDI(modelNode, 0, 0, shapeMap, sourceRefMap, bpmnModel);
    filterAllEdges(modelNode, edgeMap, sourceAndTargetMap, shapeMap, sourceRefMap);
    readEdgeDI(edgeMap, sourceAndTargetMap, bpmnModel);
   
    ArrayNode shapesArrayNode = (ArrayNode) modelNode.get(EDITOR_CHILD_SHAPES);
   
    boolean emptyPoolFound = true;
    // first create the pool structure
    for (JsonNode shapeNode : shapesArrayNode) {
      String stencilId = BpmnJsonConverterUtil.getStencilId(shapeNode);
      if (STENCIL_POOL.equals(stencilId)) {
        Pool pool = new Pool();
        pool.setId(BpmnJsonConverterUtil.getElementId(shapeNode));
        pool.setName(JsonConverterUtil.getPropertyValueAsString(PROPERTY_NAME, shapeNode));
        pool.setProcessRef(JsonConverterUtil.getPropertyValueAsString(PROPERTY_PROCESS_ID, shapeNode));
        pool.setExecutable(JsonConverterUtil.getPropertyValueAsBoolean(PROPERTY_PROCESS_EXECUTABLE, shapeNode, true));
        bpmnModel.getPools().add(pool);
       
        Process process = new Process();
        process.setId(pool.getProcessRef());
        process.setName(pool.getName());
        process.setExecutable(pool.isExecutable());
        bpmnModel.addProcess(process);
       
        processJsonElements(shapesArrayNode, modelNode, process, shapeMap);
       
        ArrayNode laneArrayNode = (ArrayNode) shapeNode.get(EDITOR_CHILD_SHAPES);
        for (JsonNode laneNode : laneArrayNode) {
          // should be a lane, but just check to be certain
          String laneStencilId = BpmnJsonConverterUtil.getStencilId(laneNode);
          if (STENCIL_LANE.equals(laneStencilId)) {
            emptyPoolFound = false;
            Lane lane = new Lane();
            lane.setId(BpmnJsonConverterUtil.getElementId(laneNode));
            lane.setName(JsonConverterUtil.getPropertyValueAsString(PROPERTY_NAME, laneNode));
            lane.setParentProcess(process);
            process.getLanes().add(lane);
           
            processJsonElements(laneNode.get(EDITOR_CHILD_SHAPES), modelNode, lane, shapeMap);
          }
        }
      }
    }
   
    if (emptyPoolFound) {
     
      JsonNode processIdNode = JsonConverterUtil.getProperty(PROPERTY_PROCESS_ID, modelNode);
      Process process = new Process();
      bpmnModel.getProcesses().add(process);
      if (processIdNode != null && StringUtils.isNotEmpty(processIdNode.asText())) {
        process.setId(processIdNode.asText());
      }
     
      JsonNode processNameNode = JsonConverterUtil.getProperty(PROPERTY_NAME, modelNode);
      if (processNameNode != null && StringUtils.isNotEmpty(processNameNode.asText())) {
        process.setName(processNameNode.asText());
      }
     
      JsonNode processExecutableNode = JsonConverterUtil.getProperty(PROPERTY_PROCESS_EXECUTABLE, modelNode);
      if (processExecutableNode != null && StringUtils.isNotEmpty(processExecutableNode.asText())) {
        process.setExecutable(JsonConverterUtil.getPropertyValueAsBoolean(PROPERTY_PROCESS_EXECUTABLE, modelNode));
      }
     
      JsonNode processTargetNamespace = JsonConverterUtil.getProperty(PROPERTY_PROCESS_NAMESPACE, modelNode);
      if (processTargetNamespace != null && StringUtils.isNotEmpty(processTargetNamespace.asText())) {
        bpmnModel.setTargetNamespace(processTargetNamespace.asText());
      }
     
      JsonNode processExecutionListenerNode = modelNode.get(EDITOR_SHAPE_PROPERTIES).get(PROPERTY_EXECUTION_LISTENERS);
      if (processExecutionListenerNode != null && StringUtils.isNotEmpty(processExecutionListenerNode.asText())){
        process.setExecutionListeners(convertJsonToListeners(processExecutionListenerNode));
      }
     
      JsonNode processEventListenerNode = modelNode.get(EDITOR_SHAPE_PROPERTIES).get(PROPERTY_EVENT_LISTENERS);
      if (processEventListenerNode != null){
        process.setEventListeners(convertJsonToEventListeners(processEventListenerNode));
      }
     
      JsonNode processDataPropertiesNode = modelNode.get(EDITOR_SHAPE_PROPERTIES).get(PROPERTY_DATA_PROPERTIES);

      if (processDataPropertiesNode != null) {
        List<ValuedDataObject> dataObjects = convertJsonToDataProperties(processDataPropertiesNode, process);
        process.setDataObjects(dataObjects);
        process.getFlowElements().addAll(dataObjects);
      }

      processJsonElements(shapesArrayNode, modelNode, process, shapeMap);
    }
   
    // sequence flows are now all on root level
    Map<String, SubProcess> subShapesMap = new HashMap<String, SubProcess>();
    for (Process process : bpmnModel.getProcesses()) {
      for (FlowElement flowElement : process.findFlowElementsOfType(SubProcess.class)) {
        SubProcess subProcess = (SubProcess) flowElement;
        fillSubShapes(subShapesMap, subProcess);
      }
     
      if (!subShapesMap.isEmpty()) {
        List<String> removeSubFlowsList = new ArrayList<String>();
        List<SequenceFlow> sequenceFlowList = process.findFlowElementsOfType(SequenceFlow.class);
        for (FlowElement flowElement : sequenceFlowList) {
          SequenceFlow sequenceFlow = (SequenceFlow) flowElement;
          if (process.getFlowElement(flowElement.getId()) != null && subShapesMap.containsKey(sequenceFlow.getSourceRef())) {
            SubProcess subProcess = subShapesMap.get(sequenceFlow.getSourceRef());
            subProcess.addFlowElement(sequenceFlow);
            removeSubFlowsList.add(sequenceFlow.getId());
          }
        }
        for (String flowId : removeSubFlowsList) {
          process.removeFlowElement(flowId);
        }
      }
    }
   
    // boundary events only contain attached ref id
    for (Process process : bpmnModel.getProcesses()) {
      postProcessElements(process, process.getFlowElements());
    }
   
    return bpmnModel;
  }
View Full Code Here

   
    InputStream xmlStream = this.getClass().getClassLoader().getResourceAsStream("org/activiti/engine/test/validation/invalidProcess.bpmn20.xml");
    XMLInputFactory xif = XMLInputFactory.newInstance();
    InputStreamReader in = new InputStreamReader(xmlStream, "UTF-8");
    XMLStreamReader xtr = xif.createXMLStreamReader(in);
    BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(xtr);
    Assert.assertNotNull(bpmnModel);
   
    List<ValidationError> allErrors = processValidator.validate(bpmnModel);
    Assert.assertEquals(66, allErrors.size());
   
View Full Code Here

        "</definitions>";   

      XMLInputFactory xif = XMLInputFactory.newInstance();
      InputStreamReader in = new InputStreamReader(new ByteArrayInputStream(flowWithoutConditionNoDefaultFlow.getBytes()), "UTF-8");
      XMLStreamReader xtr = xif.createXMLStreamReader(in);
      BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(xtr);
      Assert.assertNotNull(bpmnModel);
      List<ValidationError> allErrors = processValidator.validate(bpmnModel);
      Assert.assertEquals(1, allErrors.size());
      Assert.assertTrue(allErrors.get(0).isWarning());
  }
View Full Code Here

   * If all processes in a deployment are not executable, throw an exception
   * as this doesn't make sense to do.
   */
  @Test
  public void testAllNonExecutableProcesses() {
    BpmnModel bpmnModel = new BpmnModel();
    for (int i=0; i<5; i++) {
      org.activiti.bpmn.model.Process process = TestProcessUtil.createOneTaskProcess();
      process.setExecutable(false);
      bpmnModel.addProcess(process);
    }
   
    List<ValidationError> errors = processValidator.validate(bpmnModel);
    Assert.assertEquals(1, errors.size());
  }
View Full Code Here

   * and the deployment contains other process definitions which are not executable,
   * then add a warning for those non executable process definitions
   */
  @Test
  public void testNonExecutableProcessDefinitionWarning() {
    BpmnModel bpmnModel = new BpmnModel();
   
    // 3 non-executables
    for (int i=0; i<3; i++) {
      org.activiti.bpmn.model.Process process = TestProcessUtil.createOneTaskProcess();
      process.setExecutable(false);
      bpmnModel.addProcess(process);
    }
   
    // 1 executables
    org.activiti.bpmn.model.Process process = TestProcessUtil.createOneTaskProcess();
    process.setExecutable(true);
    bpmnModel.addProcess(process);
   
    List<ValidationError> errors = processValidator.validate(bpmnModel);
    Assert.assertEquals(3, errors.size());
    for (ValidationError error : errors) {
      Assert.assertTrue(error.isWarning());
View Full Code Here

TOP

Related Classes of org.activiti.bpmn.model.BpmnModel

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.