docs: protected void parseProcessEngine(Element element, List<ProcessEngineXml> parsedProcessEngines) {
  
      ProcessEngineXmlImpl processEngine = new ProcessEngineXmlImpl();
  
      // set name
      processEngine.setName(element.attribute(NAME));
  
      // set default
      String defaultValue = element.attribute(DEFAULT);
      if(defaultValue == null || defaultValue.isEmpty()) {
        processEngine.setDefault(false);
      } else {
        processEngine.setDefault(Boolean.parseBoolean(defaultValue));
      }
  
      Map<String, String> properties = new HashMap<String, String>();
      List<ProcessEnginePluginXml> plugins = new ArrayList<ProcessEnginePluginXml>();
  
      for (Element childElement : element.elements()) {
        if(CONFIGURATION.equals(childElement.getTagName())) {
          processEngine.setConfigurationClass(childElement.getText());
  
        } else if(DATASOURCE.equals(childElement.getTagName())) {
          processEngine.setDatasource(childElement.getText());
  
        } else if(JOB_ACQUISITION.equals(childElement.getTagName())) {
          processEngine.setJobAcquisitionName(childElement.getText());
  
        } else if(PROPERTIES.equals(childElement.getTagName())) {
          parseProperties(childElement, properties);
  
        } else if(PLUGINS.equals(childElement.getTagName())) {
          parseProcessEnginePlugins(childElement, plugins);
  
        }
      }
  
      // set collected properties
      processEngine.setProperties(properties);
      // set plugins
      processEngine.setPlugins(plugins);
      // add the process engine to the list of parsed engines.
      parsedProcessEngines.add(processEngine);
  
    }