code: private static List<String> loadFactories(Map<String, String[]> factories) {
          final boolean bTrace = TraceComponent.isAnyTracingEnabled();
          final ChannelFramework cf = ChannelFrameworkFactory.getChannelFramework();
          List<String> createdFactories = new ArrayList<String>(factories.size());
  
          String key, value;
          for (Entry<String, String[]> entry : factories.entrySet()) {
              Class<?> factoryType = cf.lookupFactory(entry.getKey());
              if (null == factoryType) {
                  if (bTrace && tc.isEventEnabled()) {
                      Tr.event(tc, "Delay; missing factory type " + entry.getKey());
                  }
                  delayedConfig.put(FACTORY_PREFIX + entry.getKey(), entry.getValue());
                  createdFactories.add(entry.getKey());
                  continue;
              }
              String[] props = entry.getValue();
              for (int i = 0; i < props.length; i++) {
                  key = extractKey(props[i]);
                  value = extractValue(props[i]);
                  if (null != key && null != value) {
                      try {
                          cf.updateChannelFactoryProperty(factoryType, key, value);
                      } catch (ChannelFactoryException e) {
                          FFDCFilter.processException(e, "ChannelUtils.loadFactories",
                                                      "update", new Object[] { entry, cf });
                          if (bTrace && tc.isEventEnabled()) {
                              Tr.event(tc, "Unable to update factory prop; "
                                           + factoryType + " " + key + "=" + value);
                          }
                      }
                  }
              }
              try {
                  // Note: this is a find or create api, not just "get"
                  cf.getChannelFactory(factoryType);
                  createdFactories.add(entry.getKey());
              } catch (ChannelFactoryException e) {
                  // ignore it
              }
          } // end-factories
  
          return createdFactories;
      }
docs: Load channel factories in the framework based on the provided factory
  configurations.
  
  @param factories
  @return List<String> - factories created successfully