code: public List<DomainBareJid> findServices(String feature, boolean stopOnFirst, boolean useCache) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
          List<DiscoverInfo> services = findServicesDiscoverInfo(feature, stopOnFirst, useCache);
          List<DomainBareJid> res = new ArrayList<>(services.size());
          for (DiscoverInfo info : services) {
              res.add(info.getFrom().asDomainBareJid());
          }
          return res;
      }
docs: Find all services under the users service that provide a given feature.
  
  @param feature the feature to search for
  @param stopOnFirst if true, stop searching after the first service was found
  @param useCache if true, query a cache first to avoid network I/O
  @return a possible empty list of services providing the given feature
  @throws NoResponseException
  @throws XMPPErrorException
  @throws NotConnectedException
  @throws InterruptedException