From 1eb4af13b4dfa5c2276f710ec5f73286e5e3c445 Mon Sep 17 00:00:00 2001 From: Ruslan Penkrat Date: Sat, 5 Oct 2019 14:18:58 +0300 Subject: [PATCH] add classloader as param for factory --- .../russ_p/externalsql/ExternalSQLFactory.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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();