docs: public void deploy(final DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
          final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();
          final ModuleSpecification moduleSpecification = deploymentUnit.getAttachment(Attachments.MODULE_SPECIFICATION);
          final ModuleLoader moduleLoader = deploymentUnit.getAttachment(Attachments.SERVICE_MODULE_LOADER);
          final ServiceController<?> controller = phaseContext.getServiceRegistry().getRequiredService(Services.JBOSS_DEPLOYMENT_EXTENSION_INDEX);
          final ExtensionIndex index = (ExtensionIndex) controller.getValue();
          final List<ResourceRoot> allResourceRoots = DeploymentUtils.allResourceRoots(deploymentUnit);
          final Set<ServiceName> nextPhaseDeps = new HashSet<ServiceName>();
  
          final Set<ModuleIdentifier> allExtensionListEntries = new LinkedHashSet<>();
  
          for (ResourceRoot resourceRoot : allResourceRoots) {
              final AttachmentList<ExtensionListEntry> entries = resourceRoot.getAttachment(Attachments.EXTENSION_LIST_ENTRIES);
              if (entries != null) {
                  for (ExtensionListEntry entry : entries) {
                      final ModuleIdentifier extension = index.findExtension(entry.getName(), entry.getSpecificationVersion(),
                              entry.getImplementationVersion(), entry.getImplementationVendorId());
                      if (extension != null) {
                          allExtensionListEntries.add(extension);
                      } else {
                          ServerLogger.DEPLOYMENT_LOGGER.cannotFindExtensionListEntry(entry, resourceRoot);
                      }
                  }
              }
          }
  
          if (deploymentUnit.getParent() != null) {
              //we also need to get all our parents extension list entries
              for (ResourceRoot resourceRoot : DeploymentUtils.allResourceRoots(deploymentUnit.getParent())) {
                  final AttachmentList<ExtensionListEntry> entries = resourceRoot.getAttachment(Attachments.EXTENSION_LIST_ENTRIES);
                  if (entries != null) {
                      for (ExtensionListEntry entry : entries) {
                          final ModuleIdentifier extension = index.findExtension(entry.getName(), entry.getSpecificationVersion(),
                                  entry.getImplementationVersion(), entry.getImplementationVendorId());
                          if (extension != null) {
                              allExtensionListEntries.add(extension);
                          }
                          //we don't log not found to prevent multiple messages
                      }
                  }
              }
          }
  
          for (ModuleIdentifier extension : allExtensionListEntries) {
              ModuleDependency dependency = new ModuleDependency(moduleLoader, extension, false, false, true, true);
              dependency.addImportFilter(PathFilters.getMetaInfSubdirectoriesFilter(), true);
              dependency.addImportFilter(PathFilters.getMetaInfFilter(), true);
              moduleSpecification.addLocalDependency(dependency);
              nextPhaseDeps.add(ServiceModuleLoader.moduleSpecServiceName(extension));
          }
  
  
          final List<AdditionalModuleSpecification> additionalModules = deploymentUnit.getAttachment(Attachments.ADDITIONAL_MODULES);
          if (additionalModules != null) {
              for (AdditionalModuleSpecification additionalModule : additionalModules) {
                  for (ResourceRoot resourceRoot : additionalModule.getResourceRoots()) {
                      final AttachmentList<ExtensionListEntry> entries = resourceRoot
                              .getAttachment(Attachments.EXTENSION_LIST_ENTRIES);
                      if (entries != null) {
  
                          for (ExtensionListEntry entry : entries) {
                              final ModuleIdentifier extension = index.findExtension(entry.getName(), entry
                                      .getSpecificationVersion(), entry.getImplementationVersion(), entry
                                      .getImplementationVendorId());
                              if (extension != null) {
                                  moduleSpecification.addLocalDependency(new ModuleDependency(moduleLoader, extension, false, false,
                                          true, false));
                                  nextPhaseDeps.add(ServiceModuleLoader.moduleSpecServiceName(extension));
                              } else {
                                  ServerLogger.DEPLOYMENT_LOGGER.cannotFindExtensionListEntry(entry, resourceRoot);
                              }
                          }
                      }
                  }
              }
          }
          for (ServiceName dep : nextPhaseDeps) {
              phaseContext.addToAttachmentList(Attachments.NEXT_PHASE_DEPS, dep);
          }
  
      }