1
15 package com.amazonaws.http.settings;
16
17 import com.amazonaws.Protocol;
18 import com.amazonaws.ProxyAuthenticationMethod;
19 import com.amazonaws.http.TlsKeyManagersProvider;
20 import java.net.InetAddress;
21 import java.security.SecureRandom;
22
23 import com.amazonaws.ApacheHttpClientConfig;
24 import com.amazonaws.ClientConfiguration;
25 import com.amazonaws.DnsResolver;
26 import com.amazonaws.annotation.SdkInternalApi;
27 import com.amazonaws.util.ValidationUtils;
28 import java.util.List;
29 import javax.net.ssl.KeyManager;
30
31
35 @SdkInternalApi
36 public class HttpClientSettings {
37
38 private final ClientConfiguration config;
39
40 private final boolean useBrowserCompatibleHostNameVerifier;
41
42 private final boolean calculateCRC32FromCompressedData;
43
44 HttpClientSettings(final ClientConfiguration config,
45 final boolean useBrowserCompatibleHostNameVerifier,
46 final boolean calculateCRC32FromCompressedData) {
47 this.config = ValidationUtils.assertNotNull(config, "client configuration");
48 this.useBrowserCompatibleHostNameVerifier = useBrowserCompatibleHostNameVerifier;
49 this.calculateCRC32FromCompressedData = calculateCRC32FromCompressedData;
50 }
51
52 public static HttpClientSettings adapt(final ClientConfiguration config,
53 final boolean useBrowserCompatibleHostNameVerifier,
54 final boolean calculateCRC32FromCompressedData) {
55 return new HttpClientSettings(config, useBrowserCompatibleHostNameVerifier, calculateCRC32FromCompressedData);
56 }
57
58 public static HttpClientSettings adapt(final ClientConfiguration config,
59 final boolean useBrowserCompatibleHostNameVerifier) {
60 return adapt(config, useBrowserCompatibleHostNameVerifier, false);
61 }
62
63 public static HttpClientSettings adapt(final ClientConfiguration config) {
64 return adapt(config, false);
65 }
66
67 public boolean useBrowserCompatibleHostNameVerifier() {
68 return useBrowserCompatibleHostNameVerifier;
69 }
70
71 public boolean calculateCRC32FromCompressedData() {
72 return calculateCRC32FromCompressedData;
73 }
74
75 public int getMaxConnections() {
76 return config.getMaxConnections();
77 }
78
79 public InetAddress getLocalAddress() {
80 return config.getLocalAddress();
81 }
82
83 public String getProxyHost() {
84 return config.getProxyHost();
85 }
86
87 public int getProxyPort() {
88 return config.getProxyPort();
89 }
90
91 public String getProxyUsername() {
92 return config.getProxyUsername();
93 }
94
95 public String getProxyPassword() {
96 return config.getProxyPassword();
97 }
98
99 public String getNonProxyHosts() {
100 return config.getNonProxyHosts();
101 }
102
103 public List<ProxyAuthenticationMethod> getProxyAuthenticationMethods() {
104 return config.getProxyAuthenticationMethods();
105 }
106
107 public boolean useReaper() {
108 return config.useReaper();
109 }
110
111 public boolean useGzip() {
112 return config.useGzip();
113 }
114
115 public DnsResolver getDnsResolver() {
116 return config.getDnsResolver();
117 }
118
119 public ApacheHttpClientConfig getApacheHttpClientConfig() {
120 return config.getApacheHttpClientConfig();
121 }
122
123 public int getSocketTimeout() {
124 return config.getSocketTimeout();
125 }
126
127 public int[] getSocketBufferSize() {
128 return config.getSocketBufferSizeHints();
129 }
130
131 public boolean useTcpKeepAlive() {
132 return config.useTcpKeepAlive();
133 }
134
135 public SecureRandom getSecureRandom() {
136 return config.getSecureRandom();
137 }
138
139 public int getConnectionTimeout() {
140 return config.getConnectionTimeout();
141 }
142
143 public int getConnectionPoolRequestTimeout() {
144 return config.getConnectionTimeout();
145 }
146
147 public long getConnectionPoolTTL() {
148 return config.getConnectionTTL();
149 }
150
151 public long getMaxIdleConnectionTime() {
152 return config.getConnectionMaxIdleMillis();
153 }
154
155 public int getValidateAfterInactivityMillis() {
156 return config.getValidateAfterInactivityMillis();
157 }
158
159 public String getProxyWorkstation() {
160 return config.getProxyWorkstation();
161 }
162
163 public String getProxyDomain() {
164 return config.getProxyDomain();
165 }
166
167 public boolean isPreemptiveBasicProxyAuth() {
168 return config.isPreemptiveBasicProxyAuth();
169 }
170
171 public boolean isUseExpectContinue() {
172 return config.isUseExpectContinue();
173 }
174
175 public boolean isProxyEnabled() {
176 return getProxyHost() != null && getProxyPort() > 0;
177 }
178
179 public boolean disableSocketProxy() {
180 return config.disableSocketProxy();
181 }
182
183 public boolean isAuthenticatedProxy() {
184 return getProxyUsername() != null && getProxyPassword() != null;
185 }
186
187 public Protocol getProxyProtocol() {
188 return config.getProxyProtocol();
189 }
190
191 public TlsKeyManagersProvider getTlsKeyMangersProvider() {
192 return config.getTlsKeyManagersProvider();
193 }
194 }
195