public static List<Class<?>> scanClasses(ScanParams params) {
String packageName = U.or(params.pkg(), "");
long startingAt = U.time();
String regex = params.matching();
Pattern pattern = regex != null ? Pattern.compile(regex) : null;
Log.info("Retrieving classes", "annotated", params.annotated(), "package", packageName, "matching", regex);
List<Class<?>> classes = retrieveClasses(packageName, params.filter(), params.annotated(), pattern,
params.classLoader());
long timeMs = U.time() - startingAt;
Log.info("Finished classpath scan", "time", timeMs + "ms", "classes", classes);
return classes;
}