public void run(final String mainClass, final BiConsumer<Jooby, Config> callback) throws Throwable { ClassLoader global = Thread.currentThread().getContextClassLoader(); try (URLClassLoader local = cp.toClassLoader()) { Thread.currentThread().setContextClassLoader(local); Jooby app = (Jooby) local.loadClass(mainClass).newInstance(); Config conf = Jooby.exportConf(app); callback.accept(app, conf); } finally { Thread.currentThread().setContextClassLoader(global); } }
public void run(final String mainClass, final BiConsumer<Jooby, Config> callback, final String... args) throws Throwable { ClassLoader global = Thread.currentThread().getContextClassLoader(); try (URLClassLoader local = project.newClassLoader()) { Thread.currentThread().setContextClassLoader(local); if (mainClass == null) { throw new IllegalArgumentException("Main class missing. Please set, like: mainClassName = \"my.App\""); } Jooby app = (Jooby) local.loadClass(mainClass).newInstance(); Config conf = Jooby.exportConf(app); callback.accept(app, conf); } finally { Thread.currentThread().setContextClassLoader(global); } }