@Override public void configure(LifecycleInjectorBuilder builder) { builder.withAdditionalModules(modules); } };
@Override public LifecycleInjectorBuilder withModules( Iterable<? extends Module> modules) { this.delegate = delegate.withAdditionalModules(modules); return this; }
@Override public LifecycleInjectorBuilder withAdditionalModules( Iterable<? extends Module> modules) { this.delegate = delegate.withAdditionalModules(modules); return this; }
protected void bindMetricsRegistry(LifecycleInjectorBuilder bootstrapBinder) { bootstrapBinder.withAdditionalModules(new AbstractModule() { @Override protected void configure() { MetricRegistry internalRegistry = new MetricRegistry(); final JmxReporter reporter = JmxReporter.forRegistry(internalRegistry).build(); reporter.start(); ExtendedRegistry registry = new ExtendedRegistry(new MetricsRegistry(Clock.SYSTEM, internalRegistry)); bind(ExtendedRegistry.class).toInstance(registry); } }); }
@Override public LifecycleInjectorBuilder withModules(Module... modules) { this.delegate = delegate.withAdditionalModules(modules); return this; }
@Override public LifecycleInjectorBuilder withAdditionalModules(Module... modules) { this.delegate = delegate.withAdditionalModules(modules); return this; }
@Override public void configure(LifecycleInjectorBuilder builder) { builder.withMode(LifecycleInjectorMode.SIMULATED_CHILD_INJECTORS); builder.withAdditionalModules(new AbstractModule() { @Override protected void configure() { bindHealthCheck(bind(HealthCheckHandler.class)); bindHealthCheckInvocationStrategy(bind(HealthCheckInvocationStrategy.class)); } }); }
@Override public void configure(LifecycleInjectorBuilder builder) { builder.withAdditionalModules(new KaryonServoModule()); } };
@Override public void configure(LifecycleInjectorBuilder builder) { builder.withAdditionalModules(new ShutdownModule(port)); } };
private void bindDashboard(LifecycleInjectorBuilder builder) { builder.withAdditionalModuleClasses(KaryonWebAdminModule.class); builder.withAdditionalModuleClasses(KaryonServoModule.class); builder.withAdditionalModules(new AbstractModule() { @Override protected void configure() { bind(HealthCheckHandler.class).to(AlwaysHealthyHealthCheck.class).asEagerSingleton(); bind(HealthCheckInvocationStrategy.class).to(SyncHealthCheckInvocationStrategy.class).asEagerSingleton(); } }); }
builderToBeUsed.withAdditionalModules(explorerGuiceModules);
protected void setup(Module[] modules) { LifecycleInjectorBuilder builder = LifecycleInjector.builder(); builder.withAdditionalModules(modules); // Extensions builder.withAdditionalModules(new ExtensionLoader(!withExt).asModuleArray()); // Admin console if (withAdminUI) { bindConfigurationProvider(builder); bindDashboard(builder); } injector = builder.build().createInjector(); lifecycleManager = injector.getInstance(LifecycleManager.class); try { lifecycleManager.start(); } catch (Exception e) { throw new RuntimeException("Container setup failure", e); } }
protected void setup(Module[] modules) { LifecycleInjectorBuilder builder = LifecycleInjector.builder() .withModuleTransformer(new OverrideAllDuplicateBindings()); builder.withAdditionalModules(PostInjectorModule.forLifecycleInjectorBuilder(builder)); builder.withAdditionalModules(modules); // Extensions builder.withAdditionalModules(new ExtensionLoader(!withExt).asModuleArray(serverType)); bindMetricsRegistry(builder); EurekaHealthStatusModule healthStatusModule = new EurekaHealthStatusModule(); builder.withAdditionalModules(healthStatusModule); injector = builder.build().createInjector(); lifecycleManager = injector.getInstance(LifecycleManager.class); try { lifecycleManager.start(); // Admin console if (withAdminUI) { EmbeddedKaryonAdminModule adminUIModule = createAdminUIModule(); webAdminInjector = injector.createChildInjector(adminUIModule); } } catch (Exception e) { throw new RuntimeException("Container setup failure", e); } }
@Override public GenericWorkerApp build() { final AutoBindConfigModule configModule = configModuleBuilder.build(); addBootstrapModule(bootstrapBinder -> // This will parse the configuration and deliver its individual pieces // to @Configuration fields. bootstrapBinder.bindConfigurationProvider() .toInstance(new TypesafeConfigurationProvider(configModule.getServiceConfig()))); // Add config and service graph bindings in bootstrap phase // so that they can be consumed by auto bound Modules addBootstrapModule(new BootstrapModuleWrapper(configModule)); addBootstrapModule(new BootstrapModuleWrapper(serviceGraphModuleBuilder.build())); // Insert the services module in the order in which it arrived. orderedModules.add(servicesModuleIndex.get(), servicesModuleBuilder.build()); // Add all modules to the lifecycle injector builder in the order in which they arrived. lifecycleInjectorBuilder.withAdditionalModules(orderedModules); final Injector serviceInjector = buildServiceInjector(lifecycleInjectorBuilder); setServiceInjector(serviceInjector); // Write the service graph final StringWriter sw = new StringWriter(); serviceInjector.getInstance(ServiceGraphWriter.class).writeServiceGraph(sw); getLogger().info(sw.toString()); return super.build(); }
public static void create(AtomicReference<Injector> injector, final Properties properties, Module... modules) throws Exception { // Create the injector injector.set(LifecycleInjector.builder() .withBootstrapModule( new BootstrapModule() { @Override public void configure(BootstrapBinder binder) { binder.bindConfigurationProvider().toInstance( new PropertiesConfigurationProvider(properties)); } } ) .withModules( new RoutingPlugin(), new ServerSinkPlugin(), new SuroInputPlugin(), new SuroDynamicPropertyModule(), new SuroModule(), StatusServer.createJerseyServletModule() ) .withAdditionalModules(modules) .build().createInjector()); }
@Test public void inject() throws Exception { Assumptions.assumeTrue(isJava8(), "requires java 8"); // On JDK 9: // Caused by: java.lang.ClassNotFoundException: javax.annotation.Resource // at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) // at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) // at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) Injector injector = LifecycleInjector.builder() .usingBasePackages("com.netflix") .withAdditionalModules(new AbstractModule() { @Override protected void configure() { Config config = MapConfig.builder() .put("spectator.nflx.enabled", "false") .build(); bind(Config.class).toInstance(config); } }) .build() .createInjector(); LifecycleManager lcMgr = injector.getInstance(LifecycleManager.class); lcMgr.start(); Assertions.assertNotNull(injector.getInstance(Plugin.class)); lcMgr.close(); }