From 1ffac12e8aa4567da232079c7bdf54c8c2f7953a Mon Sep 17 00:00:00 2001 From: Scott Macdonald <57190223+scmacdon@users.noreply.github.com> Date: Thu, 9 Apr 2020 11:12:15 -0400 Subject: [PATCH] Create ClientConfiguration.java --- .../example/kinesis/ClientConfiguration.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 javav2/example_code/kinesis/src/main/java/com/example/kinesis/ClientConfiguration.java diff --git a/javav2/example_code/kinesis/src/main/java/com/example/kinesis/ClientConfiguration.java b/javav2/example_code/kinesis/src/main/java/com/example/kinesis/ClientConfiguration.java new file mode 100644 index 00000000000..8a0101fb616 --- /dev/null +++ b/javav2/example_code/kinesis/src/main/java/com/example/kinesis/ClientConfiguration.java @@ -0,0 +1,64 @@ +//snippet-sourcedescription:[ClientConfiguration.java demonstrates how to configure an HTTP client in the Kinesis asynchronous client.] +//snippet-keyword:[SDK for Java 2.0] +//snippet-keyword:[Code Sample] +//snippet-service:[kinesis] +//snippet-sourcetype:[full-example] +//snippet-sourcedate:[4/9/2020] +//snippet-sourceauthor:[soo-aws] +/* + * Copyright 2011-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://aws.amazon.com/apache2.0 + * + * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and + * limitations under the License. + */ +package com.example.kinesis; +// snippet-start:[kinesis.java2.client_configuration.complete] +// snippet-start:[kinesis.java2.client_configuration.import] + +import software.amazon.awssdk.http.async.SdkAsyncHttpClient; +import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient; +import software.amazon.awssdk.services.kinesis.KinesisAsyncClient; +// snippet-end:[kinesis.java2.client_configuration.import] + +// snippet-start:[kinesis.java2.client_configuration.main] +public class ClientConfiguration { + + public static void main(String[] args) { + // If configured with an httpClientBuilder, the SDK will manage the lifecycle of the HTTP client + // and it will be shutdown when the client is shut down. + // snippet-start:[kinesis.java2.client_configuration.client] + KinesisAsyncClient client = KinesisAsyncClient.builder() + .httpClientBuilder(NettyNioAsyncHttpClient.builder() + .maxConcurrency(100) + .maxPendingConnectionAcquires(10_000)) + .build(); + + // snippet-end:[kinesis.java2.client_configuration.client] + // When passing in the httpClient directly, the lifecycle must be managed by the caller and the HTTP client + // will not be shut down when the client is shut down. + // snippet-start:[kinesis.java2.client_configuration.httpclient] + SdkAsyncHttpClient httpClient = NettyNioAsyncHttpClient.builder() + .maxConcurrency(100) + .maxPendingConnectionAcquires(10_000) + .build(); + + KinesisAsyncClient kinesisClient = KinesisAsyncClient.builder() + .httpClient(httpClient) + .build(); + + httpClient.close(); + // snippet-end:[kinesis.java2.client_configuration.httpclient] + } + +} + +// snippet-end:[kinesis.java2.client_configuration.main] +// snippet-end:[kinesis.java2.client_configuration.complete]