use of software.amazon.awssdk.profiles.ProfileFile in project aws-sdk-java-v2 by aws.
the class AwsDefaultClientBuilder method resolveUseFipsFromDefaultProvider.
/**
* Load the dualstack endpoint setting from the default provider logic.
*/
private Boolean resolveUseFipsFromDefaultProvider(SdkClientConfiguration config) {
ProfileFile profileFile = config.option(SdkClientOption.PROFILE_FILE);
String profileName = config.option(SdkClientOption.PROFILE_NAME);
return FipsEnabledProvider.builder().profileFile(() -> profileFile).profileName(profileName).build().isFipsEnabled().orElse(null);
}
use of software.amazon.awssdk.profiles.ProfileFile in project aws-sdk-java-v2 by aws.
the class AwsDefaultClientBuilder method regionFromDefaultProvider.
/**
* Load the region from the default region provider if enabled.
*/
private Region regionFromDefaultProvider(SdkClientConfiguration config) {
Boolean defaultRegionDetectionEnabled = config.option(AwsAdvancedClientOption.ENABLE_DEFAULT_REGION_DETECTION);
if (defaultRegionDetectionEnabled != null && !defaultRegionDetectionEnabled) {
throw new IllegalStateException("No region was configured, and use-region-provider-chain was disabled.");
}
ProfileFile profileFile = config.option(SdkClientOption.PROFILE_FILE);
String profileName = config.option(SdkClientOption.PROFILE_NAME);
return DefaultAwsRegionProviderChain.builder().profileFile(() -> profileFile).profileName(profileName).build().getRegion();
}
use of software.amazon.awssdk.profiles.ProfileFile in project aws-sdk-java-v2 by aws.
the class DefaultClientBuilderTest method buildIncludesClientOverrides.
@Test
public void buildIncludesClientOverrides() {
List<ExecutionInterceptor> interceptors = new ArrayList<>();
ExecutionInterceptor interceptor = new ExecutionInterceptor() {
};
interceptors.add(interceptor);
RetryPolicy retryPolicy = RetryPolicy.builder().build();
Map<String, List<String>> headers = new HashMap<>();
List<String> headerValues = new ArrayList<>();
headerValues.add("value");
headers.put("client-override-test", headerValues);
List<MetricPublisher> metricPublishers = new ArrayList<>();
MetricPublisher metricPublisher = new MetricPublisher() {
@Override
public void publish(MetricCollection metricCollection) {
}
@Override
public void close() {
}
};
metricPublishers.add(metricPublisher);
ExecutionAttribute<String> execAttribute = new ExecutionAttribute<>("test");
ExecutionAttributes executionAttributes = ExecutionAttributes.builder().put(execAttribute, "value").build();
Signer signer = (request, execAttributes) -> request;
String suffix = "suffix";
String prefix = "prefix";
Duration apiCallTimeout = Duration.ofMillis(42);
Duration apiCallAttemptTimeout = Duration.ofMillis(43);
ProfileFile profileFile = ProfileFile.builder().content(new StringInputStream("")).type(ProfileFile.Type.CONFIGURATION).build();
String profileName = "name";
ClientOverrideConfiguration overrideConfig = ClientOverrideConfiguration.builder().executionInterceptors(interceptors).retryPolicy(retryPolicy).headers(headers).putAdvancedOption(SIGNER, signer).putAdvancedOption(USER_AGENT_SUFFIX, suffix).putAdvancedOption(USER_AGENT_PREFIX, prefix).apiCallTimeout(apiCallTimeout).apiCallAttemptTimeout(apiCallAttemptTimeout).putAdvancedOption(DISABLE_HOST_PREFIX_INJECTION, Boolean.TRUE).defaultProfileFile(profileFile).defaultProfileName(profileName).metricPublishers(metricPublishers).executionAttributes(executionAttributes).putAdvancedOption(ENDPOINT_OVERRIDDEN_OVERRIDE, Boolean.TRUE).build();
SdkClientConfiguration config = testClientBuilder().overrideConfiguration(overrideConfig).build().clientConfiguration;
assertThat(config.option(EXECUTION_INTERCEPTORS)).contains(interceptor);
assertThat(config.option(RETRY_POLICY)).isEqualTo(retryPolicy);
assertThat(config.option(ADDITIONAL_HTTP_HEADERS).get("client-override-test")).isEqualTo(headerValues);
assertThat(config.option(SIGNER)).isEqualTo(signer);
assertThat(config.option(USER_AGENT_SUFFIX)).isEqualTo(suffix);
assertThat(config.option(USER_AGENT_PREFIX)).isEqualTo(prefix);
assertThat(config.option(API_CALL_TIMEOUT)).isEqualTo(apiCallTimeout);
assertThat(config.option(API_CALL_ATTEMPT_TIMEOUT)).isEqualTo(apiCallAttemptTimeout);
assertThat(config.option(DISABLE_HOST_PREFIX_INJECTION)).isEqualTo(Boolean.TRUE);
assertThat(config.option(PROFILE_FILE)).isEqualTo(profileFile);
assertThat(config.option(PROFILE_NAME)).isEqualTo(profileName);
assertThat(config.option(METRIC_PUBLISHERS)).contains(metricPublisher);
assertThat(config.option(EXECUTION_ATTRIBUTES).getAttribute(execAttribute)).isEqualTo("value");
assertThat(config.option(ENDPOINT_OVERRIDDEN)).isEqualTo(Boolean.TRUE);
}
use of software.amazon.awssdk.profiles.ProfileFile in project aws-sdk-java-v2 by aws.
the class DefaultClientBuilderTest method overrideConfigurationReturnsSetValues.
@Test
public void overrideConfigurationReturnsSetValues() {
List<ExecutionInterceptor> interceptors = new ArrayList<>();
RetryPolicy retryPolicy = RetryPolicy.builder().build();
Map<String, List<String>> headers = new HashMap<>();
List<MetricPublisher> metricPublishers = new ArrayList<>();
ExecutionAttributes executionAttributes = new ExecutionAttributes();
Signer signer = (request, execAttributes) -> request;
String suffix = "suffix";
String prefix = "prefix";
Duration apiCallTimeout = Duration.ofMillis(42);
Duration apiCallAttemptTimeout = Duration.ofMillis(43);
ProfileFile profileFile = ProfileFile.builder().content(new StringInputStream("")).type(ProfileFile.Type.CONFIGURATION).build();
String profileName = "name";
ClientOverrideConfiguration overrideConfig = ClientOverrideConfiguration.builder().executionInterceptors(interceptors).retryPolicy(retryPolicy).headers(headers).putAdvancedOption(SIGNER, signer).putAdvancedOption(USER_AGENT_SUFFIX, suffix).putAdvancedOption(USER_AGENT_PREFIX, prefix).apiCallTimeout(apiCallTimeout).apiCallAttemptTimeout(apiCallAttemptTimeout).putAdvancedOption(DISABLE_HOST_PREFIX_INJECTION, Boolean.TRUE).defaultProfileFile(profileFile).defaultProfileName(profileName).metricPublishers(metricPublishers).executionAttributes(executionAttributes).putAdvancedOption(ENDPOINT_OVERRIDDEN_OVERRIDE, Boolean.TRUE).build();
TestClientBuilder builder = testClientBuilder().overrideConfiguration(overrideConfig);
ClientOverrideConfiguration builderOverrideConfig = builder.overrideConfiguration();
assertThat(builderOverrideConfig.executionInterceptors()).isEqualTo(interceptors);
assertThat(builderOverrideConfig.retryPolicy()).isEqualTo(Optional.of(retryPolicy));
assertThat(builderOverrideConfig.headers()).isEqualTo(headers);
assertThat(builderOverrideConfig.advancedOption(SIGNER)).isEqualTo(Optional.of(signer));
assertThat(builderOverrideConfig.advancedOption(USER_AGENT_SUFFIX)).isEqualTo(Optional.of(suffix));
assertThat(builderOverrideConfig.apiCallTimeout()).isEqualTo(Optional.of(apiCallTimeout));
assertThat(builderOverrideConfig.apiCallAttemptTimeout()).isEqualTo(Optional.of(apiCallAttemptTimeout));
assertThat(builderOverrideConfig.advancedOption(DISABLE_HOST_PREFIX_INJECTION)).isEqualTo(Optional.of(Boolean.TRUE));
assertThat(builderOverrideConfig.defaultProfileFile()).isEqualTo(Optional.of(profileFile));
assertThat(builderOverrideConfig.defaultProfileName()).isEqualTo(Optional.of(profileName));
assertThat(builderOverrideConfig.metricPublishers()).isEqualTo(metricPublishers);
assertThat(builderOverrideConfig.executionAttributes().getAttributes()).isEqualTo(executionAttributes.getAttributes());
assertThat(builderOverrideConfig.advancedOption(ENDPOINT_OVERRIDDEN_OVERRIDE)).isEqualTo(Optional.of(Boolean.TRUE));
}
use of software.amazon.awssdk.profiles.ProfileFile in project aws-sdk-java-v2 by aws.
the class EnhancedS3ServiceMetadataTest method differentCombinationOfConfigs_shouldResolveCorrectly.
@Test
public void differentCombinationOfConfigs_shouldResolveCorrectly() {
enhancedMetadata = new EnhancedS3ServiceMetadata().reconfigure(c -> c.putAdvancedOption(ServiceMetadataAdvancedOption.DEFAULT_S3_US_EAST_1_REGIONAL_ENDPOINT, testData.advancedOption));
if (testData.envVarValue != null) {
ENVIRONMENT_VARIABLE_HELPER.set(SdkSystemSetting.AWS_S3_US_EAST_1_REGIONAL_ENDPOINT.environmentVariable(), testData.envVarValue);
}
if (testData.systemProperty != null) {
System.setProperty(SdkSystemSetting.AWS_S3_US_EAST_1_REGIONAL_ENDPOINT.property(), testData.systemProperty);
}
if (testData.configFile != null) {
String diskLocationForFile = diskLocationForConfig(testData.configFile);
Validate.isTrue(Files.isReadable(Paths.get(diskLocationForFile)), diskLocationForFile + " is not readable.");
ProfileFile file = ProfileFile.builder().content(Paths.get(diskLocationForFile)).type(ProfileFile.Type.CONFIGURATION).build();
enhancedMetadata = enhancedMetadata.reconfigure(c -> c.profileFile(() -> file).profileName("regional_s3_endpoint").putAdvancedOption(ServiceMetadataAdvancedOption.DEFAULT_S3_US_EAST_1_REGIONAL_ENDPOINT, testData.advancedOption));
}
URI result = enhancedMetadata.endpointFor(Region.US_EAST_1);
assertThat(result).isEqualTo(testData.expected);
}
Aggregations