addHttpModuleIfNeededAndNotPresent(modules);
addExecutorServiceIfNotPresent(modules);
addEventBusIfNotPresent(modules);
addCredentialStoreIfNotPresent(modules);
modules.add(new LifeCycleModule());
modules.add(new BindProviderMetadataContextAndCredentials(providerMetadata, creds));
modules.add(new BindNameToContext(name));
Injector returnVal = Guice.createInjector(GUICE_STAGE, modules);
returnVal.getInstance(ExecutionList.class).execute();
return returnVal;
}