diff --git a/src/main/java/com/xe/xecdApiClient/config/XecdApiConfigBean.java b/src/main/java/com/xe/xecdApiClient/config/XecdApiConfigBean.java index 131d6a0..0b2f960 100644 --- a/src/main/java/com/xe/xecdApiClient/config/XecdApiConfigBean.java +++ b/src/main/java/com/xe/xecdApiClient/config/XecdApiConfigBean.java @@ -9,6 +9,7 @@ public class XecdApiConfigBean private String apiKey; private String serverPrefix; private Integer connectTimeout; + private Boolean useSystemProperties; public String getAccountId() { @@ -55,4 +56,12 @@ public void setConnectTimeout(Integer connectTimeout) { this.connectTimeout = connectTimeout; } + + public Boolean useSystemProperties() { + return useSystemProperties; + } + + public void setUseSystemProperties(final Boolean useSystemProperties) { + this.useSystemProperties = useSystemProperties; + } } diff --git a/src/main/java/com/xe/xecdApiClient/service/XecdApiServiceImpl.java b/src/main/java/com/xe/xecdApiClient/service/XecdApiServiceImpl.java index fe0097c..95826e3 100644 --- a/src/main/java/com/xe/xecdApiClient/service/XecdApiServiceImpl.java +++ b/src/main/java/com/xe/xecdApiClient/service/XecdApiServiceImpl.java @@ -61,30 +61,30 @@ public class XecdApiServiceImpl implements XecdApiService this.apiKey = config.getApiKey(); this.serverPrefix = config.getServerPrefix() != null ? config.getServerPrefix() : this.serverPrefix; this.jsonUtils = new JsonUtils(); - this.wsClient = new XecdHttpClientImpl(config.getConnectTimeout()); + this.wsClient = new XecdHttpClientImpl(config.getConnectTimeout(), config.useSystemProperties()); } /** * Looks at the environment variables to satisfy required properties * - XECD_ACCOUNT_ID * - XECD_API_KEY - * @throws XecdApiException + * @throws XecdApiException */ XecdApiServiceImpl() throws XecdApiException { String apiKeyVar = System.getenv("XECD_API_KEY"); String accountIdVar = System.getenv("XECD_ACCOUNT_ID"); - - this.wsClient = new XecdHttpClientImpl(null); - + + this.wsClient = new XecdHttpClientImpl(null, null); + if(apiKeyVar != null && accountIdVar != null && !apiKeyVar.isEmpty() && !accountIdVar.isEmpty()) { logger.debug("INITIALIZING WITH ENVIRONMENT VARIABLES"); - + this.apiKey = System.getenv("XECD_API_KEY"); this.accountId = System.getenv("XECD_ACCOUNT_ID"); this.jsonUtils = new JsonUtils(); - + } else { diff --git a/src/main/java/com/xe/xecdApiClient/service/XecdHttpClientImpl.java b/src/main/java/com/xe/xecdApiClient/service/XecdHttpClientImpl.java index 2a251f5..73b7b98 100644 --- a/src/main/java/com/xe/xecdApiClient/service/XecdHttpClientImpl.java +++ b/src/main/java/com/xe/xecdApiClient/service/XecdHttpClientImpl.java @@ -29,7 +29,7 @@ public class XecdHttpClientImpl implements XecdHttpClient private HttpClient client = null; - public XecdHttpClientImpl(Integer connectTimeout) + public XecdHttpClientImpl(Integer connectTimeout, Boolean useSystemProperties) { HttpClientBuilder builder = HttpClientBuilder.create(); if (connectTimeout != null) @@ -37,6 +37,9 @@ public XecdHttpClientImpl(Integer connectTimeout) RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectTimeout).build(); builder.setDefaultRequestConfig(requestConfig); } + if(useSystemProperties != null && useSystemProperties) { + builder.useSystemProperties(); + } try { SSLContext sslContext = SSLContext.getInstance("TLSv1.2");