code: public static ClientHttpRequestFactory create(ClientOptions options) {
  
  		Assert.notNull(options, "ClientOptions must not be null");
  
  		try {
  			if (HTTP_COMPONENTS_PRESENT) {
  				logger.info("Using Apache HttpComponents HttpClient for HTTP connections");
  				return HttpComponents.usingHttpComponents(options);
  			}
  
  			if (OKHTTP3_PRESENT) {
  				logger.info("Using OkHttp3 for HTTP connections");
  				return OkHttp3.usingOkHttp3(options);
  			}
  
  			if (NETTY_PRESENT) {
  				logger.info("Using Netty for HTTP connections");
  				return Netty.usingNetty(options);
  			}
  		} catch (GeneralSecurityException | IOException e) {
  			logger.warn("Error configuring HTTP connections", e);
  		}
  
  		logger.info("Defaulting to java.net.HttpUrlConnection for HTTP connections");
  		return HttpURLConnection.usingJdk(options);
  	}
docs: Create a {@link ClientHttpRequestFactory} for the given {@link ClientOptions}.
  
  @param options must not be {@literal null}
  @return a new {@link ClientHttpRequestFactory}. Lifecycle beans must be initialized
  after obtaining.