code: List<RepositoryResource> createInstallList(String featureName) {
          ProvisioningFeatureDefinition feature = resolverRepository.getFeature(featureName);
          if (feature == null) {
              // Feature missing
              missingTopLevelRequirements.add(featureName);
              // If we didn't find this feature in another product, we need to record it as missing
              if (!requirementsFoundForOtherProducts.contains(featureName)) {
                  missingRequirements.add(new MissingRequirement(featureName, null));
              }
              return Collections.emptyList();
          }
  
          if (!(feature instanceof KernelResolverEsa)) {
              // Feature already installed
              return Collections.emptyList();
          }
  
          EsaResource esa = ((KernelResolverEsa) feature).getResource();
  
          Map<String, Integer> maxDistanceMap = new HashMap<>();
          List<MissingRequirement> missingRequirements = new ArrayList<>();
          boolean foundAllDependencies = populateMaxDistanceMap(maxDistanceMap, esa.getProvideFeature(), 0, new HashSet<ProvisioningFeatureDefinition>(), missingRequirements);
  
          if (!foundAllDependencies) {
              missingTopLevelRequirements.add(featureName);
              this.missingRequirements.addAll(missingRequirements);
          }
  
          ArrayList<RepositoryResource> installList = new ArrayList<>();
  
          installList.addAll(convertFeatureNamesToResources(maxDistanceMap.keySet()));
          Collections.sort(installList, byMaxDistance(maxDistanceMap));
  
          return installList;
      }
docs: Create a list of resources which should be installed in order to install the given featutre.
  <p>
  The install list consists of all the dependencies which are needed by {@code esa}, ordered so that each resource in the list comes after its dependencies.
  
  @param featureName the feature name (as provided to {@link #resolve(Collection)}) for which to create an install list
  @return the ordered list of resources to install, will be empty if the feature cannot be found or is already installed