docs: @VisibleForTesting
    Configuration getHMDriverConf() {
      String topologyPackageName = new File(topologyPackageLocation).getName();
      String corePackageName = new File(coreReleasePackage).getName();
  
      // topologyName and other configurations are required by Heron Driver/Scheduler to load
      // configuration files. Using REEF configuration model is better than depending on external
      // persistence.
      // TODO: https://github.com/apache/incubator-heron/issues/952: explore sharing across topologies
      return HeronDriverConfiguration.CONF
          .setMultiple(DriverConfiguration.GLOBAL_LIBRARIES, libJars)
          .set(DriverConfiguration.DRIVER_IDENTIFIER, topologyName)
          .set(DriverConfiguration.ON_DRIVER_STARTED, HeronSchedulerLauncher.class)
          .set(DriverConfiguration.ON_EVALUATOR_ALLOCATED, ContainerAllocationHandler.class)
          .set(DriverConfiguration.ON_EVALUATOR_FAILED, FailedContainerHandler.class)
          .set(DriverConfiguration.ON_CONTEXT_ACTIVE, HeronWorkerLauncher.class)
          .set(DriverConfiguration.ON_TASK_RUNNING, HeronWorkerStartHandler.class)
          .set(DriverConfiguration.ON_TASK_COMPLETED, HeronWorkerTaskCompletedErrorHandler.class)
          .set(DriverConfiguration.ON_TASK_FAILED, HeronWorkerTaskFailureHandler.class)
          .set(DriverConfiguration.GLOBAL_FILES, topologyPackageLocation)
          .set(DriverConfiguration.GLOBAL_FILES, coreReleasePackage)
          .set(HeronDriverConfiguration.TOPOLOGY_NAME, topologyName)
          .set(HeronDriverConfiguration.TOPOLOGY_JAR, topologyJar)
          .set(HeronDriverConfiguration.TOPOLOGY_PACKAGE_NAME, topologyPackageName)
          .set(HeronDriverConfiguration.HERON_CORE_PACKAGE_NAME, corePackageName)
          .set(HeronDriverConfiguration.ROLE, role)
          .set(HeronDriverConfiguration.ENV, env)
          .set(HeronDriverConfiguration.CLUSTER, cluster)
          .set(HeronDriverConfiguration.HTTP_PORT, 0)
          .set(HeronDriverConfiguration.VERBOSE, false)
          .set(YarnDriverConfiguration.QUEUE, queue)
          .set(DriverConfiguration.DRIVER_MEMORY, driverMemory)
          .build();
    }