code: private Optional<DataFileVersionStrategy> initDataFileVersionStrategy(EndPoint endPoint, ReplicationConfiguration rc, Properties props) {
  
      // rc is the dataset config???
      if (!(endPoint instanceof HadoopFsEndPoint)) {
        log.warn("Data file version currently only handle the Hadoop Fs EndPoint replication");
        return Optional.absent();
      }
      Configuration conf = HadoopUtils.newConfiguration();
      try {
        HadoopFsEndPoint hEndpoint = (HadoopFsEndPoint) endPoint;
        FileSystem fs = FileSystem.get(hEndpoint.getFsURI(), conf);
  
        // If configStore doesn't contain the strategy, check from job properties.
        // If no strategy is found, default to the modification time strategy.
        this.versionStrategyFromCS = rc.getVersionStrategyFromConfigStore();
        String nonEmptyStrategy = versionStrategyFromCS.isPresent()? versionStrategyFromCS.get() :
            props.getProperty(DataFileVersionStrategy.DATA_FILE_VERSION_STRATEGY_KEY, DataFileVersionStrategy.DEFAULT_DATA_FILE_VERSION_STRATEGY);
        Config versionStrategyConfig = ConfigFactory.parseMap(ImmutableMap.of(
            DataFileVersionStrategy.DATA_FILE_VERSION_STRATEGY_KEY, nonEmptyStrategy));
  
        DataFileVersionStrategy strategy = DataFileVersionStrategy.instantiateDataFileVersionStrategy(fs, versionStrategyConfig);
        log.debug("{} has version strategy {}", hEndpoint.getClusterName(), strategy.getClass().getName());
        return Optional.of(strategy);
      } catch (IOException e) {
        log.error("Version strategy cannot be created due to {}", e);
        return Optional.absent();
      }
    }
docs: Get the version strategy that can retrieve the data file version from the end point.
  
  @return the version strategy. Empty value when the version is not supported for this end point.