public ApplicationLoader(OsgiFramework osgiFramework, Iterable<? extends Module> guiceModules) { this.osgiFramework = osgiFramework; this.guiceModules.install(new ApplicationEnvironmentModule(this)); this.guiceModules.installAll(guiceModules); }
@Override public Iterator<Module> iterator() { return collection().iterator(); }
public Injector getInjector() { if (injector == null) { injector = Guice.createInjector(createModule()); } return injector; }
public ActiveContainer(ContainerBuilder builder) { serverProviders = builder.serverProviders().activate(); serverProviders.forEach(resourceReferences::retain); serverBindings = builder.activateServerBindings(); serverBindings.forEach( (ignoredName, bindingSet) -> bindingSet.forEach( binding -> resourceReferences.retain(binding.getValue()))); clientBindings = builder.activateClientBindings(); clientBindings.forEach( (ignoredName, bindingSet) -> bindingSet.forEach( binding -> resourceReferences.retain(binding.getValue()))); bindingSetSelector = builder.getInstance(BindingSetSelector.class); timeoutMgr = builder.getInstance(TimeoutManagerImpl.class); timeoutMgr.start(); builder.guiceModules().install(new AbstractModule() { @Override protected void configure() { bind(TimeoutManagerImpl.class).toInstance(timeoutMgr); } }); guiceInjector = builder.guiceModules().activate(); termination = new ContainerTermination(builder.appContext()); }
public void installAll(Iterable<? extends Module> modules) { for (Module module : modules) { install(module); } }
public Module install(Bundle bundle, String moduleName) throws ClassNotFoundException { log.finer("Installing Guice module '" + moduleName + "'."); Class<?> namedClass = bundle.loadClass(moduleName); Class<Module> moduleClass = ContainerBuilder.safeClassCast(Module.class, namedClass); Module module = getInstance(moduleClass); install(module); return module; }
@Override public void start() throws Exception { log.finer("Initializing application."); Injector injector = guiceModules.activate(); Application app; if (!appBundles.isEmpty()) {
public <T> T getInstance(Class<T> type) { return guiceModules.getInstance(type); }
public Injector activate() { return getInjector(); }
public void uninstallAll(Iterable<? extends Module> modules) { for (Module module : modules) { uninstall(module); } }
public GuiceRepository(Module... modules) { installAll(Arrays.asList(modules)); }
public List<Module> installAll(Bundle bundle, Iterable<String> moduleNames) throws ClassNotFoundException { List<Module> lst = new LinkedList<>(); for (String moduleName : moduleNames) { lst.add(install(bundle, moduleName)); } return lst; }
private void startReconfigurerThread() { reconfigurerThread = new Thread(() -> { while ( ! Thread.interrupted()) { try { ContainerBuilder builder = createBuilderWithGuiceBindings(); // Block until new config arrives, and it should be applied configurer.getNewComponentGraph(builder.guiceModules().activate(), qrConfig.restartOnDeploy()); intitializeAndActivateContainer(builder); } catch (ConfigInterruptedException e) { break; } catch (Exception | LinkageError e) { // LinkageError: OSGi problems log.log(Level.SEVERE, "Reconfiguration failed, your application package must be fixed, unless this is a " + "JNI reload issue: " + Exceptions.toMessageString(e), e); } catch (Error e) { com.yahoo.protect.Process.logAndDie("java.lang.Error on reconfiguration: We are probably in " + "a bad state and will terminate", e); } } log.fine("Shutting down HandlersConfigurerDi"); }); reconfigurerThread.start(); }
public <T> T getInstance(Key<T> key) { return guiceModules.getInstance(key); }
public <T> T getInstance(Class<T> type) { return getInjector().getInstance(type); }
public ContainerBuilder(Iterable<Module> guiceModules) { this.guiceModules.installAll(guiceModules); this.guiceModules.install(new AbstractModule() { @Override public void configure() { bind(ContainerBuilder.class).toInstance(ContainerBuilder.this); } }); this.serverBindings.put(BindingSet.DEFAULT, new BindingRepository<RequestHandler>()); this.clientBindings.put(BindingSet.DEFAULT, new BindingRepository<RequestHandler>()); }
private void setupGuiceBindings(GuiceRepository modules) { modules.install(new AbstractModule() { @Override protected void configure() { bind(Metric.class).to(DisableGuiceMetric.class); bind(OsgiFramework.class).toInstance(restrictedOsgiFramework); bind(com.yahoo.jdisc.Timer.class).toInstance(timerSingleton); bind(FilterChainRepository.class).toInstance(defaultFilterChainRepository); } }); modules.install(applicationWithLegacySetup.getMbusBindings()); }
@Override public void start() { qrConfig = getConfig(QrConfig.class); SlobroksConfig slobroksConfig = getConfig(SlobroksConfig.class); slobrokRegistrator = registerInSlobrok(slobroksConfig, qrConfig); hackToInitializeServer(qrConfig); ContainerBuilder builder = createBuilderWithGuiceBindings(); configurer = createConfigurer(builder.guiceModules().activate()); intitializeAndActivateContainer(builder); startReconfigurerThread(); portWatcher = new Thread(this::watchPortChange); portWatcher.setDaemon(true); portWatcher.start(); }
public ServerProvider install(Bundle bundle, String serverName) throws ClassNotFoundException { log.finer("Installing server provider '" + serverName + "'."); Class<?> namedClass = bundle.loadClass(serverName); Class<ServerProvider> serverClass = ContainerBuilder.safeClassCast(ServerProvider.class, namedClass); ServerProvider server = guice.getInstance(serverClass); install(server); return server; }
public <T> T getInstance(Key<T> key) { return getInjector().getInstance(key); }