package com.thinkbiganalytics.rest;
/*-
* #%L
* thinkbig-commons-rest-client
* %%
* Copyright (C) 2017 ThinkBig Analytics
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
/**
* Configuration class used by the {@link JerseyRestClient}
* Parameters here allow you to setup a client and optionally pass in information to connect using Https
*/
public class JerseyClientConfig {
private String host;
private Integer port;
private String username;
private String password;
private boolean https;
private boolean keystoreOnClasspath;
private String keystorePath;
private String keystorePassword;
private String keystoreType;
private String truststorePath;
private String truststorePassword;
private String trustStoreType;
//Values are in milliseconds
private Integer readTimeout = null;
private Integer connectTimeout = null;
/**
* flag to use the PoolingHttpClientConnectionManager from Apache instead of the Jersey Manager The PoolingHttpClientConnectionManager doesnt support some JSON header which is why this is set to
* false by default
**/
private boolean useConnectionPooling = false;
public JerseyClientConfig() {
}
public JerseyClientConfig(String host, String username, String password) {
this.host = host;
this.username = username;
this.password = password;
this.https = false;
this.keystoreOnClasspath = false;
this.keystorePath = null;
this.keystorePassword = null;
}
public JerseyClientConfig(String host, String username, String password, boolean https, boolean keystoreOnClasspath, String keystorePath, String keystorePassword) {
this.host = host;
this.username = username;
this.password = password;
this.https = https;
this.keystoreOnClasspath = keystoreOnClasspath;
this.keystorePath = keystorePath;
this.keystorePassword = keystorePassword;
}
public JerseyClientConfig(String host, String username, String password, boolean https, boolean keystoreOnClasspath, String keystorePath, String keystorePassword, Integer readTimeout,
Integer connectTimeout) {
this.host = host;
this.username = username;
this.password = password;
this.https = https;
this.keystoreOnClasspath = keystoreOnClasspath;
this.keystorePath = keystorePath;
this.keystorePassword = keystorePassword;
this.readTimeout = readTimeout;
this.connectTimeout = connectTimeout;
}
public String getKeystorePath() {
return keystorePath;
}
public void setKeystorePath(String keystorePath) {
this.keystorePath = keystorePath;
}
public String getKeystorePassword() {
return keystorePassword;
}
public void setKeystorePassword(String keystorePassword) {
this.keystorePassword = keystorePassword;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isHttps() {
return https;
}
public void setHttps(boolean https) {
this.https = https;
}
public String getUrl() {
String url = host;
if (https) {
url = "https://" + url;
} else {
url = "http://" + url;
}
if (port != null) {
url += ":" + port;
}
return url;
}
public boolean isKeystoreOnClasspath() {
return keystoreOnClasspath;
}
public void setKeystoreOnClasspath(boolean keystoreOnClasspath) {
this.keystoreOnClasspath = keystoreOnClasspath;
}
public Integer getReadTimeout() {
return readTimeout;
}
public void setReadTimeout(Integer readTimeout) {
this.readTimeout = readTimeout;
}
public Integer getConnectTimeout() {
return connectTimeout;
}
public void setConnectTimeout(Integer connectTimeout) {
this.connectTimeout = connectTimeout;
}
public boolean isUseConnectionPooling() {
return useConnectionPooling;
}
public void setUseConnectionPooling(boolean useConnectionPooling) {
this.useConnectionPooling = useConnectionPooling;
}
public Integer getPort() {
return port;
}
public void setPort(Integer port) {
this.port = port;
}
public String getTruststorePath() {
return truststorePath;
}
public void setTruststorePath(String truststorePath) {
this.truststorePath = truststorePath;
}
public String getTruststorePassword() {
return truststorePassword;
}
public void setTruststorePassword(String truststorePassword) {
this.truststorePassword = truststorePassword;
}
public String getTrustStoreType() {
return trustStoreType;
}
public void setTrustStoreType(String trustStoreType) {
this.trustStoreType = trustStoreType;
}
public String getKeystoreType() {
return keystoreType;
}
public void setKeystoreType(String keystoreType) {
this.keystoreType = keystoreType;
}
}