All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.scalecube.services.ServiceLoaderUtil Maven / Gradle / Ivy

package io.scalecube.services;

import java.util.Optional;
import java.util.ServiceLoader;
import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

public final class ServiceLoaderUtil {

  private ServiceLoaderUtil() {
    // Do not instantiate
  }

  public static  Optional findFirstMatched(Class aClass) {
    ServiceLoader load = ServiceLoader.load(aClass);
    return StreamSupport.stream(load.spliterator(), false).findFirst();
  }

  public static  Optional findFirst(Class aClass, Predicate predicate) {
    ServiceLoader load = ServiceLoader.load(aClass);
    Stream stream = StreamSupport.stream(load.spliterator(), false);
    return stream.filter(predicate).findFirst();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy