Search in sources :

Example 1 with ApiName

use of software.amazon.awssdk.core.ApiName in project aws-glue-schema-registry by awslabs.

the class UserAgentRequestInterceptorTest method test_UserAgentInterceptor_ReturnsSdkRequestWithUserAgent.

@ParameterizedTest
@MethodSource("getClientConfigTestCases")
void test_UserAgentInterceptor_ReturnsSdkRequestWithUserAgent(GlueSchemaRegistryConfiguration config, String expectedName) {
    AwsCredentialsProvider mockAwsCredentialsProvider = mock(AwsCredentialsProvider.class);
    AWSSchemaRegistryClient awsSchemaRegistryClient = new AWSSchemaRegistryClient(mockAwsCredentialsProvider, config);
    AWSSchemaRegistryClient.UserAgentRequestInterceptor userAgentRequestInterceptor = awsSchemaRegistryClient.new UserAgentRequestInterceptor();
    Context.ModifyRequest modifyRequest = mock(Context.ModifyRequest.class);
    GetSchemaVersionRequest glueRequest = GetSchemaVersionRequest.builder().build();
    doReturn(glueRequest).when(modifyRequest).request();
    SdkRequest sdkHttpRequest = userAgentRequestInterceptor.modifyRequest(modifyRequest, null);
    assertNotNull(sdkHttpRequest);
    assertTrue(sdkHttpRequest.overrideConfiguration().isPresent());
    ApiName actualApiName = sdkHttpRequest.overrideConfiguration().get().apiNames().get(0);
    assertEquals(MavenPackaging.VERSION, actualApiName.version());
    assertEquals(expectedName, actualApiName.name());
}
Also used : Context(software.amazon.awssdk.core.interceptor.Context) SdkRequest(software.amazon.awssdk.core.SdkRequest) ApiName(software.amazon.awssdk.core.ApiName) AwsCredentialsProvider(software.amazon.awssdk.auth.credentials.AwsCredentialsProvider) GetSchemaVersionRequest(software.amazon.awssdk.services.glue.model.GetSchemaVersionRequest) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 2 with ApiName

use of software.amazon.awssdk.core.ApiName in project aws-sdk-java-v2 by aws.

the class ApplyUserAgentStage method getUserAgent.

private StringBuilder getUserAgent(SdkClientConfiguration config, List<ApiName> requestApiNames) {
    String userDefinedPrefix = config.option(SdkAdvancedClientOption.USER_AGENT_PREFIX);
    String awsExecutionEnvironment = SdkSystemSetting.AWS_EXECUTION_ENV.getStringValue().orElse(null);
    StringBuilder userAgent = new StringBuilder(StringUtils.trimToEmpty(userDefinedPrefix));
    String systemUserAgent = SdkUserAgent.create().userAgent();
    if (!systemUserAgent.equals(userDefinedPrefix)) {
        userAgent.append(COMMA).append(systemUserAgent);
    }
    String internalUserAgent = StringUtils.trimToEmpty(clientConfig.option(INTERNAL_USER_AGENT));
    if (!internalUserAgent.isEmpty()) {
        userAgent.append(SPACE).append(internalUserAgent);
    }
    if (!StringUtils.isEmpty(awsExecutionEnvironment)) {
        userAgent.append(SPACE).append(AWS_EXECUTION_ENV_PREFIX).append(awsExecutionEnvironment.trim());
    }
    ClientType clientType = clientConfig.option(SdkClientOption.CLIENT_TYPE);
    if (clientType == null) {
        clientType = ClientType.UNKNOWN;
    }
    userAgent.append(SPACE).append(IO).append("/").append(StringUtils.lowerCase(clientType.name()));
    String clientName = clientName(clientType);
    userAgent.append(SPACE).append(HTTP).append("/").append(SdkHttpUtils.urlEncode(clientName));
    String retryMode = config.option(SdkClientOption.RETRY_POLICY).retryMode().toString();
    userAgent.append(SPACE).append(CONFIG).append("/").append(RETRY_MODE).append("/").append(StringUtils.lowerCase(retryMode));
    if (!requestApiNames.isEmpty()) {
        String requestUserAgent = requestApiNames.stream().map(n -> n.name() + "/" + n.version()).collect(Collectors.joining(" "));
        userAgent.append(SPACE).append(requestUserAgent);
    }
    return userAgent;
}
Also used : StringUtils(software.amazon.awssdk.utils.StringUtils) SdkHttpUtils(software.amazon.awssdk.utils.http.SdkHttpUtils) ClientType(software.amazon.awssdk.core.ClientType) SdkClientConfiguration(software.amazon.awssdk.core.client.config.SdkClientConfiguration) HttpClientDependencies(software.amazon.awssdk.core.internal.http.HttpClientDependencies) RequestExecutionContext(software.amazon.awssdk.core.internal.http.RequestExecutionContext) SdkAdvancedClientOption(software.amazon.awssdk.core.client.config.SdkAdvancedClientOption) Collectors(java.util.stream.Collectors) SdkSystemSetting(software.amazon.awssdk.core.SdkSystemSetting) INTERNAL_USER_AGENT(software.amazon.awssdk.core.client.config.SdkClientOption.INTERNAL_USER_AGENT) List(java.util.List) ApiName(software.amazon.awssdk.core.ApiName) SdkUserAgent(software.amazon.awssdk.core.util.SdkUserAgent) SdkClientOption(software.amazon.awssdk.core.client.config.SdkClientOption) SdkInternalApi(software.amazon.awssdk.annotations.SdkInternalApi) SdkHttpFullRequest(software.amazon.awssdk.http.SdkHttpFullRequest) MutableRequestToRequestPipeline(software.amazon.awssdk.core.internal.http.pipeline.MutableRequestToRequestPipeline) ClientType(software.amazon.awssdk.core.ClientType)

Aggregations

ApiName (software.amazon.awssdk.core.ApiName)2 List (java.util.List)1 Collectors (java.util.stream.Collectors)1 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)1 MethodSource (org.junit.jupiter.params.provider.MethodSource)1 SdkInternalApi (software.amazon.awssdk.annotations.SdkInternalApi)1 AwsCredentialsProvider (software.amazon.awssdk.auth.credentials.AwsCredentialsProvider)1 ClientType (software.amazon.awssdk.core.ClientType)1 SdkRequest (software.amazon.awssdk.core.SdkRequest)1 SdkSystemSetting (software.amazon.awssdk.core.SdkSystemSetting)1 SdkAdvancedClientOption (software.amazon.awssdk.core.client.config.SdkAdvancedClientOption)1 SdkClientConfiguration (software.amazon.awssdk.core.client.config.SdkClientConfiguration)1 SdkClientOption (software.amazon.awssdk.core.client.config.SdkClientOption)1 INTERNAL_USER_AGENT (software.amazon.awssdk.core.client.config.SdkClientOption.INTERNAL_USER_AGENT)1 Context (software.amazon.awssdk.core.interceptor.Context)1 HttpClientDependencies (software.amazon.awssdk.core.internal.http.HttpClientDependencies)1 RequestExecutionContext (software.amazon.awssdk.core.internal.http.RequestExecutionContext)1 MutableRequestToRequestPipeline (software.amazon.awssdk.core.internal.http.pipeline.MutableRequestToRequestPipeline)1 SdkUserAgent (software.amazon.awssdk.core.util.SdkUserAgent)1 SdkHttpFullRequest (software.amazon.awssdk.http.SdkHttpFullRequest)1