code: @SuppressWarnings("unchecked")
    public static <T extends org.apache.gobblin.dataset.Dataset> DatasetsFinder<T> instantiateDatasetFinder(Properties props,
        FileSystem fs, String default_class, Object... additionalArgs)
        throws IOException {
      String className = default_class;
      if (props.containsKey(DATASET_PROFILE_CLASS_KEY)) {
        className = props.getProperty(DATASET_PROFILE_CLASS_KEY);
      }
      try {
        Class<?> datasetFinderClass = Class.forName(className);
        List<Object> args = Lists.newArrayList(fs, props);
        if (additionalArgs != null) {
          args.addAll(Lists.newArrayList(additionalArgs));
        }
        return (DatasetsFinder<T>) GobblinConstructorUtils.invokeLongestConstructor(datasetFinderClass, args.toArray());
      } catch (ReflectiveOperationException exception) {
        throw new IOException(exception);
      }
    }
docs: Instantiate a {@link DatasetsFinder}. The class of the {@link DatasetsFinder} is read from property
  {@link #DATASET_PROFILE_CLASS_KEY}.
  
  @param props Properties used for building {@link DatasetsFinder}.
  @param fs {@link FileSystem} where datasets are located.
  @return A new instance of {@link DatasetsFinder}.
  @throws IOException