private static void updateConnectorIdAnnouncement(Announcer announcer, ConnectorId connectorId, InternalNodeManager nodeManager) { // // This code was copied from PrestoServer, and is a hack that should be removed when the connectorId property is removed // // get existing announcement ServiceAnnouncement announcement = getPrestoAnnouncement(announcer.getServiceAnnouncements()); // update connectorIds property Map<String, String> properties = new LinkedHashMap<>(announcement.getProperties()); String property = nullToEmpty(properties.get("connectorIds")); Set<String> connectorIds = new LinkedHashSet<>(Splitter.on(',').trimResults().omitEmptyStrings().splitToList(property)); connectorIds.add(connectorId.toString()); properties.put("connectorIds", Joiner.on(',').join(connectorIds)); // update announcement announcer.removeServiceAnnouncement(announcement.getId()); announcer.addServiceAnnouncement(serviceAnnouncement(announcement.getType()).addProperties(properties).build()); announcer.forceAnnounce(); nodeManager.refreshNodes(); }
announcer.removeServiceAnnouncement(announcement.getId()); announcer.addServiceAnnouncement(builder.build());
public void addServiceAnnouncement(ServiceAnnouncement serviceAnnouncement) { checkNotNull(serviceAnnouncement, "serviceAnnouncement is null"); announcements.put(serviceAnnouncement.getId(), serviceAnnouncement); }
public void addServiceAnnouncement(ServiceAnnouncement serviceAnnouncement) { Preconditions.checkNotNull(serviceAnnouncement, "serviceAnnouncement is null"); announcements.put(serviceAnnouncement.getId(), serviceAnnouncement); }
public void addServiceAnnouncement(ServiceAnnouncement serviceAnnouncement) { requireNonNull(serviceAnnouncement, "serviceAnnouncement is null"); announcements.put(serviceAnnouncement.getId(), serviceAnnouncement); }
@Inject public Announcer(DiscoveryAnnouncementClient announcementClient, Set<ServiceAnnouncement> serviceAnnouncements) { Preconditions.checkNotNull(announcementClient, "client is null"); Preconditions.checkNotNull(serviceAnnouncements, "serviceAnnouncements is null"); this.announcementClient = announcementClient; for (ServiceAnnouncement serviceAnnouncement : serviceAnnouncements) { announcements.put(serviceAnnouncement.getId(), serviceAnnouncement); } executor = new ScheduledThreadPoolExecutor(5, new ThreadFactoryBuilder().setNameFormat("Announcer-%s").setDaemon(true).build()); }
@Override public CheckedFuture<Duration, DiscoveryException> announce(Set<ServiceAnnouncement> services) { Preconditions.checkNotNull(services, "services is null"); ImmutableSet.Builder<ServiceDescriptor> builder = ImmutableSet.builder(); for (ServiceAnnouncement service : services) { builder.add(new ServiceDescriptor(service.getId(), nodeInfo.getNodeId(), service.getType(), nodeInfo.getPool(), null, ServiceState.RUNNING, service.getProperties())); } announcements.set(builder.build()); return Futures.immediateCheckedFuture(maxAge); }
private static void updateDatasourcesAnnouncement(Announcer announcer, String connectorId) { // // This code was copied from PrestoServer, and is a hack that should be removed when the data source property is removed // // get existing announcement ServiceAnnouncement announcement = getPrestoAnnouncement(announcer.getServiceAnnouncements()); // update datasources property Map<String, String> properties = new LinkedHashMap<>(announcement.getProperties()); String property = nullToEmpty(properties.get("datasources")); Set<String> datasources = new LinkedHashSet<>(Splitter.on(',').trimResults().omitEmptyStrings().splitToList(property)); datasources.add(connectorId); properties.put("datasources", Joiner.on(',').join(datasources)); // update announcement announcer.removeServiceAnnouncement(announcement.getId()); announcer.addServiceAnnouncement(serviceAnnouncement(announcement.getType()).addProperties(properties).build()); announcer.forceAnnounce(); }
private void assertAnnouncement(ServiceAnnouncement announcement, String type, Map<String, String> properties) { assertNotNull(announcement.getId()); assertEquals(announcement.getType(), type); assertEquals(announcement.getProperties(), properties); }
private void assertAnnouncement(ServiceAnnouncement announcement, String type, Map<String, String> properties) { assertNotNull(announcement.getId()); assertEquals(announcement.getType(), type); assertEquals(announcement.getProperties(), properties); }
private void assertAnnouncement(ServiceAnnouncement announcement, String type, Map<String, String> properties) { assertNotNull(announcement.getId()); assertEquals(announcement.getType(), type); assertEquals(announcement.getProperties(), properties); }
@Test public void removeAnnouncementAfterStart() throws Exception { assertAnnounced(); announcer.start(); announcer.removeServiceAnnouncement(serviceAnnouncement.getId()); Thread.sleep(100); assertAnnounced(); }
@Test public void removeAnnouncementAfterStart() throws Exception { assertAnnounced(); announcer.start(); announcer.removeServiceAnnouncement(serviceAnnouncement.getId()); Thread.sleep(100); assertAnnounced(); }
@Test public void removeAnnouncementAfterStart() throws Exception { assertAnnounced(); announcer.start(); announcer.removeServiceAnnouncement(serviceAnnouncement.getId()); Thread.sleep(100); assertAnnounced(); }
@Test public void testJsonEncode() throws Exception { ServiceAnnouncement serviceAnnouncement = serviceAnnouncement("foo") .addProperty("http", "http://localhost:8080") .addProperty("jmx", "jmx://localhost:1234") .build(); Map<String, Object> actual = objectCodec.fromJson(serviceAnnouncementCodec.toJson(serviceAnnouncement)); String json = Resources.toString(Resources.getResource("service-announcement.json"), UTF_8); Map<String, Object> expected = objectCodec.fromJson(json); // set id in expected expected.put("id", serviceAnnouncement.getId().toString()); assertEquals(actual, expected); }
@Test public void testJsonEncode() throws Exception { ServiceAnnouncement serviceAnnouncement = serviceAnnouncement("foo") .addProperty("http", "http://localhost:8080") .addProperty("jmx", "jmx://localhost:1234") .build(); Map<String, Object> actual = objectCodec.fromJson(serviceAnnouncementCodec.toJson(serviceAnnouncement)); String json = Resources.toString(Resources.getResource("service-announcement.json"), UTF_8); Map<String, Object> expected = objectCodec.fromJson(json); // set id in expected expected.put("id", serviceAnnouncement.getId().toString()); assertEquals(actual, expected); }
@Test public void testJsonEncode() throws Exception { ServiceAnnouncement serviceAnnouncement = serviceAnnouncement("foo") .addProperty("http", "http://localhost:8080") .addProperty("jmx", "jmx://localhost:1234") .build(); Map<String, Object> actual = objectCodec.fromJson(serviceAnnouncementCodec.toJson(serviceAnnouncement)); String json = Resources.toString(Resources.getResource("service-announcement.json"), Charsets.UTF_8); Map<String, Object> expected = objectCodec.fromJson(json); // set id in expected expected.put("id", serviceAnnouncement.getId().toString()); assertEquals(actual, expected); }
@Test public void testJsonEncode() throws Exception { Announcement announcement = new Announcement("environment", "node", "pool", "location", ImmutableSet.of( serviceAnnouncement("foo") .addProperty("http", "http://localhost:8080") .addProperty("jmx", "jmx://localhost:1234") .build()) ); Map<String, Object> actual = objectCodec.fromJson(announcementCodec.toJson(announcement)); String json = Resources.toString(Resources.getResource("announcement.json"), Charsets.UTF_8); Map<String, Object> expected = objectCodec.fromJson(json); // set id in expected List<Map<String, Object>> services = (List<Map<String, Object>>) expected.get("services"); services.get(0).put("id", Iterables.getOnlyElement(announcement.getServices()).getId().toString()); assertEquals(actual, expected); }
@Test public void testJsonEncode() throws Exception { Announcement announcement = new Announcement("environment", "node", "pool", "location", ImmutableSet.of( serviceAnnouncement("foo") .addProperty("http", "http://localhost:8080") .addProperty("jmx", "jmx://localhost:1234") .build())); Map<String, Object> actual = objectCodec.fromJson(announcementCodec.toJson(announcement)); String json = Resources.toString(Resources.getResource("announcement.json"), UTF_8); Map<String, Object> expected = objectCodec.fromJson(json); // set id in expected List<Map<String, Object>> services = toServices(expected.get("services")); services.get(0).put("id", Iterables.getOnlyElement(announcement.getServices()).getId().toString()); assertEquals(actual, expected); }
@Test public void testJsonEncode() throws Exception { Announcement announcement = new Announcement("environment", "node", "pool", "location", ImmutableSet.of( serviceAnnouncement("foo") .addProperty("http", "http://localhost:8080") .addProperty("jmx", "jmx://localhost:1234") .build())); Map<String, Object> actual = objectCodec.fromJson(announcementCodec.toJson(announcement)); String json = Resources.toString(Resources.getResource("announcement.json"), UTF_8); Map<String, Object> expected = objectCodec.fromJson(json); // set id in expected List<Map<String, Object>> services = toServices(expected.get("services")); services.get(0).put("id", Iterables.getOnlyElement(announcement.getServices()).getId().toString()); assertEquals(actual, expected); }