private EndpointStrategy discover(RouteDestination routeDestination) { LOG.debug("Looking up service name {}", routeDestination); // If its a user service, then use UserServiceEndpointStrategy Strategy String serviceName = routeDestination.getServiceName(); return ServiceDiscoverable.isUserService(serviceName) ? new UserServiceEndpointStrategy(() -> discoveryServiceClient.discover(serviceName), routeStore, ServiceDiscoverable.getId(serviceName), fallbackStrategy, routeDestination.getVersion()) : new RandomEndpointStrategy(() -> discoveryServiceClient.discover(serviceName)); } }
@Test public void testProgramId() throws Exception { ProgramId serviceId = new ApplicationId("ns", "app").service("s1"); String discoverableName = ServiceDiscoverable.getName(serviceId); Assert.assertEquals("service.ns.app.s1", discoverableName); Assert.assertTrue(ServiceDiscoverable.isUserService(discoverableName)); Assert.assertFalse(ServiceDiscoverable.isUserService("service1.")); Assert.assertEquals(serviceId, ServiceDiscoverable.getId(discoverableName)); } }