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-24 16:53:47 -04:00
committed by jianglai
parent 184b2b56ac
commit c0f8da0c6e
581 changed files with 1325 additions and 932 deletions
@@ -16,9 +16,9 @@ package google.registry.whois;
import static google.registry.model.EppResourceUtils.loadByForeignKey;
import com.google.common.base.Optional;
import com.google.common.net.InternetDomainName;
import google.registry.model.domain.DomainResource;
import java.util.Optional;
import org.joda.time.DateTime;
/** Represents a WHOIS lookup on a domain name (i.e. SLD). */
@@ -32,7 +32,7 @@ public class DomainLookupCommand extends DomainOrHostLookupCommand {
protected Optional<WhoisResponse> getResponse(InternetDomainName domainName, DateTime now) {
final DomainResource domainResource =
loadByForeignKey(DomainResource.class, domainName.toString(), now);
return Optional.<WhoisResponse>fromNullable(
return Optional.<WhoisResponse>ofNullable(
domainResource == null ? null : new DomainWhoisResponse(domainResource, now));
}
}
@@ -20,8 +20,8 @@ import static google.registry.model.registry.Registries.getTlds;
import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Optional;
import com.google.common.net.InternetDomainName;
import java.util.Optional;
import org.joda.time.DateTime;
/** Represents a WHOIS lookup on a domain name (i.e. SLD) or a nameserver. */
@@ -16,15 +16,12 @@ package google.registry.whois;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.Iterables.tryFind;
import static google.registry.model.ofy.ObjectifyService.ofy;
import static google.registry.util.CollectionUtils.isNullOrEmpty;
import static google.registry.xml.UtcDateTimeAdapter.getFormattedString;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.googlecode.objectify.Key;
import google.registry.model.contact.ContactPhoneNumber;
import google.registry.model.contact.ContactResource;
@@ -39,6 +36,7 @@ import google.registry.model.registrar.RegistrarContact;
import google.registry.model.translators.EnumToAttributeAdapter.EppEnum;
import google.registry.util.FormattingLogger;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import javax.annotation.Nullable;
import org.joda.time.DateTime;
@@ -74,8 +72,11 @@ final class DomainWhoisResponse extends WhoisResponseImpl {
domain.getCurrentSponsorClientId());
Registrar registrar = registrarOptional.get();
Optional<RegistrarContact> abuseContact =
Iterables.tryFind(
registrar.getContacts(), RegistrarContact::getVisibleInDomainWhoisAsAbuse);
registrar
.getContacts()
.stream()
.filter(RegistrarContact::getVisibleInDomainWhoisAsAbuse)
.findFirst();
String plaintext =
new DomainEmitter()
.emitField(
@@ -121,7 +122,7 @@ final class DomainWhoisResponse extends WhoisResponseImpl {
@Nullable
private Key<ContactResource> getContactReference(final Type type) {
Optional<DesignatedContact> contactOfType =
tryFind(domain.getContacts(), d -> d.getType() == type);
domain.getContacts().stream().filter(d -> d.getType() == type).findFirst();
return contactOfType.isPresent() ? contactOfType.get().getContactKey() : null;
}
@@ -16,9 +16,9 @@ package google.registry.whois;
import static google.registry.model.EppResourceUtils.loadByForeignKey;
import com.google.common.base.Optional;
import com.google.common.net.InternetDomainName;
import google.registry.model.host.HostResource;
import java.util.Optional;
import org.joda.time.DateTime;
/** Represents a WHOIS lookup on a nameserver based on its hostname. */
@@ -32,7 +32,7 @@ public class NameserverLookupByHostCommand extends DomainOrHostLookupCommand {
protected Optional<WhoisResponse> getResponse(InternetDomainName hostName, DateTime now) {
final HostResource hostResource =
loadByForeignKey(HostResource.class, hostName.toString(), now);
return Optional.<WhoisResponse>fromNullable(
return Optional.<WhoisResponse>ofNullable(
hostResource == null ? null : new NameserverWhoisResponse(hostResource, now));
}
}
@@ -18,11 +18,11 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import static google.registry.model.ofy.ObjectifyService.ofy;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.google.common.net.InetAddresses;
import google.registry.model.host.HostResource;
import google.registry.model.registrar.Registrar;
import java.util.Optional;
import org.joda.time.DateTime;
/** Container for WHOIS responses to a nameserver lookup queries. */
+3 -3
View File
@@ -18,13 +18,13 @@ import static com.google.common.base.Preconditions.checkState;
import static google.registry.monitoring.metrics.EventMetric.DEFAULT_FITTER;
import com.google.auto.value.AutoValue;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableSet;
import google.registry.monitoring.metrics.EventMetric;
import google.registry.monitoring.metrics.IncrementableMetric;
import google.registry.monitoring.metrics.LabelDescriptor;
import google.registry.monitoring.metrics.MetricRegistryImpl;
import google.registry.util.Clock;
import java.util.Optional;
import javax.inject.Inject;
import org.joda.time.DateTime;
@@ -62,12 +62,12 @@ public class WhoisMetrics {
/** Records the given {@link WhoisMetric} and its associated processing time. */
public void recordWhoisMetric(WhoisMetric metric) {
whoisRequests.increment(
metric.commandName().or(""),
metric.commandName().orElse(""),
Integer.toString(metric.numResults()),
Integer.toString(metric.status()));
processingTime.record(
metric.endTimestamp().getMillis() - metric.startTimestamp().getMillis(),
metric.commandName().or(""),
metric.commandName().orElse(""),
Integer.toString(metric.numResults()),
Integer.toString(metric.status()));
}
+1 -1
View File
@@ -21,7 +21,6 @@ import static google.registry.util.DomainNameUtils.canonicalizeDomainName;
import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
import com.google.common.base.Joiner;
import com.google.common.base.Optional;
import com.google.common.io.CharStreams;
import com.google.common.net.InetAddresses;
import com.google.common.net.InternetDomainName;
@@ -31,6 +30,7 @@ import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.inject.Inject;
import org.joda.time.DateTime;
@@ -21,11 +21,11 @@ import static com.google.common.html.HtmlEscapers.htmlEscaper;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.base.Optional;
import google.registry.model.eppcommon.Address;
import google.registry.util.Idn;
import google.registry.xml.UtcDateTimeAdapter;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import javax.annotation.Nullable;
import org.joda.time.DateTime;
@@ -64,9 +64,9 @@ abstract class WhoisResponseImpl implements WhoisResponse {
static <T> T chooseByUnicodePreference(
boolean preferUnicode, @Nullable T localized, @Nullable T internationalized) {
if (preferUnicode) {
return Optional.fromNullable(localized).or(Optional.fromNullable(internationalized)).orNull();
return Optional.ofNullable(localized).orElse(internationalized);
} else {
return Optional.fromNullable(internationalized).or(Optional.fromNullable(localized)).orNull();
return Optional.ofNullable(internationalized).orElse(localized);
}
}