/** * Initializes injector by copying needed handlers. * @param runtimeInjector The injector to initialize * @throws InjectionException on configuration error. */ private void initializeInjector(final Injector runtimeInjector) throws InjectionException { copyEventHandler(runtimeInjector, RuntimeParameters.ResourceStatusHandler.class); copyEventHandler(runtimeInjector, RuntimeParameters.NodeDescriptorHandler.class); copyEventHandler(runtimeInjector, RuntimeParameters.ResourceAllocationHandler.class); copyEventHandler(runtimeInjector, RuntimeParameters.RuntimeStatusHandler.class); try { runtimeInjector.bindVolatileInstance(HttpServer.class, this.originalInjector.getInstance(HttpServer.class)); LOG.log(Level.INFO, "Binding http server for the runtime implementation"); } catch (final InjectionException e) { LOG.log(Level.INFO, "Http Server is not configured for the runtime", e); } }
final Injector forkedInjector = injector.forkInjector(operatorConfig); forkedInjector.bindVolatileInstance(CommunicationGroupServiceClient.class, this);
@Inject private CommunicationGroupDriverFactory( @Parameter(DriverIdentifier.class) final String driverId, @Parameter(GroupCommSenderStage.class) final EStage<GroupCommunicationMessage> senderStage, @Parameter(GroupCommRunningTaskHandler.class) final BroadcastingEventHandler<RunningTask> groupCommRunningTaskHandler, @Parameter(GroupCommFailedTaskHandler.class) final BroadcastingEventHandler<FailedTask> groupCommFailedTaskHandler, @Parameter(GroupCommFailedEvalHandler.class) final BroadcastingEventHandler<FailedEvaluator> groupCommFailedEvaluatorHandler, final GroupCommMessageHandler groupCommMessageHandler) { injector = Tang.Factory.getTang().newInjector(); injector.bindVolatileParameter(GroupCommSenderStage.class, senderStage); injector.bindVolatileParameter(DriverIdentifier.class, driverId); injector.bindVolatileParameter(GroupCommRunningTaskHandler.class, groupCommRunningTaskHandler); injector.bindVolatileParameter(GroupCommFailedTaskHandler.class, groupCommFailedTaskHandler); injector.bindVolatileParameter(GroupCommFailedEvalHandler.class, groupCommFailedEvaluatorHandler); injector.bindVolatileInstance(GroupCommMessageHandler.class, groupCommMessageHandler); }
final Injector injector = TANG.newInjector(); injector.bindVolatileParameter(NetworkServiceParameters.NetworkServiceIdentifierFactory.class, idFac); injector.bindVolatileInstance(NameResolver.class, nameResolver); injector.bindVolatileParameter(NetworkServiceParameters.NetworkServiceCodec.class, new GroupCommunicationMessageCodec()); injector.bindVolatileParameter(GroupCommFailedTaskHandler.class, groupCommFailedTaskHandler); injector.bindVolatileParameter(GroupCommFailedEvalHandler.class, groupCommFailedEvaluatorHandler); injector.bindVolatileInstance(GroupCommMessageHandler.class, groupCommMessageHandler);