docs: public static SSLSocketFactory getSSLSocketFactoryBySSLRef(String sslRef, Map<String, Object> props, boolean fallbackOnDefault) {
          SSLSupport sslSupportService = tryGetSSLSupport();
  
          if (null == sslSupportService) {
              return null;
          }
  
          JSSEHelper jsseHelper = sslSupportService.getJSSEHelper();
          Properties sslConfig = null;
          try {
              // get the properties from the jsseHelper
              if (sslRef != null) {
                  sslConfig = getSSLConfig(sslRef, jsseHelper);
              }
  
              // override the existed property in SSLConfig
              if (null != props && !props.isEmpty() && sslConfig != null) {
                  Iterator<Map.Entry<String, Object>> iter = props.entrySet().iterator();
                  while (iter.hasNext()) {
                      Map.Entry<String, Object> entry = iter.next();
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, entry.getKey() + "=" + entry.getValue() + " is overriden in SSLConfig=" + sslRef);
                      }
                      sslConfig.put(entry.getKey(), entry.getValue());
                  }
              }
  
              if (sslConfig != null) {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Get the SSLSocketFactory by properties =" + sslConfig);
                  }
                  return sslSupportService.getSSLSocketFactory(sslConfig);
              } else {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Get the default SSLSocketFactory");
                  }
                  return sslSupportService.getSSLSocketFactory();
              }
          } catch (SSLException e) {
              Tr.error(tc, "err.when.get.ssl.config", sslRef);
              throw new IllegalArgumentException(e);
          } catch (Exception e) {
              Tr.error(tc, "err.when.get.ssl.socket.factory", sslRef, e.getMessage());
              throw new IllegalStateException(e);
          }
      }