code: public Set<InstallLicense> getFeatureLicense(Collection<String> featureNames, Locale locale, String userId, String password) throws InstallException {
          Set<InstallLicense> licenses = new HashSet<InstallLicense>();
          if (featureNames == null || featureNames.isEmpty())
              return licenses;
  
          Map<String, List<List<RepositoryResource>>> installResources = getResolveDirector().resolveMap(featureNames, DownloadOption.required, userId, password);
          if (isEmpty(installResources)) {
              this.installAssets = new ArrayList<List<InstallAsset>>(0);
              return licenses;
          }
  
          return getFeatureLicense(locale, installResources);
      }
docs: Gets the licenses for the specified feature names
  
  @param featureNames a collection of the feature names
  @param locale Locale for the licenses
  @param userId userId for the repository
  @param password password for the repository
  @return A set of installLicenses for the featuresNames
  @throws InstallException