@@ -14,21 +14,40 @@ public class CatBaseInjector implements Injector {
1414 private final List <Class <?>> classes ;
1515
1616 public CatBaseInjector (Collection <String > packagePaths ) {
17- this (new ArrayList <>(), packagePaths );
17+ this (new ArrayList <>(), packagePaths , null );
1818 }
1919
2020 public CatBaseInjector (String packagePath ) {
21- this (new ArrayList <>(), List .of (packagePath ));
21+ this (new ArrayList <>(), List .of (packagePath ), null );
2222 }
2323
2424 public CatBaseInjector (List <Dependency <?>> dependencies , String packagePath ) {
25- this (dependencies , List .of (packagePath ));
25+ this (dependencies , List .of (packagePath ), null );
2626 }
2727
28+ public CatBaseInjector (Collection <String > packagePaths , ClassLoader classLoader ) {
29+ this (new ArrayList <>(), packagePaths , classLoader );
30+ }
31+
32+ public CatBaseInjector (String packagePath , ClassLoader classLoader ) {
33+ this (new ArrayList <>(), List .of (packagePath ), classLoader );
34+ }
35+
36+ public CatBaseInjector (List <Dependency <?>> dependencies , String packagePath , ClassLoader classLoader ) {
37+ this (dependencies , List .of (packagePath ), classLoader );
38+ }
39+
40+
2841 public CatBaseInjector (List <Dependency <?>> dependencies , Collection <String > packagePaths ) {
42+ this (dependencies , packagePaths , null );
43+ }
44+
45+ public CatBaseInjector (List <Dependency <?>> dependencies , Collection <String > packagePaths , ClassLoader classLoader ) {
2946 this .dependencies = new ArrayList <>(dependencies );
3047 this .classes = new ArrayList <>();
31- packagePaths .forEach (packagePath -> this .classes .addAll (ClassFinder .findAllClasses (packagePath )));
48+ ClassFinder classFinder = classLoader == null ? new ClassFinder () : new ClassFinder (classLoader );
49+
50+ packagePaths .forEach (packagePath -> this .classes .addAll (classFinder .findAllClasses (packagePath )));
3251
3352 this .registerInjectables ();
3453 }
0 commit comments