docs: private static void configureEngine(SSLEngine engine, FlowType type, SSLLinkConfig config, SSLConnectionLink connLink) {
          // Update the engine with the latest config parameters.
          engine.setEnabledCipherSuites(config.getEnabledCipherSuites(engine));
  
          //Set the configured protocol on the SSLEngine
          String protocol = config.getSSLProtocol();
          if (protocol != null) {
              engine.setEnabledProtocols(new String[] { protocol });
          }
  
          if (type == FlowType.INBOUND) {
              engine.setUseClientMode(false);
              boolean flag = config.getBooleanProperty(Constants.SSLPROP_CLIENT_AUTHENTICATION);
              // When on z/OS, need to check the MutualAuthCBINDCheck property
              // to force client authentication
              //TODO: z/os
              //            if (PlatformHelperFactory.getPlatformHelper().isZOS() &&
              //            	 UserRegistryConfig.TYPE_LOCAL_OS.equals(SecurityObjectLocator.getSecurityConfig().getActiveUserRegistry().getType()))
              //            {
              //            	Boolean cbindCheckEnabled = Boolean.FALSE;
              //
              //            	//get the endpoint name off of the thread
              //                Map connectionInfo = JSSEHelper.getInstance().getInboundConnectionInfo();
              //                if (connectionInfo != null) {
              //                    String endpointName = (String) connectionInfo.get(Constants.CONNECTION_INFO_ENDPOINT_NAME);
              //                    //only enforce cbind check on web requests
              //                    if (endpointName != null && endpointName.startsWith("HTTP")) {
              //                    	if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              //                            Tr.debug(tc, "The endpoint, " + endpointName + ", is web and we are on z/OS. Proceeding to get the mutualAuthCbindCheck property.");
              //                        }
              //		                try {
              //		                    // Get cbind check flag using reflection
              //		                    final String className = "com.ibm.ws.security.zOS.NativeConfiguration";
              //		                    final Class<?> zNativeConfigClass = Class.forName(className);
              //		                    final Method getConfigMethod = zNativeConfigClass.getMethod("getConfig", (java.lang.Class[]) null);
              //		                    final Object configInstance = getConfigMethod.invoke((java.lang.Class[]) null, (java.lang.Object[]) null);
              //		                    final Method cbindCheckMethod = zNativeConfigClass.getMethod("isMutualAuthCBINDCheckEnabled", (java.lang.Class[]) null);
              //		                    cbindCheckEnabled = (Boolean) cbindCheckMethod.invoke(configInstance, (java.lang.Object[]) null);
              //		                } catch (Exception e) {
              //		                    if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              //		                        Tr.debug(tc, "No class, object, or method found for CBIND check", new Object[] {e});
              //		                    FFDCFilter.processException(e, CLASS_NAME, "1237");
              //		                }
              //		                if (cbindCheckEnabled.booleanValue()) {
              //		                    flag = cbindCheckEnabled.booleanValue();
              //		                    if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              //		                        Tr.debug(tc, "The mutualAuthCBINDCheck is true, so hard-coded setNeedClientAuth to true.");}
              //		                }
              //		            }
              //                }
              //            }
  
              engine.setNeedClientAuth(flag);
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Client auth needed is " + engine.getNeedClientAuth());
              }
              if (!flag) {
                  // Client auth set to false, check client auth supported
                  flag = config.getBooleanProperty(Constants.SSLPROP_CLIENT_AUTHENTICATION_SUPPORTED);
                  engine.setWantClientAuth(flag);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Client auth supported is " + engine.getWantClientAuth());
                  }
              }
              // enable ALPN support if this is for an inbound connection
              AlpnSupportUtils.registerAlpnSupport(connLink, engine);
  
          } else {
              // Update engine with client side specific config parameters.
              engine.setUseClientMode(true);
          }
  
          try {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Calling beginHandshake on engine");
              }
              engine.beginHandshake();
          } catch (SSLException se) {
              // no FFDC required
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(tc, "Error while starting handshake; " + se);
              }
          }
      }