66import com .mageddo .aptools .ClassUtils ;
77
88import org .reflections .Reflections ;
9- import org .reflections .scanners .ResourcesScanner ;
10- import org .reflections .scanners .SubTypesScanner ;
11- import org .reflections .util .ClasspathHelper ;
12- import org .reflections .util .ConfigurationBuilder ;
13- import org .reflections .util .FilterBuilder ;
9+ import org .reflections .scanners .Scanners ;
1410
1511public class ThirdPartyPackageScanner {
1612
@@ -23,28 +19,33 @@ public class ThirdPartyPackageScanner {
2319 */
2420 public static Set <Class <?>> findPackageClasses (String packageName ) {
2521
26- Set <Class <?>> classes = new Reflections (
27- new ConfigurationBuilder ()
28- .setScanners (new SubTypesScanner (false ), new ResourcesScanner ())
29- .addUrls (ClasspathHelper .forJavaClassPath ( ))
30- .filterInputsBy (new FilterBuilder ()
31- .includePackage (packageName ))
32- )
33- .getSubTypesOf (Object .class );
22+ // Set<Class<?>> classes = new Reflections(
23+ // new ConfigurationBuilder()
24+ // .setScanners(new SubTypesScanner(false), new ResourcesScanner())
25+ // .addUrls(ClasspathHelper.forPackage(packageName, ClassLoader.getSystemClassLoader() ))
26+ // .filterInputsBy(new FilterBuilder()
27+ // .includePackage(packageName))
28+ // )
29+ // .getSubTypesOf(Object.class);
3430
35- // final Set<String> classes = new Reflections(packageName)
36- // .getAll(Scanners.SubTypes);
31+ final Set <String > classes = new Reflections (packageName )
32+ .getAll (Scanners .SubTypes );
3733
3834 final Set <Class <?>> filteredClasses = new LinkedHashSet <>();
39- for (Class <?> clazz : classes ) {
40- if (
41- ClassUtils .doPackageOwnClass (packageName , clazz .getName ())
42- && !clazz .isInterface ()
43- && !clazz .isSynthetic ()
44- ) {
45- filteredClasses .add (clazz );
35+ for (String clazzName : classes ) {
36+ try {
37+ Class <?> clazz = ClassUtils .forName (clazzName );
38+ if (
39+ ClassUtils .doPackageOwnClass (packageName , clazz .getName ())
40+ && !clazz .isInterface ()
41+ && !clazz .isSynthetic ()
42+ ) {
43+ filteredClasses .add (clazz );
44+ }
45+ } catch (Exception e ){
46+ System .out .printf ("status=failedForClass, class=%s, msg=%s%n" , clazzName , e .getMessage ());;
4647 }
47- }
48+ }
4849// final Set<String> filteredClasses = classes
4950// .stream()
5051// .filter(it -> ClassUtils.doPackageOwnClass(packageName, it))
@@ -54,7 +55,7 @@ public static Set<Class<?>> findPackageClasses(String packageName) {
5455// "status=packageScanned, classes=%d, afterFilter=%d, package=%s",
5556// classes.size(),filteredClasses.size(),packageName
5657// );
57- return filteredClasses ;
58- }
59-
58+ return filteredClasses ;
6059 }
60+
61+ }
0 commit comments