Code review comment: Does this get the value for an environment variable by the name `AZURE_EVENT_HUBS_CONNECTION_STRING`? I don't believe any of the other languages support reading from env variables at the moment. Was this feature ported over from Track1?

Code before review:
public EventHubClient build() {
configuration = configuration == null ? ConfigurationManager.getConfiguration().clone() : configuration;
if (credentials == null) {
final String connectionString = configuration.get(AZURE_EVENT_HUBS_CONNECTION_STRING);
if (ImplUtils.isNullOrEmpty(connectionString)) {
throw new IllegalArgumentException("Credentials have not been set using 'EventHubClientBuilder.credentials(String)'"
+ "EventHubClientBuilder.credentials(String, String, TokenCredential). And the connection string is"
+ "not set in the '" + AZURE_EVENT_HUBS_CONNECTION_STRING + "' environment variable.");
}
credential(connectionString);
}
if (timeout == null) {
timeout = Duration.ofSeconds(60);
}
final ReactorProvider provider = new ReactorProvider();
final ReactorHandlerProvider handlerProvider = new ReactorHandlerProvider(provider);
if (retry == null) {
retry = Retry.getDefaultRetry();
}
proxyConfiguration = constructDefaultProxyConfiguration(configuration);
if (scheduler == null) {
scheduler = Schedulers.elastic();
}
final CBSAuthorizationType authorizationType = credentials instanceof EventHubSharedAccessKeyCredential
? CBSAuthorizationType.SHARED_ACCESS_SIGNATURE
: CBSAuthorizationType.JSON_WEB_TOKEN;
final ConnectionOptions parameters = new ConnectionOptions(host, eventHubPath, credentials,
authorizationType, timeout, transport, retry, proxyConfiguration, scheduler);
return new EventHubClient(parameters, provider, handlerProvider);
}

Line under review: final String connectionString = configuration.get(AZURE_EVENT_HUBS_CONNECTION_STRING);

Code after addressing the review:
public EventHubClient build() {
configuration = configuration == null ? ConfigurationManager.getConfiguration().clone() : configuration;
if (credentials == null) {
final String connectionString = configuration.get(AZURE_EVENT_HUBS_CONNECTION_STRING);
if (ImplUtils.isNullOrEmpty(connectionString)) {
throw new IllegalArgumentException("Credentials have not been set using 'EventHubClientBuilder.credentials(String)'"
+ "EventHubClientBuilder.credentials(String, String, TokenCredential). And the connection string is"
+ "not set in the '" + AZURE_EVENT_HUBS_CONNECTION_STRING + "' environment variable.");
}
credential(connectionString);
}
if (timeout == null) {
timeout = Duration.ofSeconds(60);
}
final ReactorProvider provider = new ReactorProvider();
final ReactorHandlerProvider handlerProvider = new ReactorHandlerProvider(provider);
if (retry == null) {
retry = Retry.getDefaultRetry();
}
proxyConfiguration = constructDefaultProxyConfiguration(configuration);
if (scheduler == null) {
scheduler = Schedulers.elastic();
}
final CBSAuthorizationType authorizationType = credentials instanceof EventHubSharedAccessKeyCredential
? CBSAuthorizationType.SHARED_ACCESS_SIGNATURE
: CBSAuthorizationType.JSON_WEB_TOKEN;
final ConnectionOptions parameters = new ConnectionOptions(host, eventHubPath, credentials,
authorizationType, timeout, transport, retry, proxyConfiguration, scheduler);
return new EventHubClient(parameters, provider, handlerProvider);
}