1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 package software.amazon.awssdk.crt.s3; 6 7 import software.amazon.awssdk.crt.auth.credentials.Credentials; 8 9 /** 10 * The Java object for Native code to invoke. 11 */ 12 public class S3ExpressCredentialsProvider { 13 14 private S3ExpressCredentialsProviderHandler handler; 15 S3ExpressCredentialsProvider(S3ExpressCredentialsProviderHandler handler)16 public S3ExpressCredentialsProvider(S3ExpressCredentialsProviderHandler handler) { 17 this.handler = handler; 18 } 19 getS3ExpressCredentials(S3ExpressCredentialsProperties properties, Credentials origCredentials, long nativeHandler)20 public void getS3ExpressCredentials(S3ExpressCredentialsProperties properties, Credentials origCredentials, long nativeHandler) { 21 handler.getS3ExpressCredentials(properties, origCredentials).whenComplete((result, ex) -> { 22 if(ex != null) { 23 s3expressCredentialsProviderGetCredentialsCompleted(nativeHandler, null); 24 } else { 25 s3expressCredentialsProviderGetCredentialsCompleted(nativeHandler, result); 26 } 27 }); 28 } 29 destroyProvider()30 public void destroyProvider() throws Exception { 31 /* Block until handler finishes shutdown. It doesn't matter to wait for shutdown */ 32 this.handler.destroyProvider().get(); 33 } 34 35 /******************************************************************************* 36 * native methods 37 ******************************************************************************/ s3expressCredentialsProviderGetCredentialsCompleted(long nativeHandler, Credentials credentials)38 private static native void s3expressCredentialsProviderGetCredentialsCompleted(long nativeHandler, Credentials credentials); 39 } 40