code: public static CommunicationHandler newHandler(String url, String user,
  			String pass, SSLSocketFactory sslSocketFactory, HostnameVerifier verifier, int initialConnectionTimeout)
  			throws InitializationException {
  
  		String handler = System.getProperty(HANDLER_PROPERTY);
  
  		if (handler != null) {
  			return newHandlerPreference(handler, url, user, pass, sslSocketFactory, verifier, initialConnectionTimeout);
  		} else {
  			return newHandlerAuto(url, user, pass, sslSocketFactory, verifier, initialConnectionTimeout);
  		}
  	}
docs: Create a {@link CommunicationHandler} instance.
  
  The {@link CommunicationHandler} implementation returned by this method
  depends on the system property ifmapj.communication.handler. If it is
  set to <b>java</b> an instance of {@link JavaCommunicationHandler} is
  returned, if set to <b>apache</b> instead, {@link ApacheCoreCommunicationHandler}
  is used. If it is not set, either one is returned, preferring
  {@link ApacheCoreCommunicationHandler}.
  
  @param url The url to connect to.
  @param user for basic auth, if user != null -> pass != null
  @param pass for basic auth, if pass != null -> user != null
  @param sslSocketFactory the {@link SSLSocketFactory} to be used
  @param verifier
  @param initialConnectionTimeout the initial connection timeout in milliseconds
  @return the new {@link CommunicationHandler}
  @throws InitializationException