title: AmazonS3ClientBuilder.defaultClient() fails to account for region?
body: <p>The Amazon Java SDK has marked the Constructors for <code>AmazonS3Client</code> deprecated in favor of some <code>AmazonS3ClientBuilder.defaultClient()</code>.  Following the recommendation, though, does not result in an AmazonS3 client that works the same.  In particular, the client has somehow failed to account for Region.  If you run the tests below, the <code>thisFails</code> test demonstrates the problem.</p>
  
  <pre><code>public class S3HelperTest {
    @Test
    public void thisWorks() throws Exception {
      AmazonS3 s3Client = new AmazonS3Client();  // this call is deprecated
      s3Client.setS3ClientOptions(S3ClientOptions.builder().setPathStyleAccess(true).build());
      assertNotNull(s3Client);
    }
  
    @Test
    public void thisFails() throws Exception {
      AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
      /*
       * The following line throws like com.amazonaws.SdkClientException:
       * Unable to find a region via the region provider chain. Must provide an explicit region in the builder or
       * setup environment to supply a region.
       */
      s3Client.setS3ClientOptions(S3ClientOptions.builder().setPathStyleAccess(true).build());
    }
  }
  
  com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.
      at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:371)
      at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:337)
      at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
      at com.amazonaws.services.s3.AmazonS3ClientBuilder.defaultClient(AmazonS3ClientBuilder.java:54)
      at com.climate.tenderfoot.service.S3HelperTest.thisFails(S3HelperTest.java:21)
      ...
  </code></pre>
  
  <p>Is this an AWS SDK Bug?  Is there some "region default provider chain" or some mechanism to derive the region from the Environment and set it into the client?  It seems really weak that the method to replace the deprecation doesn't result in the same capability.</p>