@SuppressWarnings("unchecked")
  public void start() {

    try {

      Set<Object> controllers = new HashSet<>();
      controllers.add(new DataTypesController(actions.get(GetDataTypes.class)));
      controllers.add(new TransferServicesController(actions.get(GetTransferServices.class)));
      controllers.add(
          new TransferController(
              actions.get(CreateTransferJob.class),
              actions.get(GenerateServiceAuthData.class),
              actions.get(ReserveWorker.class),
              actions.get(GetReservedWorker.class),
              actions.get(StartTransferJob.class),
              actions.get(GetTransferJob.class)));

      // Create a Jersey JAX-RS Application (resourceConfig), add the actions, and register it with
      // the Jetty transport.
      ResourceConfig resourceConfig = new ResourceConfig();

      // resourceConfig.register(JacksonFeature.class)
      resourceConfig.registerInstances(controllers);

      ServletContainer servletContainer = new ServletContainer(resourceConfig);
      jettyTransport.registerServlet("/api/*", servletContainer);

    } catch (Exception e) {
      throw new RuntimeException("Couldn't start JerseyTransportBinder", e);
    }
  }
Binds {@link Action}s to REST over HTTP

<p>Actions are bound by creating JAX-RS resources and registering them with the Jersey
application.
extensions/transport/portability-transport-jettyrest/src/main/java/org/datatransferproject/transport/jettyrest/rest/JerseyTransportBinder.java