org.apache.hadoop.fs.s3a.Constants#software.amazon.awssdk.http.SdkHttpClient源码实例Demo

下面列出了org.apache.hadoop.fs.s3a.Constants#software.amazon.awssdk.http.SdkHttpClient 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

public LambdaWrapper(final CredentialsProvider providerCredentialsProvider,
                     final LogPublisher platformEventsLogger,
                     final CloudWatchLogPublisher providerEventsLogger,
                     final MetricsPublisher providerMetricsPublisher,
                     final SchemaValidator validator,
                     final Serializer serializer,
                     final SdkHttpClient httpClient) {

    this.providerCredentialsProvider = providerCredentialsProvider;
    this.providerCloudWatchProvider = new CloudWatchProvider(this.providerCredentialsProvider, httpClient);
    this.cloudWatchLogsProvider = new CloudWatchLogsProvider(this.providerCredentialsProvider, httpClient);
    this.providerEventsLogger = providerEventsLogger;
    this.platformLambdaLogger = platformEventsLogger;
    this.providerMetricsPublisher = providerMetricsPublisher;
    this.serializer = serializer;
    this.validator = validator;
    this.typeReference = getTypeReference();
}
 
源代码2 项目: quarkus   文件: AbstractAmazonServiceProcessor.java
protected void createClientBuilders(List<AmazonClientTransportsBuildItem> clients,
        BuildProducer<AmazonClientBuilderBuildItem> builderProducer,
        Function<RuntimeValue<SdkHttpClient.Builder>, RuntimeValue<AwsClientBuilder>> syncFunc,
        Function<RuntimeValue<SdkAsyncHttpClient.Builder>, RuntimeValue<AwsClientBuilder>> asyncFunc) {

    for (AmazonClientTransportsBuildItem client : clients) {
        if (configName().equals(client.getAwsClientName())) {
            RuntimeValue<AwsClientBuilder> syncBuilder = null;
            RuntimeValue<AwsClientBuilder> asyncBuilder = null;
            if (client.getSyncClassName().isPresent()) {
                syncBuilder = syncFunc.apply(client.getSyncTransport());
            }
            if (client.getAsyncClassName().isPresent()) {
                asyncBuilder = asyncFunc.apply(client.getAsyncTransport());
            }
            builderProducer.produce(new AmazonClientBuilderBuildItem(client.getAwsClientName(), syncBuilder, asyncBuilder));
        }
    }
}
 
源代码3 项目: aws-sdk-java-v2   文件: SignersIntegrationTest.java
@Test
public void sign_WithoutUsingSdkClient_ThroughExecutionAttributes() throws Exception {
    Aws4Signer signer = Aws4Signer.create();
    SdkHttpFullRequest httpFullRequest = generateBasicRequest();

    // sign the request
    SdkHttpFullRequest signedRequest = signer.sign(httpFullRequest, constructExecutionAttributes());

    SdkHttpClient httpClient = ApacheHttpClient.builder().build();

    HttpExecuteRequest request = HttpExecuteRequest.builder()
                                                   .request(signedRequest)
                                                   .contentStreamProvider(signedRequest.contentStreamProvider().orElse(null))
                                                   .build();

    HttpExecuteResponse response = httpClient.prepareRequest(request)
                                             .call();

    assertEquals("Non success http status code", 200, response.httpResponse().statusCode());

    String actualResult = IoUtils.toUtf8String(response.responseBody().get());
    assertEquals(getExpectedResult(), actualResult);
}
 
源代码4 项目: aws-sdk-java-v2   文件: SignersIntegrationTest.java
@Test
public void test_SignMethod_WithModeledParam_And_WithoutUsingSdkClient() throws Exception {
    Aws4Signer signer = Aws4Signer.create();
    SdkHttpFullRequest httpFullRequest = generateBasicRequest();

    // sign the request
    SdkHttpFullRequest signedRequest = signer.sign(httpFullRequest, constructSignerParams());

    SdkHttpClient httpClient = ApacheHttpClient.builder().build();

    HttpExecuteRequest request = HttpExecuteRequest.builder()
                                                   .request(signedRequest)
                                                   .contentStreamProvider(signedRequest.contentStreamProvider().orElse(null))
                                                   .build();
    HttpExecuteResponse response = httpClient.prepareRequest(request)
                                             .call();

    assertEquals("Non success http status code", 200, response.httpResponse().statusCode());

    String actualResult = IoUtils.toUtf8String(response.responseBody().get());
    assertEquals(getExpectedResult(), actualResult);
}
 
@Test
public void test_SignMethod_WithModeledParam_And_WithoutUsingSdkClient() throws Exception {
    AwsS3V4Signer signer = AwsS3V4Signer.create();
    SdkHttpFullRequest httpFullRequest = generateBasicGetRequest();

    // sign the request
    SdkHttpFullRequest signedRequest = signer.sign(httpFullRequest, constructSignerParams());

    SdkHttpClient httpClient = ApacheHttpClient.builder().build();

    HttpExecuteResponse response = httpClient.prepareRequest(HttpExecuteRequest.builder().request(signedRequest).build())
                                             .call();

    assertEquals("Non success http status code", 200, response.httpResponse().statusCode());

    String actualResult = IoUtils.toUtf8String(response.responseBody().get());
    assertEquals(CONTENT, actualResult);
}
 
@Test
public void test_SignMethod_WithExecutionAttributes_And_WithoutUsingSdkClient() throws Exception {
    AwsS3V4Signer signer = AwsS3V4Signer.create();
    SdkHttpFullRequest httpFullRequest = generateBasicGetRequest();

    // sign the request
    SdkHttpFullRequest signedRequest = signer.sign(httpFullRequest, constructExecutionAttributes());

    SdkHttpClient httpClient = ApacheHttpClient.builder().build();

    HttpExecuteResponse response = httpClient.prepareRequest(HttpExecuteRequest.builder().request(signedRequest).build())
                                             .call();

    assertEquals("Non success http status code", 200, response.httpResponse().statusCode());

    String actualResult = IoUtils.toUtf8String(response.responseBody().get());
    assertEquals(CONTENT, actualResult);
}
 
@Override
protected SdkHttpClient createSdkHttpClient(SdkHttpClientOptions options) {
    ApacheHttpClient.Builder builder = ApacheHttpClient.builder();

    AttributeMap.Builder attributeMap = AttributeMap.builder();

    if (options.tlsTrustManagersProvider() != null) {
        builder.tlsTrustManagersProvider(options.tlsTrustManagersProvider());
    }

    if (options.trustAll()) {
        attributeMap.put(TRUST_ALL_CERTIFICATES, options.trustAll());
    }

    return builder.buildWithDefaults(attributeMap.build());
}
 
@Test
public void routePlannerIsInvoked() throws Exception {
    mockProxyServer.resetToDefaultMappings();
    mockProxyServer.addStubMapping(WireMock.any(urlPathEqualTo("/"))
                                           .willReturn(aResponse().proxiedFrom("http://localhost:" + mockServer.port()))
                                           .build());

    SdkHttpClient client = ApacheHttpClient.builder()
                                           .httpRoutePlanner(
                                               (host, request, context) ->
                                                   new HttpRoute(
                                                       new HttpHost("localhost", mockProxyServer.httpsPort(), "https")
                                                   )
                                           )
                                           .buildWithDefaults(AttributeMap.builder()
                                                                          .put(TRUST_ALL_CERTIFICATES, Boolean.TRUE)
                                                                          .build());

    testForResponseCodeUsingHttps(client, HttpURLConnection.HTTP_OK);

    mockProxyServer.verify(1, RequestPatternBuilder.allRequests());
}
 
源代码9 项目: micronaut-aws   文件: ApacheClientFactory.java
/**
 * @param configuration The Apache client configuration
 * @return An instance of {@link SdkHttpClient}
 */
