+ protected void setClientTimeouts(Client client) {
+ client.property(ClientProperties.CONNECT_TIMEOUT, httpConnectTimeout);
+ client.property(ClientProperties.READ_TIMEOUT, httpReadTimeout);
+ }
+
+ protected Integer readOptionalInteger(String propertyName, Integer defaultValue) {
+ String stringValue = System.getProperty(propertyName);
+ if (stringValue != null && stringValue.length() > 0) {
+ try {
+ return Integer.valueOf(stringValue);
+ } catch (NumberFormatException e) {
+ log.warn("property " + propertyName + " had the value " + stringValue + " that could not be converted to an Integer, default " + defaultValue + " will be used instead", e);
+ }
+ }
+ return defaultValue;
+ }
+
+ protected static String[] getMultipleUrls(String restapiUrl) {
+ List<String> urls = new ArrayList<>();
+ int start = 0;
+ for (int i = 0; i < restapiUrl.length(); i++) {
+ if (restapiUrl.charAt(i) == ',') {
+ if (i + 9 < restapiUrl.length()) {
+ String part = restapiUrl.substring(i + 1, i + 9);
+ if (part.equals("https://") || part.startsWith("http://")) {
+ urls.add(restapiUrl.substring(start, i));
+ start = i + 1;
+ }
+ }
+ } else if (i == restapiUrl.length() - 1) {
+ urls.add(restapiUrl.substring(start, i + 1));
+ }
+ }
+ String[] arr = new String[urls.size()];
+ return urls.toArray(arr);
+ }
+
+ protected static boolean containsMultipleUrls(String restapiUrl) {
+ Matcher m = retryPattern.matcher(restapiUrl);
+ return m.matches();
+ }
+