// Determine the ServerEnvironment
Class<?> serverMainClass = serverModuleClassLoader.loadClass(Main.class.getName());
Method determineEnvironmentMethod = serverMainClass.getMethod("determineEnvironment", String[].class, Properties.class, Map.class);
Object serverEnvironment = determineEnvironmentMethod.invoke(null, new String[0], systemProps, systemEnv);
Class<?> bootstrapFactoryClass = serverModuleClassLoader.loadClass(Bootstrap.Factory.class.getName());
Method newInstanceMethod = bootstrapFactoryClass.getMethod("newInstance");
Object bootstrap = newInstanceMethod.invoke(null);
Class<?> configurationClass = serverModuleClassLoader.loadClass(Bootstrap.Configuration.class.getName());
Constructor<?> configurationCtor = configurationClass.getConstructor();