@Bean(preDestroy = "close")
@Singleton
@Requires(property = UrlConnectionClientFactory.HTTP_SERVICE_IMPL, notEquals = UrlConnectionClientFactory.URL_CONNECTION_SDK_HTTP_SERVICE)
public SdkHttpClient apacheClient(ApacheClientConfiguration configuration) {
    return doCreateClient(configuration);
}
 
源代码10 项目: micronaut-aws   文件: ApacheClientFactory.java
/**
 * @param configuration The Apache client configuration
 * @return An instance of {@link SdkHttpClient}
 */
@Bean(preDestroy = "close")
@Singleton
@Requires(property = UrlConnectionClientFactory.HTTP_SERVICE_IMPL, value = APACHE_SDK_HTTP_SERVICE)
public SdkHttpClient systemPropertyClient(ApacheClientConfiguration configuration) {
    return doCreateClient(configuration);
}
 
源代码11 项目: micronaut-aws   文件: UrlConnectionClientFactory.java
/**
 * Creates an {@link software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient} client if there are no other clients configured.
 *
 * @param configuration The URLConnection client configuration
 * @return An instance of {@link SdkHttpClient}
 */
@Bean(preDestroy = "close")
@Singleton
@Requires(missingBeans = SdkHttpClient.class)
public SdkHttpClient urlConnectionClient(UrlConnectionClientConfiguration configuration) {
    return doCreateClient(configuration);
}
 
public ServiceHandlerWrapper(final CredentialsProvider providerLoggingCredentialsProvider,
                             final CloudWatchLogPublisher providerEventsLogger,
                             final LogPublisher platformEventsLogger,
                             final MetricsPublisher providerMetricsPublisher,
                             final SchemaValidator validator,
                             final Serializer serializer,
                             final ServiceClient client,
                             final SdkHttpClient httpClient) {
    super(providerLoggingCredentialsProvider, platformEventsLogger, providerEventsLogger, providerMetricsPublisher, validator,
          serializer, httpClient);
    this.serviceClient = client;
}
 
/**
 * This .ctor provided for testing
 */
public WrapperOverride(final CredentialsProvider providerLoggingCredentialsProvider,
                       final LogPublisher platformEventsLogger,
                       final CloudWatchLogPublisher providerEventsLogger,
                       final MetricsPublisher providerMetricsPublisher,
                       final SchemaValidator validator,
                       final SdkHttpClient httpClient) {
    super(providerLoggingCredentialsProvider, platformEventsLogger, providerEventsLogger, providerMetricsPublisher, validator,
          new Serializer(), httpClient);
}
 
源代码14 项目: quarkus   文件: KmsRecorder.java
public RuntimeValue<AwsClientBuilder> createSyncBuilder(KmsConfig config, RuntimeValue<SdkHttpClient.Builder> transport) {
    KmsClientBuilder builder = KmsClient.builder();
    if (transport != null) {
        builder.httpClientBuilder(transport.getValue());
    }
    return new RuntimeValue<>(builder);
}
 
源代码15 项目: quarkus   文件: SesRecorder.java
public RuntimeValue<AwsClientBuilder> createSyncBuilder(SesConfig config, RuntimeValue<SdkHttpClient.Builder> transport) {
    SesClientBuilder builder = SesClient.builder();
    if (transport != null) {
        builder.httpClientBuilder(transport.getValue());
    }
    return new RuntimeValue<>(builder);
}
 
源代码16 项目: quarkus   文件: DynamodbRecorder.java
public RuntimeValue<AwsClientBuilder> createSyncBuilder(DynamodbConfig config,
        RuntimeValue<SdkHttpClient.Builder> transport) {
    DynamoDbClientBuilder builder = DynamoDbClient.builder();
    builder.endpointDiscoveryEnabled(config.enableEndpointDiscovery);

    if (transport != null) {
        builder.httpClientBuilder(transport.getValue());
    }
    return new RuntimeValue<>(builder);
}
 
