in src/main/java/org/apache/sling/launchpad/base/shared/Loader.java [100:130]
public Object loadLauncher(String launcherClassName) {
final File launcherJarFile = getLauncherJarFile();
info("Loading launcher class " + launcherClassName + " from " + launcherJarFile.getName());
if (!launcherJarFile.canRead()) {
throw new IllegalArgumentException("Sling Launcher JAR "
+ launcherJarFile + " is not accessible");
}
final ClassLoader loader;
try {
loader = new LauncherClassLoader(launcherJarFile, getExtLibs());
} catch (MalformedURLException e) {
throw new IllegalArgumentException(
"Cannot create an URL from the JAR path name", e);
}
try {
final Class<?> launcherClass = loader.loadClass(launcherClassName);
return launcherClass.newInstance();
} catch (ClassNotFoundException cnfe) {
throw new IllegalArgumentException("Cannot find class "
+ launcherClassName + " in " + launcherJarFile, cnfe);
} catch (InstantiationException e) {
throw new IllegalArgumentException(
"Cannot instantiate launcher class " + launcherClassName, e);
} catch (IllegalAccessException e) {
throw new IllegalArgumentException(
"Cannot access constructor of class " + launcherClassName, e);
}
}