/** * Creates a new {@link KaryonServer} which uses the passed class to detect any modules. * * @param mainClass Any class/interface containing governator's {@link Bootstrap} annotations. * @param modules Additional modules if any. * * @return {@link KaryonServer} which is to be used to start the created server. */ public static KaryonServer forApplication(Class<?> mainClass, Module... modules) { return forApplication(mainClass, toSuite(modules)); }
public static void main(String[] args) { if (args.length == 0) { System.out.println("Usage: " + KaryonRunner.class.getCanonicalName() + " <main classs name>"); System.exit(-1); } String mainClassName = args[0]; System.out.println("Using main class: " + mainClassName); try { Karyon.forApplication(Class.forName(mainClassName), (LifecycleInjectorBuilderSuite[]) null) .startAndWaitTillShutdown(); } catch (@SuppressWarnings("UnusedCatchParameter") ClassNotFoundException e) { System.out.println("Main class: " + mainClassName + " not found."); System.exit(-1); } catch (Exception e) { logger.error("Error while starting karyon server.", e); System.exit(-1); } // In case we have non-daemon threads running System.exit(0); } }