源代码17 项目: quarkus   文件: AbstractAmazonServiceProcessor.java
public void createTransportBuilders(List<AmazonClientBuildItem> amazonClients,
        AmazonClientTransportRecorder recorder,
        SyncHttpClientBuildTimeConfig buildSyncConfig,
        RuntimeValue<SyncHttpClientConfig> syncConfig,
        RuntimeValue<NettyHttpClientConfig> asyncConfig,
        BuildProducer<AmazonClientTransportsBuildItem> clientTransports) {

    Optional<AmazonClientBuildItem> matchingClientBuildItem = amazonClients.stream()
            .filter(c -> c.getAwsClientName().equals(configName()))
            .findAny();

    matchingClientBuildItem.ifPresent(client -> {
        RuntimeValue<SdkHttpClient.Builder> syncTransport = null;
        RuntimeValue<SdkAsyncHttpClient.Builder> asyncTransport = null;

        if (client.getSyncClassName().isPresent()) {
            syncTransport = recorder.configureSync(configName(), buildSyncConfig,
                    syncConfig);
        }

        if (client.getAsyncClassName().isPresent()) {
            asyncTransport = recorder.configureAsync(configName(), asyncConfig);
        }

        clientTransports.produce(
                new AmazonClientTransportsBuildItem(
                        client.getSyncClassName(), client.getAsyncClassName(),
                        syncTransport,
                        asyncTransport,
                        client.getAwsClientName()));
    });

}
 
源代码18 项目: aws-xray-sdk-java   文件: TracingInterceptorTest.java
private SdkHttpClient mockSdkHttpClient(SdkHttpResponse response, String body) throws Exception {
    ExecutableHttpRequest abortableCallable = Mockito.mock(ExecutableHttpRequest.class);
    SdkHttpClient mockClient = Mockito.mock(SdkHttpClient.class);

    Mockito.when(mockClient.prepareRequest(Mockito.any())).thenReturn(abortableCallable);
    Mockito.when(abortableCallable.call()).thenReturn(HttpExecuteResponse.builder()
            .response(response)
            .responseBody(AbortableInputStream.create(
                    new ByteArrayInputStream(body.getBytes(StandardCharsets.UTF_8))
            ))
            .build()
    );
    return mockClient;
}
 
@Test
public void getObject_PresignedHttpRequestCanBeInvokedDirectlyBySdk() throws IOException {
    PresignedGetObjectRequest presigned =
        presigner.presignGetObject(r -> r.signatureDuration(Duration.ofMinutes(5))
                                         .getObjectRequest(gor -> gor.bucket(testBucket)
                                                                     .key(testGetObjectKey)
                                                                     .requestPayer(RequestPayer.REQUESTER)));

    assertThat(presigned.isBrowserExecutable()).isFalse();

    SdkHttpClient httpClient = ApacheHttpClient.builder().build(); // or UrlConnectionHttpClient.builder().build()

    ContentStreamProvider requestPayload = presigned.signedPayload()
                                                    .map(SdkBytes::asContentStreamProvider)
                                                    .orElse(null);

    HttpExecuteRequest request = HttpExecuteRequest.builder()
                                                   .request(presigned.httpRequest())
                                                   .contentStreamProvider(requestPayload)
                                                   .build();

    HttpExecuteResponse response = httpClient.prepareRequest(request).call();

    assertThat(response.responseBody()).isPresent();
    try (InputStream responseStream = response.responseBody().get()) {
        assertThat(IoUtils.toUtf8String(responseStream)).isEqualTo(testObjectContent);
    }
}
 
