code: public static <T> List<T> getServices(Class<T> intf) {
          List<T> ret = new ArrayList<T>();
  
          for (T service : ServiceLoader.load(intf)) {
              if (!(service instanceof ServiceStatus) || ((ServiceStatus)service).isAvailable()) {
                  if (service instanceof ServiceLifecycle) {
                      ((ServiceLifecycle)service).init();
                  }
  
                  ret.add(service);
              }
          }
  
          return ret;
      }
docs: This method returns the list of service implementations that implement
  the supplied interface.
  
  @param intf The interface
  @return The list
  
  @param <T> The service interface