Injector createInjector() { DeferredModulesSource modulesSource = new DeferredModulesSource(); Collection<BQModule> bqModules = new ArrayList<>(); // note that 'moduleMetadata' is invalid at this point; it will be initialized later in this method, which // is safe to do, as it won't be used until the Injector is created by the method caller. bqModules.add(coreModuleProvider(modulesSource).moduleBuilder().build()); BootiqueUtils.moduleProviderDependencies(builderProviders()) .forEach(p -> bqModules.add(p.moduleBuilder().build())); if (autoLoadModules) { autoLoadedProviders().forEach(p -> bqModules.add(p.moduleBuilder().build())); } // now that all modules are collected, finish 'moduleMetadata' initialization modulesSource.init(bqModules); // convert to Guice modules respecting overrides, etc. Collection<Module> modules = new RuntimeModuleMerger(bootLogger).toGuiceModules(bqModules); return Guice.createInjector(modules); }
Injector createInjector() { DeferredModulesSource modulesSource = new DeferredModulesSource(); Collection<BQModule> bqModules = new ArrayList<>(); // note that 'moduleMetadata' is invalid at this point; it will be initialized later in this method, which // is safe to do, as it won't be used until the Injector is created by the method caller. bqModules.add(coreModuleProvider(modulesSource).moduleBuilder().build()); BootiqueUtils.moduleProviderDependencies(builderProviders()) .forEach(p -> bqModules.add(p.moduleBuilder().build())); if (autoLoadModules) { autoLoadedProviders().forEach(p -> bqModules.add(p.moduleBuilder().build())); } // now that all modules are collected, finish 'moduleMetadata' initialization modulesSource.init(bqModules); // convert to Guice modules respecting overrides, etc. Collection<Module> modules = new RuntimeModuleMerger(bootLogger).toGuiceModules(bqModules); return Guice.createInjector(modules); }