code: protected DefaultCouchbaseEnvironment.Builder initializeEnvironmentBuilder(
  			CouchbaseProperties properties) {
  		CouchbaseProperties.Endpoints endpoints = properties.getEnv().getEndpoints();
  		CouchbaseProperties.Timeouts timeouts = properties.getEnv().getTimeouts();
  		DefaultCouchbaseEnvironment.Builder builder = DefaultCouchbaseEnvironment
  				.builder();
  		if (timeouts.getConnect() != null) {
  			builder = builder.connectTimeout(timeouts.getConnect().toMillis());
  		}
  		builder = builder.keyValueServiceConfig(
  				KeyValueServiceConfig.create(endpoints.getKeyValue()));
  		if (timeouts.getKeyValue() != null) {
  			builder = builder.kvTimeout(timeouts.getKeyValue().toMillis());
  		}
  		if (timeouts.getQuery() != null) {
  			builder = builder.queryTimeout(timeouts.getQuery().toMillis());
  			builder = builder.queryServiceConfig(getQueryServiceConfig(endpoints));
  			builder = builder.viewServiceConfig(getViewServiceConfig(endpoints));
  		}
  		if (timeouts.getSocketConnect() != null) {
  			builder = builder
  					.socketConnectTimeout((int) timeouts.getSocketConnect().toMillis());
  		}
  		if (timeouts.getView() != null) {
  			builder = builder.viewTimeout(timeouts.getView().toMillis());
  		}
  		CouchbaseProperties.Ssl ssl = properties.getEnv().getSsl();
  		if (ssl.getEnabled()) {
  			builder = builder.sslEnabled(true);
  			if (ssl.getKeyStore() != null) {
  				builder = builder.sslKeystoreFile(ssl.getKeyStore());
  			}
  			if (ssl.getKeyStorePassword() != null) {
  				builder = builder.sslKeystorePassword(ssl.getKeyStorePassword());
  			}
  		}
  		return builder;
  	}
docs: Initialize an environment builder based on the specified settings.
  @param properties the couchbase properties to use
  @return the {@link DefaultCouchbaseEnvironment} builder.