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 boolean apiHostInsecure;
15 private String keepWebHost;
16 private int keepWebPort;
17 private String apiHost;
19 private String apiToken;
20 private String apiProtocol;
21 private int fileSplitSize;
22 private File fileSplitDirectory;
23 private int numberOfCopies;
24 private int numberOfRetries;
25 private int connectTimeout;
26 private int readTimeout;
27 private int writeTimeout;
29 ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
30 String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
31 int numberOfCopies, int numberOfRetries)
33 this.apiHostInsecure = apiHostInsecure;
34 this.keepWebHost = keepWebHost;
35 this.keepWebPort = keepWebPort;
36 this.apiHost = apiHost;
37 this.apiPort = apiPort;
38 this.apiToken = apiToken;
39 this.apiProtocol = apiProtocol;
40 this.fileSplitSize = fileSplitSize;
41 this.fileSplitDirectory = fileSplitDirectory;
42 this.numberOfCopies = numberOfCopies;
43 this.numberOfRetries = numberOfRetries;
44 this.connectTimeout = 60000;
45 this.readTimeout = 60000;
46 this.writeTimeout = 60000;
49 ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
50 String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
51 int numberOfCopies, int numberOfRetries,
52 int connectTimeout, int readTimeout, int writeTimeout)
54 this.apiHostInsecure = apiHostInsecure;
55 this.keepWebHost = keepWebHost;
56 this.keepWebPort = keepWebPort;
57 this.apiHost = apiHost;
58 this.apiPort = apiPort;
59 this.apiToken = apiToken;
60 this.apiProtocol = apiProtocol;
61 this.fileSplitSize = fileSplitSize;
62 this.fileSplitDirectory = fileSplitDirectory;
63 this.numberOfCopies = numberOfCopies;
64 this.numberOfRetries = numberOfRetries;
65 this.connectTimeout = connectTimeout;
66 this.readTimeout = readTimeout;
67 this.writeTimeout = writeTimeout;
70 public static ExternalConfigProviderBuilder builder() {
71 return new ExternalConfigProviderBuilder();
75 public String toString() {
76 return "ExternalConfigProvider{" +
77 "apiHostInsecure=" + apiHostInsecure +
78 ", keepWebHost='" + keepWebHost + '\'' +
79 ", keepWebPort=" + keepWebPort +
80 ", apiHost='" + apiHost + '\'' +
81 ", apiPort=" + apiPort +
82 ", apiToken='" + apiToken + '\'' +
83 ", apiProtocol='" + apiProtocol + '\'' +
84 ", fileSplitSize=" + fileSplitSize +
85 ", fileSplitDirectory=" + fileSplitDirectory +
86 ", numberOfCopies=" + numberOfCopies +
87 ", numberOfRetries=" + numberOfRetries +
91 public boolean isApiHostInsecure() {
92 return this.apiHostInsecure;
95 public String getKeepWebHost() {
96 return this.keepWebHost;
99 public int getKeepWebPort() {
100 return this.keepWebPort;
103 public String getApiHost() {
107 public int getApiPort() {
111 public String getApiToken() {
112 return this.apiToken;
115 public String getApiProtocol() {
116 return this.apiProtocol;
119 public int getFileSplitSize() {
120 return this.fileSplitSize;
123 public File getFileSplitDirectory() {
124 return this.fileSplitDirectory;
127 public int getNumberOfCopies() {
128 return this.numberOfCopies;
131 public int getNumberOfRetries() {
132 return this.numberOfRetries;
135 public int getConnectTimeout() {
136 return this.connectTimeout;
139 public int getReadTimeout() {
140 return this.readTimeout;
143 public int getWriteTimeout() {
144 return this.writeTimeout;
147 public static class ExternalConfigProviderBuilder {
148 private boolean apiHostInsecure;
149 private String keepWebHost;
150 private int keepWebPort;
151 private String apiHost;
153 private String apiToken;
154 private String apiProtocol;
155 private int fileSplitSize;
156 private File fileSplitDirectory;
157 private int numberOfCopies;
158 private int numberOfRetries;
160 ExternalConfigProviderBuilder() {
163 public ExternalConfigProvider.ExternalConfigProviderBuilder apiHostInsecure(boolean apiHostInsecure) {
164 this.apiHostInsecure = apiHostInsecure;
168 public ExternalConfigProvider.ExternalConfigProviderBuilder keepWebHost(String keepWebHost) {
169 this.keepWebHost = keepWebHost;
173 public ExternalConfigProvider.ExternalConfigProviderBuilder keepWebPort(int keepWebPort) {
174 this.keepWebPort = keepWebPort;
178 public ExternalConfigProvider.ExternalConfigProviderBuilder apiHost(String apiHost) {
179 this.apiHost = apiHost;
183 public ExternalConfigProvider.ExternalConfigProviderBuilder apiPort(int apiPort) {
184 this.apiPort = apiPort;
188 public ExternalConfigProvider.ExternalConfigProviderBuilder apiToken(String apiToken) {
189 this.apiToken = apiToken;
193 public ExternalConfigProvider.ExternalConfigProviderBuilder apiProtocol(String apiProtocol) {
194 this.apiProtocol = apiProtocol;
198 public ExternalConfigProvider.ExternalConfigProviderBuilder fileSplitSize(int fileSplitSize) {
199 this.fileSplitSize = fileSplitSize;
203 public ExternalConfigProvider.ExternalConfigProviderBuilder fileSplitDirectory(File fileSplitDirectory) {
204 this.fileSplitDirectory = fileSplitDirectory;
208 public ExternalConfigProvider.ExternalConfigProviderBuilder numberOfCopies(int numberOfCopies) {
209 this.numberOfCopies = numberOfCopies;
213 public ExternalConfigProvider.ExternalConfigProviderBuilder numberOfRetries(int numberOfRetries) {
214 this.numberOfRetries = numberOfRetries;
218 public ExternalConfigProvider build() {
219 return new ExternalConfigProvider(apiHostInsecure, keepWebHost, keepWebPort, apiHost, apiPort, apiToken, apiProtocol, fileSplitSize, fileSplitDirectory, numberOfCopies, numberOfRetries);