Switch from Guava Optionals to Java 8 Optionals

This was a surprisingly involved change. Some of the difficulties included
java.util.Optional purposely not being Serializable (so I had to move a
few Optionals in mapreduce classes to @Nullable) and having to add the Truth
Java8 extension library for assertion support.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=171863777
This commit is contained in:
mcilwain 2017-10-11 13:09:26 -07:00 committed by jianglai
parent 184b2b56ac
commit c0f8da0c6e
581 changed files with 1325 additions and 932 deletions

View file

@ -16,6 +16,7 @@ package google.registry.testing;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth8.assertThat;
import static google.registry.model.EppResourceUtils.isActive;
import static google.registry.testing.DatastoreHelper.getHistoryEntriesOfType;
import static google.registry.testing.HistoryEntrySubject.assertAboutHistoryEntries;

View file

@ -34,7 +34,6 @@ java_library(
"//java/google/registry/util",
"//java/google/registry/xml",
"//third_party/java/objectify:objectify-v4_1",
"//third_party/java/truth",
"@com_google_appengine_api_1_0_sdk//:testonly",
"@com_google_appengine_api_stubs",
"@com_google_appengine_testing",
@ -45,6 +44,8 @@ java_library(
"@com_google_dagger",
"@com_google_guava",
"@com_google_guava_testlib",
"@com_google_truth",
"@com_google_truth_extensions_truth_java8_extension",
"@com_googlecode_json_simple",
"@javax_inject",
"@javax_servlet_api",

View file

@ -103,6 +103,7 @@ import google.registry.model.transfer.TransferStatus;
import google.registry.tmch.LordnTask;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import javax.annotation.Nullable;
import org.joda.money.Money;
import org.joda.time.DateTime;
@ -678,7 +679,7 @@ public class DatastoreHelper {
}
/** Assert that the expected billing events set is exactly the one found in the fake Datastore. */
public static void assertBillingEvents(ImmutableSet<BillingEvent> expected) throws Exception {
public static void assertBillingEvents(Set<BillingEvent> expected) throws Exception {
assertBillingEventsEqual(getBillingEvents(), expected);
}

View file

@ -17,6 +17,7 @@ package google.registry.testing;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.truth.Truth.assertAbout;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth8.assertThat;
import com.google.common.collect.ImmutableSet;
import com.google.common.truth.FailureStrategy;

View file

@ -16,6 +16,7 @@ package google.registry.testing;
import static com.google.common.truth.Truth.assertAbout;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth8.assertThat;
import static google.registry.flows.EppXmlTransformer.marshal;
import com.google.common.truth.FailureStrategy;

View file

@ -17,7 +17,6 @@ package google.registry.testing;
import static com.google.common.truth.Truth.assertAbout;
import static google.registry.util.PreconditionsUtils.checkArgumentNotNull;
import com.google.common.base.Optional;
import com.google.common.truth.FailureStrategy;
import com.google.common.truth.Subject;
import com.google.common.truth.SubjectFactory;
@ -25,6 +24,7 @@ import google.registry.model.eppoutput.Result.Code;
import google.registry.monitoring.whitebox.EppMetric;
import google.registry.testing.TruthChainer.And;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
/** Utility methods for asserting things about {@link EppMetric} instances. */

View file

@ -16,7 +16,6 @@ package google.registry.testing;
import static com.google.common.truth.Truth.assertAbout;
import com.google.common.base.Optional;
import com.google.common.truth.FailureStrategy;
import com.google.common.truth.SimpleSubjectBuilder;
import com.google.common.truth.Subject;
@ -24,6 +23,7 @@ import google.registry.model.domain.Period;
import google.registry.model.reporting.HistoryEntry;
import google.registry.testing.TruthChainer.And;
import java.util.Objects;
import java.util.Optional;
/** Utility methods for asserting things about {@link HistoryEntry} instances. */
public class HistoryEntrySubject extends Subject<HistoryEntrySubject, HistoryEntry> {
@ -40,7 +40,7 @@ public class HistoryEntrySubject extends Subject<HistoryEntrySubject, HistoryEnt
@Override
public String actualCustomStringRepresentation() {
return Optional.fromNullable(customDisplaySubject).or(String.valueOf(actual()));
return Optional.ofNullable(customDisplaySubject).orElse(String.valueOf(actual()));
}
public HistoryEntrySubject withCustomDisplaySubject(String customDisplaySubject) {

View file

@ -16,6 +16,7 @@ package google.registry.testing;
import static com.google.common.truth.Truth.assertAbout;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth8.assertThat;
import com.google.common.collect.ImmutableList;
import com.google.common.testing.TestLogHandler;

View file

@ -17,11 +17,11 @@ package google.registry.testing;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import com.google.common.base.Optional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;
import org.junit.rules.ExternalResource;
@ -65,8 +65,8 @@ public final class SystemPropertyRule extends ExternalResource {
*/
public SystemPropertyRule override(String key, @Nullable String value) {
originals.computeIfAbsent(
key, k -> new Property(k, Optional.fromNullable(System.getProperty(k))));
Property property = new Property(key, Optional.fromNullable(value));
key, k -> new Property(k, Optional.ofNullable(System.getProperty(k))));
Property property = new Property(key, Optional.ofNullable(value));
if (isRunning) {
property.set();
} else {

View file

@ -23,6 +23,7 @@ import static com.google.common.collect.Iterables.transform;
import static com.google.common.collect.Multisets.containsOccurrences;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assert_;
import static com.google.common.truth.Truth8.assertThat;
import static google.registry.util.DiffUtils.prettyPrintEntityDeepDiff;
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.Arrays.asList;

View file

@ -16,7 +16,6 @@ java_library(
"//java/google/registry/model",
"//java/google/registry/util",
"//javatests/google/registry/testing",
"//third_party/java/truth",
"@com_google_appengine_api_1_0_sdk",
"@com_google_appengine_api_stubs",
"@com_google_appengine_testing",
@ -24,6 +23,8 @@ java_library(
"@com_google_appengine_tools_appengine_pipeline",
"@com_google_code_findbugs_jsr305",
"@com_google_guava",
"@com_google_truth",
"@com_google_truth_extensions_truth_java8_extension",
"@javax_servlet_api",
"@joda_time",
"@junit",

View file

@ -15,6 +15,7 @@
package google.registry.testing.mapreduce;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth8.assertThat;
import static google.registry.config.RegistryConfig.getEppResourceIndexBucketCount;
import static google.registry.model.ofy.ObjectifyService.ofy;
import static org.mockito.Mockito.mock;
@ -33,7 +34,6 @@ import com.google.appengine.tools.pipeline.impl.servlets.PipelineServlet;
import com.google.appengine.tools.pipeline.impl.servlets.TaskHandler;
import com.google.apphosting.api.ApiProxy;
import com.google.common.base.CharMatcher;
import com.google.common.base.Optional;
import google.registry.mapreduce.MapreduceRunner;
import google.registry.testing.AppEngineRule;
import google.registry.testing.FakeClock;
@ -47,6 +47,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@ -178,7 +179,7 @@ public abstract class MapreduceTestCase<T> extends ShardableTestCase {
*/
protected void executeTasksUntilEmpty(String queueName, @Nullable FakeClock clock)
throws Exception {
executeTasks(queueName, clock, Optional.<Integer>absent());
executeTasks(queueName, clock, Optional.<Integer>empty());
}
/**