From e2db3f914efdf81e0b430abcd305347f021afe2a Mon Sep 17 00:00:00 2001 From: mcilwain Date: Tue, 28 Nov 2017 10:35:57 -0800 Subject: [PATCH] Clean up some code quality issues This removes some qualifiers that aren't necessary (e.g. public/abstract on interfaces, private on enum constructors, final on private methods, static on nested interfaces/enums), uses Java 8 lambdas and features where that's an improvement ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=177182945 --- java/google/registry/backup/BackupModule.java | 2 +- .../batch/DeleteContactsAndHostsAction.java | 2 +- .../batch/DeleteProberDataAction.java | 2 +- .../batch/MapreduceEntityCleanupAction.java | 9 ++- .../batch/VerifyEntityIntegrityAction.java | 9 ++- .../registry/config/RegistryConfig.java | 2 +- .../google/registry/cron/TldFanoutAction.java | 13 ++-- .../writer/clouddns/CloudDnsWriterModule.java | 13 ++-- .../export/SyncGroupMembersAction.java | 2 +- java/google/registry/flows/FlowComponent.java | 2 +- java/google/registry/flows/FlowReporter.java | 21 ++++--- .../registry/flows/ServerTridProvider.java | 2 +- .../registry/flows/TransportCredentials.java | 2 +- .../flows/async/AsyncFlowMetrics.java | 4 +- .../flows/domain/DomainFlowUtils.java | 4 +- .../domain/DomainTransferApproveFlow.java | 4 +- .../domain/DomainTransferRequestFlow.java | 4 +- .../flows/domain/DomainUpdateFlow.java | 4 +- .../registry/flows/host/HostCreateFlow.java | 18 +++--- .../registry/flows/host/HostUpdateFlow.java | 5 +- .../registry/groups/GroupsConnection.java | 10 ++-- .../registry/keyring/api/KeyModule.java | 2 +- .../registry/keyring/api/PgpHelper.java | 2 +- .../registry/keyring/kms/KmsKeyring.java | 6 +- java/google/registry/model/Buildable.java | 6 +- java/google/registry/model/EppResource.java | 8 +-- .../registry/model/EppResourceUtils.java | 2 +- .../registry/model/ImmutableObject.java | 2 +- .../model/annotations/NotBackedUp.java | 2 +- java/google/registry/model/common/Cursor.java | 2 +- .../model/common/EntityGroupRoot.java | 2 +- .../registry/model/domain/DomainCommand.java | 2 +- .../domain/fee/FeeCheckCommandExtension.java | 6 +- .../domain/fee/FeeCheckResponseExtension.java | 4 +- .../model/domain/launch/LaunchPhase.java | 2 +- .../model/eppcommon/ProtocolDefinition.java | 7 ++- .../registry/model/eppcommon/StatusValue.java | 4 +- .../model/eppinput/ResourceCommand.java | 10 ++-- .../model/pricing/PremiumPricingEngine.java | 4 +- .../registry/model/registrar/Registrar.java | 2 +- .../model/registrar/RegistrarContact.java | 2 +- .../registry/label/PremiumListUtils.java | 7 +-- .../model/transfer/TransferStatus.java | 2 +- .../metrics/contrib/LongMetricSubject.java | 8 ++- .../monitoring/whitebox/EppMetric.java | 4 +- .../registry/rdap/RdapDomainSearchAction.java | 4 +- .../registry/rdap/RdapJsonFormatter.java | 12 ++-- .../google/registry/rde/EscrowTaskRunner.java | 2 +- java/google/registry/rde/RdeReporter.java | 3 +- java/google/registry/rde/RdeResourceType.java | 2 +- java/google/registry/rde/RdeUtil.java | 3 +- .../rde/imports/RdeHostLinkAction.java | 2 +- .../registry/rde/imports/RdeImportUtils.java | 60 +++++++++---------- .../registry/rde/imports/RdeParser.java | 3 +- .../registry/reporting/IcannHttpReporter.java | 3 +- .../reporting/IcannReportingStager.java | 9 +-- java/google/registry/request/Action.java | 2 +- .../registry/request/lock/LockHandler.java | 2 +- .../registry/tldconfig/idn/IdnTableEnum.java | 2 +- .../registry/tools/AllocateDomainCommand.java | 47 +++++++-------- java/google/registry/tools/Command.java | 2 +- .../CreateOrUpdatePremiumListCommand.java | 2 +- .../tools/CreatePremiumListCommand.java | 2 +- .../google/registry/tools/EppToolCommand.java | 2 +- .../tools/GenerateAuctionDataCommand.java | 36 +++++------ .../registry/tools/MutatingCommand.java | 2 +- .../tools/RegistryToolEnvironment.java | 4 +- .../params/EppResourceTypeParameter.java | 2 +- .../registry/util/RequestStatusChecker.java | 4 +- java/google/registry/util/Retrier.java | 6 +- java/google/registry/util/TokenUtils.java | 2 +- java/google/registry/util/TypeUtils.java | 2 +- java/google/registry/util/VoidCallable.java | 2 +- .../registry/whois/DomainWhoisResponse.java | 6 +- java/google/registry/whois/WhoisResponse.java | 2 +- java/google/registry/xjc/JaxbFragment.java | 2 +- .../MapreduceEntityCleanupActionTest.java | 2 +- .../writer/dnsupdate/DnsUpdateWriterTest.java | 5 +- .../export/BigqueryPollJobActionTest.java | 3 +- .../registry/flows/EppTestComponent.java | 4 +- .../google/registry/flows/FlowRunnerTest.java | 3 +- .../DomainApplicationCreateFlowTest.java | 3 +- .../google/registry/model/ofy/OfyTest.java | 13 ++-- ...mmitLogRevisionsTranslatorFactoryTest.java | 13 +--- .../translators/StatusValueAdapterTest.java | 2 +- .../metrics/example/SheepCounterExample.java | 2 +- .../stackdriver/StackdriverWriterTest.java | 10 +--- .../rdap/RdapSearchActionTestCase.java | 12 +--- .../registry/rde/BrdaCopyActionTest.java | 7 +-- .../registry/rde/RdeUploadActionTest.java | 12 ++-- .../registry/rde/RydeGpgIntegrationTest.java | 7 +-- .../rde/imports/RdeContactReaderTest.java | 3 +- .../rde/imports/RdeHostReaderTest.java | 3 +- .../google/registry/server/TestServer.java | 2 +- .../registry/testing/AppEngineRule.java | 7 +-- .../registry/testing/DatastoreHelper.java | 7 +-- .../testing/DeterministicStringGenerator.java | 8 +-- .../registry/testing/FakeKeyringModule.java | 6 +- .../testing/FullFieldsTestEntityHelper.java | 3 +- javatests/google/registry/testing/Lazies.java | 6 +- .../google/registry/testing/Providers.java | 6 +- .../DefaultRequestFactoryModuleTest.java | 16 ++--- .../EncryptEscrowDepositCommandTest.java | 11 ++-- .../registry/tools/GhostrydeCommandTest.java | 5 +- .../google/registry/tools/LevelDbUtil.java | 4 +- .../tools/ListObjectsCommandTestCase.java | 8 +-- .../util/ComparingInvocationHandlerTest.java | 2 +- .../util/RequestStatusCheckerImplTest.java | 2 +- .../registry/whois/WhoisReaderTest.java | 2 +- 109 files changed, 286 insertions(+), 379 deletions(-) diff --git a/java/google/registry/backup/BackupModule.java b/java/google/registry/backup/BackupModule.java index 12b45d570..d599bdcc5 100644 --- a/java/google/registry/backup/BackupModule.java +++ b/java/google/registry/backup/BackupModule.java @@ -47,7 +47,7 @@ public final class BackupModule { /** Dagger qualifier for backups. */ @Qualifier @Documented - public static @interface Backups {} + public @interface Backups {} /** Number of threads in the threaded executor. */ private static final int NUM_THREADS = 10; diff --git a/java/google/registry/batch/DeleteContactsAndHostsAction.java b/java/google/registry/batch/DeleteContactsAndHostsAction.java index df48e1651..c424a79b8 100644 --- a/java/google/registry/batch/DeleteContactsAndHostsAction.java +++ b/java/google/registry/batch/DeleteContactsAndHostsAction.java @@ -536,7 +536,7 @@ public class DeleteContactsAndHostsAction implements Runnable { private final String counterFormat; private final OperationResult operationResult; - private Type(String counterFormat, OperationResult operationResult) { + Type(String counterFormat, OperationResult operationResult) { this.counterFormat = counterFormat; this.operationResult = operationResult; } diff --git a/java/google/registry/batch/DeleteProberDataAction.java b/java/google/registry/batch/DeleteProberDataAction.java index bfcae3496..973da8a6b 100644 --- a/java/google/registry/batch/DeleteProberDataAction.java +++ b/java/google/registry/batch/DeleteProberDataAction.java @@ -138,7 +138,7 @@ public class DeleteProberDataAction implements Runnable { if (proberRoidSuffixes.contains(roidSuffix)) { deleteDomain(key); } else { - getContext().incrementCounter(String.format("skipped, non-prober data")); + getContext().incrementCounter("skipped, non-prober data"); } } catch (Throwable t) { logger.severefmt(t, "Error while deleting prober data for key %s", key); diff --git a/java/google/registry/batch/MapreduceEntityCleanupAction.java b/java/google/registry/batch/MapreduceEntityCleanupAction.java index 2b8515dee..4dffa74cf 100644 --- a/java/google/registry/batch/MapreduceEntityCleanupAction.java +++ b/java/google/registry/batch/MapreduceEntityCleanupAction.java @@ -220,11 +220,10 @@ public class MapreduceEntityCleanupAction implements Runnable { errorCount++; } logger.infofmt("%s: %s", actualJobId, error.orElse("deletion requested")); - if (payloadChunkBuilder.isPresent()) { - payloadChunkBuilder - .get() - .append(String.format("%s: %s\n", actualJobId, error.orElse("deletion requested"))); - } + payloadChunkBuilder.ifPresent( + stringBuilder -> + stringBuilder.append( + String.format("%s: %s\n", actualJobId, error.orElse("deletion requested")))); } logger.infofmt( "successfully requested async deletion of %s job(s); errors received on %s", diff --git a/java/google/registry/batch/VerifyEntityIntegrityAction.java b/java/google/registry/batch/VerifyEntityIntegrityAction.java index 80cccd155..29f73d613 100644 --- a/java/google/registry/batch/VerifyEntityIntegrityAction.java +++ b/java/google/registry/batch/VerifyEntityIntegrityAction.java @@ -136,10 +136,9 @@ public class VerifyEntityIntegrityAction implements Runnable { getInputs()))); } - private static ImmutableSet> getInputs() { - ImmutableSet.Builder> builder = - new ImmutableSet.Builder>() - .add(EppResourceInputs.createIndexInput()); + private static ImmutableSet> getInputs() { + ImmutableSet.Builder> builder = + new ImmutableSet.Builder>().add(EppResourceInputs.createIndexInput()); RESOURCE_CLASSES .stream() .map(clazz -> new DatastoreKeyInput(getKind(clazz), NUM_SHARDS)) @@ -153,7 +152,7 @@ public class VerifyEntityIntegrityAction implements Runnable { * contact), which is used to check {@link ForeignKeyIndex} constraints, and one that is common * for all EppResources, to check {@link EppResourceIndex} constraints. */ - private static enum EntityKind { + private enum EntityKind { DOMAIN, APPLICATION, CONTACT, diff --git a/java/google/registry/config/RegistryConfig.java b/java/google/registry/config/RegistryConfig.java index 032bc02cc..165d2c38d 100644 --- a/java/google/registry/config/RegistryConfig.java +++ b/java/google/registry/config/RegistryConfig.java @@ -56,7 +56,7 @@ public final class RegistryConfig { @Qualifier @Retention(RUNTIME) @Documented - public static @interface Config { + public @interface Config { String value() default ""; } diff --git a/java/google/registry/cron/TldFanoutAction.java b/java/google/registry/cron/TldFanoutAction.java index 9431deeff..f1fd453df 100644 --- a/java/google/registry/cron/TldFanoutAction.java +++ b/java/google/registry/cron/TldFanoutAction.java @@ -127,16 +127,19 @@ public final class TldFanoutAction implements Runnable { excludes); Multimap flowThruParams = filterKeys(params, not(in(CONTROL_PARAMS))); Queue taskQueue = getQueue(queue); - String outputPayload = String.format( - "OK: Launched the following %d tasks in queue %s\n", tlds.size(), queue); + StringBuilder outputPayload = + new StringBuilder( + String.format("OK: Launched the following %d tasks in queue %s\n", tlds.size(), queue)); for (String tld : tlds) { TaskOptions taskOptions = createTaskOptions(tld, flowThruParams); TaskHandle taskHandle = taskEnqueuer.enqueue(taskQueue, taskOptions); - outputPayload += String.format( - "- Task: %s, tld: %s, endpoint: %s\n", taskHandle.getName(), tld, taskOptions.getUrl()); + outputPayload.append( + String.format( + "- Task: %s, tld: %s, endpoint: %s\n", + taskHandle.getName(), tld, taskOptions.getUrl())); } response.setContentType(PLAIN_TEXT_UTF_8); - response.setPayload(outputPayload); + response.setPayload(outputPayload.toString()); } private TaskOptions createTaskOptions(String tld, Multimap params) { diff --git a/java/google/registry/dns/writer/clouddns/CloudDnsWriterModule.java b/java/google/registry/dns/writer/clouddns/CloudDnsWriterModule.java index 9c7402c7a..a71be2d23 100644 --- a/java/google/registry/dns/writer/clouddns/CloudDnsWriterModule.java +++ b/java/google/registry/dns/writer/clouddns/CloudDnsWriterModule.java @@ -44,15 +44,12 @@ public final class CloudDnsWriterModule { @Config("projectId") String projectId, @Config("cloudDnsRootUrl") Optional rootUrl, @Config("cloudDnsServicePath") Optional servicePath) { - Dns.Builder builder = new Dns.Builder(transport, jsonFactory, credential.apply(DnsScopes.all())) - .setApplicationName(projectId); + Dns.Builder builder = + new Dns.Builder(transport, jsonFactory, credential.apply(DnsScopes.all())) + .setApplicationName(projectId); - if (rootUrl.isPresent()) { - builder.setRootUrl(rootUrl.get()); - } - if (servicePath.isPresent()) { - builder.setServicePath(servicePath.get()); - } + rootUrl.ifPresent(builder::setRootUrl); + servicePath.ifPresent(builder::setServicePath); return builder.build(); } diff --git a/java/google/registry/export/SyncGroupMembersAction.java b/java/google/registry/export/SyncGroupMembersAction.java index 47ee79c13..c4afb179b 100644 --- a/java/google/registry/export/SyncGroupMembersAction.java +++ b/java/google/registry/export/SyncGroupMembersAction.java @@ -72,7 +72,7 @@ public final class SyncGroupMembersAction implements Runnable { final int statusCode; final String message; - private Result(int statusCode, String message) { + Result(int statusCode, String message) { this.statusCode = statusCode; this.message = message; } diff --git a/java/google/registry/flows/FlowComponent.java b/java/google/registry/flows/FlowComponent.java index 5f3c06aa1..b3f0f6b15 100644 --- a/java/google/registry/flows/FlowComponent.java +++ b/java/google/registry/flows/FlowComponent.java @@ -122,7 +122,7 @@ public interface FlowComponent { /** Module to delegate injection of a desired {@link Flow}. */ @Module - static class FlowComponentModule { + class FlowComponentModule { // WARNING: @FlowScope is intentionally omitted here so that we get a fresh Flow instance on // each call to Provider.get(), to avoid Flow instance re-use upon transaction retries. // TODO(b/29874464): fix this in a cleaner way. diff --git a/java/google/registry/flows/FlowReporter.java b/java/google/registry/flows/FlowReporter.java index b5a52311c..c20d0e9e7 100644 --- a/java/google/registry/flows/FlowReporter.java +++ b/java/google/registry/flows/FlowReporter.java @@ -14,6 +14,7 @@ package google.registry.flows; +import static com.google.common.collect.ImmutableSet.toImmutableSet; import static com.google.common.io.BaseEncoding.base64; import static google.registry.xml.XmlTransformer.prettyPrint; import static java.util.Collections.EMPTY_LIST; @@ -22,6 +23,7 @@ import com.google.common.base.Ascii; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Streams; import google.registry.flows.FlowModule.ClientId; import google.registry.flows.FlowModule.InputXml; import google.registry.flows.annotations.ReportingSpec; @@ -105,7 +107,7 @@ public class FlowReporter { * just about anything could be supplied, and there's no reason to validate twice when this just * needs to be roughly correct. */ - private static final Optional extractTld(String domainName) { + private static Optional extractTld(String domainName) { int index = domainName.indexOf('.'); return index == -1 ? Optional.empty() @@ -116,22 +118,19 @@ public class FlowReporter { * Returns the set of unique results of {@link #extractTld} applied to each given domain name, * excluding any absent results (i.e. cases where no TLD was detected). */ - public static final ImmutableSet extractTlds(Iterable domainNames) { - ImmutableSet.Builder set = new ImmutableSet.Builder<>(); - for (String domainName : domainNames) { - Optional extractedTld = extractTld(domainName); - if (extractedTld.isPresent()) { - set.add(extractedTld.get()); - } - } - return set.build(); + public static ImmutableSet extractTlds(Iterable domainNames) { + return Streams.stream(domainNames) + .map(FlowReporter::extractTld) + .filter(Optional::isPresent) + .map(Optional::get) + .collect(toImmutableSet()); } /** * Returns the ICANN activity report field for the given flow class, or the empty string if no * activity report field specification is found. */ - private static final String extractActivityReportField(Class flowClass) { + private static String extractActivityReportField(Class flowClass) { ReportingSpec reportingSpec = flowClass.getAnnotation(ReportingSpec.class); if (reportingSpec != null) { return reportingSpec.value().getFieldName(); diff --git a/java/google/registry/flows/ServerTridProvider.java b/java/google/registry/flows/ServerTridProvider.java index 7ef6435b9..3abd83a08 100644 --- a/java/google/registry/flows/ServerTridProvider.java +++ b/java/google/registry/flows/ServerTridProvider.java @@ -24,5 +24,5 @@ import google.registry.model.eppcommon.Trid; public interface ServerTridProvider { /** Creates a new server Trid. */ - public String createServerTrid(); + String createServerTrid(); } diff --git a/java/google/registry/flows/TransportCredentials.java b/java/google/registry/flows/TransportCredentials.java index c0a256dbc..382776aee 100644 --- a/java/google/registry/flows/TransportCredentials.java +++ b/java/google/registry/flows/TransportCredentials.java @@ -29,7 +29,7 @@ public interface TransportCredentials { void validate(Registrar registrar, String password) throws AuthenticationErrorException; /** Registrar password is incorrect. */ - static class BadRegistrarPasswordException extends AuthenticationErrorException { + class BadRegistrarPasswordException extends AuthenticationErrorException { public BadRegistrarPasswordException() { super("Registrar password is incorrect"); } diff --git a/java/google/registry/flows/async/AsyncFlowMetrics.java b/java/google/registry/flows/async/AsyncFlowMetrics.java index a3f53c992..57b33fd24 100644 --- a/java/google/registry/flows/async/AsyncFlowMetrics.java +++ b/java/google/registry/flows/async/AsyncFlowMetrics.java @@ -110,7 +110,7 @@ public class AsyncFlowMetrics { private final String metricLabelValue; - private OperationType(String metricLabelValue) { + OperationType(String metricLabelValue) { this.metricLabelValue = metricLabelValue; } @@ -135,7 +135,7 @@ public class AsyncFlowMetrics { private final String metricLabelValue; - private OperationResult(String metricLabelValue) { + OperationResult(String metricLabelValue) { this.metricLabelValue = metricLabelValue; } diff --git a/java/google/registry/flows/domain/DomainFlowUtils.java b/java/google/registry/flows/domain/DomainFlowUtils.java index 151241bed..02dc9d329 100644 --- a/java/google/registry/flows/domain/DomainFlowUtils.java +++ b/java/google/registry/flows/domain/DomainFlowUtils.java @@ -509,9 +509,7 @@ public class DomainFlowUtils { // If the resultant autorenew poll message would have no poll messages to deliver, then just // delete it. Otherwise save it with the new end time. if (isAtOrAfter(updatedAutorenewPollMessage.getEventTime(), newEndTime)) { - if (autorenewPollMessage.isPresent()) { - ofy().delete().entity(autorenewPollMessage.get()); - } + autorenewPollMessage.ifPresent(autorenew -> ofy().delete().entity(autorenew)); } else { ofy().save().entity(updatedAutorenewPollMessage); } diff --git a/java/google/registry/flows/domain/DomainTransferApproveFlow.java b/java/google/registry/flows/domain/DomainTransferApproveFlow.java index 1d44c891e..3f5d5da44 100644 --- a/java/google/registry/flows/domain/DomainTransferApproveFlow.java +++ b/java/google/registry/flows/domain/DomainTransferApproveFlow.java @@ -207,9 +207,7 @@ public final class DomainTransferApproveFlow implements TransactionalFlow { autorenewEvent, gainingClientPollMessage, gainingClientAutorenewPollMessage); - if (billingEvent.isPresent()) { - entitiesToSave.add(billingEvent.get()); - } + billingEvent.ifPresent(entitiesToSave::add); ofy().save().entities(entitiesToSave.build()); // Delete the billing event and poll messages that were written in case the transfer would have // been implicitly server approved. diff --git a/java/google/registry/flows/domain/DomainTransferRequestFlow.java b/java/google/registry/flows/domain/DomainTransferRequestFlow.java index a1f3dcf18..389df2e7e 100644 --- a/java/google/registry/flows/domain/DomainTransferRequestFlow.java +++ b/java/google/registry/flows/domain/DomainTransferRequestFlow.java @@ -197,9 +197,7 @@ public final class DomainTransferRequestFlow implements TransactionalFlow { existingDomain, trid, gainingClientId, - (feesAndCredits.isPresent()) - ? Optional.of(feesAndCredits.get().getTotalCost()) - : Optional.empty(), + feesAndCredits.map(FeesAndCredits::getTotalCost), now); // Create the transfer data that represents the pending transfer. TransferData pendingTransferData = diff --git a/java/google/registry/flows/domain/DomainUpdateFlow.java b/java/google/registry/flows/domain/DomainUpdateFlow.java index 6517b12a0..3e418a8fd 100644 --- a/java/google/registry/flows/domain/DomainUpdateFlow.java +++ b/java/google/registry/flows/domain/DomainUpdateFlow.java @@ -193,9 +193,7 @@ public final class DomainUpdateFlow implements TransactionalFlow { entitiesToSave.add(newDomain, historyEntry); Optional statusUpdateBillingEvent = createBillingEventForStatusUpdates(existingDomain, newDomain, historyEntry, now); - if (statusUpdateBillingEvent.isPresent()) { - entitiesToSave.add(statusUpdateBillingEvent.get()); - } + statusUpdateBillingEvent.ifPresent(entitiesToSave::add); EntityChanges entityChanges = customLogic.beforeSave( BeforeSaveParameters.newBuilder() diff --git a/java/google/registry/flows/host/HostCreateFlow.java b/java/google/registry/flows/host/HostCreateFlow.java index 9fdfd12e5..2ffbe8ccf 100644 --- a/java/google/registry/flows/host/HostCreateFlow.java +++ b/java/google/registry/flows/host/HostCreateFlow.java @@ -113,15 +113,15 @@ public final class HostCreateFlow implements TransactionalFlow { ? new SubordinateHostMustHaveIpException() : new UnexpectedExternalHostIpException(); } - HostResource newHost = new Builder() - .setCreationClientId(clientId) - .setPersistedCurrentSponsorClientId(clientId) - .setFullyQualifiedHostName(targetId) - .setInetAddresses(command.getInetAddresses()) - .setRepoId(createRepoId(ObjectifyService.allocateId(), roidSuffix)) - .setSuperordinateDomain( - superordinateDomain.isPresent() ? Key.create(superordinateDomain.get()) : null) - .build(); + HostResource newHost = + new Builder() + .setCreationClientId(clientId) + .setPersistedCurrentSponsorClientId(clientId) + .setFullyQualifiedHostName(targetId) + .setInetAddresses(command.getInetAddresses()) + .setRepoId(createRepoId(ObjectifyService.allocateId(), roidSuffix)) + .setSuperordinateDomain(superordinateDomain.map(Key::create).orElse(null)) + .build(); historyBuilder .setType(HistoryEntry.Type.HOST_CREATE) .setModificationTime(now) diff --git a/java/google/registry/flows/host/HostUpdateFlow.java b/java/google/registry/flows/host/HostUpdateFlow.java index 375d493de..2d47a189c 100644 --- a/java/google/registry/flows/host/HostUpdateFlow.java +++ b/java/google/registry/flows/host/HostUpdateFlow.java @@ -152,9 +152,8 @@ public final class HostUpdateFlow implements TransactionalFlow { AddRemove remove = command.getInnerRemove(); checkSameValuesNotAddedAndRemoved(add.getStatusValues(), remove.getStatusValues()); checkSameValuesNotAddedAndRemoved(add.getInetAddresses(), remove.getInetAddresses()); - Key newSuperordinateDomainKey = newSuperordinateDomain.isPresent() - ? Key.create(newSuperordinateDomain.get()) - : null; + Key newSuperordinateDomainKey = + newSuperordinateDomain.map(Key::create).orElse(null); // If the superordinateDomain field is changing, set the lastSuperordinateChange to now. DateTime lastSuperordinateChange = Objects.equals(newSuperordinateDomainKey, existingHost.getSuperordinateDomain()) diff --git a/java/google/registry/groups/GroupsConnection.java b/java/google/registry/groups/GroupsConnection.java index 9f5e4b516..23ed0af26 100644 --- a/java/google/registry/groups/GroupsConnection.java +++ b/java/google/registry/groups/GroupsConnection.java @@ -25,7 +25,7 @@ import java.util.Set; public interface GroupsConnection { /** The role of a member in a group. */ - public enum Role { + enum Role { MEMBER, MANAGER, OWNER @@ -36,19 +36,19 @@ public interface GroupsConnection { * member already exists in the group, then it returns normally. If the group doesn't exist, then * it is created. */ - public void addMemberToGroup(String groupKey, String email, Role role) throws IOException; + void addMemberToGroup(String groupKey, String email, Role role) throws IOException; /** * Removes a member from the specified group, or throws {@link GoogleJsonResponseException} if the * member doesn't exist. */ - public void removeMemberFromGroup(String groupKey, String email) throws IOException; + void removeMemberFromGroup(String groupKey, String email) throws IOException; /** * Returns all of the members of the specified group. Note that it gets members only; not owners * or managers. Returns an empty set if the group in question does not exist. */ - public Set getMembersOfGroup(String groupKey) throws IOException; + Set getMembersOfGroup(String groupKey) throws IOException; /** * Creates a group with the given email address (groupKey) that is open for external members to @@ -57,5 +57,5 @@ public interface GroupsConnection { * including permissions on who is able to join). The configured admin owner for the Google App is * automatically added as an owner. */ - public Group createGroup(String groupKey) throws IOException; + Group createGroup(String groupKey) throws IOException; } diff --git a/java/google/registry/keyring/api/KeyModule.java b/java/google/registry/keyring/api/KeyModule.java index d8e0781d1..99c9b6409 100644 --- a/java/google/registry/keyring/api/KeyModule.java +++ b/java/google/registry/keyring/api/KeyModule.java @@ -32,7 +32,7 @@ public final class KeyModule { /** Dagger qualifier for keys from {@link Keyring}. */ @Qualifier @Documented - public static @interface Key { + public @interface Key { String value(); } diff --git a/java/google/registry/keyring/api/PgpHelper.java b/java/google/registry/keyring/api/PgpHelper.java index 4fb87e9f3..7a98a2cf9 100644 --- a/java/google/registry/keyring/api/PgpHelper.java +++ b/java/google/registry/keyring/api/PgpHelper.java @@ -45,7 +45,7 @@ public final class PgpHelper { * Narrowed key search requirements. * @see PgpHelper#lookupPublicKey */ - public static enum KeyRequirement { ENCRYPT, SIGN, ENCRYPT_SIGN } + public enum KeyRequirement { ENCRYPT, SIGN, ENCRYPT_SIGN } /** Converts {@code publicKey} to bytes. */ public static byte[] convertPublicKeyToBytes(PGPPublicKey publicKey) { diff --git a/java/google/registry/keyring/kms/KmsKeyring.java b/java/google/registry/keyring/kms/KmsKeyring.java index 8ed5a023c..11efeb8bc 100644 --- a/java/google/registry/keyring/kms/KmsKeyring.java +++ b/java/google/registry/keyring/kms/KmsKeyring.java @@ -41,7 +41,7 @@ import org.bouncycastle.openpgp.PGPPublicKey; */ public class KmsKeyring implements Keyring { - static enum PrivateKeyLabel { + enum PrivateKeyLabel { BRDA_SIGNING_PRIVATE, RDE_SIGNING_PRIVATE, RDE_STAGING_PRIVATE; @@ -51,7 +51,7 @@ public class KmsKeyring implements Keyring { } } - static enum PublicKeyLabel { + enum PublicKeyLabel { BRDA_RECEIVER_PUBLIC, BRDA_SIGNING_PUBLIC, RDE_RECEIVER_PUBLIC, @@ -63,7 +63,7 @@ public class KmsKeyring implements Keyring { } } - static enum StringKeyLabel { + enum StringKeyLabel { BRAINTREE_PRIVATE_KEY_STRING, ICANN_REPORTING_PASSWORD_STRING, JSON_CREDENTIAL_STRING, diff --git a/java/google/registry/model/Buildable.java b/java/google/registry/model/Buildable.java index 334899454..2a9a20187 100644 --- a/java/google/registry/model/Buildable.java +++ b/java/google/registry/model/Buildable.java @@ -33,7 +33,7 @@ public interface Buildable { * *

This can be used without implementing {@link Buildable}. */ - public abstract static class Builder { + abstract class Builder { private S instance; @@ -77,7 +77,7 @@ public interface Buildable { } /** Boilerplate for abstract immutable builders that need to be able to cast "this". */ - public abstract class GenericBuilder> extends Builder { + abstract class GenericBuilder> extends Builder { protected GenericBuilder() {} protected GenericBuilder(S instance) { @@ -100,7 +100,7 @@ public interface Buildable { * * @param the derived type */ - public interface Overlayable extends Buildable { + interface Overlayable extends Buildable { /** Return an overlay of this object using non-null fields from the source. */ T overlay(T source); } diff --git a/java/google/registry/model/EppResource.java b/java/google/registry/model/EppResource.java index 398fa71a0..285adced5 100644 --- a/java/google/registry/model/EppResource.java +++ b/java/google/registry/model/EppResource.java @@ -165,22 +165,22 @@ public abstract class EppResource extends BackupGroupRoot implements Buildable { /** An interface for resources that have transfer data. */ public interface ResourceWithTransferData { - public TransferData getTransferData(); + TransferData getTransferData(); /** * The time that this resource was last transferred. * *

Can be null if the resource has never been transferred. */ - public DateTime getLastTransferTime(); + DateTime getLastTransferTime(); } /** An interface for builders of resources that have transfer data. */ public interface BuilderWithTransferData> { - public B setTransferData(TransferData transferData); + B setTransferData(TransferData transferData); /** Set the time when this resource was transferred. */ - public B setLastTransferTime(DateTime lastTransferTime); + B setLastTransferTime(DateTime lastTransferTime); } /** Abstract builder for {@link EppResource} types. */ diff --git a/java/google/registry/model/EppResourceUtils.java b/java/google/registry/model/EppResourceUtils.java index 0f7874586..1f00a3abc 100644 --- a/java/google/registry/model/EppResourceUtils.java +++ b/java/google/registry/model/EppResourceUtils.java @@ -66,7 +66,7 @@ public final class EppResourceUtils { /** Helper to call {@link EppResource#cloneProjectedAtTime} without warnings. */ @SuppressWarnings("unchecked") - private static final T cloneProjectedAtTime(T resource, DateTime now) { + private static T cloneProjectedAtTime(T resource, DateTime now) { return (T) resource.cloneProjectedAtTime(now); } diff --git a/java/google/registry/model/ImmutableObject.java b/java/google/registry/model/ImmutableObject.java index ca0b91683..cd69b4fa7 100644 --- a/java/google/registry/model/ImmutableObject.java +++ b/java/google/registry/model/ImmutableObject.java @@ -52,7 +52,7 @@ public abstract class ImmutableObject implements Cloneable { @Documented @Retention(RUNTIME) @Target(FIELD) - public static @interface DoNotHydrate {} + public @interface DoNotHydrate {} @Ignore @XmlTransient diff --git a/java/google/registry/model/annotations/NotBackedUp.java b/java/google/registry/model/annotations/NotBackedUp.java index 90a81f005..6ca39e03f 100644 --- a/java/google/registry/model/annotations/NotBackedUp.java +++ b/java/google/registry/model/annotations/NotBackedUp.java @@ -30,7 +30,7 @@ public @interface NotBackedUp { Reason reason(); /** Reasons why a given entity does not need to be be backed up. */ - public enum Reason { + enum Reason { /** This entity is transient by design and has only a short-term useful lifetime. */ TRANSIENT, diff --git a/java/google/registry/model/common/Cursor.java b/java/google/registry/model/common/Cursor.java index 6d4fbc778..66d150bf1 100644 --- a/java/google/registry/model/common/Cursor.java +++ b/java/google/registry/model/common/Cursor.java @@ -83,7 +83,7 @@ public class Cursor extends ImmutableObject { /** See the definition of scope on {@link #getScopeClass}. */ private final Class scope; - private CursorType(Class scope) { + CursorType(Class scope) { this.scope = scope; } diff --git a/java/google/registry/model/common/EntityGroupRoot.java b/java/google/registry/model/common/EntityGroupRoot.java index 164b4dccb..b08262eb2 100644 --- a/java/google/registry/model/common/EntityGroupRoot.java +++ b/java/google/registry/model/common/EntityGroupRoot.java @@ -40,7 +40,7 @@ public class EntityGroupRoot extends BackupGroupRoot { private String id; /** The root key for cross-tld resources such as registrars. */ - public static final Key getCrossTldKey() { + public static Key getCrossTldKey() { return Key.create(EntityGroupRoot.class, "cross-tld"); } } diff --git a/java/google/registry/model/domain/DomainCommand.java b/java/google/registry/model/domain/DomainCommand.java index a475cfbbb..c879698e1 100644 --- a/java/google/registry/model/domain/DomainCommand.java +++ b/java/google/registry/model/domain/DomainCommand.java @@ -67,7 +67,7 @@ public class DomainCommand { */ public interface CreateOrUpdate> extends SingleResourceCommand { /** Creates a copy of this command with hard links to hosts and contacts. */ - public T cloneAndLinkReferences(DateTime now) throws InvalidReferencesException; + T cloneAndLinkReferences(DateTime now) throws InvalidReferencesException; } /** The fields on "chgType" from {@link "http://tools.ietf.org/html/rfc5731"}. */ diff --git a/java/google/registry/model/domain/fee/FeeCheckCommandExtension.java b/java/google/registry/model/domain/fee/FeeCheckCommandExtension.java index fd6593817..6e3a37435 100644 --- a/java/google/registry/model/domain/fee/FeeCheckCommandExtension.java +++ b/java/google/registry/model/domain/fee/FeeCheckCommandExtension.java @@ -38,9 +38,9 @@ public interface FeeCheckCommandExtension< * *

Returns null if this version of the fee extension doesn't specify currency at the top level. */ - public CurrencyUnit getCurrency(); + CurrencyUnit getCurrency(); - public ImmutableSet getItems(); + ImmutableSet getItems(); - public R createResponse(ImmutableList items); + R createResponse(ImmutableList items); } diff --git a/java/google/registry/model/domain/fee/FeeCheckResponseExtension.java b/java/google/registry/model/domain/fee/FeeCheckResponseExtension.java index fffb96efb..789a32f49 100644 --- a/java/google/registry/model/domain/fee/FeeCheckResponseExtension.java +++ b/java/google/registry/model/domain/fee/FeeCheckResponseExtension.java @@ -31,7 +31,7 @@ public interface FeeCheckResponseExtension getItems(); + ImmutableList getItems(); } diff --git a/java/google/registry/model/domain/launch/LaunchPhase.java b/java/google/registry/model/domain/launch/LaunchPhase.java index 3c1c3f226..2e9e99484 100644 --- a/java/google/registry/model/domain/launch/LaunchPhase.java +++ b/java/google/registry/model/domain/launch/LaunchPhase.java @@ -68,7 +68,7 @@ public class LaunchPhase extends ImmutableObject { /** * Returns a map of the static final fields to their values, case-converted. */ - private static final ImmutableMap initEnumMapping() { + private static ImmutableMap initEnumMapping() { ImmutableMap.Builder builder = new ImmutableMap.Builder<>(); for (Entry entry : getTypesafeEnumMapping(LaunchPhase.class).entrySet()) { builder.put(UPPER_UNDERSCORE.to(LOWER_CAMEL, entry.getKey()), entry.getValue()); diff --git a/java/google/registry/model/eppcommon/ProtocolDefinition.java b/java/google/registry/model/eppcommon/ProtocolDefinition.java index 5e8484275..e59e985f6 100644 --- a/java/google/registry/model/eppcommon/ProtocolDefinition.java +++ b/java/google/registry/model/eppcommon/ProtocolDefinition.java @@ -95,8 +95,11 @@ public class ProtocolDefinition { } } - /** Converts a service extension enum to its URI. */ - /** This stores a map from URI back to the service extension enum. */ + /** + * Converts a service extension enum to its URI. + * + *

This stores a map from URI back to the service extension enum. + */ private static final ImmutableMap serviceExtensionByUri = uniqueIndex(EnumSet.allOf(ServiceExtension.class), ServiceExtension::getUri); diff --git a/java/google/registry/model/eppcommon/StatusValue.java b/java/google/registry/model/eppcommon/StatusValue.java index 0902ff0b9..2eb28208c 100644 --- a/java/google/registry/model/eppcommon/StatusValue.java +++ b/java/google/registry/model/eppcommon/StatusValue.java @@ -139,12 +139,12 @@ public enum StatusValue implements EppEnum { private final ImmutableSet> classes; @SafeVarargs - private AllowedOn(Class... classes) { + AllowedOn(Class... classes) { this.classes = ImmutableSet.copyOf(classes); } } - private StatusValue(AllowedOn allowedOn) { + StatusValue(AllowedOn allowedOn) { this.allowedOn = allowedOn; } diff --git a/java/google/registry/model/eppinput/ResourceCommand.java b/java/google/registry/model/eppinput/ResourceCommand.java index 8706d3163..d0a7a67de 100644 --- a/java/google/registry/model/eppinput/ResourceCommand.java +++ b/java/google/registry/model/eppinput/ResourceCommand.java @@ -42,7 +42,7 @@ public interface ResourceCommand { * a base class that gives them all of the resource's fields. The domain "Info" command also can't * do that since it's "name" field is overloaded with a "hosts" attribute. */ - public interface SingleResourceCommand extends ResourceCommand { + interface SingleResourceCommand extends ResourceCommand { String getTargetId(); AuthInfo getAuthInfo(); @@ -50,7 +50,7 @@ public interface ResourceCommand { /** Abstract implementation of {@link ResourceCommand}. */ @XmlTransient - public abstract static class AbstractSingleResourceCommand extends ImmutableObject + abstract class AbstractSingleResourceCommand extends ImmutableObject implements SingleResourceCommand { @XmlElements({ @XmlElement(name = "id"), @@ -70,7 +70,7 @@ public interface ResourceCommand { /** A check command for an {@link EppResource}. */ @XmlTransient - public static class ResourceCheck extends ImmutableObject implements ResourceCommand { + class ResourceCheck extends ImmutableObject implements ResourceCommand { @XmlElements({ @XmlElement(name = "id"), @XmlElement(name = "name") }) @@ -82,7 +82,7 @@ public interface ResourceCommand { } /** A create command, or the inner change (as opposed to add or remove) part of an update. */ - public interface ResourceCreateOrChange> {} + interface ResourceCreateOrChange> {} /** * An update command for an {@link EppResource}. @@ -91,7 +91,7 @@ public interface ResourceCommand { * @param the change type */ @XmlTransient - public abstract static class ResourceUpdate + abstract class ResourceUpdate , C extends ResourceCreateOrChange> extends AbstractSingleResourceCommand { diff --git a/java/google/registry/model/pricing/PremiumPricingEngine.java b/java/google/registry/model/pricing/PremiumPricingEngine.java index f951449d7..590b74e93 100644 --- a/java/google/registry/model/pricing/PremiumPricingEngine.java +++ b/java/google/registry/model/pricing/PremiumPricingEngine.java @@ -32,14 +32,14 @@ public interface PremiumPricingEngine { *

Note that the fullyQualifiedDomainName must only contain a single part left of the TLD, i.e. * subdomains are not allowed, but multi-part TLDs are. */ - public DomainPrices getDomainPrices(String fullyQualifiedDomainName, DateTime priceTime); + DomainPrices getDomainPrices(String fullyQualifiedDomainName, DateTime priceTime); /** * A class containing information on premium prices for a specific domain name. * *

Any implementation of PremiumPricingEngine is responsible for determining all of these. */ - public static class DomainPrices { + class DomainPrices { private boolean isPremium; // TODO(b/26901539): Refactor return values to support an arbitrary list of costs for each of diff --git a/java/google/registry/model/registrar/Registrar.java b/java/google/registry/model/registrar/Registrar.java index cb7446d5c..2f06b4bcd 100644 --- a/java/google/registry/model/registrar/Registrar.java +++ b/java/google/registry/model/registrar/Registrar.java @@ -133,7 +133,7 @@ public class Registrar extends ImmutableObject implements Buildable, Jsonifiable */ private final Predicate ianaIdValidator; - private Type(Predicate ianaIdValidator) { + Type(Predicate ianaIdValidator) { this.ianaIdValidator = ianaIdValidator; } diff --git a/java/google/registry/model/registrar/RegistrarContact.java b/java/google/registry/model/registrar/RegistrarContact.java index 7b98efc7a..c99d19c40 100644 --- a/java/google/registry/model/registrar/RegistrarContact.java +++ b/java/google/registry/model/registrar/RegistrarContact.java @@ -84,7 +84,7 @@ public class RegistrarContact extends ImmutableObject implements Jsonifiable { return required; } - private Type(String display, boolean required) { + Type(String display, boolean required) { this.displayName = display; this.required = required; } diff --git a/java/google/registry/model/registry/label/PremiumListUtils.java b/java/google/registry/model/registry/label/PremiumListUtils.java index 9951b68da..bc05508cd 100644 --- a/java/google/registry/model/registry/label/PremiumListUtils.java +++ b/java/google/registry/model/registry/label/PremiumListUtils.java @@ -174,8 +174,7 @@ public final class PremiumListUtils { "PremiumList was concurrently edited"); PremiumList newList = premiumList.asBuilder() .setLastUpdateTime(now) - .setCreationTime( - oldPremiumList.isPresent() ? oldPremiumList.get().creationTime : now) + .setCreationTime(oldPremiumList.isPresent() ? oldPremiumList.get().creationTime : now) .setRevision(newRevisionKey) .build(); ofy().save().entities(newList, newRevision); @@ -184,9 +183,7 @@ public final class PremiumListUtils { // Update the cache. cachePremiumLists.put(premiumList.getName(), updated); // Delete the entities under the old PremiumList. - if (oldPremiumList.isPresent()) { - deleteRevisionAndEntriesOfPremiumList(oldPremiumList.get()); - } + oldPremiumList.ifPresent(PremiumListUtils::deleteRevisionAndEntriesOfPremiumList); return updated; } diff --git a/java/google/registry/model/transfer/TransferStatus.java b/java/google/registry/model/transfer/TransferStatus.java index 936d8f600..634bbad52 100644 --- a/java/google/registry/model/transfer/TransferStatus.java +++ b/java/google/registry/model/transfer/TransferStatus.java @@ -39,7 +39,7 @@ public enum TransferStatus { private final String message; - private TransferStatus(String message) { + TransferStatus(String message) { this.message = message; } diff --git a/java/google/registry/monitoring/metrics/contrib/LongMetricSubject.java b/java/google/registry/monitoring/metrics/contrib/LongMetricSubject.java index d9f179222..fa0a82182 100644 --- a/java/google/registry/monitoring/metrics/contrib/LongMetricSubject.java +++ b/java/google/registry/monitoring/metrics/contrib/LongMetricSubject.java @@ -17,6 +17,7 @@ package google.registry.monitoring.metrics.contrib; import static com.google.common.truth.Truth.assertAbout; import com.google.common.truth.FailureMetadata; +import com.google.common.truth.Subject; import google.registry.monitoring.metrics.Metric; import google.registry.monitoring.metrics.MetricPoint; import javax.annotation.Nullable; @@ -43,8 +44,11 @@ import javax.annotation.Nullable; */ public final class LongMetricSubject extends AbstractMetricSubject { - /** {@link Subject.Factory} for assertions about {@link Metric} objects. */ - /** Static assertThat({@link Metric}) shortcut method. */ + /** + * Static assertThat({@link Metric}) shortcut method. + * + * @see Subject.Factory for assertions about {@link Metric} objects. + */ public static LongMetricSubject assertThat(@Nullable Metric metric) { return assertAbout(LongMetricSubject::new).that(metric); } diff --git a/java/google/registry/monitoring/whitebox/EppMetric.java b/java/google/registry/monitoring/whitebox/EppMetric.java index 599d567c4..26e298a42 100644 --- a/java/google/registry/monitoring/whitebox/EppMetric.java +++ b/java/google/registry/monitoring/whitebox/EppMetric.java @@ -110,9 +110,7 @@ public abstract class EppMetric implements BigQueryMetric { */ private static void addOptional( String key, Optional value, ImmutableMap.Builder map) { - if (value.isPresent()) { - map.put(key, value.get().toString()); - } + value.ifPresent(t -> map.put(key, t.toString())); } /** Create an {@link EppMetric.Builder}. */ diff --git a/java/google/registry/rdap/RdapDomainSearchAction.java b/java/google/registry/rdap/RdapDomainSearchAction.java index 167a75c27..0575d6da5 100644 --- a/java/google/registry/rdap/RdapDomainSearchAction.java +++ b/java/google/registry/rdap/RdapDomainSearchAction.java @@ -512,9 +512,7 @@ public class RdapDomainSearchAction extends RdapActionBase { IncompletenessWarningType incompletenessWarningType, Optional numDomainsRetrieved, DateTime now) { - if (numDomainsRetrieved.isPresent()) { - metricInformationBuilder.setNumDomainsRetrieved(numDomainsRetrieved.get()); - } + numDomainsRetrieved.ifPresent(metricInformationBuilder::setNumDomainsRetrieved); OutputDataType outputDataType = (domains.size() > 1) ? OutputDataType.SUMMARY : OutputDataType.FULL; RdapAuthorization authorization = getAuthorization(); diff --git a/java/google/registry/rdap/RdapJsonFormatter.java b/java/google/registry/rdap/RdapJsonFormatter.java index 04fc7fbd4..815a83821 100644 --- a/java/google/registry/rdap/RdapJsonFormatter.java +++ b/java/google/registry/rdap/RdapJsonFormatter.java @@ -161,7 +161,7 @@ public class RdapJsonFormatter { /** Value as it appears in RDAP messages. */ private final String rfc7483String; - private RdapStatus(String rfc7483String) { + RdapStatus(String rfc7483String) { this.rfc7483String = rfc7483String; } @@ -217,7 +217,7 @@ public class RdapJsonFormatter { /** Value as it appears in RDAP messages. */ final String rfc7483String; - private RdapEntityRole(String rfc7483String) { + RdapEntityRole(String rfc7483String) { this.rfc7483String = rfc7483String; } } @@ -238,7 +238,7 @@ public class RdapJsonFormatter { /** Value as it appears in RDAP messages. */ private final String rfc7483String; - private RdapEventAction(String rfc7483String) { + RdapEventAction(String rfc7483String) { this.rfc7483String = rfc7483String; } @@ -675,10 +675,8 @@ public class RdapJsonFormatter { ? union(contactResource.getStatusValues(), StatusValue.LINKED) : contactResource.getStatusValues(), contactResource.getDeletionTime().isBefore(now))); - if (contactType.isPresent()) { - jsonBuilder.put("roles", - ImmutableList.of(convertContactTypeToRdapRole(contactType.get()))); - } + contactType.ifPresent( + type -> jsonBuilder.put("roles", ImmutableList.of(convertContactTypeToRdapRole(type)))); jsonBuilder.put("links", ImmutableList.of(makeLink("entity", contactResource.getRepoId(), linkBase))); // If we are logged in as the owner of this contact, create the vCard. diff --git a/java/google/registry/rde/EscrowTaskRunner.java b/java/google/registry/rde/EscrowTaskRunner.java index 5b56b6b95..2739f1e4b 100644 --- a/java/google/registry/rde/EscrowTaskRunner.java +++ b/java/google/registry/rde/EscrowTaskRunner.java @@ -61,7 +61,7 @@ class EscrowTaskRunner { * * @param watermark the logical time for a point-in-time view of Datastore */ - abstract void runWithLock(DateTime watermark) throws Exception; + void runWithLock(DateTime watermark) throws Exception; } private static final FormattingLogger logger = FormattingLogger.getLoggerForCallerClass(); diff --git a/java/google/registry/rde/RdeReporter.java b/java/google/registry/rde/RdeReporter.java index d95fdc952..2f48f6beb 100644 --- a/java/google/registry/rde/RdeReporter.java +++ b/java/google/registry/rde/RdeReporter.java @@ -117,8 +117,7 @@ public class RdeReporter { logger.infofmt("Received response:\n%s", new String(responseBytes, UTF_8)); XjcIirdeaResponseElement response = XjcXmlTransformer.unmarshal( XjcIirdeaResponseElement.class, new ByteArrayInputStream(responseBytes)); - XjcIirdeaResult result = response.getResult(); - return result; + return response.getResult(); } private URL makeReportUrl(String tld, String id) { diff --git a/java/google/registry/rde/RdeResourceType.java b/java/google/registry/rde/RdeResourceType.java index 50eec5f13..31c58fda9 100644 --- a/java/google/registry/rde/RdeResourceType.java +++ b/java/google/registry/rde/RdeResourceType.java @@ -36,7 +36,7 @@ public enum RdeResourceType { private final String uri; private final Set modes; - private RdeResourceType(String uri, EnumSet modes) { + RdeResourceType(String uri, EnumSet modes) { this.uri = uri; this.modes = Collections.unmodifiableSet(modes); } diff --git a/java/google/registry/rde/RdeUtil.java b/java/google/registry/rde/RdeUtil.java index ab59a0932..1b510d58d 100644 --- a/java/google/registry/rde/RdeUtil.java +++ b/java/google/registry/rde/RdeUtil.java @@ -70,8 +70,7 @@ public final class RdeUtil { if (!watermarkMatcher.find()) { throw new XmlException("Could not find RDE watermark in XML"); } - DateTime watermark = DATETIME_FORMATTER.parseDateTime(watermarkMatcher.group(1)); - return watermark; + return DATETIME_FORMATTER.parseDateTime(watermarkMatcher.group(1)); } /** diff --git a/java/google/registry/rde/imports/RdeHostLinkAction.java b/java/google/registry/rde/imports/RdeHostLinkAction.java index ca4ea86f8..40629c495 100644 --- a/java/google/registry/rde/imports/RdeHostLinkAction.java +++ b/java/google/registry/rde/imports/RdeHostLinkAction.java @@ -204,7 +204,7 @@ public class RdeHostLinkAction implements Runnable { } } - private static enum HostLinkResult { + private enum HostLinkResult { HOST_NOT_FOUND, HOST_OUT_OF_ZONE, SUPERORDINATE_DOMAIN_IN_PENDING_DELETE, diff --git a/java/google/registry/rde/imports/RdeImportUtils.java b/java/google/registry/rde/imports/RdeImportUtils.java index 041c09a24..0fd33c4e5 100644 --- a/java/google/registry/rde/imports/RdeImportUtils.java +++ b/java/google/registry/rde/imports/RdeImportUtils.java @@ -189,47 +189,41 @@ public class RdeImportUtils { public static BillingEvent.Recurring createAutoRenewBillingEventForDomainImport( XjcRdeDomain domain, HistoryEntry historyEntry) { - final BillingEvent.Recurring billingEvent = - new BillingEvent.Recurring.Builder() - .setReason(Reason.RENEW) - .setFlags(ImmutableSet.of(Flag.AUTO_RENEW)) - .setTargetId(domain.getRoid()) - .setClientId(domain.getClID()) - .setEventTime(domain.getExDate()) - .setRecurrenceEndTime(END_OF_TIME) - .setParent(historyEntry) - .build(); - return billingEvent; + return new BillingEvent.Recurring.Builder() + .setReason(Reason.RENEW) + .setFlags(ImmutableSet.of(Flag.AUTO_RENEW)) + .setTargetId(domain.getRoid()) + .setClientId(domain.getClID()) + .setEventTime(domain.getExDate()) + .setRecurrenceEndTime(END_OF_TIME) + .setParent(historyEntry) + .build(); } public static PollMessage.Autorenew createAutoRenewPollMessageForDomainImport( XjcRdeDomain domain, HistoryEntry historyEntry) { - final PollMessage.Autorenew pollMessage = - new PollMessage.Autorenew.Builder() - .setTargetId(domain.getRoid()) - .setClientId(domain.getClID()) - .setEventTime(domain.getExDate()) - .setMsg("Domain was auto-renewed.") - .setParent(historyEntry) - .build(); - return pollMessage; + return new PollMessage.Autorenew.Builder() + .setTargetId(domain.getRoid()) + .setClientId(domain.getClID()) + .setEventTime(domain.getExDate()) + .setMsg("Domain was auto-renewed.") + .setParent(historyEntry) + .build(); } public static HistoryEntry createHistoryEntryForDomainImport(XjcRdeDomain domain) { XjcRdeDomainElement element = new XjcRdeDomainElement(domain); - final HistoryEntry historyEntry = - new HistoryEntry.Builder() - .setType(HistoryEntry.Type.RDE_IMPORT) - .setClientId(domain.getClID()) - .setTrid(generateTridForImport()) - .setModificationTime(ofy().getTransactionTime()) - .setXmlBytes(getObjectXml(element)) - .setBySuperuser(true) - .setReason("RDE Import") - .setRequestedByRegistrar(false) - .setParent(Key.create(null, DomainResource.class, domain.getRoid())) - .build(); - return historyEntry; + return new HistoryEntry.Builder() + .setType(HistoryEntry.Type.RDE_IMPORT) + .setClientId(domain.getClID()) + .setTrid(generateTridForImport()) + .setModificationTime(ofy().getTransactionTime()) + .setXmlBytes(getObjectXml(element)) + .setBySuperuser(true) + .setReason("RDE Import") + .setRequestedByRegistrar(false) + .setParent(Key.create(null, DomainResource.class, domain.getRoid())) + .build(); } public static byte[] getObjectXml(Object jaxbElement) { diff --git a/java/google/registry/rde/imports/RdeParser.java b/java/google/registry/rde/imports/RdeParser.java index 0f9698fd8..b3ed2da42 100644 --- a/java/google/registry/rde/imports/RdeParser.java +++ b/java/google/registry/rde/imports/RdeParser.java @@ -198,8 +198,7 @@ public class RdeParser implements Closeable { checkArgumentNotNull(uri, "uri cannot be null"); try { if (isAtElement(uri, name)) { - Object element = unmarshaller.unmarshal(reader); - return element; + return unmarshaller.unmarshal(reader); } else { throw new IllegalStateException(String.format("Not at element %s:%s", uri, name)); } diff --git a/java/google/registry/reporting/IcannHttpReporter.java b/java/google/registry/reporting/IcannHttpReporter.java index 5eb2250fe..262cbf4ee 100644 --- a/java/google/registry/reporting/IcannHttpReporter.java +++ b/java/google/registry/reporting/IcannHttpReporter.java @@ -121,8 +121,7 @@ public class IcannHttpReporter { XjcIirdeaResponseElement response = XjcXmlTransformer.unmarshal( XjcIirdeaResponseElement.class, new ByteArrayInputStream(content)); - XjcIirdeaResult result = response.getResult(); - return result; + return response.getResult(); } /** Verifies a given report filename matches the pattern tld-reportType-yyyyMM.csv. */ diff --git a/java/google/registry/reporting/IcannReportingStager.java b/java/google/registry/reporting/IcannReportingStager.java index 911fe819e..1fcfb8797 100644 --- a/java/google/registry/reporting/IcannReportingStager.java +++ b/java/google/registry/reporting/IcannReportingStager.java @@ -194,10 +194,7 @@ public class IcannReportingStager { /** Returns a list of integers (totals) as a comma separated string. */ private String constructTotalRow(List totals) { - StringBuilder rowString = new StringBuilder("Totals,,"); - rowString.append( - totals.stream().map(Object::toString).collect(Collectors.joining(","))); - return rowString.toString(); + return "Totals,," + totals.stream().map(Object::toString).collect(Collectors.joining(",")); } /** @@ -206,8 +203,8 @@ public class IcannReportingStager { * *

This discards the first object, which is assumed to be the TLD field. * */ - private String constructRow(Iterable iterable) { - Iterator rowIter = iterable.iterator(); + private String constructRow(Iterable iterable) { + Iterator rowIter = iterable.iterator(); StringBuilder rowString = new StringBuilder(); // Skip the TLD column rowIter.next(); diff --git a/java/google/registry/request/Action.java b/java/google/registry/request/Action.java index 9427222e2..dc9a446e6 100644 --- a/java/google/registry/request/Action.java +++ b/java/google/registry/request/Action.java @@ -26,7 +26,7 @@ import java.lang.annotation.Target; public @interface Action { /** HTTP methods recognized by the request processor. */ - public enum Method { GET, HEAD, POST } + enum Method { GET, HEAD, POST } /** HTTP path to serve the action from. The path components must be percent-escaped. */ String path(); diff --git a/java/google/registry/request/lock/LockHandler.java b/java/google/registry/request/lock/LockHandler.java index 897bef899..9f30fb9c5 100644 --- a/java/google/registry/request/lock/LockHandler.java +++ b/java/google/registry/request/lock/LockHandler.java @@ -37,7 +37,7 @@ public interface LockHandler extends Serializable { * * @return true if all locks were acquired and the callable was run; false otherwise. */ - public boolean executeWithLocks( + boolean executeWithLocks( final Callable callable, @Nullable String tld, Duration leaseLength, diff --git a/java/google/registry/tldconfig/idn/IdnTableEnum.java b/java/google/registry/tldconfig/idn/IdnTableEnum.java index cd11d39fc..f27208ade 100644 --- a/java/google/registry/tldconfig/idn/IdnTableEnum.java +++ b/java/google/registry/tldconfig/idn/IdnTableEnum.java @@ -29,7 +29,7 @@ public enum IdnTableEnum { private final IdnTable table; - private IdnTableEnum() { + IdnTableEnum() { this.table = load(Ascii.toLowerCase(name())); } diff --git a/java/google/registry/tools/AllocateDomainCommand.java b/java/google/registry/tools/AllocateDomainCommand.java index 0065a1278..c90b36b6c 100644 --- a/java/google/registry/tools/AllocateDomainCommand.java +++ b/java/google/registry/tools/AllocateDomainCommand.java @@ -64,32 +64,27 @@ final class AllocateDomainCommand extends MutatingEppToolCommand { @Override protected String postExecute() throws Exception { - StringBuilder builder = new StringBuilder(); - // Check to see that we allocated everything. - return builder - .append( - ofy() - .transactNewReadOnly( - () -> { - String failureMessage = - ofy() - .load() - .keys(applicationKeys) - .values() - .stream() - .map( - application -> - application.getApplicationStatus() - == ApplicationStatus.ALLOCATED - ? null - : application.getFullyQualifiedDomainName()) - .filter(Objects::nonNull) - .collect(joining("\n")); - return failureMessage.isEmpty() - ? "ALL SUCCEEDED" - : addHeader("FAILURES", failureMessage); - })) - .toString(); + return ofy() + .transactNewReadOnly( + () -> { + String failureMessage = + ofy() + .load() + .keys(applicationKeys) + .values() + .stream() + .map( + application -> + application.getApplicationStatus() + == ApplicationStatus.ALLOCATED + ? null + : application.getFullyQualifiedDomainName()) + .filter(Objects::nonNull) + .collect(joining("\n")); + return failureMessage.isEmpty() + ? "ALL SUCCEEDED" + : addHeader("FAILURES", failureMessage); + }); } /** Extract the registration period from the XML used to create the domain application. */ diff --git a/java/google/registry/tools/Command.java b/java/google/registry/tools/Command.java index 628e2a8e5..dcfe97f58 100644 --- a/java/google/registry/tools/Command.java +++ b/java/google/registry/tools/Command.java @@ -26,5 +26,5 @@ public interface Command { *

Just implementing this is sufficient to use the remote api; {@link RegistryTool} will * install it as needed. */ - public interface RemoteApiCommand extends Command {} + interface RemoteApiCommand extends Command {} } diff --git a/java/google/registry/tools/CreateOrUpdatePremiumListCommand.java b/java/google/registry/tools/CreateOrUpdatePremiumListCommand.java index 9388811c6..c1b01142a 100644 --- a/java/google/registry/tools/CreateOrUpdatePremiumListCommand.java +++ b/java/google/registry/tools/CreateOrUpdatePremiumListCommand.java @@ -67,7 +67,7 @@ abstract class CreateOrUpdatePremiumListCommand extends ConfirmingCommand abstract String getCommandPath(); - ImmutableMap getParameterMap() { + ImmutableMap getParameterMap() { return ImmutableMap.of(); } diff --git a/java/google/registry/tools/CreatePremiumListCommand.java b/java/google/registry/tools/CreatePremiumListCommand.java index bd76cdaaa..449525633 100644 --- a/java/google/registry/tools/CreatePremiumListCommand.java +++ b/java/google/registry/tools/CreatePremiumListCommand.java @@ -36,7 +36,7 @@ public class CreatePremiumListCommand extends CreateOrUpdatePremiumListCommand { } @Override - ImmutableMap getParameterMap() { + ImmutableMap getParameterMap() { if (override) { return ImmutableMap.of("override", override); } else { diff --git a/java/google/registry/tools/EppToolCommand.java b/java/google/registry/tools/EppToolCommand.java index 325387dd0..f838f6f4f 100644 --- a/java/google/registry/tools/EppToolCommand.java +++ b/java/google/registry/tools/EppToolCommand.java @@ -133,7 +133,7 @@ abstract class EppToolCommand extends ConfirmingCommand implements ServerSideCom String prompt = addHeader("Command(s)", Joiner.on("\n").join(commands) + (force ? "" : addHeader("Dry Run", Joiner.on("\n").join(processCommands(true))))); force = force || isDryRun(); - return prompt.toString(); + return prompt; } private List processCommands(boolean dryRun) throws IOException { diff --git a/java/google/registry/tools/GenerateAuctionDataCommand.java b/java/google/registry/tools/GenerateAuctionDataCommand.java index 738ef8bd6..917cfbb12 100644 --- a/java/google/registry/tools/GenerateAuctionDataCommand.java +++ b/java/google/registry/tools/GenerateAuctionDataCommand.java @@ -42,6 +42,8 @@ import google.registry.model.contact.ContactResource; import google.registry.model.contact.PostalInfo; import google.registry.model.domain.DomainApplication; import google.registry.model.domain.launch.ApplicationStatus; +import google.registry.model.eppcommon.Address; +import google.registry.model.eppcommon.PhoneNumber; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarAddress; import google.registry.model.registrar.RegistrarContact; @@ -190,9 +192,8 @@ final class GenerateAuctionDataCommand implements RemoteApiCommand { Optional.ofNullable(registrant.getInternationalizedPostalInfo()) .orElse(registrant.getLocalizedPostalInfo())); Optional address = - Optional.ofNullable(postalInfo.isPresent() ? postalInfo.get().getAddress() : null); - List street = - address.isPresent() ? address.get().getStreet() : ImmutableList.of(); + Optional.ofNullable(postalInfo.map(PostalInfo::getAddress).orElse(null)); + List street = address.map(Address::getStreet).orElseGet(ImmutableList::of); Optional phoneNumber = Optional.ofNullable(registrant.getVoiceNumber()); // Each line containing an auction participant has the following format: @@ -211,16 +212,16 @@ final class GenerateAuctionDataCommand implements RemoteApiCommand { ? formatter.print(domainApplication.getLastEppUpdateTime()) : "", domainApplication.getCurrentSponsorClientId(), - nullToEmpty(postalInfo.isPresent() ? postalInfo.get().getName() : ""), - nullToEmpty(postalInfo.isPresent() ? postalInfo.get().getOrg() : ""), + nullToEmpty(postalInfo.map(PostalInfo::getName).orElse("")), + nullToEmpty(postalInfo.map(PostalInfo::getOrg).orElse("")), Iterables.getFirst(street, ""), street.stream().skip(1).filter(Objects::nonNull).collect(joining(" ")), - nullToEmpty(address.isPresent() ? address.get().getCity() : ""), - nullToEmpty(address.isPresent() ? address.get().getState() : ""), - nullToEmpty(address.isPresent() ? address.get().getZip() : ""), - nullToEmpty(address.isPresent() ? address.get().getCountryCode() : ""), + nullToEmpty(address.map(Address::getCity).orElse("")), + nullToEmpty(address.map(Address::getState).orElse("")), + nullToEmpty(address.map(Address::getZip).orElse("")), + nullToEmpty(address.map(Address::getCountryCode).orElse("")), nullToEmpty(registrant.getEmailAddress()), - nullToEmpty(phoneNumber.isPresent() ? phoneNumber.get().toPhoneString() : ""), + nullToEmpty(phoneNumber.map(PhoneNumber::toPhoneString).orElse("")), "", domainApplication.getEncodedSignedMarks().isEmpty() ? "Landrush" : "Sunrise")); } @@ -234,8 +235,7 @@ final class GenerateAuctionDataCommand implements RemoteApiCommand { Optional.ofNullable( Optional.ofNullable(registrar.getLocalizedAddress()) .orElse(registrar.getInternationalizedAddress())); - List street = - address.isPresent() ? address.get().getStreet() : ImmutableList.of(); + List street = address.map(Address::getStreet).orElseGet(ImmutableList::of); // Each line containing the registrar of an auction participant has the following format: // @@ -244,14 +244,16 @@ final class GenerateAuctionDataCommand implements RemoteApiCommand { // Registrar Country|Registrar Email|Registrar Telephone return Joiner.on('|').join(ImmutableList.of( registrar.getClientId(), - contact.isPresent() ? contact.get().getName() : "N/A", + contact.map(RegistrarContact::getName).orElse("N/A"), nullToEmpty(registrar.getRegistrarName()), Iterables.getFirst(street, ""), Iterables.get(street, 1, ""), - address.isPresent() ? nullToEmpty(address.get().getCity()) : "", - address.isPresent() ? nullToEmpty(address.get().getState()) : "", - address.isPresent() ? nullToEmpty(address.get().getZip()) : "", - address.isPresent() ? nullToEmpty(address.get().getCountryCode()) : "", + address.map(registrarAddress -> nullToEmpty(registrarAddress.getCity())).orElse(""), + address.map(registrarAddress1 -> + nullToEmpty(registrarAddress1.getState())).orElse(""), + address.map(registrarAddress2 -> nullToEmpty(registrarAddress2.getZip())).orElse(""), + address.map(registrarAddress3 -> + nullToEmpty(registrarAddress3.getCountryCode())).orElse(""), nullToEmpty(registrar.getEmailAddress()), nullToEmpty(registrar.getPhoneNumber()))); } diff --git a/java/google/registry/tools/MutatingCommand.java b/java/google/registry/tools/MutatingCommand.java index 2f1d7bdb5..f2a1c3ad1 100644 --- a/java/google/registry/tools/MutatingCommand.java +++ b/java/google/registry/tools/MutatingCommand.java @@ -54,7 +54,7 @@ public abstract class MutatingCommand extends ConfirmingCommand implements Remot private static class EntityChange { /** The possible types of mutation that can be performed on an entity. */ - public static enum ChangeType { + public enum ChangeType { CREATE, DELETE, UPDATE; /** Return the ChangeType corresponding to the given combination of version existences. */ diff --git a/java/google/registry/tools/RegistryToolEnvironment.java b/java/google/registry/tools/RegistryToolEnvironment.java index 78e4ffcd1..26006167f 100644 --- a/java/google/registry/tools/RegistryToolEnvironment.java +++ b/java/google/registry/tools/RegistryToolEnvironment.java @@ -40,14 +40,14 @@ enum RegistryToolEnvironment { private final RegistryEnvironment actualEnvironment; private final ImmutableMap extraProperties; - private RegistryToolEnvironment( + RegistryToolEnvironment( RegistryEnvironment actualEnvironment, ImmutableMap extraProperties) { this.actualEnvironment = actualEnvironment; this.extraProperties = extraProperties; } - private RegistryToolEnvironment(RegistryEnvironment actualEnvironment) { + RegistryToolEnvironment(RegistryEnvironment actualEnvironment) { this(actualEnvironment, ImmutableMap.of()); } diff --git a/java/google/registry/tools/params/EppResourceTypeParameter.java b/java/google/registry/tools/params/EppResourceTypeParameter.java index e6e4e3d4a..a511f8489 100644 --- a/java/google/registry/tools/params/EppResourceTypeParameter.java +++ b/java/google/registry/tools/params/EppResourceTypeParameter.java @@ -27,7 +27,7 @@ public enum EppResourceTypeParameter { private final Class type; - private EppResourceTypeParameter(Class type) { + EppResourceTypeParameter(Class type) { this.type = type; } diff --git a/java/google/registry/util/RequestStatusChecker.java b/java/google/registry/util/RequestStatusChecker.java index 327aab0a0..d7e3f0896 100644 --- a/java/google/registry/util/RequestStatusChecker.java +++ b/java/google/registry/util/RequestStatusChecker.java @@ -24,11 +24,11 @@ public interface RequestStatusChecker extends Serializable { * *

Multiple calls must return the same value during the same Request. */ - public String getLogId(); + String getLogId(); /** * Returns true if the given request is currently running. */ - public boolean isRunning(String requestLogId); + boolean isRunning(String requestLogId); } diff --git a/java/google/registry/util/Retrier.java b/java/google/registry/util/Retrier.java index ca2fc4f13..f7ed818f9 100644 --- a/java/google/registry/util/Retrier.java +++ b/java/google/registry/util/Retrier.java @@ -39,7 +39,7 @@ public class Retrier implements Serializable { private final int attempts; /** Holds functions to call whenever the code being retried fails. */ - public static interface FailureReporter { + public interface FailureReporter { /** * Called after a retriable failure happened. @@ -48,7 +48,7 @@ public class Retrier implements Serializable { * *

Not called at all if the retrier succeeded on its first attempt. */ - public void beforeRetry(Throwable thrown, int failures, int maxAttempts); + void beforeRetry(Throwable thrown, int failures, int maxAttempts); /** * Called after a a non-retriable error. @@ -58,7 +58,7 @@ public class Retrier implements Serializable { * *

Not called at all if the retrier succeeds. */ - public void afterFinalFailure(Throwable thrown, int failures); + void afterFinalFailure(Throwable thrown, int failures); } @Inject diff --git a/java/google/registry/util/TokenUtils.java b/java/google/registry/util/TokenUtils.java index 64dd9b729..656849a06 100644 --- a/java/google/registry/util/TokenUtils.java +++ b/java/google/registry/util/TokenUtils.java @@ -33,7 +33,7 @@ public final class TokenUtils { private final String prefix; private final int length; - private TokenType(String prefix, int length) { + TokenType(String prefix, int length) { this.prefix = prefix; this.length = length; } diff --git a/java/google/registry/util/TypeUtils.java b/java/google/registry/util/TypeUtils.java index 1796928bb..614b66314 100644 --- a/java/google/registry/util/TypeUtils.java +++ b/java/google/registry/util/TypeUtils.java @@ -101,7 +101,7 @@ public class TypeUtils { } /** Returns a predicate that tests whether classes are annotated with the given annotation. */ - public static final Predicate> hasAnnotation( + public static Predicate> hasAnnotation( final Class annotation) { return clazz -> clazz.isAnnotationPresent(annotation); } diff --git a/java/google/registry/util/VoidCallable.java b/java/google/registry/util/VoidCallable.java index b019351d6..92a77636a 100644 --- a/java/google/registry/util/VoidCallable.java +++ b/java/google/registry/util/VoidCallable.java @@ -25,7 +25,7 @@ public interface VoidCallable { void call() throws Exception; /** Returns the VoidCallable as a {@link Callable} that returns null. */ - public default Callable asCallable() { + default Callable asCallable() { return () -> { call(); return null; diff --git a/java/google/registry/whois/DomainWhoisResponse.java b/java/google/registry/whois/DomainWhoisResponse.java index d99b2b937..35821cabb 100644 --- a/java/google/registry/whois/DomainWhoisResponse.java +++ b/java/google/registry/whois/DomainWhoisResponse.java @@ -95,10 +95,10 @@ final class DomainWhoisResponse extends WhoisResponseImpl { // is an abuse contact, we can get an email address from it. .emitFieldIfDefined( "Registrar Abuse Contact Email", - abuseContact.isPresent() ? abuseContact.get().getEmailAddress() : null) + abuseContact.map(RegistrarContact::getEmailAddress).orElse(null)) .emitFieldIfDefined( "Registrar Abuse Contact Phone", - abuseContact.isPresent() ? abuseContact.get().getPhoneNumber() : null) + abuseContact.map(RegistrarContact::getPhoneNumber).orElse(null)) .emitStatusValues(domain.getStatusValues(), domain.getGracePeriods()) .emitContact("Registrant", domain.getRegistrant(), preferUnicode) .emitContact("Admin", getContactReference(Type.ADMIN), preferUnicode) @@ -123,7 +123,7 @@ final class DomainWhoisResponse extends WhoisResponseImpl { private Key getContactReference(final Type type) { Optional contactOfType = domain.getContacts().stream().filter(d -> d.getType() == type).findFirst(); - return contactOfType.isPresent() ? contactOfType.get().getContactKey() : null; + return contactOfType.map(DesignatedContact::getContactKey).orElse(null); } /** Output emitter with logic for domains. */ diff --git a/java/google/registry/whois/WhoisResponse.java b/java/google/registry/whois/WhoisResponse.java index 912a0a13a..02bc4d7c6 100644 --- a/java/google/registry/whois/WhoisResponse.java +++ b/java/google/registry/whois/WhoisResponse.java @@ -37,7 +37,7 @@ public interface WhoisResponse { /** A wrapper class for the plaintext response of a WHOIS command and its number of results. */ @AutoValue - abstract static class WhoisResponseResults { + abstract class WhoisResponseResults { public abstract String plainTextOutput(); public abstract int numResults(); diff --git a/java/google/registry/xjc/JaxbFragment.java b/java/google/registry/xjc/JaxbFragment.java index f6f6dd64a..494bc939f 100644 --- a/java/google/registry/xjc/JaxbFragment.java +++ b/java/google/registry/xjc/JaxbFragment.java @@ -57,7 +57,7 @@ public class JaxbFragment implements Serializable { } /** Deserializes a JAXB element from xml bytes. */ - private static T unfreezeInstance(byte[] instanceData, Class instanceType) + private static T unfreezeInstance(byte[] instanceData, Class instanceType) throws IOException { try { ByteArrayInputStream bin = new ByteArrayInputStream(instanceData); diff --git a/javatests/google/registry/batch/MapreduceEntityCleanupActionTest.java b/javatests/google/registry/batch/MapreduceEntityCleanupActionTest.java index aed27f780..196fd76c2 100644 --- a/javatests/google/registry/batch/MapreduceEntityCleanupActionTest.java +++ b/javatests/google/registry/batch/MapreduceEntityCleanupActionTest.java @@ -110,7 +110,7 @@ public class MapreduceEntityCleanupActionTest .setInput(input) .setMapper(new TestMapper()) .setReducer(new TestReducer()) - .setOutput(new InMemoryOutput()) + .setOutput(new InMemoryOutput<>()) .setNumReducers(2) .build(), new MapReduceSettings.Builder().setWorkerQueueName(QUEUE_NAME).build()); diff --git a/javatests/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java b/javatests/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java index 0cf6276c9..c11ea7c84 100644 --- a/javatests/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java +++ b/javatests/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java @@ -46,6 +46,7 @@ import google.registry.testing.ExceptionRule; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import org.joda.time.DateTime; import org.joda.time.Duration; @@ -429,9 +430,7 @@ public class DnsUpdateWriterTest { private void assertThatUpdateAdds( Update update, String resourceName, int recordType, String... resourceData) { ArrayList expectedData = new ArrayList<>(); - for (String resourceDatum : resourceData) { - expectedData.add(resourceDatum); - } + Collections.addAll(expectedData, resourceData); ArrayList actualData = new ArrayList<>(); for (Record record : findUpdateRecords(update, resourceName, recordType)) { diff --git a/javatests/google/registry/export/BigqueryPollJobActionTest.java b/javatests/google/registry/export/BigqueryPollJobActionTest.java index 99eac5a4d..bcd226705 100644 --- a/javatests/google/registry/export/BigqueryPollJobActionTest.java +++ b/javatests/google/registry/export/BigqueryPollJobActionTest.java @@ -40,7 +40,6 @@ import google.registry.testing.AppEngineRule; import google.registry.testing.ExceptionRule; import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; -import google.registry.testing.Lazies; import google.registry.testing.TaskQueueHelper; import google.registry.testing.TaskQueueHelper.TaskMatcher; import google.registry.util.CapturingLogHandler; @@ -94,7 +93,7 @@ public class BigqueryPollJobActionTest { action.enqueuer = ENQUEUER; action.projectId = PROJECT_ID; action.jobId = JOB_ID; - action.chainedQueueName = Lazies.of(CHAINED_QUEUE_NAME); + action.chainedQueueName = () -> CHAINED_QUEUE_NAME; Logger.getLogger(BigqueryPollJobAction.class.getName()).addHandler(logHandler); } diff --git a/javatests/google/registry/flows/EppTestComponent.java b/javatests/google/registry/flows/EppTestComponent.java index c2aab3584..71f12148b 100644 --- a/javatests/google/registry/flows/EppTestComponent.java +++ b/javatests/google/registry/flows/EppTestComponent.java @@ -53,7 +53,7 @@ interface EppTestComponent { /** Module for injecting fakes and mocks. */ @Module - static class FakesAndMocksModule { + class FakesAndMocksModule { private BigQueryMetricsEnqueuer metricsEnqueuer; private DnsQueue dnsQueue; @@ -143,7 +143,7 @@ interface EppTestComponent { } } - public static class FakeServerTridProvider implements ServerTridProvider { + class FakeServerTridProvider implements ServerTridProvider { @Override public String createServerTrid() { diff --git a/javatests/google/registry/flows/FlowRunnerTest.java b/javatests/google/registry/flows/FlowRunnerTest.java index 5280909bf..3fa992ccd 100644 --- a/javatests/google/registry/flows/FlowRunnerTest.java +++ b/javatests/google/registry/flows/FlowRunnerTest.java @@ -36,7 +36,6 @@ import google.registry.monitoring.whitebox.EppMetric; import google.registry.testing.AppEngineRule; import google.registry.testing.FakeClock; import google.registry.testing.FakeHttpSession; -import google.registry.testing.Providers; import google.registry.testing.ShardableTestCase; import java.util.List; import java.util.Optional; @@ -74,7 +73,7 @@ public class FlowRunnerTest extends ShardableTestCase { flowRunner.clientId = "TheRegistrar"; flowRunner.credentials = new PasswordOnlyTransportCredentials(); flowRunner.eppRequestSource = EppRequestSource.UNIT_TEST; - flowRunner.flowProvider = Providers.of(new TestCommandFlow()); + flowRunner.flowProvider = TestCommandFlow::new; flowRunner.flowClass = TestCommandFlow.class; flowRunner.inputXmlBytes = "".getBytes(UTF_8); flowRunner.isDryRun = false; diff --git a/javatests/google/registry/flows/domain/DomainApplicationCreateFlowTest.java b/javatests/google/registry/flows/domain/DomainApplicationCreateFlowTest.java index 2fa0df962..fab81f959 100644 --- a/javatests/google/registry/flows/domain/DomainApplicationCreateFlowTest.java +++ b/javatests/google/registry/flows/domain/DomainApplicationCreateFlowTest.java @@ -124,7 +124,6 @@ import google.registry.model.smd.SignedMarkRevocationList; import google.registry.tmch.TmchCertificateAuthority; import google.registry.tmch.TmchXmlSignature; import java.security.GeneralSecurityException; -import java.util.Collections; import java.util.List; import org.joda.money.CurrencyUnit; import org.joda.money.Money; @@ -205,7 +204,7 @@ public class DomainApplicationCreateFlowTest // Check that the domain application was created and persisted with a history entry. // We want the one with the newest creation time, but lacking an index we need this code. List applications = ofy().load().type(DomainApplication.class).list(); - Collections.sort(applications, comparing(DomainApplication::getCreationTime)); + applications.sort(comparing(DomainApplication::getCreationTime)); assertAboutApplications().that(getLast(applications)) .hasFullyQualifiedDomainName(getUniqueIdFromCommand()).and() .hasNumEncodedSignedMarks(sunriseApplication ? 1 : 0).and() diff --git a/javatests/google/registry/model/ofy/OfyTest.java b/javatests/google/registry/model/ofy/OfyTest.java index 11a1650c3..62f1d485b 100644 --- a/javatests/google/registry/model/ofy/OfyTest.java +++ b/javatests/google/registry/model/ofy/OfyTest.java @@ -393,12 +393,13 @@ public class OfyTest { // Normal loading should come from the session cache and shouldn't reflect the mutation. assertThat(ofy().load().entity(someObject).now()).isEqualTo(someObject); // Loading inside doWithFreshSessionCache() should reflect the mutation. - boolean ran = ofy().doWithFreshSessionCache(new Work() { - @Override - public Boolean run() { - assertThat(ofy().load().entity(someObject).now()).isEqualTo(modifiedObject); - return true; - }}); + boolean ran = + ofy() + .doWithFreshSessionCache( + () -> { + assertThat(ofy().load().entity(someObject).now()).isEqualTo(modifiedObject); + return true; + }); assertThat(ran).isTrue(); // Test the normal loading again to verify that we've restored the original session unchanged. assertThat(ofy().load().entity(someObject).now()).isEqualTo(someObject); diff --git a/javatests/google/registry/model/translators/CommitLogRevisionsTranslatorFactoryTest.java b/javatests/google/registry/model/translators/CommitLogRevisionsTranslatorFactoryTest.java index 1fe07b442..04472522b 100644 --- a/javatests/google/registry/model/translators/CommitLogRevisionsTranslatorFactoryTest.java +++ b/javatests/google/registry/model/translators/CommitLogRevisionsTranslatorFactoryTest.java @@ -23,7 +23,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSortedMap; import com.googlecode.objectify.Key; import com.googlecode.objectify.ObjectifyService; -import com.googlecode.objectify.Work; import com.googlecode.objectify.annotation.Entity; import google.registry.model.common.CrossTldSingleton; import google.registry.model.ofy.CommitLogManifest; @@ -155,11 +154,7 @@ public class CommitLogRevisionsTranslatorFactoryTest { save(new TestObject()); clock.advanceBy(standardDays(1)); com.google.appengine.api.datastore.Entity entity = - ofy().transactNewReadOnly(new Work() { - @Override - public com.google.appengine.api.datastore.Entity run() { - return ofy().save().toEntity(reload()); - }}); + ofy().transactNewReadOnly(() -> ofy().save().toEntity(reload())); assertThat(entity.getProperties().keySet()).containsExactly("revisions.key", "revisions.value"); assertThat(entity.getProperties()).containsEntry( "revisions.key", ImmutableList.of(START_TIME.toDate(), START_TIME.plusDays(1).toDate())); @@ -176,11 +171,7 @@ public class CommitLogRevisionsTranslatorFactoryTest { @Test public void testLoad_missingRevisionRawProperties_createsEmptyObject() throws Exception { com.google.appengine.api.datastore.Entity entity = - ofy().transactNewReadOnly(new Work() { - @Override - public com.google.appengine.api.datastore.Entity run() { - return ofy().save().toEntity(new TestObject()); - }}); + ofy().transactNewReadOnly(() -> ofy().save().toEntity(new TestObject())); entity.removeProperty("revisions.key"); entity.removeProperty("revisions.value"); TestObject object = ofy().load().fromEntity(entity); diff --git a/javatests/google/registry/model/translators/StatusValueAdapterTest.java b/javatests/google/registry/model/translators/StatusValueAdapterTest.java index d703294b2..1ea042ac1 100644 --- a/javatests/google/registry/model/translators/StatusValueAdapterTest.java +++ b/javatests/google/registry/model/translators/StatusValueAdapterTest.java @@ -65,7 +65,7 @@ public class StatusValueAdapterTest { .build()), ValidationMode.LENIENT), UTF_8); - assertThat(marshalled.toString()).contains(""); + assertThat(marshalled).contains(""); } private StatusValue unmarshal(String statusValueXml) throws Exception { diff --git a/javatests/google/registry/monitoring/metrics/example/SheepCounterExample.java b/javatests/google/registry/monitoring/metrics/example/SheepCounterExample.java index 40b771ae6..be33d10bd 100644 --- a/javatests/google/registry/monitoring/metrics/example/SheepCounterExample.java +++ b/javatests/google/registry/monitoring/metrics/example/SheepCounterExample.java @@ -46,7 +46,7 @@ import java.util.logging.Logger; /** A sample application which uses the Metrics API to count sheep while sleeping. */ public final class SheepCounterExample { - /** + /* * The code below for using a custom {@link LogManager} is only necessary to enable logging at JVM * shutdown to show the shutdown logs of {@link MetricReporter} in this small standalone * application. diff --git a/javatests/google/registry/monitoring/metrics/stackdriver/StackdriverWriterTest.java b/javatests/google/registry/monitoring/metrics/stackdriver/StackdriverWriterTest.java index 51dfaab60..3b3fe3f83 100644 --- a/javatests/google/registry/monitoring/metrics/stackdriver/StackdriverWriterTest.java +++ b/javatests/google/registry/monitoring/metrics/stackdriver/StackdriverWriterTest.java @@ -58,7 +58,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.invocation.InvocationOnMock; import org.mockito.runners.MockitoJUnitRunner; import org.mockito.stubbing.Answer; @@ -172,14 +171,7 @@ public class StackdriverWriterTest { @Test public void testWrite_invalidMetricType_throwsException() throws Exception { - when(metric.getValueClass()) - .thenAnswer( - new Answer>() { - @Override - public Class answer(InvocationOnMock invocation) throws Throwable { - return Object.class; - } - }); + when(metric.getValueClass()).thenAnswer((Answer>) invocation -> Object.class); StackdriverWriter writer = new StackdriverWriter(client, PROJECT, MONITORED_RESOURCE, MAX_QPS, MAX_POINTS_PER_REQUEST); diff --git a/javatests/google/registry/rdap/RdapSearchActionTestCase.java b/javatests/google/registry/rdap/RdapSearchActionTestCase.java index 094c4ed55..098abf639 100644 --- a/javatests/google/registry/rdap/RdapSearchActionTestCase.java +++ b/javatests/google/registry/rdap/RdapSearchActionTestCase.java @@ -75,15 +75,9 @@ public class RdapSearchActionTestCase { .setRequestMethod(requestMethod) .setStatusCode(metricStatusCode) .setIncompletenessWarningType(incompletenessWarningType); - if (numDomainsRetrieved.isPresent()) { - builder.setNumDomainsRetrieved(numDomainsRetrieved.get()); - } - if (numHostsRetrieved.isPresent()) { - builder.setNumHostsRetrieved(numHostsRetrieved.get()); - } - if (numContactsRetrieved.isPresent()) { - builder.setNumContactsRetrieved(numContactsRetrieved.get()); - } + numDomainsRetrieved.ifPresent(builder::setNumDomainsRetrieved); + numHostsRetrieved.ifPresent(builder::setNumHostsRetrieved); + numContactsRetrieved.ifPresent(builder::setNumContactsRetrieved); verify(rdapMetrics).updateMetrics(builder.build()); } } diff --git a/javatests/google/registry/rde/BrdaCopyActionTest.java b/javatests/google/registry/rde/BrdaCopyActionTest.java index ffa8e0b36..5d4423fcc 100644 --- a/javatests/google/registry/rde/BrdaCopyActionTest.java +++ b/javatests/google/registry/rde/BrdaCopyActionTest.java @@ -35,7 +35,6 @@ import google.registry.testing.BouncyCastleProviderRule; import google.registry.testing.FakeKeyringModule; import google.registry.testing.GcsTestingUtils; import google.registry.testing.GpgSystemCommandRule; -import google.registry.testing.Providers; import google.registry.testing.ShardableTestCase; import java.io.File; import java.io.FileNotFoundException; @@ -104,9 +103,9 @@ public class BrdaCopyActionTest extends ShardableTestCase { public void before() throws Exception { action.gcsUtils = gcsUtils; action.ghostryde = new Ghostryde(23); - action.pgpCompressionFactory = new RydePgpCompressionOutputStreamFactory(Providers.of(1024)); - action.pgpEncryptionFactory = new RydePgpEncryptionOutputStreamFactory(Providers.of(1024)); - action.pgpFileFactory = new RydePgpFileOutputStreamFactory(Providers.of(1024)); + action.pgpCompressionFactory = new RydePgpCompressionOutputStreamFactory(() -> 1024); + action.pgpEncryptionFactory = new RydePgpEncryptionOutputStreamFactory(() -> 1024); + action.pgpFileFactory = new RydePgpFileOutputStreamFactory(() -> 1024); action.pgpSigningFactory = new RydePgpSigningOutputStreamFactory(); action.tarFactory = new RydeTarOutputStreamFactory(); action.tld = "lol"; diff --git a/javatests/google/registry/rde/RdeUploadActionTest.java b/javatests/google/registry/rde/RdeUploadActionTest.java index 98b5a2c44..85fe903b8 100644 --- a/javatests/google/registry/rde/RdeUploadActionTest.java +++ b/javatests/google/registry/rde/RdeUploadActionTest.java @@ -69,7 +69,6 @@ import google.registry.testing.FakeSleeper; import google.registry.testing.GpgSystemCommandRule; import google.registry.testing.IoSpyRule; import google.registry.testing.Lazies; -import google.registry.testing.Providers; import google.registry.testing.TaskQueueHelper.TaskMatcher; import google.registry.testing.sftp.SftpServerRule; import google.registry.util.Retrier; @@ -156,21 +155,21 @@ public class RdeUploadActionTest { }}; private final RydePgpFileOutputStreamFactory literalFactory = - new RydePgpFileOutputStreamFactory(Providers.of(BUFFER_SIZE)) { + new RydePgpFileOutputStreamFactory(() -> BUFFER_SIZE) { @Override public RydePgpFileOutputStream create(OutputStream os, DateTime modified, String filename) { return ioSpy.register(super.create(os, modified, filename)); }}; private final RydePgpEncryptionOutputStreamFactory encryptFactory = - new RydePgpEncryptionOutputStreamFactory(Providers.of(BUFFER_SIZE)) { + new RydePgpEncryptionOutputStreamFactory(() -> BUFFER_SIZE) { @Override public RydePgpEncryptionOutputStream create(OutputStream os, PGPPublicKey publicKey) { return ioSpy.register(super.create(os, publicKey)); }}; private final RydePgpCompressionOutputStreamFactory compressFactory = - new RydePgpCompressionOutputStreamFactory(Providers.of(BUFFER_SIZE)) { + new RydePgpCompressionOutputStreamFactory(() -> BUFFER_SIZE) { @Override public RydePgpCompressionOutputStream create(OutputStream os) { return ioSpy.register(super.create(os)); @@ -190,10 +189,11 @@ public class RdeUploadActionTest { action.gcsUtils = new GcsUtils(gcsService, BUFFER_SIZE); action.ghostryde = new Ghostryde(BUFFER_SIZE); action.lazyJsch = - Lazies.of( + () -> JSchModule.provideJSch( "user@ignored", - keyring.getRdeSshClientPrivateKey(), keyring.getRdeSshClientPublicKey())); + keyring.getRdeSshClientPrivateKey(), + keyring.getRdeSshClientPublicKey()); action.jschSshSessionFactory = new JSchSshSessionFactory(standardSeconds(3)); action.response = response; action.pgpCompressionFactory = compressFactory; diff --git a/javatests/google/registry/rde/RydeGpgIntegrationTest.java b/javatests/google/registry/rde/RydeGpgIntegrationTest.java index d443d2bf9..50dbba4d5 100644 --- a/javatests/google/registry/rde/RydeGpgIntegrationTest.java +++ b/javatests/google/registry/rde/RydeGpgIntegrationTest.java @@ -26,7 +26,6 @@ import google.registry.keyring.api.Keyring; import google.registry.testing.BouncyCastleProviderRule; import google.registry.testing.FakeKeyringModule; import google.registry.testing.GpgSystemCommandRule; -import google.registry.testing.Providers; import google.registry.testing.ShardableTestCase; import google.registry.util.FormattingLogger; import java.io.File; @@ -97,11 +96,11 @@ public class RydeGpgIntegrationTest extends ShardableTestCase { RydeTarOutputStreamFactory tarFactory = new RydeTarOutputStreamFactory(); RydePgpFileOutputStreamFactory pgpFileFactory = - new RydePgpFileOutputStreamFactory(Providers.of(bufSize.get())); + new RydePgpFileOutputStreamFactory(bufSize::get); RydePgpEncryptionOutputStreamFactory pgpEncryptionFactory = - new RydePgpEncryptionOutputStreamFactory(Providers.of(bufSize.get())); + new RydePgpEncryptionOutputStreamFactory(bufSize::get); RydePgpCompressionOutputStreamFactory pgpCompressionFactory = - new RydePgpCompressionOutputStreamFactory(Providers.of(bufSize.get())); + new RydePgpCompressionOutputStreamFactory(bufSize::get); RydePgpSigningOutputStreamFactory pgpSigningFactory = new RydePgpSigningOutputStreamFactory(); diff --git a/javatests/google/registry/rde/imports/RdeContactReaderTest.java b/javatests/google/registry/rde/imports/RdeContactReaderTest.java index a4fa20bc6..840cc9274 100644 --- a/javatests/google/registry/rde/imports/RdeContactReaderTest.java +++ b/javatests/google/registry/rde/imports/RdeContactReaderTest.java @@ -194,8 +194,7 @@ public class RdeContactReaderTest { oout.writeObject(reader); ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()); ObjectInputStream oin = new ObjectInputStream(bin); - RdeContactReader result = (RdeContactReader) oin.readObject(); - return result; + return (RdeContactReader) oin.readObject(); } /** Verifies that contact id and ROID match expected values */ diff --git a/javatests/google/registry/rde/imports/RdeHostReaderTest.java b/javatests/google/registry/rde/imports/RdeHostReaderTest.java index 6a83c9f68..080746624 100644 --- a/javatests/google/registry/rde/imports/RdeHostReaderTest.java +++ b/javatests/google/registry/rde/imports/RdeHostReaderTest.java @@ -190,8 +190,7 @@ public class RdeHostReaderTest { oout.writeObject(reader); ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()); ObjectInputStream oin = new ObjectInputStream(bin); - RdeHostReader result = (RdeHostReader) oin.readObject(); - return result; + return (RdeHostReader) oin.readObject(); } /** Verifies that domain name and ROID match expected values */ diff --git a/javatests/google/registry/server/TestServer.java b/javatests/google/registry/server/TestServer.java index 12e4c7eff..425ee5abe 100644 --- a/javatests/google/registry/server/TestServer.java +++ b/javatests/google/registry/server/TestServer.java @@ -121,7 +121,7 @@ public final class TestServer { * main event loop, for post-request processing. */ public void ping() { - requestQueue.add(new FutureTask(doNothing(), null)); + requestQueue.add(new FutureTask<>(doNothing(), null)); } /** Stops the HTTP server. */ diff --git a/javatests/google/registry/testing/AppEngineRule.java b/javatests/google/registry/testing/AppEngineRule.java index 8a0f4343a..566136122 100644 --- a/javatests/google/registry/testing/AppEngineRule.java +++ b/javatests/google/registry/testing/AppEngineRule.java @@ -298,12 +298,7 @@ public final class AppEngineRule extends ExternalResource { } if (clock != null) { - helper.setClock(new com.google.appengine.tools.development.Clock() { - @Override - public long getCurrentTime() { - return clock.nowUtc().getMillis(); - } - }); + helper.setClock(() -> clock.nowUtc().getMillis()); } if (withLocalModules) { diff --git a/javatests/google/registry/testing/DatastoreHelper.java b/javatests/google/registry/testing/DatastoreHelper.java index 304bed87f..a8e510414 100644 --- a/javatests/google/registry/testing/DatastoreHelper.java +++ b/javatests/google/registry/testing/DatastoreHelper.java @@ -56,7 +56,6 @@ import com.google.common.collect.Streams; import com.google.common.net.InetAddresses; import com.googlecode.objectify.Key; import com.googlecode.objectify.VoidWork; -import com.googlecode.objectify.Work; import com.googlecode.objectify.cmd.Saver; import google.registry.dns.writer.VoidDnsWriter; import google.registry.model.Buildable; @@ -1030,11 +1029,7 @@ public class DatastoreHelper { /** Force the create and update timestamps to get written into the resource. **/ public static R cloneAndSetAutoTimestamps(final R resource) { - return ofy().transact(new Work() { - @Override - public R run() { - return ofy().load().fromEntity(ofy().save().toEntity(resource)); - }}); + return ofy().transact(() -> ofy().load().fromEntity(ofy().save().toEntity(resource))); } /** Returns the entire map of {@link PremiumListEntry}s for the given {@link PremiumList}. */ diff --git a/javatests/google/registry/testing/DeterministicStringGenerator.java b/javatests/google/registry/testing/DeterministicStringGenerator.java index 8d1b8f7d6..5fd8d4021 100644 --- a/javatests/google/registry/testing/DeterministicStringGenerator.java +++ b/javatests/google/registry/testing/DeterministicStringGenerator.java @@ -60,16 +60,16 @@ public class DeterministicStringGenerator extends StringGenerator { @Override public String createString(int length) { checkArgument(length > 0, "String length must be positive."); - String password = ""; + StringBuilder password = new StringBuilder(); for (int i = 0; i < length; i++) { - password += iterator.next(); + password.append(iterator.next()); } switch (rule) { case PREPEND_COUNTER: - return String.format("%04d_%s", counter++, password); + return String.format("%04d_%s", counter++, password.toString()); case DEFAULT: default: - return password; + return password.toString(); } } diff --git a/javatests/google/registry/testing/FakeKeyringModule.java b/javatests/google/registry/testing/FakeKeyringModule.java index 47e014894..0a56d0cff 100644 --- a/javatests/google/registry/testing/FakeKeyringModule.java +++ b/javatests/google/registry/testing/FakeKeyringModule.java @@ -76,8 +76,6 @@ public final class FakeKeyringModule { PgpHelper.lookupKeyPair(publics, privates, SIGNING_KEY_EMAIL, SIGN); final PGPPublicKey rdeReceiverKey = PgpHelper.lookupPublicKey(publics, RECEIVER_KEY_EMAIL, ENCRYPT); - final PGPKeyPair brdaSigningKey = rdeSigningKey; - final PGPPublicKey brdaReceiverKey = rdeReceiverKey; final String sshPublic = readResourceUtf8(FakeKeyringModule.class, "testdata/registry-unittest.id_rsa.pub"); final String sshPrivate = @@ -141,12 +139,12 @@ public final class FakeKeyringModule { @Override public PGPKeyPair getBrdaSigningKey() { - return brdaSigningKey; + return rdeSigningKey; } @Override public PGPPublicKey getBrdaReceiverKey() { - return brdaReceiverKey; + return rdeReceiverKey; } @Override diff --git a/javatests/google/registry/testing/FullFieldsTestEntityHelper.java b/javatests/google/registry/testing/FullFieldsTestEntityHelper.java index 4081999b5..087f8b780 100644 --- a/javatests/google/registry/testing/FullFieldsTestEntityHelper.java +++ b/javatests/google/registry/testing/FullFieldsTestEntityHelper.java @@ -56,7 +56,7 @@ public final class FullFieldsTestEntityHelper { public static Registrar makeRegistrar( String clientId, String registrarName, Registrar.State state, Long ianaIdentifier) { - Registrar registrar = new Registrar.Builder() + return new Registrar.Builder() .setClientId(clientId) .setRegistrarName(registrarName) .setType(Registrar.Type.REAL) @@ -82,7 +82,6 @@ public final class FullFieldsTestEntityHelper { .setWhoisServer("whois.example.com") .setReferralUrl("http://www.example.com") .build(); - return registrar; } public static ImmutableList makeRegistrarContacts(Registrar registrar) { diff --git a/javatests/google/registry/testing/Lazies.java b/javatests/google/registry/testing/Lazies.java index 6d8f422af..fc9b41114 100644 --- a/javatests/google/registry/testing/Lazies.java +++ b/javatests/google/registry/testing/Lazies.java @@ -23,10 +23,6 @@ public final class Lazies { * Returns a {@link Lazy} that supplies a constant value. */ public static Lazy of(final T instance) { - return new Lazy() { - @Override - public T get() { - return instance; - }}; + return () -> instance; } } diff --git a/javatests/google/registry/testing/Providers.java b/javatests/google/registry/testing/Providers.java index dcef86fd4..cc6fc488b 100644 --- a/javatests/google/registry/testing/Providers.java +++ b/javatests/google/registry/testing/Providers.java @@ -24,10 +24,6 @@ public final class Providers { * */ public static Provider of(final T instance) { - return new Provider() { - @Override - public T get() { - return instance; - }}; + return () -> instance; } } diff --git a/javatests/google/registry/tools/DefaultRequestFactoryModuleTest.java b/javatests/google/registry/tools/DefaultRequestFactoryModuleTest.java index 58dba7181..d35438547 100644 --- a/javatests/google/registry/tools/DefaultRequestFactoryModuleTest.java +++ b/javatests/google/registry/tools/DefaultRequestFactoryModuleTest.java @@ -21,9 +21,7 @@ import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpRequestInitializer; import com.google.common.net.HostAndPort; -import google.registry.testing.Providers; import java.io.IOException; -import javax.inject.Provider; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -43,8 +41,6 @@ public class DefaultRequestFactoryModuleTest { } }); - Provider credentialProvider = Providers.of(FAKE_CREDENTIAL); - DefaultRequestFactoryModule module = new DefaultRequestFactoryModule(); @Before @@ -56,9 +52,9 @@ public class DefaultRequestFactoryModuleTest { public void test_provideHttpRequestFactory_localhost() throws Exception { // Make sure that localhost creates a request factory with an initializer. HttpRequestFactory factory = - module.provideHttpRequestFactory(new AppEngineConnectionFlags( - HostAndPort.fromParts("localhost", 1000)), - credentialProvider); + module.provideHttpRequestFactory( + new AppEngineConnectionFlags(HostAndPort.fromParts("localhost", 1000)), + () -> FAKE_CREDENTIAL); HttpRequestInitializer initializer = factory.getInitializer(); assertThat(initializer).isNotNull(); assertThat(initializer).isNotSameAs(FAKE_CREDENTIAL); @@ -69,9 +65,9 @@ public class DefaultRequestFactoryModuleTest { // Make sure that example.com creates a request factory with the UNITTEST client id but no // initializer. HttpRequestFactory factory = - module.provideHttpRequestFactory(new AppEngineConnectionFlags( - HostAndPort.fromParts("example.com", 1000)), - credentialProvider); + module.provideHttpRequestFactory( + new AppEngineConnectionFlags(HostAndPort.fromParts("example.com", 1000)), + () -> FAKE_CREDENTIAL); assertThat(factory.getInitializer()).isSameAs(FAKE_CREDENTIAL); } } diff --git a/javatests/google/registry/tools/EncryptEscrowDepositCommandTest.java b/javatests/google/registry/tools/EncryptEscrowDepositCommandTest.java index fba169fc3..78f92bddb 100644 --- a/javatests/google/registry/tools/EncryptEscrowDepositCommandTest.java +++ b/javatests/google/registry/tools/EncryptEscrowDepositCommandTest.java @@ -27,7 +27,6 @@ import google.registry.rde.RydePgpSigningOutputStreamFactory; import google.registry.rde.RydeTarOutputStreamFactory; import google.registry.testing.BouncyCastleProviderRule; import google.registry.testing.FakeKeyringModule; -import google.registry.testing.Providers; import java.io.File; import org.junit.Before; import org.junit.Rule; @@ -45,13 +44,13 @@ public class EncryptEscrowDepositCommandTest static EscrowDepositEncryptor createEncryptor() { EscrowDepositEncryptor res = new EscrowDepositEncryptor(); - res.pgpCompressionFactory = new RydePgpCompressionOutputStreamFactory(Providers.of(1024)); - res.pgpEncryptionFactory = new RydePgpEncryptionOutputStreamFactory(Providers.of(1024)); - res.pgpFileFactory = new RydePgpFileOutputStreamFactory(Providers.of(1024)); + res.pgpCompressionFactory = new RydePgpCompressionOutputStreamFactory(() -> 1024); + res.pgpEncryptionFactory = new RydePgpEncryptionOutputStreamFactory(() -> 1024); + res.pgpFileFactory = new RydePgpFileOutputStreamFactory(() -> 1024); res.pgpSigningFactory = new RydePgpSigningOutputStreamFactory(); res.tarFactory = new RydeTarOutputStreamFactory(); - res.rdeReceiverKey = Providers.of(new FakeKeyringModule().get().getRdeReceiverKey()); - res.rdeSigningKey = Providers.of(new FakeKeyringModule().get().getRdeSigningKey()); + res.rdeReceiverKey = () -> new FakeKeyringModule().get().getRdeReceiverKey(); + res.rdeSigningKey = () -> new FakeKeyringModule().get().getRdeSigningKey(); return res; } diff --git a/javatests/google/registry/tools/GhostrydeCommandTest.java b/javatests/google/registry/tools/GhostrydeCommandTest.java index 38c1f1fea..082ee5d1f 100644 --- a/javatests/google/registry/tools/GhostrydeCommandTest.java +++ b/javatests/google/registry/tools/GhostrydeCommandTest.java @@ -23,7 +23,6 @@ import google.registry.rde.Ghostryde.DecodeResult; import google.registry.testing.BouncyCastleProviderRule; import google.registry.testing.FakeKeyringModule; import google.registry.testing.InjectRule; -import google.registry.testing.Providers; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -68,8 +67,8 @@ public class GhostrydeCommandTest extends CommandTestCase { public void before() throws Exception { keyring = new FakeKeyringModule().get(); command.ghostryde = new Ghostryde(1024); - command.rdeStagingDecryptionKey = Providers.of(keyring.getRdeStagingDecryptionKey()); - command.rdeStagingEncryptionKey = Providers.of(keyring.getRdeStagingEncryptionKey()); + command.rdeStagingDecryptionKey = keyring::getRdeStagingDecryptionKey; + command.rdeStagingEncryptionKey = keyring::getRdeStagingEncryptionKey; } @Test diff --git a/javatests/google/registry/tools/LevelDbUtil.java b/javatests/google/registry/tools/LevelDbUtil.java index 3026c2ec3..630902f7f 100644 --- a/javatests/google/registry/tools/LevelDbUtil.java +++ b/javatests/google/registry/tools/LevelDbUtil.java @@ -81,9 +81,7 @@ class LevelDbUtil { pos = addRecordHeader(bytes, pos, type, data.length); // Write the contents of "data". - for (int i = 0; i < data.length; ++i) { - bytes[pos + i] = data[i]; - } + System.arraycopy(data, 0, bytes, pos, data.length); return pos + data.length; } diff --git a/javatests/google/registry/tools/ListObjectsCommandTestCase.java b/javatests/google/registry/tools/ListObjectsCommandTestCase.java index ee26eacab..0848b1390 100644 --- a/javatests/google/registry/tools/ListObjectsCommandTestCase.java +++ b/javatests/google/registry/tools/ListObjectsCommandTestCase.java @@ -82,12 +82,8 @@ public abstract class ListObjectsCommandTestCase if (fields != null) { params.put(FIELDS_PARAM, fields); } - if (printHeaderRow.isPresent()) { - params.put(PRINT_HEADER_ROW_PARAM, printHeaderRow.get()); - } - if (fullFieldNames.isPresent()) { - params.put(FULL_FIELD_NAMES_PARAM, fullFieldNames.get()); - } + printHeaderRow.ifPresent(aBoolean -> params.put(PRINT_HEADER_ROW_PARAM, aBoolean)); + fullFieldNames.ifPresent(aBoolean -> params.put(FULL_FIELD_NAMES_PARAM, aBoolean)); if (!getTlds().isEmpty()) { params.put("tlds", Joiner.on(',').join(getTlds())); } diff --git a/javatests/google/registry/util/ComparingInvocationHandlerTest.java b/javatests/google/registry/util/ComparingInvocationHandlerTest.java index 88f1f6374..cfbb0bfdd 100644 --- a/javatests/google/registry/util/ComparingInvocationHandlerTest.java +++ b/javatests/google/registry/util/ComparingInvocationHandlerTest.java @@ -33,7 +33,7 @@ public class ComparingInvocationHandlerTest { static class Dummy {} - static interface MyInterface { + interface MyInterface { String func(int a, String b); Dummy func(); diff --git a/javatests/google/registry/util/RequestStatusCheckerImplTest.java b/javatests/google/registry/util/RequestStatusCheckerImplTest.java index 66de1e098..bdcefaa3a 100644 --- a/javatests/google/registry/util/RequestStatusCheckerImplTest.java +++ b/javatests/google/registry/util/RequestStatusCheckerImplTest.java @@ -50,7 +50,7 @@ public final class RequestStatusCheckerImplTest { * Because LogQuery doesn't have a .equals function, we have to create an actual matcher to make * sure we have the right argument in our mocks. */ - private static final LogQuery expectedLogQuery(final String requestLogId) { + private static LogQuery expectedLogQuery(final String requestLogId) { return argThat( new ArgumentMatcher() { @Override diff --git a/javatests/google/registry/whois/WhoisReaderTest.java b/javatests/google/registry/whois/WhoisReaderTest.java index 9d74bc965..d30636782 100644 --- a/javatests/google/registry/whois/WhoisReaderTest.java +++ b/javatests/google/registry/whois/WhoisReaderTest.java @@ -47,7 +47,7 @@ public class WhoisReaderTest { WhoisReader.logger.addHandler(testLogHandler); } - @SuppressWarnings("TypeParameterUnusedInFormals") // XXX: Generic abuse ftw. + @SuppressWarnings({"TypeParameterUnusedInFormals", "unchecked"}) T readCommand(String commandStr) throws Exception { return (T) new WhoisReader(new WhoisCommandFactory())