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