code: private static synchronized Map<String, List<String>> load(Map<String, Object> config, boolean start, boolean restart) {
          final boolean bTrace = TraceComponent.isAnyTracingEnabled();
          if (bTrace && tc.isDebugEnabled()) {
              Tr.debug(tc, "Loading CHFW config from " + config);
          }
  
          Map<String, Map<String, String[]>> parsed = extractConfig(config);
  
          // if a restart is set, then stop and remove existing chains
          // that may be running already
          if (restart) {
              unloadChains(parsed.get("chains").keySet().iterator());
          }
  
          // handle any factory config first
          List<String> createdFactories = loadFactories(parsed.get("factories"));
  
          // load any endpoints
          List<String> createdEndpoints = loadEndPoints(parsed.get("endpoints"));
  
          // now load any channels
          List<String> createdChannels = loadChannels(parsed.get("channels"));
  
          // now load any chains
          List<String> createdChains = loadChains(parsed.get("chains"), start, restart);
  
          // now load the chain group definitions
          List<String> createdGroups = loadGroups(parsed.get("groups"), start, restart);
  
          Map<String, List<String>> rc = new HashMap<String, List<String>>();
          rc.put("factory", createdFactories);
          rc.put("channel", createdChannels);
          rc.put("chain", createdChains);
          rc.put("group", createdGroups);
          rc.put("endpoint", createdEndpoints);
          return rc;
      }
docs: Load and possibly start the provided configuration information.
  
  @param config
  @param start
  @param restart
  @return Map<String,List<String>>
  @see ChannelUtils#loadConfig(Dictionary)
  @see ChannelUtils#startConfig(Dictionary, boolean)