public void start() throws Exception { Injector injector = Guice.createInjector(module); preDestroy = injector.getInstance(Key.get(new TypeLiteral<Stager<PreDestroy>>() {})); injector.getInstance(ConfigurationsPerformer.class).initModules(); guiceProbeProvider = injector.getInstance(GuiceProbeProvider.class); cleanupTasksPerformer = injector.getInstance(CleanupTasksPerformer.class); isStartedProbe.notifyStarted(); }
public void initModules() throws Exception { Set<ConfigurationPerformer> processed = processConfigurables(); processOthers(processed); }
@Test public void initModulesShouldNotFailWhenBindingsInWrongOrder() throws Exception { Injector injector = Guice.createInjector(new ConfigurablesModule(), new UnorderedBindingsModule()); injector.getInstance(ConfigurationsPerformer.class).initModules(); assertThat(injector.getInstance(A.class).isConfigured()).isTrue(); assertThat(injector.getInstance(B.class).isConfigured()).isTrue(); }
@Test public void initModulesShouldBePerformedOneTimeWhenConfigurableModuleContainsMultipleDependencies() throws Exception { Injector injector = Guice.createInjector(new ConfigurablesModule(), new DualResponsibilityConfigurationPerformerModule()); injector.getInstance(ConfigurationsPerformer.class).initModules(); assertThat(injector.getInstance(A.class).isConfigured()).isTrue(); assertThat(injector.getInstance(B.class).isConfigured()).isTrue(); }