Search in sources :

Example 1 with ServiceSelector

use of io.airlift.discovery.client.ServiceSelector in project presto by prestodb.

the class TestHeartbeatFailureDetector method testExcludesCurrentNode.

@Test
public void testExcludesCurrentNode() throws Exception {
    Bootstrap app = new Bootstrap(new TestingNodeModule(), new TestingJmxModule(), new TestingDiscoveryModule(), new TestingHttpServerModule(), new TraceTokenModule(), new JsonModule(), new JaxrsModule(true), new FailureDetectorModule(), new Module() {

        @Override
        public void configure(Binder binder) {
            configBinder(binder).bindConfig(QueryManagerConfig.class);
            discoveryBinder(binder).bindSelector("presto");
            discoveryBinder(binder).bindHttpAnnouncement("presto");
            // Jersey with jetty 9 requires at least one resource
            // todo add a dummy resource to airlift jaxrs in this case
            jaxrsBinder(binder).bind(FooResource.class);
        }
    });
    Injector injector = app.strictConfig().doNotInitializeLogging().initialize();
    ServiceSelector selector = injector.getInstance(Key.get(ServiceSelector.class, serviceType("presto")));
    assertEquals(selector.selectAllServices().size(), 1);
    HeartbeatFailureDetector detector = injector.getInstance(HeartbeatFailureDetector.class);
    detector.updateMonitoredServices();
    assertEquals(detector.getTotalCount(), 0);
    assertEquals(detector.getActiveCount(), 0);
    assertEquals(detector.getFailedCount(), 0);
    assertTrue(detector.getFailed().isEmpty());
}
Also used : TestingHttpServerModule(io.airlift.http.server.testing.TestingHttpServerModule) TestingNodeModule(io.airlift.node.testing.TestingNodeModule) ServiceSelector(io.airlift.discovery.client.ServiceSelector) JaxrsModule(io.airlift.jaxrs.JaxrsModule) JsonModule(io.airlift.json.JsonModule) TraceTokenModule(io.airlift.tracetoken.TraceTokenModule) TestingJmxModule(io.airlift.jmx.testing.TestingJmxModule) Binder(com.google.inject.Binder) DiscoveryBinder.discoveryBinder(io.airlift.discovery.client.DiscoveryBinder.discoveryBinder) JaxrsBinder.jaxrsBinder(io.airlift.jaxrs.JaxrsBinder.jaxrsBinder) ConfigBinder.configBinder(io.airlift.configuration.ConfigBinder.configBinder) TestingDiscoveryModule(io.airlift.discovery.client.testing.TestingDiscoveryModule) Injector(com.google.inject.Injector) Bootstrap(io.airlift.bootstrap.Bootstrap) QueryManagerConfig(com.facebook.presto.execution.QueryManagerConfig) Module(com.google.inject.Module) TestingHttpServerModule(io.airlift.http.server.testing.TestingHttpServerModule) JaxrsModule(io.airlift.jaxrs.JaxrsModule) TraceTokenModule(io.airlift.tracetoken.TraceTokenModule) TestingJmxModule(io.airlift.jmx.testing.TestingJmxModule) TestingDiscoveryModule(io.airlift.discovery.client.testing.TestingDiscoveryModule) JsonModule(io.airlift.json.JsonModule) TestingNodeModule(io.airlift.node.testing.TestingNodeModule) Test(org.testng.annotations.Test)

Aggregations

QueryManagerConfig (com.facebook.presto.execution.QueryManagerConfig)1 Binder (com.google.inject.Binder)1 Injector (com.google.inject.Injector)1 Module (com.google.inject.Module)1 Bootstrap (io.airlift.bootstrap.Bootstrap)1 ConfigBinder.configBinder (io.airlift.configuration.ConfigBinder.configBinder)1 DiscoveryBinder.discoveryBinder (io.airlift.discovery.client.DiscoveryBinder.discoveryBinder)1 ServiceSelector (io.airlift.discovery.client.ServiceSelector)1 TestingDiscoveryModule (io.airlift.discovery.client.testing.TestingDiscoveryModule)1 TestingHttpServerModule (io.airlift.http.server.testing.TestingHttpServerModule)1 JaxrsBinder.jaxrsBinder (io.airlift.jaxrs.JaxrsBinder.jaxrsBinder)1 JaxrsModule (io.airlift.jaxrs.JaxrsModule)1 TestingJmxModule (io.airlift.jmx.testing.TestingJmxModule)1 JsonModule (io.airlift.json.JsonModule)1 TestingNodeModule (io.airlift.node.testing.TestingNodeModule)1 TraceTokenModule (io.airlift.tracetoken.TraceTokenModule)1 Test (org.testng.annotations.Test)1