private static <T> void bindConfigurationProvider(Binder binder, ConfigurationProvider<T> configurationProvider) { binder.bind(configurationProvider.getConfigurationBinding().getKey()).toProvider(configurationProvider); }
private static <T> void bindConfigurationProvider(Binder binder, ConfigurationProvider<T> configurationProvider) { binder.bind(configurationProvider.getConfigurationBinding().getKey()).toProvider(configurationProvider); }
@Override public <T> void bind(ConfigurationBinding<T> configurationBinding) { Key<T> key = configurationBinding.getKey(); binder.bind(key).toProvider(new ConfigurationProvider<>(configurationBinding)); createConfigDefaultsBinder(key); }
@Override public <T> void bind(ConfigurationBinding<T> configurationBinding) { Key<T> key = configurationBinding.getKey(); binder.bind(key).toProvider(new ConfigurationProvider<>(configurationBinding)); createConfigDefaultsBinder(key); }
private static void bindApacheThriftClientConfig(ConfigurationBinding<?> binding, ConfigBinder configBinder) { if (binding.getConfigClass().equals(DriftClientConfig.class)) { configBinder.bindConfig(ApacheThriftClientConfig.class, binding.getKey().getAnnotation(), binding.getPrefix().orElse(null)); } }
private static void bindApacheThriftClientConfig(ConfigurationBinding<?> binding, ConfigBinder configBinder) { if (binding.getConfigClass().equals(DriftClientConfig.class)) { configBinder.bindConfig(ApacheThriftClientConfig.class, binding.getKey().getAnnotation(), binding.getPrefix().orElse(null)); } }
@Override public void configure(Binder binder) { configBinder(binder).bindConfig(DriftNettyConnectionFactoryConfig.class); configBinder(binder).bindConfigurationBindingListener((binding, configBinder) -> { if (binding.getConfigClass().equals(DriftClientConfig.class)) { configBinder.bindConfig(DriftNettyClientConfig.class, binding.getKey().getAnnotation(), binding.getPrefix().orElse(null)); } }); binder.bind(ByteBufAllocator.class).toInstance(allocator); binder.bind(new TypeLiteral<MethodInvokerFactory<Annotation>>() {}) .toProvider(MethodInvokerFactoryProvider.class) .in(Scopes.SINGLETON); }
@Override public void configure(Binder binder) { configBinder(binder).bindConfig(DriftNettyConnectionFactoryConfig.class); configBinder(binder).bindConfigurationBindingListener((binding, configBinder) -> { if (binding.getConfigClass().equals(DriftClientConfig.class)) { configBinder.bindConfig(DriftNettyClientConfig.class, binding.getKey().getAnnotation(), binding.getPrefix().orElse(null)); } }); binder.bind(ByteBufAllocator.class).toInstance(allocator); binder.bind(new TypeLiteral<MethodInvokerFactory<Annotation>>() {}) .toProvider(MethodInvokerFactoryProvider.class) .in(Scopes.SINGLETON); }
/** * This is used by the configuration provider */ <T> T build(ConfigurationProvider<T> configurationProvider) { requireNonNull(configurationProvider, "configurationProvider"); registerConfigurationProvider(configurationProvider, Optional.empty()); // check for a prebuilt instance T instance = getCachedInstance(configurationProvider); if (instance != null) { return instance; } ConfigurationBinding<T> configurationBinding = configurationProvider.getConfigurationBinding(); ConfigurationHolder<T> holder = build(configurationBinding.getConfigClass(), configurationBinding.getPrefix(), getConfigDefaults(configurationBinding.getKey())); instance = holder.getInstance(); // inform caller about warnings if (warningsMonitor != null) { for (Message message : holder.getProblems().getWarnings()) { warningsMonitor.onWarning(message.toString()); } } // add to instance cache T existingValue = putCachedInstance(configurationProvider, instance); // if key was already associated with a value, there was a // creation race and we lost. Just use the winners' instance; if (existingValue != null) { return existingValue; } return instance; }
/** * This is used by the configuration provider */ <T> T build(ConfigurationProvider<T> configurationProvider) { requireNonNull(configurationProvider, "configurationProvider"); registerConfigurationProvider(configurationProvider, Optional.empty()); // check for a prebuilt instance T instance = getCachedInstance(configurationProvider); if (instance != null) { return instance; } ConfigurationBinding<T> configurationBinding = configurationProvider.getConfigurationBinding(); ConfigurationHolder<T> holder = build(configurationBinding.getConfigClass(), configurationBinding.getPrefix(), getConfigDefaults(configurationBinding.getKey())); instance = holder.getInstance(); // inform caller about warnings if (warningsMonitor != null) { for (Message message : holder.getProblems().getWarnings()) { warningsMonitor.onWarning(message.toString()); } } // add to instance cache T existingValue = putCachedInstance(configurationProvider, instance); // if key was already associated with a value, there was a // creation race and we lost. Just use the winners' instance; if (existingValue != null) { return existingValue; } return instance; }