private Runner getRunner(String name) throws NotFoundException {
   final Runner myRunner = runners.get(name);
   if (myRunner == null) {
     throw new NotFoundException(String.format("Unknown runner %s", name));
   }
   return myRunner;
 }
 @GenerateLink(rel = Constants.LINK_REL_AVAILABLE_RUNNERS)
 @GET
 @Path("available")
 @Produces(MediaType.APPLICATION_JSON)
 public List<RunnerDescriptor> getAvailableRunners() {
   final Set<Runner> all = runners.getAll();
   final List<RunnerDescriptor> list = new LinkedList<>();
   final DtoFactory dtoFactory = DtoFactory.getInstance();
   for (Runner runner : all) {
     list.add(
         dtoFactory
             .createDto(RunnerDescriptor.class)
             .withName(runner.getName())
             .withDescription(runner.getDescription())
             .withEnvironments(runner.getEnvironments()));
   }
   return list;
 }