2 * Copyright (C) The Arvados Authors. All rights reserved.
4 * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
8 package org.arvados.client.config;
12 public class ExternalConfigProvider implements ConfigProvider {
14 private static final int DEFAULT_CONNECTION_TIMEOUT = 60000;
15 private static final int DEFAULT_READ_TIMEOUT = 60000;
16 private static final int DEFAULT_WRITE_TIMEOUT = 60000;
18 private boolean apiHostInsecure;
19 private String keepWebHost;
20 private int keepWebPort;
21 private String apiHost;
23 private String apiToken;
24 private String apiProtocol;
25 private int fileSplitSize;
26 private File fileSplitDirectory;
27 private int numberOfCopies;
28 private int numberOfRetries;
29 private int connectTimeout;
30 private int readTimeout;
31 private int writeTimeout;
33 ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
34 String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
35 int numberOfCopies, int numberOfRetries)
37 this.apiHostInsecure = apiHostInsecure;
38 this.keepWebHost = keepWebHost;
39 this.keepWebPort = keepWebPort;
40 this.apiHost = apiHost;
41 this.apiPort = apiPort;
42 this.apiToken = apiToken;
43 this.apiProtocol = apiProtocol;
44 this.fileSplitSize = fileSplitSize;
45 this.fileSplitDirectory = fileSplitDirectory;
46 this.numberOfCopies = numberOfCopies;
47 this.numberOfRetries = numberOfRetries;
48 this.connectTimeout = DEFAULT_CONNECTION_TIMEOUT;
49 this.readTimeout = DEFAULT_READ_TIMEOUT;
50 this.writeTimeout = DEFAULT_WRITE_TIMEOUT;
53 ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
54 String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
55 int numberOfCopies, int numberOfRetries,
56 int connectTimeout, int readTimeout, int writeTimeout)
58 this.apiHostInsecure = apiHostInsecure;
59 this.keepWebHost = keepWebHost;
60 this.keepWebPort = keepWebPort;
61 this.apiHost = apiHost;
62 this.apiPort = apiPort;
63 this.apiToken = apiToken;
64 this.apiProtocol = apiProtocol;
65 this.fileSplitSize = fileSplitSize;
66 this.fileSplitDirectory = fileSplitDirectory;
67 this.numberOfCopies = numberOfCopies;
68 this.numberOfRetries = numberOfRetries;
69 this.connectTimeout = connectTimeout;
70 this.readTimeout = readTimeout;
71 this.writeTimeout = writeTimeout;
74 public static ExternalConfigProviderBuilder builder() {
75 return new ExternalConfigProviderBuilder();
79 public String toString() {
80 return "ExternalConfigProvider{" +
81 "apiHostInsecure=" + apiHostInsecure +
82 ", keepWebHost='" + keepWebHost + '\'' +
83 ", keepWebPort=" + keepWebPort +
84 ", apiHost='" + apiHost + '\'' +
85 ", apiPort=" + apiPort +
86 ", apiToken='" + apiToken + '\'' +
87 ", apiProtocol='" + apiProtocol + '\'' +
88 ", fileSplitSize=" + fileSplitSize +
89 ", fileSplitDirectory=" + fileSplitDirectory +
90 ", numberOfCopies=" + numberOfCopies +
91 ", numberOfRetries=" + numberOfRetries +
95 public boolean isApiHostInsecure() {
96 return this.apiHostInsecure;
99 public String getKeepWebHost() {
100 return this.keepWebHost;
103 public int getKeepWebPort() {
104 return this.keepWebPort;
107 public String getApiHost() {
111 public int getApiPort() {
115 public String getApiToken() {
116 return this.apiToken;
119 public String getApiProtocol() {
120 return this.apiProtocol;
123 public int getFileSplitSize() {
124 return this.fileSplitSize;
127 public File getFileSplitDirectory() {
128 return this.fileSplitDirectory;
131 public int getNumberOfCopies() {
132 return this.numberOfCopies;
135 public int getNumberOfRetries() {
136 return this.numberOfRetries;
139 public int getConnectTimeout() {
140 return this.connectTimeout;
143 public int getReadTimeout() {
144 return this.readTimeout;
147 public int getWriteTimeout() {
148 return this.writeTimeout;
151 public static class ExternalConfigProviderBuilder {
152 private boolean apiHostInsecure;
153 private String keepWebHost;
154 private int keepWebPort;
155 private String apiHost;
157 private String apiToken;
158 private String apiProtocol;
159 private int fileSplitSize;
160 private File fileSplitDirectory;
161 private int numberOfCopies;
162 private int numberOfRetries;
163 private int connectTimeout = DEFAULT_CONNECTION_TIMEOUT;
164 private int readTimeout = DEFAULT_READ_TIMEOUT;
165 private int writeTimeout = DEFAULT_WRITE_TIMEOUT;
167 ExternalConfigProviderBuilder() {
170 public ExternalConfigProvider.ExternalConfigProviderBuilder apiHostInsecure(boolean apiHostInsecure) {
171 this.apiHostInsecure = apiHostInsecure;
175 public ExternalConfigProvider.ExternalConfigProviderBuilder keepWebHost(String keepWebHost) {
176 this.keepWebHost = keepWebHost;
180 public ExternalConfigProvider.ExternalConfigProviderBuilder keepWebPort(int keepWebPort) {
181 this.keepWebPort = keepWebPort;
185 public ExternalConfigProvider.ExternalConfigProviderBuilder apiHost(String apiHost) {
186 this.apiHost = apiHost;
190 public ExternalConfigProvider.ExternalConfigProviderBuilder apiPort(int apiPort) {
191 this.apiPort = apiPort;
195 public ExternalConfigProvider.ExternalConfigProviderBuilder apiToken(String apiToken) {
196 this.apiToken = apiToken;
200 public ExternalConfigProvider.ExternalConfigProviderBuilder apiProtocol(String apiProtocol) {
201 this.apiProtocol = apiProtocol;
205 public ExternalConfigProvider.ExternalConfigProviderBuilder fileSplitSize(int fileSplitSize) {
206 this.fileSplitSize = fileSplitSize;
210 public ExternalConfigProvider.ExternalConfigProviderBuilder fileSplitDirectory(File fileSplitDirectory) {
211 this.fileSplitDirectory = fileSplitDirectory;
215 public ExternalConfigProvider.ExternalConfigProviderBuilder numberOfCopies(int numberOfCopies) {
216 this.numberOfCopies = numberOfCopies;
220 public ExternalConfigProvider.ExternalConfigProviderBuilder numberOfRetries(int numberOfRetries) {
221 this.numberOfRetries = numberOfRetries;
225 public ExternalConfigProvider.ExternalConfigProviderBuilder connectTimeout(int connectTimeout) {
226 this.connectTimeout = connectTimeout;
230 public ExternalConfigProvider.ExternalConfigProviderBuilder readTimeout(int readTimeout) {
231 this.readTimeout = readTimeout;
235 public ExternalConfigProvider.ExternalConfigProviderBuilder writeTimeout(int writeTimeout) {
236 this.writeTimeout = writeTimeout;
240 public ExternalConfigProvider build() {
241 return new ExternalConfigProvider(apiHostInsecure, keepWebHost, keepWebPort, apiHost, apiPort, apiToken, apiProtocol, fileSplitSize, fileSplitDirectory, numberOfCopies, numberOfRetries, connectTimeout, readTimeout, writeTimeout);