code: public void installFeature(String esaLocation, String toExtension, boolean acceptLicense) throws InstallException {
          fireProgressEvent(InstallProgressEvent.CHECK, 1, Messages.INSTALL_KERNEL_MESSAGES.getLogMessage("STATE_CHECKING"));
          ArrayList<InstallAsset> installAssets = new ArrayList<InstallAsset>();
          String feature = getResolveDirector().resolve(esaLocation, toExtension, product.getInstalledFeatures(), installAssets, 10, 40);
          if (installAssets.isEmpty()) {
              throw ExceptionUtils.create(Messages.PROVISIONER_MESSAGES.getLogMessage("tool.feature.exists", feature), InstallException.ALREADY_EXISTS);
          }
          this.installAssets = new ArrayList<List<InstallAsset>>(1);
          this.installAssets.add(installAssets);
      }
docs: Installs the feature found in the given esa location
  
  @param esaLocation location of esa
  @param toExtension location of a product extension
  @param acceptLicense if license is accepted
  @throws InstallException