This seems to be simplifiable:

    class DefaultExecutorServiceConfigurator(config: Config, prerequisites: DispatcherPrerequisites, fallback: ExecutorServiceConfigurator) extends ExecutorServiceConfigurator(config, prerequisites) {
      val provider: ExecutorServiceFactoryProvider =
        prerequisites.defaultExecutionContext match {
          case Some(ec) =>
            prerequisites.eventStream.publish(Debug("DefaultExecutorServiceConfigurator", this.getClass, s"Using passed in ExecutionContext as default executor for this ActorSystem. If you want to use a different executor, please specify one in akka.actor.default-dispatcher.default-executor."))
            
            new ExecutorServiceFactory with ExecutorServiceFactoryProvider {
              def createExecutorServiceFactory(id: String, threadFactory: ThreadFactory): ExecutorServiceFactory = this

              val createExecutorService: ExecutorService = new AbstractExecutorService {
                def shutdown(): Unit = ()

                def isTerminated: Boolean = false

                def awaitTermination(timeout: Long, unit: TimeUnit): Boolean = false

                def shutdownNow(): ju.List[Runnable] = ju.Collections.emptyList()

                def execute(command: Runnable): Unit = ec.execute(command)

                def isShutdown: Boolean = false
              }
            }
          case None => fallback
        }

      def createExecutorServiceFactory(id: String, threadFactory: ThreadFactory): ExecutorServiceFactory = configure
    }