code: @Override
      public void registerFactories(ChannelFactoryProvider provider) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
              Tr.event(tc, "Register factory provider; " + provider.getClass().getName());
          }
          synchronized (this.factories) {
              for (Entry<String, Class<? extends ChannelFactory>> entry : provider.getTypes().entrySet()) {
                  this.providers.put(entry.getKey(), provider);
                  Class<? extends ChannelFactory> newFactory = entry.getValue();
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                      Class<? extends ChannelFactory> prevFactory = this.factories.get(entry.getKey());
                      if (null != prevFactory && newFactory != prevFactory) {
                          Tr.event(tc, "WARNING: overlaying existing factory: " + prevFactory);
                      }
                  }
                  this.factories.put(entry.getKey(), newFactory);
              }
          } // end-sync
  
          // now that we have a new factory type, tell ChannelUtils to process
          // any delayed config that might be waiting for it
          ChannelUtils.loadConfig(null);
      }
docs: Set a factory provider.
  
  @param provider