1 package com.atlassian.sal.core.net;
2
3 public class SystemPropertiesConnectionConfig implements ConnectionConfig {
4
5 public static final String HTTP_SOCKET_TIMEOUT_PROPERTY_NAME = "http.socketTimeout";
6 public static final String HTTP_CONNECTION_TIMEOUT_PROPERTY_NAME = "http.connectionTimeout";
7 public static final String HTTP_MAX_REDIRECTS_PROPERTY_NAME = "http.max-redirects";
8
9 public static final int DEFAULT_SOCKET_TIMEOUT = 10_000;
10 public static final int DEFAULT_CONNECTION_TIMEOUT = 10_000;
11 public static final int DEFAULT_MAX_REDIRECTS = 20;
12
13 private final int socketTimeout;
14 private final int connectionTimeout;
15 private final int maxRedirects;
16
17 public SystemPropertiesConnectionConfig() {
18 socketTimeout = Integer.getInteger(HTTP_SOCKET_TIMEOUT_PROPERTY_NAME, DEFAULT_SOCKET_TIMEOUT);
19 connectionTimeout = Integer.getInteger(HTTP_CONNECTION_TIMEOUT_PROPERTY_NAME, DEFAULT_CONNECTION_TIMEOUT);
20 maxRedirects = Integer.getInteger(HTTP_MAX_REDIRECTS_PROPERTY_NAME, DEFAULT_MAX_REDIRECTS);
21 }
22
23 @Override
24 public int getSocketTimeout() {
25 return socketTimeout;
26 }
27
28 @Override
29 public int getConnectionTimeout() {
30 return connectionTimeout;
31 }
32
33 @Override
34 public int getMaxRedirects() {
35 return maxRedirects;
36 }
37
38 }