docs: @Modified
      protected void modified(Map<String, Object> config) {
          boolean endpointEnabled = MetatypeUtils.parseBoolean(HttpServiceConstants.ENPOINT_FPID_ALIAS,
                                                               HttpServiceConstants.ENABLED,
                                                               config.get(HttpServiceConstants.ENABLED),
                                                               true);
  
          onError = (OnError) config.get(OnErrorUtil.CFG_KEY_ON_ERROR);
  
          // Find and resolve host names.
          host = ((String) config.get("host")).toLowerCase(Locale.ENGLISH);
          String cfgDefaultHost = ((String) config.get(HttpServiceConstants.DEFAULT_HOSTNAME)).toLowerCase(Locale.ENGLISH);
          resolvedHostName = resolveHostName(host, cfgDefaultHost);
          if (resolvedHostName == null) {
              if (HttpServiceConstants.WILDCARD.equals(host)) {
                  // On some platforms, or if the networking stack is disabled:
                  // getNetworkInterfaces will not be able to return a useful value.
                  // If the wildcard is specified (without a fully qualified value for
                  // the defaultHostName), we have to be able to fall back to localhost
                  // without throwing an error.
                  resolvedHostName = HttpServiceConstants.LOCALHOST;
              } else {
                  // If the host name was configured to something other than the wildcard, and
                  // that host name value can not be resolved back to a NIC on this machine,
                  // issue an error message. The endpoint will not be started until the
                  // configuration is corrected (the bind would have failed, anyway..)
  
                  // Z changes to support VIPARANGE and DVIPA. yeah, me neither.
                  // endpointEnabled = false;
                  // Tr.error(tc, "unresolveableHost", host, name);
                  // if (onError == OnError.FAIL) {
                  //    shutdownFramework();
                  // }
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(this, tc, "unresolved hostname right now: " + host + "setting resolvedHostName to this host for VIPA");
                  }
                  resolvedHostName = host;
              }
          }
  
          //Find and resolve the protocolVersion if has been defined.
          protocolVersion = (String) config.get("protocolVersion");
  
          httpPort = MetatypeUtils.parseInteger(HttpServiceConstants.ENPOINT_FPID_ALIAS, "httpPort",
                                                config.get("httpPort"),
                                                -1);
  
          httpsPort = MetatypeUtils.parseInteger(HttpServiceConstants.ENPOINT_FPID_ALIAS, "httpsPort",
                                                 config.get("httpsPort"),
                                                 -1);
  
          String id = (String) config.get("id");
          Object cid = config.get("component.id");
  
          // Notification Topics for chain start/stop
          topicString = HttpServiceConstants.TOPIC_PFX + id + "/" + cid;
  
          if (httpPort < 0 && httpsPort < 0) {
              endpointEnabled = false;
              Tr.warning(tc, "missingPorts.endpointDisabled", id);
          }
  
          // Store the configuration
          endpointConfig = config;
  
          processHttpChainWork(endpointEnabled, false);
      }