private static List<TransferExtension> getTransferExtensions(Monitor monitor) {
    // TODO: Next version should ideally not load every TransferExtension impl, look into
    // solutions where we selectively invoke class loader.
    ImmutableList.Builder<TransferExtension> extensionsBuilder = ImmutableList.builder();
    // Note that initialization of the TransferExtension is done in the WorkerModule since they're
    // initialized as they're requested.
    ServiceLoader.load(TransferExtension.class)
        .iterator()
        .forEachRemaining(
            ext -> {
              monitor.info(
                  () -> "Loading transfer extension: " + ext + " for " + ext.getServiceId());
              extensionsBuilder.add(ext);
            });
    ImmutableList<TransferExtension> extensions = extensionsBuilder.build();
    Preconditions.checkState(
        !extensions.isEmpty(), "Could not find any implementations of TransferExtension");
    return extensions;
  }
Main class to bootstrap a portability transfer worker that will operate on a single job whose
state is held in {@link JobMetadata}.
portability-transfer/src/main/java/org/datatransferproject/transfer/WorkerMain.java