private void initializeLoadBalancerFactory(Injector localInjector) { ServiceDiscoveryProvider provider = localInjector.getInstance(ServiceDiscoveryProvider.class); if (provider != null) { LoadBalancerFactory lbFactory = localInjector.getInstance(LoadBalancerFactory.class); lbFactory.initialize(provider); } }
public ServiceImpersonator(String serviceName, ServiceProperties props) throws Exception { //ServiceImpersonator needs its own injection stack so that each mock service // and the service under test get their own ecosystem this.serviceName = serviceName; TestInjectionModule testInjectionModule = new ServiceImpersonatorModule(serviceName, props); serviceProperties = testInjectionModule.getServiceProperties(); serviceProperties.setServiceName(serviceName); //has to be before getting regMgr serviceProperties.setServiceInstanceId(UUID.randomUUID().toString()); serviceProperties.addProperty("registry", "consul"); injector = Guice.createInjector(testInjectionModule, new ServiceRegistryModule(serviceProperties), new TracingModule(serviceProperties)); ServiceDiscoveryProvider provider = injector.getInstance(ServiceDiscoveryProvider.class); LoadBalancerFactory lbFactory = injector.getInstance(LoadBalancerFactory.class); lbFactory.initialize(provider); registrationManager = injector.getInstance(RegistrationManager.class); healthCheckManager = injector.getInstance(HealthCheckManager.class); rpcMethodScanner = new RpcMethodScanner(injector.getInstance(RpcClientFactory.class)); methodHandlers = injector.getInstance(MethodHandlerDictionary.class); messageHandler = injector.getInstance(MessageHandler.class); factory = injector.getInstance(KafkaPublisherFactory.class); initialize(); }
private ServiceUnderTestImpl(String serviceName, boolean useEventHandler, String kafkaTopic) { ServiceProperties serviceProperties = new ServiceProperties(); serviceProperties.initialize(new String[0]); TestInjectionModule baseModule = new ServiceUnderTestModule(serviceName, serviceProperties); Injector injector = Guice.createInjector(baseModule, new ServiceRegistryModule(serviceProperties), new TracingModule(serviceProperties)); ServiceDiscoveryProvider provider = injector.getInstance(ServiceDiscoveryProvider.class); loadBalancerFactory = injector.getInstance(LoadBalancerFactory.class); loadBalancerFactory.initialize(provider); loadBalancer = loadBalancerFactory.getLoadBalancer(serviceName); loadBalancer.waitForServiceInstance(); RpcClientFactory rpcClientFactory = injector.getInstance(RpcClientFactory.class); RpcMethodScanner rpcMethodScanner = new RpcMethodScanner(rpcClientFactory); serviceMethods = rpcMethodScanner.getMethodHandlers(serviceName); httpCommandProxy = injector.getInstance(HttpCommandProxy.class); httpCommandProxy.setServiceName(serviceName); if (useEventHandler) { eventHandler = injector.getInstance(ServiceTestEventHandler.class); eventHandler.initialize(kafkaTopic); } }