package io.ebeaninternal.server.core; import io.ebean.config.ServerConfig; import org.avaje.classpath.scanner.ClassPathScanner; import org.avaje.classpath.scanner.ClassPathScannerFactory; import java.util.ArrayList; import java.util.List; import java.util.ServiceLoader; /** * Utility to finds and return the list of ClassPathScanner services. */ public class ClassPathScanners { /** * Return the list of ClassPathScanner services using serverConfig service loader. */ public static List<ClassPathScanner> find(ServerConfig serverConfig) { List<ClassPathScanner> scanners = new ArrayList<>(); ServiceLoader<ClassPathScannerFactory> scannerLoader = serverConfig.serviceLoad(ClassPathScannerFactory.class); for (ClassPathScannerFactory factory : scannerLoader) { ClassPathScanner scanner = factory.createScanner(serverConfig.getClassLoadConfig().getClassLoader()); scanners.add(scanner); } return scanners; } }