docs: public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
  
      DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();
  
      if(!ProcessApplicationAttachments.isProcessApplication(deploymentUnit)) {
        return;
      }
  
      final Module module = deploymentUnit.getAttachment(MODULE);
  
      // read @ProcessApplication annotation of PA-component
      String[] deploymentDescriptors = getDeploymentDescriptors(deploymentUnit);
  
      // load all processes.xml files
      List<URL> deploymentDescriptorURLs = getDeploymentDescriptorUrls(module, deploymentDescriptors);
  
      for (URL processesXmlResource : deploymentDescriptorURLs) {
        VirtualFile processesXmlFile = getFile(processesXmlResource);
  
        // parse processes.xml metadata.
        ProcessesXml processesXml = null;
        if(isEmptyFile(processesXmlResource)) {
          processesXml = ProcessesXml.EMPTY_PROCESSES_XML;
        } else {
          processesXml = parseProcessesXml(processesXmlResource);
        }
  
        // add the parsed metadata to the attachment list
        ProcessApplicationAttachments.addProcessesXml(deploymentUnit, new ProcessesXmlWrapper(processesXml, processesXmlFile));
      }
    }