public Set<Class<?>> scanPackagesForClassesImplementing(Class<?> implementedInterface,
      String... onlyFromPackages) {
    ClassInfoList classInfoList = scanResult.getClassesImplementing(implementedInterface.getName())
        .filter(ci -> !ci.isAbstract() && !ci.isInterface() && ci.isPublic());

    classInfoList = classInfoList
        .filter(ci -> Arrays.stream(onlyFromPackages)
            .anyMatch(p -> classMatchesPackage(ci.getName(), p)));

    return classInfoList.loadClasses().stream().collect(toSet());
  }
Utility class to scan class-path & load classes.

@since GemFire 7.0
geode-core/src/main/java/org/apache/geode/management/internal/util/ClasspathScanLoadHelper.java