public <T> void bindConfig(Key<T> key, Class<T> configClass, String prefix) { binder.bind(new ConfigurationBinding<>(key, configClass, Optional.ofNullable(prefix))); }
public <T> void bindConfig(Key<T> key, Class<T> configClass, String prefix) { binder.bind(new ConfigurationBinding<>(key, configClass, Optional.ofNullable(prefix))); }
@Test public void testConfigurationBindingListener() { List<ConfigurationBinding<?>> seenBindings = new ArrayList<>(); Module module = binder -> { ConfigBinder configBinder = configBinder(binder); configBinder.bindConfig(AnotherConfig.class); configBinder.bindConfigurationBindingListener((configurationBinding, callbackConfigBinder) -> { seenBindings.add(configurationBinding); callbackConfigBinder.bindConfig(Config1.class); callbackConfigBinder.bindConfig(Config1.class, MyAnnotation.class); }); }; Injector injector = createInjector(properties, module); verifyConfig(injector.getInstance(Config1.class)); verifyConfig(injector.getInstance(Key.get(Config1.class, MyAnnotation.class))); assertEquals(seenBindings.size(), 3); assertEquals( ImmutableSet.copyOf(seenBindings), ImmutableSet.of( new ConfigurationBinding<>(Key.get(Config1.class), Config1.class, Optional.empty()), new ConfigurationBinding<>(Key.get(Config1.class, MyAnnotation.class), Config1.class, Optional.empty()), new ConfigurationBinding<>(Key.get(AnotherConfig.class), AnotherConfig.class, Optional.empty()))); }
@Test public void testConfigurationBindingListener() { List<ConfigurationBinding<?>> seenBindings = new ArrayList<>(); Module module = binder -> { ConfigBinder configBinder = configBinder(binder); configBinder.bindConfig(AnotherConfig.class); configBinder.bindConfigurationBindingListener((configurationBinding, callbackConfigBinder) -> { seenBindings.add(configurationBinding); callbackConfigBinder.bindConfig(Config1.class); callbackConfigBinder.bindConfig(Config1.class, MyAnnotation.class); }); }; Injector injector = createInjector(properties, module); verifyConfig(injector.getInstance(Config1.class)); verifyConfig(injector.getInstance(Key.get(Config1.class, MyAnnotation.class))); assertEquals(seenBindings.size(), 3); assertEquals( ImmutableSet.copyOf(seenBindings), ImmutableSet.of( new ConfigurationBinding<>(Key.get(Config1.class), Config1.class, Optional.empty()), new ConfigurationBinding<>(Key.get(Config1.class, MyAnnotation.class), Config1.class, Optional.empty()), new ConfigurationBinding<>(Key.get(AnotherConfig.class), AnotherConfig.class, Optional.empty()))); }