diff --git a/src/main/java/com/github/russ_p/externalsql/ExternalSQLFactory.java b/src/main/java/com/github/russ_p/externalsql/ExternalSQLFactory.java index 335e0e1..2db9ca0 100644 --- a/src/main/java/com/github/russ_p/externalsql/ExternalSQLFactory.java +++ b/src/main/java/com/github/russ_p/externalsql/ExternalSQLFactory.java @@ -11,6 +11,16 @@ import net.bytebuddy.matcher.ElementMatchers; public class ExternalSQLFactory { + private final ClassLoader classLoader; + + public ExternalSQLFactory() { + this(ExternalSQLFactory.class.getClassLoader()); + } + + public ExternalSQLFactory(ClassLoader classLoader) { + this.classLoader = classLoader; + } + @SuppressWarnings("unchecked") public T create(Class clazz) throws IOException, InstantiationException, IllegalAccessException { ExternalSQL anno = clazz.getAnnotation(ExternalSQL.class); @@ -35,7 +45,7 @@ public class ExternalSQLFactory { Class dynamicType = intercept .make() - .load(getClass().getClassLoader()) + .load(classLoader) .getLoaded(); return (T) dynamicType.newInstance();