code: public List<VirtualHost> findVirtualHosts(Service<?, ?> service) {
          requireNonNull(service, "service");
  
          @SuppressWarnings("rawtypes")
          final Class<? extends Service> serviceType = service.getClass();
          final List<VirtualHost> res = new ArrayList<>();
          for (VirtualHost h : virtualHosts) {
              for (ServiceConfig c : h.serviceConfigs()) {
                  // Consider the case where the specified service is decorated before being added.
                  final Service<?, ?> s = c.service();
                  @SuppressWarnings("rawtypes")
                  final Optional<? extends Service> sOpt = s.as(serviceType);
                  if (!sOpt.isPresent()) {
                      continue;
                  }
  
                  if (sOpt.get() == service) {
                      res.add(c.virtualHost());
                      break;
                  }
              }
          }
  
          return res;
      }
docs: Finds the {@link List} of {@link VirtualHost}s that contains the specified {@link Service}. If there's
  no match, an empty {@link List} is returned. Note that this is potentially an expensive operation and
  thus should not be used in a performance-sensitive path.