@Test
public void putObject_PresignedHttpRequestCanBeInvokedDirectlyBySdk() throws IOException {
    String objectKey = generateRandomObjectKey();
    S3TestUtils.addCleanupTask(S3PresignerIntegrationTest.class,
                               () -> client.deleteObject(r -> r.bucket(testBucket).key(objectKey)));

    PresignedPutObjectRequest presigned =
        presigner.presignPutObject(r -> r.signatureDuration(Duration.ofMinutes(5))
                                         .putObjectRequest(por -> por.bucket(testBucket).key(objectKey)));

    assertThat(presigned.isBrowserExecutable()).isFalse();

    SdkHttpClient httpClient = ApacheHttpClient.builder().build(); // or UrlConnectionHttpClient.builder().build()

    ContentStreamProvider requestPayload = () -> new StringInputStream(testObjectContent);

    HttpExecuteRequest request = HttpExecuteRequest.builder()
                                                   .request(presigned.httpRequest())
                                                   .contentStreamProvider(requestPayload)
                                                   .build();

    HttpExecuteResponse response = httpClient.prepareRequest(request).call();

    assertThat(response.responseBody()).isPresent();
    assertThat(response.httpResponse().isSuccessful()).isTrue();
    response.responseBody().ifPresent(AbortableInputStream::abort);
    String content = client.getObjectAsBytes(r -> r.bucket(testBucket).key(objectKey)).asUtf8String();
    assertThat(content).isEqualTo(testObjectContent);
}
 
private HttpExecuteResponse execute(PresignedRequest presigned, String payload) throws IOException {
    SdkHttpClient httpClient = ApacheHttpClient.builder().build();

    ContentStreamProvider requestPayload = payload == null ? null : () -> new StringInputStream(payload);

    HttpExecuteRequest request = HttpExecuteRequest.builder()
                                                   .request(presigned.httpRequest())
                                                   .contentStreamProvider(requestPayload)
                                                   .build();

    return httpClient.prepareRequest(request).call();
}
 
源代码22 项目: aws-sdk-java-v2   文件: ApacheClientTlsAuthTest.java
private HttpExecuteResponse makeRequestWithHttpClient(SdkHttpClient httpClient) throws IOException {
    SdkHttpRequest httpRequest = SdkHttpFullRequest.builder()
            .method(SdkHttpMethod.GET)
            .protocol("https")
            .host("localhost:" + wireMockServer.httpsPort())
            .build();

    HttpExecuteRequest request = HttpExecuteRequest.builder()
            .request(httpRequest)
            .build();

    return httpClient.prepareRequest(request).call();
}
 
源代码23 项目: aws-sdk-java-v2   文件: UrlConnectionHttpClient.java
/**
 * Used by the SDK to create a {@link SdkHttpClient} with service-default values if no other values have been configured
 *
 * @param serviceDefaults Service specific defaults. Keys will be one of the constants defined in
 * {@link SdkHttpConfigurationOption}.
 * @return an instance of {@link SdkHttpClient}
 */
@Override
public SdkHttpClient buildWithDefaults(AttributeMap serviceDefaults) {
    return new UrlConnectionHttpClient(standardOptions.build()
                                                      .merge(serviceDefaults)
                                                      .merge(SdkHttpConfigurationOption.GLOBAL_HTTP_DEFAULTS),
                                       null);
}
 
@Override
protected SdkHttpClient createSdkHttpClient(SdkHttpClientOptions options) {
    UrlConnectionHttpClient.Builder builder = UrlConnectionHttpClient.builder();
    AttributeMap.Builder attributeMap = AttributeMap.builder();

    if (options.tlsTrustManagersProvider() != null) {
        builder.tlsTrustManagersProvider(options.tlsTrustManagersProvider());
    }

    if (options.trustAll()) {
        attributeMap.put(TRUST_ALL_CERTIFICATES, options.trustAll());
    }

    return builder.buildWithDefaults(attributeMap.build());
}
 
源代码25 项目: aws-sdk-java-v2   文件: ResourceManagementTest.java
@Test
public void httpClientFromBuilderShutdown() {
    SdkHttpClient httpClient = mock(SdkHttpClient.class);
    SdkHttpClient.Builder httpClientBuilder = mock(SdkHttpClient.Builder.class);

    when(httpClientBuilder.buildWithDefaults(any())).thenReturn(httpClient);

    syncClientBuilder().httpClientBuilder(httpClientBuilder).build().close();
    verify(httpClient).close();
}
 
