• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  *  http://aws.amazon.com/apache2.0
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 package software.amazon.awssdk.http;
17 
18 import software.amazon.awssdk.annotations.SdkPublicApi;
19 import software.amazon.awssdk.annotations.ThreadSafe;
20 
21 /**
22  * Service Provider interface for HTTP implementations. The core uses {@link java.util.ServiceLoader} to find appropriate
23  * HTTP implementations on the classpath. HTTP implementations that wish to be discovered by the default HTTP provider chain
24  * should implement this interface and declare that implementation as a service in the
25  * META-INF/service/software.amazon.awssdk.http.SdkHttpService resource. See
26  * <a href="https://docs.oracle.com/javase/7/docs/api/java/util/ServiceLoader.html">Service Loader</a> for more
27  * information.
28  *
29  * <p>
30  * This interface is simply a factory for {@link SdkHttpClient.Builder}. Implementations must be thread safe.
31  * </p>
32  */
33 @ThreadSafe
34 @SdkPublicApi
35 public interface SdkHttpService {
36 
37     /**
38      * @return An {@link SdkHttpClient.Builder} capable of creating {@link SdkHttpClient} instances. This factory should be thread
39      * safe.
40      */
createHttpClientBuilder()41     SdkHttpClient.Builder createHttpClientBuilder();
42 }
43