public Binding<SSLContext> getSslContextBinding() { return injector.getExistingBinding(sslContextKey); } }
@Override public <T> Binding<T> getExistingBinding(Key<T> key) { return this.delegateInjector.getExistingBinding(key); }
public <T> Binding<T> getExistingBinding(Key<T> key) { return resolve().getExistingBinding(key); }
private static Optional<Command> defaultCommand(Injector injector) { // default is optional, so check via injector whether it is bound... Binding<Command> binding = injector.getExistingBinding(Key.get(Command.class, DefaultCommand.class)); return binding != null ? Optional.of(binding.getProvider().get()) : Optional.empty(); }
private static Optional<Command> defaultCommand(Injector injector) { // default is optional, so check via injector whether it is bound... Binding<Command> binding = injector.getExistingBinding(Key.get(Command.class, DefaultCommand.class)); return binding != null ? Optional.of(binding.getProvider().get()) : Optional.empty(); }
/** * Returns a DI-bound instance for a given DI key, throwing if such key is not explicitly bound in DI. * * @param <T> a type of the instance to return. * @param diKey a DI key for a given instance. * @return a DI-bound instance of a given type. * @since 0.23 */ // TODO: Guice API is exposed directly... bad public <T> T getInstance(Key<T> diKey) { Binding<T> binding = injector.getExistingBinding(diKey); // note that Guice default behavior is to attempt creating a binding on // the fly, if there's no explicit one available. We are overriding this // behavior. return Objects.requireNonNull(binding, "No binding for key: " + diKey).getProvider().get(); }
@Provides @LazySingleton public Server getServer( final Injector injector, final Lifecycle lifecycle, @Self final DruidNode node, final ServerConfig config, final TLSServerConfig TLSServerConfig ) { return makeAndInitializeServer( injector, lifecycle, node, config, TLSServerConfig, injector.getExistingBinding(Key.get(SslContextFactory.class)), injector.getInstance(TLSCertificateChecker.class) ); }
@Provides @LazySingleton @RemoteChatHandler public Server getServer( Injector injector, Lifecycle lifecycle, @RemoteChatHandler DruidNode node, @RemoteChatHandler ServerConfig config, @RemoteChatHandler TLSServerConfig TLSServerConfig ) { return JettyServerModule.makeAndInitializeServer( injector, lifecycle, node, config, TLSServerConfig, injector.getExistingBinding(Key.get(SslContextFactory.class)), injector.getInstance(TLSCertificateChecker.class) ); } }
if (config.isMetrics() && injector.getExistingBinding(Key.get(MetricRegistry.class)) != null) { MetricRegistry metricRegistry = injector.getInstance(MetricRegistry.class); CircuitBreakerMetrics circuitBreakerMetrics = CircuitBreakerMetrics.ofCircuitBreakerRegistry(circuitBreakerRegistry); if (config.isPrometheus() && injector.getExistingBinding(Key.get(CollectorRegistry.class)) != null) { CollectorRegistry collectorRegistry = injector.getInstance(CollectorRegistry.class); CircuitBreakerExports circuitBreakerExports = CircuitBreakerExports.ofCircuitBreakerRegistry(circuitBreakerRegistry);
@Override public <T> Binding<T> getExistingBinding(Key<T> key) { return this.delegateInjector.getExistingBinding(key); }
protected Optional<SecurityGroupExtension> provideSecurityGroupExtension(Injector i) { Binding<SecurityGroupExtension> binding = i.getExistingBinding(Key.get(SecurityGroupExtension.class)); return binding == null ? Optional.<SecurityGroupExtension> absent() : Optional.of(binding.getProvider().get()); } }
private static Optional<Command> defaultCommand(Injector injector) { // default is optional, so check via injector whether it is bound... Binding<Command> binding = injector.getExistingBinding(Key.get(Command.class, DefaultCommand.class)); return binding != null ? Optional.of(binding.getProvider().get()) : Optional.empty(); }
@Override public void shutdown() { if (injector != null) { if (injector.getExistingBinding(Key.get(StickySystemStartup.class)) != null) injector.getInstance(StickySystemStartup.class).shutdown(); } }
public <T> Optional<T> getOptionalDependency(Key key) { if (injector.getExistingBinding(key) != null) { return Optional.of(getDependency(key)); } else { return Optional.empty(); } }
@Override public void shutdown() { if (injector != null) { if (injector.getExistingBinding(Key.get(StickySystemStartup.class)) != null) injector.getInstance(StickySystemStartup.class).shutdown(); } }
Object getInstanceOfTypeWithQualifier(Type genericReturnType, Annotation qualifier) { // look for an existing binding Binding<?> binding = injector.getExistingBinding(Key.get(genericReturnType, qualifier)); if (binding != null) return binding.getProvider().get(); // then, try looking via supplier binding = injector .getExistingBinding(Key.get(newParameterizedType(Supplier.class, genericReturnType), qualifier)); if (binding != null) return Supplier.class.cast(binding.getProvider().get()).get(); // else try to create an instance return injector.getInstance(Key.get(genericReturnType, qualifier)); }
@Override public Object resolveParameter(ParameterInfo parameter) { // We ask for an existing binding so Guice wont create jit bindings for things like Class and String // This means that all parameters need to be explicitly bound Key<?> key = getKey(parameter); Binding<?> existingBinding = injector.getExistingBinding(key); return existingBinding != null ? existingBinding.getProvider().get() : UNRESOLVED; }
@Test public void contextBindingsAreBridgedToGuice() { for (Class<?> clazz : HK2ContextBindings.SET) { Binding binding = injector.getExistingBinding(Key.get(clazz)); assertThat(binding) .as("%s has a Guice binding", clazz.getName()) .isNotNull(); } } }
@Test public void testWorksGlobalDisabled() { final Config config = Config.getFixedConfig(ImmutableMap.of("ness.jms.enabled", "false")); final Injector injector = Guice.createInjector(Stage.PRODUCTION, new ConfigModule(config), new JmsModule(config, "test")); final JmsConfig jmsConfig = injector.getInstance(Key.get(JmsConfig.class, Names.named("test"))); Assert.assertNotNull(jmsConfig); Assert.assertFalse(jmsConfig.isEnabled()); Assert.assertNull(injector.getExistingBinding(Key.get(ConnectionFactory.class))); }
@Test public void testDisabledByDefault() { final Config config = Config.getEmptyConfig(); final Injector inj = Guice.createInjector(Stage.PRODUCTION, disableStuff(), new LogFieldsModule(), new FileRequestLogModule(config)); Assert.assertNull(inj.getExistingBinding(Key.get(FileRequestLog.class))); }