diff --git a/findbugs-exclude-filter.xml b/findbugs-exclude-filter.xml
index f0ed9894..4590ecf1 100644
--- a/findbugs-exclude-filter.xml
+++ b/findbugs-exclude-filter.xml
@@ -4,10 +4,4 @@
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
index bb3c73d7..df9ee41e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -142,6 +142,12 @@
${jackson-core.version}
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jdk8
+ ${jackson-core.version}
+
+
com.fasterxml.jackson.datatype
jackson-datatype-json-org
diff --git a/src/main/java/com/treasuredata/client/AbstractTDClientBuilder.java b/src/main/java/com/treasuredata/client/AbstractTDClientBuilder.java
index 1c77b356..32bb6f1d 100644
--- a/src/main/java/com/treasuredata/client/AbstractTDClientBuilder.java
+++ b/src/main/java/com/treasuredata/client/AbstractTDClientBuilder.java
@@ -18,11 +18,12 @@
*/
package com.treasuredata.client;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import java.util.Properties;
+import java.util.Optional;
+import java.util.stream.Stream;
import static com.treasuredata.client.TDClientConfig.ENV_TD_CLIENT_APIKEY;
import static com.treasuredata.client.TDClientConfig.Type.APIKEY;
@@ -50,13 +51,13 @@
*/
public abstract class AbstractTDClientBuilder>
{
- protected Optional endpoint = Optional.absent();
- protected Optional port = Optional.absent();
+ protected Optional endpoint = Optional.empty();
+ protected Optional port = Optional.empty();
protected boolean useSSL = true;
- protected Optional apiKey = Optional.absent();
- protected Optional user = Optional.absent();
- protected Optional password = Optional.absent();
- protected Optional proxy = Optional.absent();
+ protected Optional apiKey = Optional.empty();
+ protected Optional user = Optional.empty();
+ protected Optional password = Optional.empty();
+ protected Optional proxy = Optional.empty();
protected BackOffStrategy retryStrategy = BackOffStrategy.FullJitter;
protected int retryLimit = 7;
protected int retryInitialIntervalMillis = 500;
@@ -74,7 +75,7 @@ private static Optional getConfigProperty(Properties p, TDClientConfig.T
private static Optional getConfigProperty(Properties p, String key)
{
- return Optional.fromNullable(p.getProperty(key));
+ return Optional.ofNullable(p.getProperty(key));
}
private static Optional getConfigPropertyInt(Properties p, TDClientConfig.Type key)
@@ -94,7 +95,7 @@ private static Optional getConfigPropertyInt(Properties p, String key)
}
}
else {
- return Optional.absent();
+ return Optional.empty();
}
}
@@ -115,7 +116,7 @@ private static Optional getConfigPropertyBoolean(Properties p, String k
}
}
else {
- return Optional.absent();
+ return Optional.empty();
}
}
@@ -131,7 +132,7 @@ private static Optional getConfigPropertyDouble(Properties p, TDClientCo
}
}
else {
- return Optional.absent();
+ return Optional.empty();
}
}
@@ -168,24 +169,25 @@ protected AbstractTDClientBuilder(boolean loadTDConf)
*/
public BuilderImpl setProperties(Properties p)
{
- this.endpoint = getConfigProperty(p, API_ENDPOINT)
- .or(getConfigProperty(p, "endpoint"))
- .or(endpoint);
- this.port = getConfigPropertyInt(p, API_PORT)
- .or(getConfigPropertyInt(p, "port"))
- .or(port);
- this.useSSL = getConfigPropertyBoolean(p, USESSL)
- .or(getConfigPropertyBoolean(p, "usessl"))
- .or(useSSL);
- this.apiKey = getConfigProperty(p, APIKEY)
- .or(getConfigProperty(p, "apikey"))
- .or(apiKey);
- this.user = getConfigProperty(p, USER)
- .or(getConfigProperty(p, "user"))
- .or(user);
- this.password = getConfigProperty(p, PASSOWRD)
- .or(getConfigProperty(p, "password"))
- .or(password);
+ this.endpoint = Stream.of(getConfigProperty(p, API_ENDPOINT), getConfigProperty(p, "endpoint"), endpoint)
+ .flatMap((opt) -> opt.map(Stream::of).orElseGet(Stream::empty))
+ .findFirst();
+ this.port = Stream.of(getConfigPropertyInt(p, API_PORT), getConfigPropertyInt(p, "port"), port)
+ .flatMap((opt) -> opt.map(Stream::of).orElseGet(Stream::empty))
+ .findFirst();
+ this.useSSL = Stream.of(getConfigPropertyBoolean(p, USESSL), getConfigPropertyBoolean(p, "usessl"))
+ .flatMap((opt) -> opt.map(Stream::of).orElseGet(Stream::empty))
+ .findFirst()
+ .orElse(useSSL);
+ this.apiKey = Stream.of(getConfigProperty(p, APIKEY), getConfigProperty(p, "apikey"), apiKey)
+ .flatMap((opt) -> opt.map(Stream::of).orElseGet(Stream::empty))
+ .findFirst();
+ this.user = Stream.of(getConfigProperty(p, USER), getConfigProperty(p, "user"), user)
+ .flatMap((opt) -> opt.map(Stream::of).orElseGet(Stream::empty))
+ .findFirst();
+ this.password = Stream.of(getConfigProperty(p, PASSOWRD), getConfigProperty(p, "password"), password)
+ .flatMap((opt) -> opt.map(Stream::of).orElseGet(Stream::empty))
+ .findFirst();
// proxy
boolean hasProxy = false;
@@ -222,16 +224,16 @@ public BuilderImpl setProperties(Properties p)
hasProxy = true;
proxyConfig.setPassword(proxyPassword.get());
}
- this.proxy = Optional.fromNullable(hasProxy ? proxyConfig.createProxyConfig() : null);
+ this.proxy = Optional.ofNullable(hasProxy ? proxyConfig.createProxyConfig() : null);
// http client parameter
- this.retryLimit = getConfigPropertyInt(p, RETRY_LIMIT).or(retryLimit);
- this.retryInitialIntervalMillis = getConfigPropertyInt(p, RETRY_INITIAL_INTERVAL_MILLIS).or(retryInitialIntervalMillis);
- this.retryMaxIntervalMillis = getConfigPropertyInt(p, RETRY_MAX_INTERVAL_MILLIS).or(retryMaxIntervalMillis);
- this.retryMultiplier = getConfigPropertyDouble(p, RETRY_MULTIPLIER).or(retryMultiplier);
- this.connectTimeoutMillis = getConfigPropertyInt(p, CONNECT_TIMEOUT_MILLIS).or(connectTimeoutMillis);
- this.readTimeoutMillis = getConfigPropertyInt(p, READ_TIMEOUT_MILLIS).or(readTimeoutMillis);
- this.connectionPoolSize = getConfigPropertyInt(p, CONNECTION_POOL_SIZE).or(connectionPoolSize);
+ this.retryLimit = getConfigPropertyInt(p, RETRY_LIMIT).orElse(retryLimit);
+ this.retryInitialIntervalMillis = getConfigPropertyInt(p, RETRY_INITIAL_INTERVAL_MILLIS).orElse(retryInitialIntervalMillis);
+ this.retryMaxIntervalMillis = getConfigPropertyInt(p, RETRY_MAX_INTERVAL_MILLIS).orElse(retryMaxIntervalMillis);
+ this.retryMultiplier = getConfigPropertyDouble(p, RETRY_MULTIPLIER).orElse(retryMultiplier);
+ this.connectTimeoutMillis = getConfigPropertyInt(p, CONNECT_TIMEOUT_MILLIS).orElse(connectTimeoutMillis);
+ this.readTimeoutMillis = getConfigPropertyInt(p, READ_TIMEOUT_MILLIS).orElse(readTimeoutMillis);
+ this.connectionPoolSize = getConfigPropertyInt(p, CONNECTION_POOL_SIZE).orElse(connectionPoolSize);
return self();
}
diff --git a/src/main/java/com/treasuredata/client/ProxyConfig.java b/src/main/java/com/treasuredata/client/ProxyConfig.java
index 6e779c6d..66a3696b 100644
--- a/src/main/java/com/treasuredata/client/ProxyConfig.java
+++ b/src/main/java/com/treasuredata/client/ProxyConfig.java
@@ -18,10 +18,9 @@
*/
package com.treasuredata.client;
-import com.google.common.base.Optional;
-
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.Optional;
/**
* Proxy configuration to access TD API
@@ -102,8 +101,8 @@ public static class ProxyConfigBuilder
private String host = "localhost";
private int port = 8080;
private boolean useSSL = false;
- private Optional user = Optional.absent();
- private Optional password = Optional.absent();
+ private Optional user = Optional.empty();
+ private Optional password = Optional.empty();
public ProxyConfigBuilder()
{
diff --git a/src/main/java/com/treasuredata/client/TDApiRequest.java b/src/main/java/com/treasuredata/client/TDApiRequest.java
index ccabe43f..f32d28f7 100644
--- a/src/main/java/com/treasuredata/client/TDApiRequest.java
+++ b/src/main/java/com/treasuredata/client/TDApiRequest.java
@@ -18,7 +18,6 @@
*/
package com.treasuredata.client;
-import com.google.common.base.Optional;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
@@ -32,6 +31,7 @@
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
+import java.util.Optional;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -142,12 +142,12 @@ public static class Builder
private String path;
private Map queryParams;
private ImmutableMultimap.Builder headerParams;
- private Optional postJson = Optional.absent();
- private Optional file = Optional.absent();
- private Optional content = Optional.absent();
+ private Optional postJson = Optional.empty();
+ private Optional file = Optional.empty();
+ private Optional content = Optional.empty();
private int contentOffset;
private int contentLength;
- private Optional followRedirects = Optional.absent();
+ private Optional followRedirects = Optional.empty();
Builder(TDHttpMethod method, String path)
{
diff --git a/src/main/java/com/treasuredata/client/TDClient.java b/src/main/java/com/treasuredata/client/TDClient.java
index c8e2028e..ff3b6037 100644
--- a/src/main/java/com/treasuredata/client/TDClient.java
+++ b/src/main/java/com/treasuredata/client/TDClient.java
@@ -24,7 +24,6 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
-import com.google.common.base.Optional;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -76,6 +75,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Properties;
import java.util.regex.Pattern;
@@ -237,13 +237,13 @@ protected ResultType doPost(String path, Map queryP
protected ResultType doPost(String path, Class resultTypeClass)
throws TDClientException
{
- return this.doPost(path, ImmutableMap.of(), Optional.absent(), resultTypeClass);
+ return this.doPost(path, ImmutableMap.of(), Optional.empty(), resultTypeClass);
}
protected ResultType doPost(String path, Map queryParam, Class resultTypeClass)
throws TDClientException
{
- return this.doPost(path, queryParam, Optional.absent(), resultTypeClass);
+ return this.doPost(path, queryParam, Optional.empty(), resultTypeClass);
}
protected ResultType doPut(String path, Map queryParam, File file, Class resultTypeClass)
@@ -343,7 +343,7 @@ public TDUserList listUsers()
public String serverStatus()
{
// No API key is requried for server_status
- return httpClient.call(TDApiRequest.Builder.GET("/v3/system/server_status").build(), Optional.absent());
+ return httpClient.call(TDApiRequest.Builder.GET("/v3/system/server_status").build(), Optional.empty());
}
@Override
@@ -653,14 +653,10 @@ public String submit(TDJobRequest jobRequest)
doPost(
buildUrl("/v3/job/issue", jobRequest.getType().getType(), jobRequest.getDatabase()),
queryParam,
- jobRequest.getConfig().transform(new Function()
- {
- public String apply(ObjectNode config)
- {
+ jobRequest.getConfig().map((config) -> {
ObjectNode body = config.objectNode();
body.set("config", config);
return body.toString();
- }
}),
TDJobSubmitResult.class);
return result.getJobId();
@@ -780,13 +776,13 @@ public void performBulkImportSession(String sessionName, Optional poolNa
@Override
public void performBulkImportSession(String sessionName, TDJob.Priority priority)
{
- performBulkImportSession(sessionName, Optional.absent(), priority);
+ performBulkImportSession(sessionName, Optional.empty(), priority);
}
@Override
public void performBulkImportSession(String sessionName, Optional poolName, TDJob.Priority priority)
{
- Optional jsonBody = Optional.absent();
+ Optional jsonBody = Optional.empty();
if (poolName.isPresent()) {
jsonBody = Optional.of(JSONObject.toJSONString(ImmutableMap.of("pool_name", poolName.get())));
}
@@ -1061,7 +1057,7 @@ public Optional tableDistribution(String databaseName, Stri
return Optional.of(distribution);
}
catch (TDClientHttpNotFoundException e) {
- return Optional.absent();
+ return Optional.empty();
}
}
diff --git a/src/main/java/com/treasuredata/client/TDClientApi.java b/src/main/java/com/treasuredata/client/TDClientApi.java
index fae0abf4..bc6f5ea3 100644
--- a/src/main/java/com/treasuredata/client/TDClientApi.java
+++ b/src/main/java/com/treasuredata/client/TDClientApi.java
@@ -18,8 +18,9 @@
*/
package com.treasuredata.client;
+import java.util.Optional;
+
import com.google.common.base.Function;
-import com.google.common.base.Optional;
import com.google.common.collect.Multimap;
import com.treasuredata.client.model.TDApiKey;
import com.treasuredata.client.model.TDBulkImportSession;
diff --git a/src/main/java/com/treasuredata/client/TDClientConfig.java b/src/main/java/com/treasuredata/client/TDClientConfig.java
index c2089ce1..a1a4fa6d 100644
--- a/src/main/java/com/treasuredata/client/TDClientConfig.java
+++ b/src/main/java/com/treasuredata/client/TDClientConfig.java
@@ -19,7 +19,6 @@
package com.treasuredata.client;
import com.fasterxml.jackson.annotation.JsonCreator;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Multimap;
import com.google.common.io.Files;
@@ -33,6 +32,7 @@
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.util.List;
+import java.util.Optional;
import java.util.Properties;
/**
@@ -124,7 +124,7 @@ public static List knownProperties()
int connectionPoolSize,
Multimap headers)
{
- this.endpoint = endpoint.or("api.treasuredata.com");
+ this.endpoint = endpoint.orElse("api.treasuredata.com");
this.port = port;
this.useSSL = useSSL;
this.apiKey = apiKey;
diff --git a/src/main/java/com/treasuredata/client/TDClientException.java b/src/main/java/com/treasuredata/client/TDClientException.java
index bd548732..09c4247b 100644
--- a/src/main/java/com/treasuredata/client/TDClientException.java
+++ b/src/main/java/com/treasuredata/client/TDClientException.java
@@ -18,7 +18,7 @@
*/
package com.treasuredata.client;
-import com.google.common.base.Optional;
+import java.util.Optional;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -65,7 +65,7 @@ private static final String formatErrorMessage(ErrorType errorType, String messa
public TDClientException(ErrorType errorType, String message, Optional cause)
{
- super(formatErrorMessage(errorType, message, cause), cause.orNull());
+ super(formatErrorMessage(errorType, message, cause), cause.orElse(null));
checkNotNull(errorType, "errorType is null");
checkNotNull(cause, "cause is null");
this.errorType = errorType;
@@ -84,7 +84,7 @@ public TDClientException(ErrorType errorType, Exception cause)
public TDClientException(ErrorType errorType, String message)
{
- this(errorType, message, Optional.absent());
+ this(errorType, message, Optional.empty());
}
public ErrorType getErrorType()
diff --git a/src/main/java/com/treasuredata/client/TDClientHttpConflictException.java b/src/main/java/com/treasuredata/client/TDClientHttpConflictException.java
index 02c5953a..0dd01490 100644
--- a/src/main/java/com/treasuredata/client/TDClientHttpConflictException.java
+++ b/src/main/java/com/treasuredata/client/TDClientHttpConflictException.java
@@ -18,7 +18,7 @@
*/
package com.treasuredata.client;
-import com.google.common.base.Optional;
+import java.util.Optional;
/**
* On 409 conflict error (e.g., database already exists)
@@ -42,6 +42,6 @@ public TDClientHttpConflictException(String errorMessage, String conflictsWith)
public Optional getConflictsWith()
{
- return Optional.fromNullable(conflictsWith);
+ return Optional.ofNullable(conflictsWith);
}
}
diff --git a/src/main/java/com/treasuredata/client/TDClientHttpException.java b/src/main/java/com/treasuredata/client/TDClientHttpException.java
index 718b1fa6..89254028 100644
--- a/src/main/java/com/treasuredata/client/TDClientHttpException.java
+++ b/src/main/java/com/treasuredata/client/TDClientHttpException.java
@@ -18,9 +18,8 @@
*/
package com.treasuredata.client;
-import com.google.common.base.Optional;
-
import java.util.Date;
+import java.util.Optional;
/**
* Exception class for reporting http server status code
@@ -47,7 +46,7 @@ public int getStatusCode()
public Optional getRetryAfter()
{
if (retryAfter == -1) {
- return Optional.absent();
+ return Optional.empty();
}
else {
return Optional.of(new Date(retryAfter));
diff --git a/src/main/java/com/treasuredata/client/TDHttpClient.java b/src/main/java/com/treasuredata/client/TDHttpClient.java
index bae2913b..20ea981a 100644
--- a/src/main/java/com/treasuredata/client/TDHttpClient.java
+++ b/src/main/java/com/treasuredata/client/TDHttpClient.java
@@ -26,11 +26,11 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
import com.fasterxml.jackson.datatype.guava.GuavaModule;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import com.treasuredata.client.impl.ProxyAuthenticator;
@@ -57,8 +57,10 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
+import java.util.stream.Stream;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.net.HttpHeaders.AUTHORIZATION;
@@ -85,6 +87,7 @@ public class TDHttpClient
static ObjectMapper defaultObjectMapper = new ObjectMapper()
.registerModule(new JsonOrgModule()) // for mapping query json strings into JSONObject
.registerModule(new GuavaModule()) // for mapping to Guava Optional class
+ .registerModule(new Jdk8Module())
.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, false)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -203,14 +206,7 @@ protected String getClientName()
public Request prepareRequest(TDApiRequest apiRequest, Optional apiKeyCache)
{
String queryStr = "";
- String portStr = config.port.transform(new Function()
- {
- @Override
- public String apply(Integer input)
- {
- return ":" + input.toString();
- }
- }).or("");
+ String portStr = config.port.map((input) -> ":" + input).orElse("");
String requestUri = apiRequest.getPath().startsWith("http")
? apiRequest.getPath()
: String.format("%s://%s%s%s", config.useSSL ? "https" : "http", config.endpoint, portStr, apiRequest.getPath());
@@ -254,7 +250,9 @@ public String apply(Integer input)
}
// Set API Key after setting the other headers
- Optional apiKey = apiKeyCache.or(config.apiKey);
+ Optional apiKey = Stream.of(apiKeyCache, config.apiKey)
+ .flatMap((opt) -> opt.map(Stream::of).orElseGet(Stream::empty))
+ .findFirst();
if (apiKey.isPresent()) {
String auth;
if (isNakedTD1Key(apiKey.get())) {
@@ -349,7 +347,7 @@ protected static class RequestContext
public RequestContext(TDClientConfig config, TDApiRequest apiRequest, Optional apiKeyCache)
{
- this(BackOffStrategy.newBackOff(config), apiRequest, apiKeyCache, Optional.absent());
+ this(BackOffStrategy.newBackOff(config), apiRequest, apiKeyCache, Optional.empty());
}
public RequestContext(BackOff backoff, TDApiRequest apiRequest, Optional apiKeyCache, Optional rootCause)
diff --git a/src/main/java/com/treasuredata/client/TDRequestErrorHandler.java b/src/main/java/com/treasuredata/client/TDRequestErrorHandler.java
index c909fe32..beb6ba52 100644
--- a/src/main/java/com/treasuredata/client/TDRequestErrorHandler.java
+++ b/src/main/java/com/treasuredata/client/TDRequestErrorHandler.java
@@ -1,7 +1,6 @@
package com.treasuredata.client;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
import com.treasuredata.client.model.TDApiErrorMessage;
import okhttp3.Response;
import okhttp3.internal.http2.StreamResetException;
@@ -26,6 +25,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
+import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
@@ -253,7 +253,7 @@ private static String parseConflictsWith(TDApiErrorMessage errorResponse)
@VisibleForTesting
public static Optional extractErrorResponse(Response response)
{
- Optional content = Optional.absent();
+ Optional content = Optional.empty();
try {
try {
content = Optional.of(response.body().string());
@@ -273,12 +273,12 @@ public static Optional extractErrorResponse(Response response
}
else {
// Error message from Proxy server etc.
- return Optional.of(new TDApiErrorMessage("error", content.or("[empty]"), "error"));
+ return Optional.of(new TDApiErrorMessage("error", content.orElse("[empty]"), "error"));
}
}
catch (IOException e) {
- logger.warn("Failed to parse the error response {}: {}\n{}", response.request().url(), content.or("[empty]"), e.getMessage());
+ logger.warn("Failed to parse the error response {}: {}\n{}", response.request().url(), content.orElse("[empty]"), e.getMessage());
}
- return Optional.absent();
+ return Optional.empty();
}
}
diff --git a/src/main/java/com/treasuredata/client/impl/ProxyAuthenticator.java b/src/main/java/com/treasuredata/client/impl/ProxyAuthenticator.java
index 048434f2..03f34eec 100644
--- a/src/main/java/com/treasuredata/client/impl/ProxyAuthenticator.java
+++ b/src/main/java/com/treasuredata/client/impl/ProxyAuthenticator.java
@@ -18,7 +18,6 @@
*/
package com.treasuredata.client.impl;
-import com.google.common.base.Optional;
import com.treasuredata.client.ProxyConfig;
import com.treasuredata.client.TDClientException;
import com.treasuredata.client.TDClientHttpException;
@@ -31,6 +30,7 @@
import org.slf4j.LoggerFactory;
import java.io.IOException;
+import java.util.Optional;
import static com.google.common.net.HttpHeaders.PROXY_AUTHORIZATION;
@@ -42,7 +42,7 @@ public class ProxyAuthenticator
{
private final Logger logger = LoggerFactory.getLogger(ProxyAuthenticator.class);
private final ProxyConfig proxyConfig;
- private Optional proxyAuthCache = Optional.absent();
+ private Optional proxyAuthCache = Optional.empty();
public ProxyAuthenticator(ProxyConfig proxyConfig)
{
@@ -62,7 +62,7 @@ public Request authenticate(Route route, Response response)
if (!proxyAuthCache.isPresent()) {
logger.debug("Proxy authorization requested for " + route.address());
proxyAuthCache = Optional.of(
- Credentials.basic(proxyConfig.getUser().or(""), proxyConfig.getPassword().or(""))
+ Credentials.basic(proxyConfig.getUser().orElse(""), proxyConfig.getPassword().orElse(""))
);
}
return response.request().newBuilder()
diff --git a/src/main/java/com/treasuredata/client/model/ObjectMappers.java b/src/main/java/com/treasuredata/client/model/ObjectMappers.java
index 2e45ec42..88984751 100644
--- a/src/main/java/com/treasuredata/client/model/ObjectMappers.java
+++ b/src/main/java/com/treasuredata/client/model/ObjectMappers.java
@@ -4,6 +4,7 @@
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.guava.GuavaModule;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule;
import com.google.common.annotations.VisibleForTesting;
@@ -36,6 +37,7 @@ private static ObjectMapper createCompactMapper()
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JsonOrgModule());
mapper.registerModule(new GuavaModule().configureAbsentsAsNulls(false));
+ mapper.registerModule(new Jdk8Module().configureAbsentsAsNulls(false));
mapper.setSerializationInclusion(JsonInclude.Include.NON_ABSENT);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return mapper;
diff --git a/src/main/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequest.java b/src/main/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequest.java
index 5d184dbe..c00edfa9 100644
--- a/src/main/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequest.java
+++ b/src/main/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequest.java
@@ -2,7 +2,8 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.Optional;
+
+import java.util.Optional;
public class TDBulkLoadSessionStartRequest
{
@@ -21,20 +22,20 @@ public class TDBulkLoadSessionStartRequest
TDBulkLoadSessionStartRequest(TDBulkLoadSessionStartRequestBuilder builder)
{
- this.scheduledTime = builder.getScheduledTime().orNull();
- this.domainKey = builder.getDomainKey().orNull();
+ this.scheduledTime = builder.getScheduledTime().orElse(null);
+ this.domainKey = builder.getDomainKey().orElse(null);
}
@JsonProperty("scheduled_time")
public Optional getScheduledTime()
{
- return Optional.fromNullable(scheduledTime);
+ return Optional.ofNullable(scheduledTime);
}
@JsonProperty("domain_key")
public Optional getDomainKey()
{
- return Optional.fromNullable(domainKey);
+ return Optional.ofNullable(domainKey);
}
@Override
diff --git a/src/main/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequestBuilder.java b/src/main/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequestBuilder.java
index b8fcc612..616c2291 100644
--- a/src/main/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequestBuilder.java
+++ b/src/main/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequestBuilder.java
@@ -1,6 +1,6 @@
package com.treasuredata.client.model;
-import com.google.common.base.Optional;
+import java.util.Optional;
public class TDBulkLoadSessionStartRequestBuilder
{
@@ -13,7 +13,7 @@ public class TDBulkLoadSessionStartRequestBuilder
public Optional getScheduledTime()
{
- return Optional.fromNullable(scheduledTime);
+ return Optional.ofNullable(scheduledTime);
}
public TDBulkLoadSessionStartRequestBuilder setScheduledTime(String scheduledTime)
@@ -29,13 +29,13 @@ public TDBulkLoadSessionStartRequestBuilder setScheduledTime(long scheduledTime)
public TDBulkLoadSessionStartRequestBuilder setScheduledTime(Optional scheduledTime)
{
- this.scheduledTime = scheduledTime.orNull();
+ this.scheduledTime = scheduledTime.orElse(null);
return this;
}
public Optional getDomainKey()
{
- return Optional.fromNullable(domainKey);
+ return Optional.ofNullable(domainKey);
}
public TDBulkLoadSessionStartRequestBuilder setDomainKey(String domainKey)
@@ -46,7 +46,7 @@ public TDBulkLoadSessionStartRequestBuilder setDomainKey(String domainKey)
public TDBulkLoadSessionStartRequestBuilder setDomainKey(Optional domainKey)
{
- return setDomainKey(domainKey.orNull());
+ return setDomainKey(domainKey.orElse(null));
}
public TDBulkLoadSessionStartRequest build()
diff --git a/src/main/java/com/treasuredata/client/model/TDColumnType.java b/src/main/java/com/treasuredata/client/model/TDColumnType.java
index 5d18f902..c90bbfc6 100644
--- a/src/main/java/com/treasuredata/client/model/TDColumnType.java
+++ b/src/main/java/com/treasuredata/client/model/TDColumnType.java
@@ -20,38 +20,39 @@
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.treasuredata.client.model.impl.TDColumnTypeDeserializer;
import java.io.Serializable;
+import java.util.Collections;
import java.util.List;
+import java.util.Objects;
@JsonDeserialize(using = TDColumnTypeDeserializer.class)
public class TDColumnType implements Serializable
{
- public static final TDColumnType INT = new TDColumnType(TDTypeName.INT, Optional.>absent());
- public static final TDColumnType LONG = new TDColumnType(TDTypeName.LONG, Optional.>absent());
- public static final TDColumnType FLOAT = new TDColumnType(TDTypeName.FLOAT, Optional.>absent());
- public static final TDColumnType DOUBLE = new TDColumnType(TDTypeName.DOUBLE, Optional.>absent());
- public static final TDColumnType STRING = new TDColumnType(TDTypeName.STRING, Optional.>absent());
+ public static final TDColumnType INT = new TDColumnType(TDTypeName.INT, Collections.emptyList());
+ public static final TDColumnType LONG = new TDColumnType(TDTypeName.LONG, Collections.emptyList());
+ public static final TDColumnType FLOAT = new TDColumnType(TDTypeName.FLOAT, Collections.emptyList());
+ public static final TDColumnType DOUBLE = new TDColumnType(TDTypeName.DOUBLE, Collections.emptyList());
+ public static final TDColumnType STRING = new TDColumnType(TDTypeName.STRING, Collections.emptyList());
public static final List primitiveTypes = ImmutableList.of(INT, LONG, FLOAT, DOUBLE, STRING);
public static TDColumnType newArrayType(TDColumnType elementType)
{
- return new TDColumnType(TDTypeName.ARRAY, Optional.>of(ImmutableList.of(elementType)));
+ return new TDColumnType(TDTypeName.ARRAY, ImmutableList.of(elementType));
}
public static TDColumnType newMapType(TDColumnType keyType, TDColumnType valueType)
{
- return new TDColumnType(TDTypeName.MAP, Optional.>of(ImmutableList.of(keyType, valueType)));
+ return new TDColumnType(TDTypeName.MAP, ImmutableList.of(keyType, valueType));
}
private final TDTypeName typeName;
- private final Optional> elementTypes;
+ private final List elementTypes;
- private TDColumnType(TDTypeName typeName, Optional> elementTypes)
+ private TDColumnType(TDTypeName typeName, List elementTypes)
{
this.typeName = typeName;
this.elementTypes = elementTypes;
@@ -64,7 +65,7 @@ public TDTypeName getTypeName()
public boolean isPrimitive()
{
- return !elementTypes.isPresent();
+ return elementTypes.size() == 0;
}
public boolean isArrayType()
@@ -82,7 +83,7 @@ public TDColumnType getArrayElementType()
if (!isArrayType()) {
throw new UnsupportedOperationException("getArrayElementType is not supported for " + this);
}
- return elementTypes.get().get(0);
+ return elementTypes.get(0);
}
public TDColumnType getMapKeyType()
@@ -90,7 +91,7 @@ public TDColumnType getMapKeyType()
if (!isMapType()) {
throw new UnsupportedOperationException("getmapKeyType is not supported for " + this);
}
- return elementTypes.get().get(0);
+ return elementTypes.get(0);
}
public TDColumnType getMapValueType()
@@ -98,7 +99,7 @@ public TDColumnType getMapValueType()
if (!isMapType()) {
throw new UnsupportedOperationException("getMapValueType is not supported for " + this);
}
- return elementTypes.get().get(1);
+ return elementTypes.get(1);
}
@JsonValue
@@ -129,7 +130,7 @@ public boolean equals(Object o)
if (!typeName.equals(that.typeName)) {
return false;
}
- return !(elementTypes != null ? !elementTypes.equals(that.elementTypes) : that.elementTypes != null);
+ return Objects.equals(elementTypes, that.elementTypes);
}
@Override
diff --git a/src/main/java/com/treasuredata/client/model/TDDatabase.java b/src/main/java/com/treasuredata/client/model/TDDatabase.java
index 7f4268e2..07ddad30 100644
--- a/src/main/java/com/treasuredata/client/model/TDDatabase.java
+++ b/src/main/java/com/treasuredata/client/model/TDDatabase.java
@@ -21,7 +21,8 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Objects;
-import com.google.common.base.Optional;
+
+import java.util.Optional;
@JsonCollectionRootName(value = "databases")
public class TDDatabase
diff --git a/src/main/java/com/treasuredata/client/model/TDExportJobRequest.java b/src/main/java/com/treasuredata/client/model/TDExportJobRequest.java
index 55c05d47..8e6e3b86 100644
--- a/src/main/java/com/treasuredata/client/model/TDExportJobRequest.java
+++ b/src/main/java/com/treasuredata/client/model/TDExportJobRequest.java
@@ -18,11 +18,11 @@
*/
package com.treasuredata.client.model;
-import com.google.common.base.Optional;
import org.immutables.builder.Builder;
import org.immutables.value.Value;
import java.util.Date;
+import java.util.Optional;
/**
*
@@ -68,7 +68,7 @@ public TDExportJobRequest(
this.bucketName = bucketName;
this.filePrefix = filePrefix;
this.poolName = poolName;
- this.domainKey = Optional.absent();
+ this.domainKey = Optional.empty();
}
private TDExportJobRequest(String database, String table, Date from, Date to, TDExportFileFormatType fileFormat, String accessKeyId, String secretAccessKey, String bucketName, String filePrefix, Optional poolName, Optional domainKey)
diff --git a/src/main/java/com/treasuredata/client/model/TDExportResultJobRequest.java b/src/main/java/com/treasuredata/client/model/TDExportResultJobRequest.java
index 56e508fe..9510a203 100644
--- a/src/main/java/com/treasuredata/client/model/TDExportResultJobRequest.java
+++ b/src/main/java/com/treasuredata/client/model/TDExportResultJobRequest.java
@@ -1,9 +1,10 @@
package com.treasuredata.client.model;
-import com.google.common.base.Optional;
import org.immutables.builder.Builder;
import org.immutables.value.Value;
+import java.util.Optional;
+
@Value.Style(typeBuilder = "TDExportResultJobRequestBuilder")
public class TDExportResultJobRequest
{
@@ -47,9 +48,9 @@ static TDExportResultJobRequest of(String jobId,
Optional resultConnectionSettings)
{
return new TDExportResultJobRequest(jobId,
- resultOutput.or(""),
- resultConnectionId.or(""),
- resultConnectionSettings.or(""));
+ resultOutput.orElse(""),
+ resultConnectionId.orElse(""),
+ resultConnectionSettings.orElse(""));
}
public static TDExportResultJobRequestBuilder builder()
diff --git a/src/main/java/com/treasuredata/client/model/TDJob.java b/src/main/java/com/treasuredata/client/model/TDJob.java
index 35c58ba6..5eb3b44d 100644
--- a/src/main/java/com/treasuredata/client/model/TDJob.java
+++ b/src/main/java/com/treasuredata/client/model/TDJob.java
@@ -21,8 +21,8 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
+
+import java.util.Optional;
/**
*
@@ -153,12 +153,12 @@ public Debug(@JsonProperty("cmdout") Optional cmdout, @JsonProperty("std
public String getCmdout()
{
- return cmdout.or("");
+ return cmdout.orElse("");
}
public String getStderr()
{
- return stderr.or("");
+ return stderr.orElse("");
}
@Override
@@ -346,14 +346,7 @@ public Optional getEngineVersion()
*/
public String getCmdOut()
{
- return debug.transform(new Function()
- {
- @Override
- public String apply(Debug input)
- {
- return input.getCmdout();
- }
- }).or("");
+ return debug.map(Debug::getCmdout).orElse("");
}
/**
@@ -363,14 +356,7 @@ public String apply(Debug input)
*/
public String getStdErr()
{
- return debug.transform(new Function()
- {
- @Override
- public String apply(Debug input)
- {
- return input.getStderr();
- }
- }).or("");
+ return debug.map(Debug::getStderr).orElse("");
}
@Override
diff --git a/src/main/java/com/treasuredata/client/model/TDJobList.java b/src/main/java/com/treasuredata/client/model/TDJobList.java
index 492894d1..c0b320ba 100644
--- a/src/main/java/com/treasuredata/client/model/TDJobList.java
+++ b/src/main/java/com/treasuredata/client/model/TDJobList.java
@@ -20,9 +20,9 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
import java.util.List;
+import java.util.Optional;
/**
*
diff --git a/src/main/java/com/treasuredata/client/model/TDJobRequest.java b/src/main/java/com/treasuredata/client/model/TDJobRequest.java
index e93e8099..cbcf66eb 100644
--- a/src/main/java/com/treasuredata/client/model/TDJobRequest.java
+++ b/src/main/java/com/treasuredata/client/model/TDJobRequest.java
@@ -19,7 +19,8 @@
package com.treasuredata.client.model;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.base.Optional;
+
+import java.util.Optional;
/**
*
@@ -53,11 +54,11 @@ public TDJobRequest(String database, TDJob.Type type, String query, TDJob.Priori
this.poolName = poolName;
this.table = table;
this.config = config;
- this.scheduledTime = Optional.absent();
- this.domainKey = Optional.absent();
- this.resultConnectionId = Optional.absent();
- this.resultConnectionSettings = Optional.absent();
- this.engineVersion = Optional.absent();
+ this.scheduledTime = Optional.empty();
+ this.domainKey = Optional.empty();
+ this.resultConnectionId = Optional.empty();
+ this.resultConnectionSettings = Optional.empty();
+ this.engineVersion = Optional.empty();
}
private TDJobRequest(TDJobRequestBuilder builder)
diff --git a/src/main/java/com/treasuredata/client/model/TDJobRequestBuilder.java b/src/main/java/com/treasuredata/client/model/TDJobRequestBuilder.java
index 84a0f74b..004cdd7d 100644
--- a/src/main/java/com/treasuredata/client/model/TDJobRequestBuilder.java
+++ b/src/main/java/com/treasuredata/client/model/TDJobRequestBuilder.java
@@ -19,7 +19,8 @@
package com.treasuredata.client.model;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.base.Optional;
+
+import java.util.Optional;
public class TDJobRequestBuilder
{
@@ -28,15 +29,15 @@ public class TDJobRequestBuilder
private String query;
private TDJob.Priority priority = TDJob.Priority.NORMAL;
private String result;
- private Optional retryLimit = Optional.absent();
+ private Optional retryLimit = Optional.empty();
private String poolName;
- private Optional table = Optional.absent();
- private Optional config = Optional.absent();
- private Optional scheduledTime = Optional.absent();
- private Optional domainKey = Optional.absent();
- private Optional resultConnectionId = Optional.absent();
- private Optional resultConnectionSettings = Optional.absent();
- private Optional engineVersion = Optional.absent();
+ private Optional table = Optional.empty();
+ private Optional config = Optional.empty();
+ private Optional scheduledTime = Optional.empty();
+ private Optional domainKey = Optional.empty();
+ private Optional resultConnectionId = Optional.empty();
+ private Optional resultConnectionSettings = Optional.empty();
+ private Optional engineVersion = Optional.empty();
public TDJobRequestBuilder setResultOutput(String result)
{
@@ -46,7 +47,7 @@ public TDJobRequestBuilder setResultOutput(String result)
public Optional getResultOutput()
{
- return Optional.fromNullable(result);
+ return Optional.ofNullable(result);
}
public TDJobRequestBuilder setDatabase(String database)
@@ -124,7 +125,7 @@ public TDJobRequestBuilder setPoolName(String poolName)
public Optional getPoolName()
{
- return Optional.fromNullable(poolName);
+ return Optional.ofNullable(poolName);
}
public TDJobRequestBuilder setTable(String table)
@@ -151,7 +152,7 @@ public Optional getConfig()
public TDJobRequestBuilder setScheduledTime(Long scheduledTime)
{
- return setScheduledTime(Optional.fromNullable(scheduledTime));
+ return setScheduledTime(Optional.ofNullable(scheduledTime));
}
public TDJobRequestBuilder setScheduledTime(Optional scheduledTime)
@@ -178,7 +179,7 @@ public TDJobRequestBuilder setDomainKey(Optional domainKey)
public TDJobRequestBuilder setDomainKey(String domainKey)
{
- return setDomainKey(Optional.fromNullable(domainKey));
+ return setDomainKey(Optional.ofNullable(domainKey));
}
public Optional getResultConnectionId()
@@ -210,18 +211,18 @@ public TDJobRequestBuilder setResultConnectionSettings(Optional resultCo
public TDJobRequestBuilder setResultConnectionSettings(String resultConnectionSettings)
{
- return setResultConnectionSettings(Optional.fromNullable(resultConnectionSettings));
+ return setResultConnectionSettings(Optional.ofNullable(resultConnectionSettings));
}
public TDJobRequestBuilder setEngineVersion(String engineVersion)
{
- this.engineVersion = Optional.fromNullable(TDJob.EngineVersion.fromString(engineVersion));
+ this.engineVersion = Optional.ofNullable(TDJob.EngineVersion.fromString(engineVersion));
return this;
}
public TDJobRequestBuilder setEngineVersion(TDJob.EngineVersion engineVersion)
{
- this.engineVersion = Optional.fromNullable(engineVersion);
+ this.engineVersion = Optional.ofNullable(engineVersion);
return this;
}
diff --git a/src/main/java/com/treasuredata/client/model/TDSavedQueryBuilder.java b/src/main/java/com/treasuredata/client/model/TDSavedQueryBuilder.java
index fae9eb2f..42138062 100644
--- a/src/main/java/com/treasuredata/client/model/TDSavedQueryBuilder.java
+++ b/src/main/java/com/treasuredata/client/model/TDSavedQueryBuilder.java
@@ -18,22 +18,23 @@
*/
package com.treasuredata.client.model;
-import com.google.common.base.Optional;
+import java.util.Optional;
+
import com.treasuredata.client.TDClientException;
public class TDSavedQueryBuilder
{
- private Optional name = Optional.absent();
- private Optional cron = Optional.absent();
- private Optional type = Optional.absent();
- private Optional query = Optional.absent();
- private Optional timezone = Optional.absent();
- private Optional delay = Optional.absent();
- private Optional database = Optional.absent();
- private Optional priority = Optional.absent();
- private Optional retryLimit = Optional.absent();
- private Optional result = Optional.absent();
- private Optional engineVersion = Optional.absent();
+ private Optional name = Optional.empty();
+ private Optional cron = Optional.empty();
+ private Optional type = Optional.empty();
+ private Optional query = Optional.empty();
+ private Optional timezone = Optional.empty();
+ private Optional delay = Optional.empty();
+ private Optional database = Optional.empty();
+ private Optional priority = Optional.empty();
+ private Optional retryLimit = Optional.empty();
+ private Optional result = Optional.empty();
+ private Optional engineVersion = Optional.empty();
public TDSavedQueryBuilder setName(String name)
{
@@ -97,7 +98,7 @@ public TDSavedQueryBuilder setResult(String result)
public TDSavedQueryBuilder setEngineVersion(TDJob.EngineVersion engineVersion)
{
- this.engineVersion = Optional.fromNullable(engineVersion);
+ this.engineVersion = Optional.ofNullable(engineVersion);
return this;
}
@@ -118,16 +119,16 @@ public TDSaveQueryRequest build()
return new TDSaveQueryRequest(
name.get(),
- cron.or(""),
+ cron.orElse(""),
type.get(),
query.get(),
timezone.get(),
- delay.or(0L),
+ delay.orElse(0L),
database.get(),
- priority.or(TDJob.Priority.NORMAL.toInt()),
- retryLimit.or(0),
- result.or(""),
- engineVersion.orNull()
+ priority.orElse(TDJob.Priority.NORMAL.toInt()),
+ retryLimit.orElse(0),
+ result.orElse(""),
+ engineVersion.orElse(null)
);
}
diff --git a/src/main/java/com/treasuredata/client/model/TDSavedQueryHistory.java b/src/main/java/com/treasuredata/client/model/TDSavedQueryHistory.java
index 445abec4..24e48fa3 100644
--- a/src/main/java/com/treasuredata/client/model/TDSavedQueryHistory.java
+++ b/src/main/java/com/treasuredata/client/model/TDSavedQueryHistory.java
@@ -19,9 +19,9 @@
package com.treasuredata.client.model;
import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.Optional;
import java.util.List;
+import java.util.Optional;
public class TDSavedQueryHistory
{
diff --git a/src/main/java/com/treasuredata/client/model/TDSavedQueryStartRequest.java b/src/main/java/com/treasuredata/client/model/TDSavedQueryStartRequest.java
index ff0ede1e..92806406 100644
--- a/src/main/java/com/treasuredata/client/model/TDSavedQueryStartRequest.java
+++ b/src/main/java/com/treasuredata/client/model/TDSavedQueryStartRequest.java
@@ -2,10 +2,10 @@
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.google.common.base.Optional;
import org.immutables.value.Value;
import java.util.Date;
+import java.util.Optional;
@Value.Immutable
@Value.Style(visibility = Value.Style.ImplementationVisibility.PACKAGE)
diff --git a/src/main/java/com/treasuredata/client/model/TDSavedQueryStartRequestV4.java b/src/main/java/com/treasuredata/client/model/TDSavedQueryStartRequestV4.java
index c3264fca..be22577a 100644
--- a/src/main/java/com/treasuredata/client/model/TDSavedQueryStartRequestV4.java
+++ b/src/main/java/com/treasuredata/client/model/TDSavedQueryStartRequestV4.java
@@ -3,11 +3,11 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.google.common.base.Optional;
import org.immutables.value.Value;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.util.Optional;
import java.util.TimeZone;
@Value.Immutable
diff --git a/src/main/java/com/treasuredata/client/model/TDSavedQueryUpdateRequest.java b/src/main/java/com/treasuredata/client/model/TDSavedQueryUpdateRequest.java
index 1c66e10f..8b2d11b4 100644
--- a/src/main/java/com/treasuredata/client/model/TDSavedQueryUpdateRequest.java
+++ b/src/main/java/com/treasuredata/client/model/TDSavedQueryUpdateRequest.java
@@ -24,8 +24,10 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.guava.GuavaModule;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
+
+import java.util.Optional;
/**
* Update request for saved queries. Use {@link TDSavedQuery#newUpdateRequestBuilder()} to build this object.
@@ -78,6 +80,7 @@ static ObjectMapper getObjectMapper()
ObjectMapper mapper = new ObjectMapper();
// Configure object mapper to exclude Optional.absent values in the generated json string
mapper.registerModule(new GuavaModule().configureAbsentsAsNulls(false));
+ mapper.registerModule(new Jdk8Module().configureAbsentsAsNulls(false));
mapper.setSerializationInclusion(JsonInclude.Include.NON_ABSENT);
return mapper;
}
@@ -103,16 +106,16 @@ public String toJson()
public TDSaveQueryRequest merge(TDSavedQuery base)
{
return new TDSaveQueryRequest(
- name.or(base.getName()),
- cron.or(base.getCron()),
- type.or(base.getType()),
- query.or(base.getQuery()),
- timezone.or(base.getTimezone()),
- delay.or(base.getDelay()),
- database.or(base.getDatabase()),
- priority.or(base.getPriority()),
- retryLimit.or(base.getRetryLimit()),
- result.or(base.getResult()),
+ name.orElse(base.getName()),
+ cron.orElse(base.getCron()),
+ type.orElse(base.getType()),
+ query.orElse(base.getQuery()),
+ timezone.orElse(base.getTimezone()),
+ delay.orElse(base.getDelay()),
+ database.orElse(base.getDatabase()),
+ priority.orElse(base.getPriority()),
+ retryLimit.orElse(base.getRetryLimit()),
+ result.orElse(base.getResult()),
engineVersion.isPresent() ? engineVersion.get() : base.getEngineVersion());
}
diff --git a/src/main/java/com/treasuredata/client/model/TDSavedQueryUpdateRequestBuilder.java b/src/main/java/com/treasuredata/client/model/TDSavedQueryUpdateRequestBuilder.java
index ea3af591..0ec20c43 100644
--- a/src/main/java/com/treasuredata/client/model/TDSavedQueryUpdateRequestBuilder.java
+++ b/src/main/java/com/treasuredata/client/model/TDSavedQueryUpdateRequestBuilder.java
@@ -18,24 +18,24 @@
*/
package com.treasuredata.client.model;
-import com.google.common.base.Optional;
+import java.util.Optional;
/**
*
*/
public class TDSavedQueryUpdateRequestBuilder
{
- private Optional name = Optional.absent();
- private Optional cron = Optional.absent();
- private Optional type = Optional.absent();
- private Optional query = Optional.absent();
- private Optional timezone = Optional.absent();
- private Optional delay = Optional.absent();
- private Optional database = Optional.absent();
- private Optional priority = Optional.absent();
- private Optional retryLimit = Optional.absent();
- private Optional result = Optional.absent();
- private Optional engineVersion = Optional.absent();
+ private Optional name = Optional.empty();
+ private Optional cron = Optional.empty();
+ private Optional type = Optional.empty();
+ private Optional query = Optional.empty();
+ private Optional timezone = Optional.empty();
+ private Optional delay = Optional.empty();
+ private Optional database = Optional.empty();
+ private Optional priority = Optional.empty();
+ private Optional retryLimit = Optional.empty();
+ private Optional result = Optional.empty();
+ private Optional engineVersion = Optional.empty();
TDSavedQueryUpdateRequestBuilder()
{
diff --git a/src/main/java/com/treasuredata/client/model/TDUser.java b/src/main/java/com/treasuredata/client/model/TDUser.java
index e3b9d0ec..bab9f321 100644
--- a/src/main/java/com/treasuredata/client/model/TDUser.java
+++ b/src/main/java/com/treasuredata/client/model/TDUser.java
@@ -3,9 +3,9 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.google.common.base.Optional;
import org.immutables.value.Value;
+import java.util.Optional;
@Value.Immutable
@Value.Style(visibility = Value.Style.ImplementationVisibility.PACKAGE)
@JsonSerialize(as = ImmutableTDUser.class)
diff --git a/src/test/java/com/treasuredata/client/TDRequestErrorHandlerTest.java b/src/test/java/com/treasuredata/client/TDRequestErrorHandlerTest.java
index b25a7ba8..8df767a4 100644
--- a/src/test/java/com/treasuredata/client/TDRequestErrorHandlerTest.java
+++ b/src/test/java/com/treasuredata/client/TDRequestErrorHandlerTest.java
@@ -1,6 +1,5 @@
package com.treasuredata.client;
-import com.google.common.base.Optional;
import com.treasuredata.client.model.TDApiErrorMessage;
import okhttp3.Headers;
import okhttp3.MediaType;
@@ -18,6 +17,7 @@
import org.slf4j.LoggerFactory;
import java.util.Date;
+import java.util.Optional;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertFalse;
diff --git a/src/test/java/com/treasuredata/client/TestTDClient.java b/src/test/java/com/treasuredata/client/TestTDClient.java
index 06367e4e..d703873d 100644
--- a/src/test/java/com/treasuredata/client/TestTDClient.java
+++ b/src/test/java/com/treasuredata/client/TestTDClient.java
@@ -23,7 +23,6 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.base.Strings;
import com.google.common.base.Throwables;
@@ -103,6 +102,7 @@
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Properties;
import java.util.Set;
import java.util.TimeZone;
@@ -800,7 +800,7 @@ public void submitExportJob()
"secret access key",
"bucket",
"prefix/",
- Optional.absent());
+ Optional.empty());
client.createDatabaseIfNotExists(SAMPLE_DB);
client.createTableIfNotExists(SAMPLE_DB, "sample_output");
String jobId = client.submitExportJob(jobRequest);
@@ -892,7 +892,7 @@ private Optional findTable(String databaseName, String tableName)
return Optional.of(table);
}
}
- return Optional.absent();
+ return Optional.empty();
}
@Test
@@ -1432,7 +1432,7 @@ private Optional findSavedQuery(String name)
return Optional.of(q);
}
}
- return Optional.absent();
+ return Optional.empty();
}
private void validateSavedQuery(TDSaveQueryRequest expected, TDSavedQuery target)
diff --git a/src/test/java/com/treasuredata/client/TestTDClientConfig.java b/src/test/java/com/treasuredata/client/TestTDClientConfig.java
index 69d5e2c3..0808d96d 100644
--- a/src/test/java/com/treasuredata/client/TestTDClientConfig.java
+++ b/src/test/java/com/treasuredata/client/TestTDClientConfig.java
@@ -18,7 +18,6 @@
*/
package com.treasuredata.client;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableSet;
@@ -32,6 +31,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.Optional;
import java.util.Properties;
import java.util.Set;
@@ -252,10 +252,10 @@ public void apikeyWither()
assertThat(config.withApiKey("foo").apiKey, is(Optional.of("foo")));
assertThat(config.withApiKey(Optional.of("foo")).apiKey, is(Optional.of("foo")));
- assertThat(config.withApiKey(Optional.absent()).apiKey, is(Optional.absent()));
+ assertThat(config.withApiKey(Optional.empty()).apiKey, is(Optional.empty()));
assertThat(config.withApiKey("foo").withApiKey("bar").apiKey, is(Optional.of("bar")));
- assertThat(config.withApiKey("foo").withApiKey(Optional.absent()).apiKey, is(Optional.absent()));
- assertThat(config.withApiKey(Optional.absent()).withApiKey("bar").apiKey, is(Optional.of("bar")));
+ assertThat(config.withApiKey("foo").withApiKey(Optional.empty()).apiKey, is(Optional.empty()));
+ assertThat(config.withApiKey(Optional.empty()).withApiKey("bar").apiKey, is(Optional.of("bar")));
}
private Matcher> equalTo(final Multimap multimap)
diff --git a/src/test/java/com/treasuredata/client/TestTDHttpClient.java b/src/test/java/com/treasuredata/client/TestTDHttpClient.java
index e64f8a4a..d8e2f71d 100644
--- a/src/test/java/com/treasuredata/client/TestTDHttpClient.java
+++ b/src/test/java/com/treasuredata/client/TestTDHttpClient.java
@@ -18,7 +18,6 @@
*/
package com.treasuredata.client;
-import com.google.common.base.Optional;
import com.google.common.collect.ImmutableMultimap;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
@@ -41,6 +40,7 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
+import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
@@ -79,7 +79,7 @@ public void tearDown()
public void addHttpRequestHeader()
{
TDApiRequest req = TDApiRequest.Builder.GET("/v3/system/server_status").addHeader("TEST_HEADER", "hello td-client-java").build();
- String resp = client.submitRequest(req, Optional.absent(), stringContentHandler);
+ String resp = client.submitRequest(req, Optional.empty(), stringContentHandler);
}
@Test
@@ -88,12 +88,12 @@ public void addUserAgentHeader()
TDApiRequest apiRequest = TDApiRequest.Builder.GET("/v3/system/server_status").build();
// Without specifying User-Agent header
- Request request1 = client.prepareRequest(apiRequest, Optional.absent());
+ Request request1 = client.prepareRequest(apiRequest, Optional.empty());
assertEquals("td-client-java unknown", request1.header(USER_AGENT));
// With specifying User-Agent header
TDHttpClient newClient = client.withHeaders(ImmutableMultimap.of(USER_AGENT, "td-sample-client 1.0"));
- Request request2 = newClient.prepareRequest(apiRequest, Optional.absent());
+ Request request2 = newClient.prepareRequest(apiRequest, Optional.empty());
assertEquals("td-client-java unknown,td-sample-client 1.0", request2.header(USER_AGENT));
}
@@ -102,7 +102,7 @@ public void deleteMethodTest()
{
try {
TDApiRequest req = TDApiRequest.Builder.DELETE("/v3/dummy_endpoint").build();
- String resp = client.submitRequest(req, Optional.absent(), stringContentHandler);
+ String resp = client.submitRequest(req, Optional.empty(), stringContentHandler);
fail();
}
catch (TDClientHttpException e) {
@@ -128,7 +128,7 @@ public void retryOn429()
final byte[] body = "foobar".getBytes("UTF-8");
final long retryAfterSeconds = 5;
- byte[] result = client.submitRequest(req, Optional.absent(), new TDHttpRequestHandler()
+ byte[] result = client.submitRequest(req, Optional.empty(), new TDHttpRequestHandler()
{
@Override
public Response send(OkHttpClient httpClient, Request request)
@@ -186,7 +186,7 @@ public void retryOn429WithoutRetryAfter()
.build()
.httpClient;
- int requests = failWith429(Optional.absent(), Optional.>absent());
+ int requests = failWith429(Optional.empty(), Optional.empty());
assertThat(requests, is(4));
}
@@ -201,7 +201,7 @@ public void retryOn429WithInvalidRetryAfter()
.build()
.httpClient;
- int requests = failWith429(Optional.of("foobar"), Optional.>absent());
+ int requests = failWith429(Optional.of("foobar"), Optional.empty());
assertThat(requests, is(4));
}
@@ -285,7 +285,7 @@ public void readBodyAsBytes()
final byte[] body = new byte[3 * 1024 * 1024];
Arrays.fill(body, (byte) 100);
- byte[] res = client.submitRequest(req, Optional.absent(), new TestDefaultHandler(body));
+ byte[] res = client.submitRequest(req, Optional.empty(), new TestDefaultHandler(body));
assertThat(res, is(body));
}
@@ -329,7 +329,7 @@ private int failWith429(final Optional retryAfterValue, final Optionalabsent(), new TDHttpRequestHandler()
+ client.submitRequest(req, Optional.empty(), new TDHttpRequestHandler()
{
@Override
public Response send(OkHttpClient httpClient, Request request)
@@ -365,7 +365,7 @@ public byte[] onSuccess(Response response)
}
TDClientHttpTooManyRequestsException tooManyRequestsException = (TDClientHttpTooManyRequestsException) e;
if (retryAfterMatcher.isPresent()) {
- assertThat(tooManyRequestsException.getRetryAfter().orNull(), retryAfterMatcher.get());
+ assertThat(tooManyRequestsException.getRetryAfter().orElse(null), retryAfterMatcher.get());
}
}
diff --git a/src/test/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequestTest.java b/src/test/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequestTest.java
index cbcd1599..6e1322d1 100644
--- a/src/test/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequestTest.java
+++ b/src/test/java/com/treasuredata/client/model/TDBulkLoadSessionStartRequestTest.java
@@ -1,8 +1,9 @@
package com.treasuredata.client.model;
-import com.google.common.base.Optional;
import org.junit.Test;
+import java.util.Optional;
+
import static com.treasuredata.client.model.ObjectMappers.compactMapper;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
@@ -14,7 +15,7 @@ public class TDBulkLoadSessionStartRequestTest
public void defaultValues()
throws Exception
{
- assertThat(TDBulkLoadSessionStartRequest.builder().build().getScheduledTime(), is(Optional.absent()));
+ assertThat(TDBulkLoadSessionStartRequest.builder().build().getScheduledTime(), is(Optional.empty()));
}
@Test