docs: private <T> List<T> loadServices(final Class<T> serviceType) {
          List<T> services = new ArrayList<>();
          try {
              for (T t : ServiceLoader.load(serviceType)) {
                  services.add(t);
              }
              services.sort(Comparator.comparing(o -> o.getClass().getSimpleName()));
              @SuppressWarnings("unchecked")
              final List<T> previousServices = (List<T>) servicesLoaded.putIfAbsent(serviceType, (List<Object>) services);
              return Collections.unmodifiableList(previousServices != null ? previousServices : services);
          } catch (Exception e) {
              Logger.getLogger(DefaultServiceProvider.class.getName()).log(Level.WARNING,
                                                                           "Error loading services of type " + serviceType, e);
              return services;
          }
      }