injector.getInstance(EventListenerManager.class).loadConfiguredEventListener(); injector.getInstance(Announcer.class).start();
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(); }
private static void updateConnectorIds(Announcer announcer, CatalogManager metadata, ServerConfig serverConfig, NodeSchedulerConfig schedulerConfig) ServiceAnnouncement announcement = getPrestoAnnouncement(announcer.getServiceAnnouncements()); announcer.removeServiceAnnouncement(announcement.getId()); announcer.addServiceAnnouncement(builder.build());
.initialize(); injector.getInstance(Announcer.class).start(); announcer = injector.getInstance(Announcer.class); announcer.forceAnnounce();
@Test public void addAnnouncementAfterStart() throws Exception { assertAnnounced(); announcer.start(); ServiceAnnouncement newAnnouncement = ServiceAnnouncement.serviceAnnouncement(serviceType.value()).addProperty("a", "apple").build(); announcer.addServiceAnnouncement(newAnnouncement); Thread.sleep(100); assertAnnounced(serviceAnnouncement, newAnnouncement); }
@Test public void removeAnnouncementAfterStart() throws Exception { assertAnnounced(); announcer.start(); announcer.removeServiceAnnouncement(serviceAnnouncement.getId()); Thread.sleep(100); assertAnnounced(); }
public ListenableFuture<?> forceAnnounce() { return announcementClient.announce(getServiceAnnouncements()); }
@Inject public RackAnnouncer(RackServletConfig config, Announcer announcer, AnnouncementHttpServerInfo httpServerInfo) { if (config.getServiceAnnouncement() != null) { announcer.addServiceAnnouncement(createHttpAnnouncement(httpServerInfo, config.getServiceAnnouncement())); } }
private void scheduleNextAnnouncement(Duration expectedDelay) { // already stopped? avoids rejection exception if (executor.isShutdown()) { return; } long delayStart = System.nanoTime(); executor.schedule(() -> announce(delayStart, expectedDelay), expectedDelay.toMillis(), MILLISECONDS); } }
private static void updateDatasources(Announcer announcer, Metadata metadata, ServerConfig serverConfig, NodeSchedulerConfig schedulerConfig) ServiceAnnouncement announcement = getPrestoAnnouncement(announcer.getServiceAnnouncements()); announcer.removeServiceAnnouncement(announcement.getId()); announcer.addServiceAnnouncement(builder.build());
@Test public void addAnnouncementAfterStart() throws Exception { assertAnnounced(); announcer.start(); ServiceAnnouncement newAnnouncement = ServiceAnnouncement.serviceAnnouncement(serviceType.value()).addProperty("a", "apple").build(); announcer.addServiceAnnouncement(newAnnouncement); Thread.sleep(100); assertAnnounced(serviceAnnouncement, newAnnouncement); }
.initialize(); injector.getInstance(Announcer.class).start(); announcer = injector.getInstance(Announcer.class); announcer.forceAnnounce();
@Test public void removeAnnouncementAfterStart() throws Exception { assertAnnounced(); announcer.start(); announcer.removeServiceAnnouncement(serviceAnnouncement.getId()); Thread.sleep(100); assertAnnounced(); }
public ListenableFuture<?> forceAnnounce() { return announcementClient.announce(getServiceAnnouncements()); }
@Inject public RackAnnouncer(RackServletConfig config, Announcer announcer, AnnouncementHttpServerInfo httpServerInfo) { if (config.getServiceAnnouncement() != null) { announcer.addServiceAnnouncement(createHttpAnnouncement(httpServerInfo, config.getServiceAnnouncement())); } }
public void start() { Preconditions.checkState(!executor.isShutdown(), "Announcer has been destroyed"); if (started.compareAndSet(false, true)) { // announce immediately, if discovery is running ListenableFuture<Duration> announce = announce(System.nanoTime(), new Duration(0, SECONDS)); try { announce.get(30, SECONDS); } catch (Exception ignored) { } } }
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(); }