code: private boolean isSupportedOnNode(Class<? extends HttpServlet> servlet) {
          LOGGER.entering();
  
          RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(CONNECTION_TIMEOUT)
                  .setSocketTimeout(CONNECTION_TIMEOUT).build();
  
          CloseableHttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();
          String url = String.format("http://%s:%d/extra/%s", machine, getRemoteHost().getPort(),
                  servlet.getSimpleName());
  
          try {
              HttpGet get = new HttpGet(url);
              final HttpResponse getResponse = client.execute(get);
  
              if (getResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
                  proxyLogger.warning("Node " + getId() + " does not have or support " + servlet.getSimpleName());
                  LOGGER.exiting(false);
                  return false;
              }
          } catch (IOException e) {
              LOGGER.log(Level.SEVERE, e.getMessage(), e);
              LOGGER.exiting(false);
              return false;
          } finally {
              try {
                  client.close();
              } catch (IOException e) {
                  LOGGER.log(Level.SEVERE, e.getMessage(), e);
              }
          }
          LOGGER.exiting(true);
          return true;
      }
docs: Determine if the remote proxy supports the servlet in question by sending a http request to the remote. The
  proxy configuration could also be used to make a similar decision. This approach allows the remote to use a
  servlet which implements the same functionality as the `servlet` expected but does not necessarily reside in the
  same namespace. This method expects the `servlet` to return HTTP 200 OK as an indication that the remote proxy
  supports the `servlet` in question.
  
  @param servlet
  the {@link HttpServlet} to ping
  @return <code>true</code> or <code>false</code>