code: @Override
      public void close() {
          if (closed.compareAndSet(false, true)) {
              super.close();
              synchronized (baseClients) {
                  for (WebClient wc : baseClients) {
                      wc.close();
                  }
              }
  
              String moduleName = getModuleName();
              synchronized (clientsPerModule) {
                  List<JAXRSClientImpl> clients = clientsPerModule.get(moduleName);
  
                  if (clients != null) { // the only way this isn't null is if the same client was closed twice
                      clients.remove(this);
                      if (clients.isEmpty()) {
                          for (String id : busCache.keySet()) {
                              if (id.startsWith(moduleName) || id.startsWith("unknown:")) {
                                  busCache.remove(id).shutdown(false);
                              }
                          }
                          clientsPerModule.remove(moduleName);
                      }
                  }
              }
  
              baseClients = null;
          }
      }
docs: make the cxf ClientImpl.close works, and we should close all clients too