
org.sourcelab.github.client.Configuration Maven / Gradle / Ivy
The newest version!
package org.sourcelab.github.client;
import org.sourcelab.github.client.http.ClientFactory;
import java.io.File;
/**
* User supplied Configuration of the API Client.
*/
public class Configuration {
private final String apiToken;
private final String apiUrl;
// Optional Connection options
private final int requestTimeoutInSeconds;
private final int connectionTimeToLiveInSeconds;
// Optional settings to validate Kafka-Connect's SSL certificate.
private final boolean ignoreInvalidSslCertificates;
private final File trustStoreFile;
private final String trustStorePassword;
// Optional settings to send a client certificate with request.
private final File keyStoreFile;
private final String keyStorePassword;
// Optional Proxy Configuration
private final String proxyHost;
private final int proxyPort;
private final String proxyScheme;
// Optional Proxy Authentication.
private String proxyUsername;
private String proxyPassword;
private final ClientFactory clientFactory;
/**
* Create a new Builder for creating Configuration instances.
* @return Builder for Configuration instances.
*/
public static ConfigurationBuilder newBuilder() {
return new ConfigurationBuilder();
}
/**
* Constructor. Use {@see Configuration::newBuilder()}
*
* @param apiToken Set the configured Api Token.
* @param apiUrl Set the API Url.
* @param requestTimeoutInSeconds Timeout in seconds.
* @param connectionTimeToLiveInSeconds Connection TTL.
* @param trustStoreFile truststore.
* @param trustStorePassword truststore password.
* @param proxyHost Proxy Host
* @param proxyScheme Proxy Scheme
* @param proxyPassword Proxy password.
* @param ignoreInvalidSslCertificates Optionally ignore invalid ssl certs.
* @param keyStoreFile Keystore file.
* @param keyStorePassword Keystore password.
* @param proxyPort Proxy port.
* @param proxyUsername Proxy username.
* @param clientFactory Set the org.sourcelab.github.client factory.
*/
protected Configuration(
final String apiToken,
final String apiUrl,
final int requestTimeoutInSeconds,
final int connectionTimeToLiveInSeconds,
final File trustStoreFile,
final String trustStorePassword,
final String proxyHost,
final String proxyScheme,
final String proxyPassword,
final boolean ignoreInvalidSslCertificates,
final File keyStoreFile,
final String keyStorePassword,
final int proxyPort,
final String proxyUsername,
final ClientFactory clientFactory
) {
this.apiToken = apiToken;
this.apiUrl = apiUrl;
this.requestTimeoutInSeconds = requestTimeoutInSeconds;
this.connectionTimeToLiveInSeconds = connectionTimeToLiveInSeconds;
this.trustStoreFile = trustStoreFile;
this.trustStorePassword = trustStorePassword;
this.proxyHost = proxyHost;
this.proxyScheme = proxyScheme;
this.proxyPassword = proxyPassword;
this.clientFactory = clientFactory;
this.ignoreInvalidSslCertificates = ignoreInvalidSslCertificates;
this.keyStoreFile = keyStoreFile;
this.keyStorePassword = keyStorePassword;
this.proxyPort = proxyPort;
this.proxyUsername = proxyUsername;
}
/**
* The configured Api Token.
* @return The configured Api Token.
*/
public String getApiToken() {
return apiToken;
}
/**
* The configured Api Url. Example: "https://api.github.com"
* @return The configured Api Url. Example: "https://api.github.com"
*/
public String getApiUrl() {
return apiUrl;
}
/**
* If the request should ignore invalid ssl certificates. Not recommended.
* @return true if invalid ssl certificates should be ignored, false if they should be validated.
*/
public boolean isIgnoreInvalidSslCertificates() {
return ignoreInvalidSslCertificates;
}
/**
* The configured Client factory instance.
* @return The configured org.sourcelab.github.client factory instance.
*/
public ClientFactory getClientFactory() {
return clientFactory;
}
public int getRequestTimeoutInSeconds() {
return requestTimeoutInSeconds;
}
public int getConnectionTimeToLiveInSeconds() {
return connectionTimeToLiveInSeconds;
}
public File getTrustStoreFile() {
return trustStoreFile;
}
public String getTrustStorePassword() {
return trustStorePassword;
}
public File getKeyStoreFile() {
return keyStoreFile;
}
public String getKeyStorePassword() {
return keyStorePassword;
}
public String getProxyHost() {
return proxyHost;
}
public int getProxyPort() {
return proxyPort;
}
public String getProxyScheme() {
return proxyScheme;
}
public String getProxyUsername() {
return proxyUsername;
}
public String getProxyPassword() {
return proxyPassword;
}
@Override
public String toString() {
return "Configuration{"
+ "\n\tapiToken='XXXXX'"
+ "\n\tapiUrl='" + apiUrl + '\''
+ "\n\trequestTimeoutInSeconds=" + requestTimeoutInSeconds
+ "\n\tconnectionTimeToLiveInSeconds=" + connectionTimeToLiveInSeconds
+ "\n\tignoreInvalidSslCertificates=" + ignoreInvalidSslCertificates
+ "\n\tkeyStoreFile=" + keyStoreFile
+ "\n\tkeyStorePassword='XXXXX'"
+ "\n\tproxyHost='" + proxyHost + '\''
+ "\n\tproxyPort=" + proxyPort
+ "\n\tproxyScheme='" + proxyScheme + '\''
+ "\n\tproxyUsername='" + proxyUsername + '\''
+ "\n\tproxyPassword='XXXXXX'"
+ "\n\tclientFactory=" + clientFactory
+ "\n}";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy