code: @SuppressWarnings("unchecked")
      void fetchFromRepository(Collection<ProductDefinition> installDefinition) throws RepositoryException {
          Collection<ResourceType> interestingTypes = new HashSet<ResourceType>();
          interestingTypes.add(ResourceType.FEATURE);
          interestingTypes.add(ResourceType.OPENSOURCE);
          interestingTypes.add(ResourceType.PRODUCTSAMPLE);
          Map<ResourceType, Collection<? extends RepositoryResource>> resources = repoConnections.getResources(installDefinition, interestingTypes, null);
  
          Collection<EsaResource> features = (Collection<EsaResource>) resources.get(ResourceType.FEATURE);
          if (features != null) {
              repoFeatures = features;
          } else {
              repoFeatures = Collections.emptySet();
          }
  
          repoSamples = new ArrayList<>();
          Collection<SampleResource> samples = (Collection<SampleResource>) resources.get(ResourceType.PRODUCTSAMPLE);
          if (samples != null) {
              repoSamples.addAll(samples);
          }
  
          Collection<SampleResource> osiSamples = (Collection<SampleResource>) resources.get(ResourceType.OPENSOURCE);
          if (osiSamples != null) {
              repoSamples.addAll(osiSamples);
          }
      }
docs: Populates {@link #repoFeatures} and {@link #repoSamples} with resources from the repository which apply to the install definition.
  
  @throws RepositoryException if there's a problem connecting to the repository