源代码26 项目: aws-sdk-java-v2   文件: SdkDefaultClientBuilder.java
/**
 * Finalize which sync HTTP client will be used for the created client.
 */
private SdkHttpClient resolveSyncHttpClient(SdkClientConfiguration config) {
    Validate.isTrue(config.option(SdkClientOption.SYNC_HTTP_CLIENT) == null || httpClientBuilder == null,
                    "The httpClient and the httpClientBuilder can't both be configured.");

    return Either.fromNullable(config.option(SdkClientOption.SYNC_HTTP_CLIENT), httpClientBuilder)
                 .map(e -> e.map(NonManagedSdkHttpClient::new, b -> b.buildWithDefaults(childHttpConfig())))
                 .orElseGet(() -> defaultHttpClientBuilder.buildWithDefaults(childHttpConfig()));
}
 
@Override
public SdkHttpClient buildWithDefaults(AttributeMap serviceDefaults) {
    // TODO We create and build every time. Do we want to cache it instead of the service binding?
    return DEFAULT_CHAIN
            .loadService()
            .map(SdkHttpService::createHttpClientBuilder)
            .map(f -> f.buildWithDefaults(serviceDefaults))
            .orElseThrow(
                () -> SdkClientException.builder()
                                        .message("Unable to load an HTTP implementation from any provider in the " +
                                                 "chain. You must declare a dependency on an appropriate HTTP " +
                                                 "implementation or pass in an SdkHttpClient explicitly to the " +
                                                 "client builder.")
                                        .build());
}
 
源代码28 项目: aws-sdk-java-v2   文件: HttpTestUtils.java
public AmazonSyncHttpClient build() {
    SdkHttpClient sdkHttpClient = this.httpClient != null ? this.httpClient : testSdkHttpClient();
    return new AmazonSyncHttpClient(testClientConfiguration().toBuilder()
                                                             .option(SdkClientOption.SYNC_HTTP_CLIENT, sdkHttpClient)
                                                             .applyMutation(this::configureRetryPolicy)
                                                             .applyMutation(this::configureAdditionalHeaders)
                                                             .option(SdkClientOption.API_CALL_TIMEOUT, apiCallTimeout)
                                                             .option(SdkClientOption.API_CALL_ATTEMPT_TIMEOUT, apiCallAttemptTimeout)
                                                             .build());
}
 
源代码29 项目: aws-sdk-java-v2   文件: DefaultClientBuilderTest.java
@Test
public void clientFactoryProvided_ClientIsManagedBySdk() {
    TestClient client = testClientBuilder().httpClientBuilder((SdkHttpClient.Builder) serviceDefaults -> {
        Assertions.assertThat(serviceDefaults).isEqualTo(MOCK_DEFAULTS);
        return mock(SdkHttpClient.class);
    })
            .build();
    assertThat(client.clientConfiguration.option(SdkClientOption.SYNC_HTTP_CLIENT))
            .isNotInstanceOf(SdkDefaultClientBuilder.NonManagedSdkHttpClient.class);
    verify(defaultHttpClientFactory, never()).buildWithDefaults(any());
}
 
源代码30 项目: aws-sdk-java-v2   文件: DefaultClientBuilderTest.java
@Test
public void explicitClientProvided_ClientIsNotManagedBySdk() {
    TestClient client = testClientBuilder()

            .httpClient(mock(SdkHttpClient.class))
            .build();
    assertThat(client.clientConfiguration.option(SdkClientOption.SYNC_HTTP_CLIENT))
            .isInstanceOf(SdkDefaultClientBuilder.NonManagedSdkHttpClient.class);
    verify(defaultHttpClientFactory, never()).buildWithDefaults(any());
}