Source:
private MistTask(final QueryManager queryManager, @Parameter(MasterToTaskServerPortNum.class) final int masterToTaskPortNum, @Parameter(ClientToTaskServerPortNum.class) final int clientToTaskPortNum) throws InjectionException { this.countDownLatch = new CountDownLatch(1); final JavaConfigurationBuilder masterToTaskServerConfBuilder = tang.newConfigurationBuilder(); masterToTaskServerConfBuilder.bindImplementation(MasterToTaskMessage.class, DefaultMasterToTaskMessageImpl.class); masterToTaskServerConfBuilder.bindConstructor(SpecificResponder.class, MasterToTaskSpecificResponderWrapper.class); masterToTaskServerConfBuilder.bindConstructor(Server.class, AvroRPCNettyServerWrapper.class); masterToTaskServerConfBuilder.bindNamedParameter(RPCServerPort.class, String.valueOf(masterToTaskPortNum)); this.masterToTaskServer = tang.newInjector(masterToTaskServerConfBuilder.build()).getInstance(Server.class); final JavaConfigurationBuilder clientToTaskServerConfBuilder = tang.newConfigurationBuilder(); clientToTaskServerConfBuilder.bindImplementation(ClientToTaskMessage.class, DefaultClientToTaskMessageImpl.class); clientToTaskServerConfBuilder.bindConstructor(SpecificResponder.class, ClientToTaskSpecificResponderWrapper.class); clientToTaskServerConfBuilder.bindConstructor(Server.class, AvroRPCNettyServerWrapper.class); clientToTaskServerConfBuilder.bindNamedParameter(RPCServerPort.class, String.valueOf(clientToTaskPortNum)); this.clientToTaskServer = tang.newInjector(clientToTaskServerConfBuilder.build()).getInstance(Server.class); this.queryManager = queryManager; }

Target:
private MistTask(final QueryManager queryManager, @Parameter(MasterToTaskServerPortNum.class) final int masterToTaskPortNum, @Parameter(ClientToTaskServerPortNum.class) final int clientToTaskPortNum) throws InjectionException { this.countDownLatch = new CountDownLatch(1); final JavaConfigurationBuilder masterToTaskServerConfBuilder = tang.newConfigurationBuilder(); masterToTaskServerConfBuilder.bindImplementation(MasterToTaskMessage.class, DefaultMasterToTaskMessageImpl.class); masterToTaskServerConfBuilder.bindConstructor(SpecificResponder.class, MasterToTaskSpecificResponderWrapper.class); masterToTaskServerConfBuilder.bindConstructor(Server.class, AvroRPCNettyServerWrapper.class); masterToTaskServerConfBuilder.bindNamedParameter(RPCServerPort.class, String.valueOf(masterToTaskPortNum)); this.masterToTaskServer = tang.newInjector(masterToTaskServerConfBuilder.build()).getInstance(Server.class); final JavaConfigurationBuilder clientToTaskServerConfBuilder = tang.newConfigurationBuilder(); clientToTaskServerConfBuilder.bindImplementation(ClientToTaskMessage.class, DefaultClientToTaskMessageImpl.class); clientToTaskServerConfBuilder.bindConstructor(SpecificResponder.class, ClientToTaskSpecificResponderWrapper.class); clientToTaskServerConfBuilder.bindConstructor(Server.class, AvroRPCNettyServerWrapper.class); clientToTaskServerConfBuilder.bindNamedParameter(RPCServerPort.class, String.valueOf(clientToTaskPortNum)); Injector injector = tang.newInjector(clientToTaskServerConfBuilder.build()); injector.bindVolatileInstance(QueryManager.class, queryManager); this.clientToTaskServer = injector.getInstance(Server.class); this.queryManager = injector.getInstance(QueryManager.class); }