/** * Retrieve all the registries available to the given group (and global registries) * * @param tenantLinks * @param registryFilter * @param consumer */ public static void findRegistries(ServiceHost serviceHost, Collection<String> tenantLinks, String registryFilter, BiConsumer<Collection<RegistryState>, Collection<Throwable>> consumer) { List<QueryTask> queryTasks = new ArrayList<>(); if (registryFilter != null && !registryFilter.isEmpty()) { // add query for a registry with a specific name and group queryTasks.add(buildRegistryQueryByNameAndTenantLinks(registryFilter, tenantLinks)); if (tenantLinks != null) { // add query for a global registry with a specific name queryTasks.add(buildRegistryQueryByNameAndTenantLinks(registryFilter, null)); } } else if (tenantLinks != null && !tenantLinks.isEmpty()) { // add query for global groups queryTasks.add(buildRegistryQueryByTenantLinks(null)); // add query for registries of a specific tenant queryTasks.add(buildRegistryQueryByTenantLinks(tenantLinks)); } else { // add query for all registries if no tenant queryTasks.add(buildAllRegistriesQuery()); } queryForRegistries(serviceHost, queryTasks, consumer); }