docs: public void deploy(final DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
          final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();
          final List<ResourceRoot> resourceRoots = DeploymentUtils.allResourceRoots(deploymentUnit);
          for (ResourceRoot resourceRoot : resourceRoots) {
              final Manifest manifest = resourceRoot.getAttachment(Attachments.MANIFEST);
              if (manifest == null) {
                  // no class path to process!
                  continue;
              }
              final Attributes mainAttributes = manifest.getMainAttributes();
              final String extensionListString = mainAttributes.getValue(EXTENSION_LIST);
              if (extensionListString == null) {
                  // no entry
                  continue;
              }
              final String[] items = extensionListString.split("\\s+");
              boolean added = false;
              for (String item : items) {
                  final String extensionName = mainAttributes.getValue(item + "-" + EXTENSION_NAME);
                  if (extensionName == null) {
                      ServerLogger.DEPLOYMENT_LOGGER.extensionMissingManifestAttribute(item, item, EXTENSION_NAME);
                      continue;
                  }
                  final String specificationVersion = mainAttributes.getValue(item + "-" + SPECIFICATION_VERSION);
                  final String implementationVersion = mainAttributes.getValue(item + "-" + IMPLEMENTATION_VERSION);
                  final String implementationVendorId = mainAttributes.getValue(item + "-" + IMPLEMENTATION_VENDOR_ID);
                  final String implementationUrl = mainAttributes.getValue(item + "-" + IMPLEMENTATION_URL);
                  URI implementationUri = null;
                  if (implementationUrl == null) {
                      ServerLogger.DEPLOYMENT_LOGGER.debugf("Extension %s is missing the required manifest attribute %s-%s", item, item, IMPLEMENTATION_URL);
                  } else {
                      try {
                          implementationUri = new URI(implementationUrl);
                      } catch (URISyntaxException e) {
                          ServerLogger.DEPLOYMENT_LOGGER.invalidExtensionURI(item, e);
                      }
                  }
                  resourceRoot.addToAttachmentList(Attachments.EXTENSION_LIST_ENTRIES, new ExtensionListEntry(item,
                          extensionName, specificationVersion, implementationVersion, implementationVendorId, implementationUri));
                  added = true;
              }
              if (added) {
                  // Require the extension list before we proceed
                  phaseContext.addToAttachmentList(Attachments.NEXT_PHASE_DEPS, Services.JBOSS_DEPLOYMENT_EXTENSION_INDEX);
              }
          }
      }