@Override public LifecycleInjectorBuilder usingBasePackages(String... basePackages) { this.delegate = delegate.usingBasePackages(basePackages); return this; }
@Override public LifecycleInjectorBuilder usingBasePackages( Collection<String> basePackages) { this.delegate = delegate.usingBasePackages(basePackages); return this; }
/** * Starts the container and hence the embedded jetty server. * * @throws Exception if there is an issue while starting the server */ @PostConstruct public void init() throws Exception { server = new Server(listenPort); Injector injector = LifecycleInjector .builder() .usingBasePackages("com.netflix.explorers") .withModules(new AdminResourcesModule(healthCheckInvocationStrategyProvider)).createInjector(); try { injector.getInstance(LifecycleManager.class).start(); AdminResourcesFilter adminResourcesFilter = injector.getInstance(AdminResourcesFilter.class); adminResourcesFilter.setPackages(coreJerseyPackages); ServletContextHandler handler = new ServletContextHandler(); handler.setContextPath("/"); handler.setSessionHandler(new SessionHandler()); handler.addFilter(LoggingFilter.class, "/*", EnumSet.allOf(DispatcherType.class)); handler.addFilter(RedirectFilter.class, "/*", EnumSet.allOf(DispatcherType.class)); handler.addFilter(new FilterHolder(adminResourcesFilter), "/*", EnumSet.allOf(DispatcherType.class)); handler.addServlet(new ServletHolder(adminResourcesFilter), "/*"); server.setHandler(handler); server.start(); } catch (Exception e) { logger.error("Exception in building AdminResourcesContainer ", e); } }
.inStage(Stage.DEVELOPMENT) .withMode(LifecycleInjectorMode.SIMULATED_CHILD_INJECTORS) .usingBasePackages("com.netflix.explorers") .withModules(getAdditionalBindings()) .build()
@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(); }
.builder() .inStage(Stage.DEVELOPMENT) .usingBasePackages("com.netflix.explorers") .withModules(buildAdminPluginsGuiceModules()) .build()