diff --git a/common/src/main/java/google/registry/util/SystemSleeper.java b/common/src/main/java/google/registry/util/SystemSleeper.java index 35fd07770..ec30280c6 100644 --- a/common/src/main/java/google/registry/util/SystemSleeper.java +++ b/common/src/main/java/google/registry/util/SystemSleeper.java @@ -19,6 +19,7 @@ import static com.google.common.base.Preconditions.checkArgument; import com.google.common.util.concurrent.Uninterruptibles; import jakarta.inject.Inject; import java.io.Serializable; +import java.time.Duration; import javax.annotation.concurrent.ThreadSafe; import org.joda.time.ReadableDuration; @@ -40,6 +41,6 @@ public final class SystemSleeper implements Sleeper, Serializable { @Override public void sleepUninterruptibly(ReadableDuration duration) { checkArgument(duration.getMillis() >= 0); - Uninterruptibles.sleepUninterruptibly(java.time.Duration.ofMillis(duration.getMillis())); + Uninterruptibles.sleepUninterruptibly(Duration.ofMillis(duration.getMillis())); } } diff --git a/core/src/main/java/google/registry/model/billing/BillingCancellation.java b/core/src/main/java/google/registry/model/billing/BillingCancellation.java index 045e87b95..0fc66fba9 100644 --- a/core/src/main/java/google/registry/model/billing/BillingCancellation.java +++ b/core/src/main/java/google/registry/model/billing/BillingCancellation.java @@ -89,7 +89,7 @@ public class BillingCancellation extends BillingBase { * the supplied targetId and deriving other metadata (clientId, billing time, and the cancellation * reason) from the grace period. */ - public static google.registry.model.billing.BillingCancellation forGracePeriod( + public static BillingCancellation forGracePeriod( GracePeriod gracePeriod, DateTime eventTime, HistoryEntryId domainHistoryId, @@ -116,12 +116,12 @@ public class BillingCancellation extends BillingBase { } @Override - public VKey createVKey() { + public VKey createVKey() { return createVKey(getId()); } - public static VKey createVKey(long id) { - return VKey.create(google.registry.model.billing.BillingCancellation.class, id); + public static VKey createVKey(long id) { + return VKey.create(BillingCancellation.class, id); } @Override @@ -129,15 +129,12 @@ public class BillingCancellation extends BillingBase { return new Builder(clone(this)); } - /** - * A builder for {@link google.registry.model.billing.BillingCancellation} since it is immutable. - */ - public static class Builder - extends BillingBase.Builder { + /** A builder for {@link BillingCancellation} since it is immutable. */ + public static class Builder extends BillingBase.Builder { public Builder() {} - private Builder(google.registry.model.billing.BillingCancellation instance) { + private Builder(BillingCancellation instance) { super(instance); } @@ -157,8 +154,8 @@ public class BillingCancellation extends BillingBase { } @Override - public google.registry.model.billing.BillingCancellation build() { - google.registry.model.billing.BillingCancellation instance = getInstance(); + public BillingCancellation build() { + BillingCancellation instance = getInstance(); checkNotNull(instance.billingTime, "Must set billing time"); checkNotNull(instance.reason, "Must set reason"); checkState( diff --git a/core/src/main/java/google/registry/model/billing/BillingEvent.java b/core/src/main/java/google/registry/model/billing/BillingEvent.java index e821c98f9..6e6d06299 100644 --- a/core/src/main/java/google/registry/model/billing/BillingEvent.java +++ b/core/src/main/java/google/registry/model/billing/BillingEvent.java @@ -151,12 +151,12 @@ public class BillingEvent extends BillingBase { } @Override - public VKey createVKey() { + public VKey createVKey() { return createVKey(getId()); } - public static VKey createVKey(long id) { - return VKey.create(google.registry.model.billing.BillingEvent.class, id); + public static VKey createVKey(long id) { + return VKey.create(BillingEvent.class, id); } @Override @@ -164,13 +164,12 @@ public class BillingEvent extends BillingBase { return new Builder(clone(this)); } - /** A builder for {@link google.registry.model.billing.BillingEvent} since it is immutable. */ - public static class Builder - extends BillingBase.Builder { + /** A builder for {@link BillingEvent} since it is immutable. */ + public static class Builder extends BillingBase.Builder { public Builder() {} - private Builder(google.registry.model.billing.BillingEvent instance) { + private Builder(BillingEvent instance) { super(instance); } @@ -229,8 +228,8 @@ public class BillingEvent extends BillingBase { } @Override - public google.registry.model.billing.BillingEvent build() { - google.registry.model.billing.BillingEvent instance = getInstance(); + public BillingEvent build() { + BillingEvent instance = getInstance(); checkNotNull(instance.billingTime); checkNotNull(instance.cost); checkState(!instance.cost.isNegative(), "Costs should be non-negative."); diff --git a/core/src/main/java/google/registry/model/billing/BillingRecurrence.java b/core/src/main/java/google/registry/model/billing/BillingRecurrence.java index 58712eea5..c067a7b0c 100644 --- a/core/src/main/java/google/registry/model/billing/BillingRecurrence.java +++ b/core/src/main/java/google/registry/model/billing/BillingRecurrence.java @@ -152,12 +152,12 @@ public class BillingRecurrence extends BillingBase { } @Override - public VKey createVKey() { + public VKey createVKey() { return createVKey(getId()); } - public static VKey createVKey(Long id) { - return VKey.create(google.registry.model.billing.BillingRecurrence.class, id); + public static VKey createVKey(Long id) { + return VKey.create(BillingRecurrence.class, id); } @Override @@ -165,15 +165,12 @@ public class BillingRecurrence extends BillingBase { return new Builder(clone(this)); } - /** - * A builder for {@link google.registry.model.billing.BillingRecurrence} since it is immutable. - */ - public static class Builder - extends BillingBase.Builder { + /** A builder for {@link BillingRecurrence} since it is immutable. */ + public static class Builder extends BillingBase.Builder { public Builder() {} - private Builder(google.registry.model.billing.BillingRecurrence instance) { + private Builder(BillingRecurrence instance) { super(instance); } @@ -216,8 +213,8 @@ public class BillingRecurrence extends BillingBase { } @Override - public google.registry.model.billing.BillingRecurrence build() { - google.registry.model.billing.BillingRecurrence instance = getInstance(); + public BillingRecurrence build() { + BillingRecurrence instance = getInstance(); checkNotNull(instance.eventTime); checkNotNull(instance.reason); // Don't require recurrenceLastExpansion to be individually set on every new Recurrence. diff --git a/core/src/main/java/google/registry/model/common/TimeOfYear.java b/core/src/main/java/google/registry/model/common/TimeOfYear.java index 2db439c59..a98bb13a7 100644 --- a/core/src/main/java/google/registry/model/common/TimeOfYear.java +++ b/core/src/main/java/google/registry/model/common/TimeOfYear.java @@ -132,10 +132,8 @@ public class TimeOfYear extends ImmutableObject implements UnsafeSerializable { Range normalizedRange = range.intersection(Range.closed(START_INSTANT, END_INSTANT)); Range yearRange = Range.closed( - ZonedDateTime.ofInstant(normalizedRange.lowerEndpoint(), java.time.ZoneOffset.UTC) - .getYear(), - ZonedDateTime.ofInstant(normalizedRange.upperEndpoint(), java.time.ZoneOffset.UTC) - .getYear()); + ZonedDateTime.ofInstant(normalizedRange.lowerEndpoint(), ZoneOffset.UTC).getYear(), + ZonedDateTime.ofInstant(normalizedRange.upperEndpoint(), ZoneOffset.UTC).getYear()); return ContiguousSet.create(yearRange, integers()).stream() .map(this::toInstantWithYear) .filter(normalizedRange) @@ -170,7 +168,7 @@ public class TimeOfYear extends ImmutableObject implements UnsafeSerializable { /** Get the first {@link Instant} with this month/day/millis that is at or after the start. */ public Instant getNextInstanceAtOrAfterInstant(Instant start) { Instant withSameYear = - toInstantWithYear(ZonedDateTime.ofInstant(start, java.time.ZoneOffset.UTC).getYear()); + toInstantWithYear(ZonedDateTime.ofInstant(start, ZoneOffset.UTC).getYear()); return isAtOrAfter(withSameYear, start) ? withSameYear : plusYears(withSameYear, 1); } @@ -188,7 +186,7 @@ public class TimeOfYear extends ImmutableObject implements UnsafeSerializable { /** Get the first {@link Instant} with this month/day/millis that is at or before the end. */ public Instant getLastInstanceBeforeOrAtInstant(Instant end) { Instant withSameYear = - toInstantWithYear(ZonedDateTime.ofInstant(end, java.time.ZoneOffset.UTC).getYear()); + toInstantWithYear(ZonedDateTime.ofInstant(end, ZoneOffset.UTC).getYear()); return isBeforeOrAt(withSameYear, end) ? withSameYear : minusYears(withSameYear, 1); } diff --git a/core/src/main/java/google/registry/model/domain/token/BulkPricingPackage.java b/core/src/main/java/google/registry/model/domain/token/BulkPricingPackage.java index d35bf0bc2..3d4fec669 100644 --- a/core/src/main/java/google/registry/model/domain/token/BulkPricingPackage.java +++ b/core/src/main/java/google/registry/model/domain/token/BulkPricingPackage.java @@ -32,6 +32,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.Index; import jakarta.persistence.Table; import java.time.Instant; import java.util.Optional; @@ -44,7 +45,7 @@ import org.joda.time.DateTime; * PackagePromotion in Cloud SQL. */ @Entity(name = "PackagePromotion") -@Table(indexes = {@jakarta.persistence.Index(columnList = "token")}) +@Table(indexes = {@Index(columnList = "token")}) public class BulkPricingPackage extends ImmutableObject implements Buildable { /** An autogenerated identifier for the bulk pricing promotion. */ diff --git a/core/src/main/java/google/registry/model/tld/label/ReservedList.java b/core/src/main/java/google/registry/model/tld/label/ReservedList.java index a5f23d50c..ce37884e1 100644 --- a/core/src/main/java/google/registry/model/tld/label/ReservedList.java +++ b/core/src/main/java/google/registry/model/tld/label/ReservedList.java @@ -38,6 +38,7 @@ import google.registry.model.tld.label.DomainLabelMetrics.MetricsReservedListMat import google.registry.persistence.EntityCallbacksListener.RecursivePostPersist; import google.registry.persistence.EntityCallbacksListener.RecursivePreRemove; import jakarta.persistence.Column; +import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Index; import jakarta.persistence.Table; @@ -56,7 +57,7 @@ import javax.annotation.Nullable; * succeeds, we will end up with having two exact same reserved lists that differ only by * revisionId. This is fine though, because we only use the list with the highest revisionId. */ -@jakarta.persistence.Entity +@Entity @Table(indexes = {@Index(columnList = "name", name = "reservedlist_name_idx")}) public final class ReservedList extends BaseDomainLabelList { @@ -103,7 +104,7 @@ public final class ReservedList * A reserved list entry entity, persisted to the database, that represents a single label and its * reservation type. */ - @jakarta.persistence.Entity(name = "ReservedEntry") + @Entity(name = "ReservedEntry") public static class ReservedListEntry extends DomainLabelEntry implements Buildable, Serializable { diff --git a/core/src/main/java/google/registry/model/tmch/TmchCrl.java b/core/src/main/java/google/registry/model/tmch/TmchCrl.java index ce4b0e47e..3e4ad70df 100644 --- a/core/src/main/java/google/registry/model/tmch/TmchCrl.java +++ b/core/src/main/java/google/registry/model/tmch/TmchCrl.java @@ -19,12 +19,13 @@ import static google.registry.persistence.transaction.TransactionManagerFactory. import google.registry.model.common.CrossTldSingleton; import jakarta.persistence.Column; +import jakarta.persistence.Entity; import java.time.Instant; import java.util.Optional; import javax.annotation.concurrent.Immutable; /** Singleton for ICANN's TMCH CA certificate revocation list (CRL). */ -@jakarta.persistence.Entity +@Entity @Immutable public final class TmchCrl extends CrossTldSingleton { diff --git a/core/src/main/java/google/registry/privileges/secretmanager/SqlCredential.java b/core/src/main/java/google/registry/privileges/secretmanager/SqlCredential.java index ad3dc6627..47d5174a2 100644 --- a/core/src/main/java/google/registry/privileges/secretmanager/SqlCredential.java +++ b/core/src/main/java/google/registry/privileges/secretmanager/SqlCredential.java @@ -16,6 +16,7 @@ package google.registry.privileges.secretmanager; import static com.google.common.base.Preconditions.checkState; +import com.google.common.base.Splitter; import java.util.List; /** @@ -38,7 +39,7 @@ public record SqlCredential(String login, String password) { } public static SqlCredential fromFormattedString(String sqlCredential) { - List items = com.google.common.base.Splitter.on(SEPARATOR).splitToList(sqlCredential); + List items = Splitter.on(SEPARATOR).splitToList(sqlCredential); checkState(items.size() == 2, "Invalid SqlCredential string."); return create(items.get(0), items.get(1)); } diff --git a/core/src/main/java/google/registry/rdap/RdapNameserverSearchAction.java b/core/src/main/java/google/registry/rdap/RdapNameserverSearchAction.java index ba0190d9a..6aaed9346 100644 --- a/core/src/main/java/google/registry/rdap/RdapNameserverSearchAction.java +++ b/core/src/main/java/google/registry/rdap/RdapNameserverSearchAction.java @@ -40,6 +40,7 @@ import google.registry.request.HttpException.UnprocessableEntityException; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import jakarta.inject.Inject; +import jakarta.persistence.Query; import java.net.InetAddress; import java.util.ArrayList; import java.util.List; @@ -267,7 +268,7 @@ public class RdapNameserverSearchAction extends RdapSearchActionBase { replicaTm() .transact( () -> { - jakarta.persistence.Query query = + Query query = replicaTm() .getEntityManager() .createNativeQuery(queryBuilder.toString(), Host.class) diff --git a/core/src/main/java/google/registry/tools/server/GenerateZoneFilesAction.java b/core/src/main/java/google/registry/tools/server/GenerateZoneFilesAction.java index 6db1ec4c6..878825b4b 100644 --- a/core/src/main/java/google/registry/tools/server/GenerateZoneFilesAction.java +++ b/core/src/main/java/google/registry/tools/server/GenerateZoneFilesAction.java @@ -51,6 +51,7 @@ import java.util.Map; import org.hibernate.CacheMode; import org.hibernate.ScrollMode; import org.hibernate.ScrollableResults; +import org.hibernate.query.SelectionQuery; import org.joda.time.Duration; /** @@ -163,7 +164,7 @@ public class GenerateZoneFilesAction implements Runnable, JsonActionRunner.JsonA tm().query("FROM Domain WHERE tld = :tld AND deletionTime > :exportTime", Domain.class) .setParameter("tld", tld) .setParameter("exportTime", exportTime) - .unwrap(org.hibernate.query.SelectionQuery.class) + .unwrap(SelectionQuery.class) .setCacheMode(CacheMode.IGNORE) .scroll(ScrollMode.FORWARD_ONLY); for (int i = 1; scrollableResults.next(); i = (i + 1) % BATCH_SIZE) { diff --git a/core/src/test/java/google/registry/beam/resave/ResaveAllEppResourcesPipelineTest.java b/core/src/test/java/google/registry/beam/resave/ResaveAllEppResourcesPipelineTest.java index 0343eb0f3..776bc3979 100644 --- a/core/src/test/java/google/registry/beam/resave/ResaveAllEppResourcesPipelineTest.java +++ b/core/src/test/java/google/registry/beam/resave/ResaveAllEppResourcesPipelineTest.java @@ -135,7 +135,7 @@ public class ResaveAllEppResourcesPipelineTest { persistDomainWithDependentResources( "domain", "tld", toDateTime(now), toDateTime(now), toDateTime(plusYears(now, 1))); assertThat(loadAllOf(GracePeriod.class)).hasSize(1); - fakeClock.advanceBy(org.joda.time.Duration.standardDays(500)); + fakeClock.advanceBy(Duration.standardDays(500)); runPipeline(); assertThat(loadAllOf(GracePeriod.class)).isEmpty(); } diff --git a/core/src/test/java/google/registry/flows/domain/DomainRestoreRequestFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainRestoreRequestFlowTest.java index 51b4fc3d4..ee46ba7db 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainRestoreRequestFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainRestoreRequestFlowTest.java @@ -46,6 +46,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedMap; import google.registry.flows.EppException; +import google.registry.flows.EppException.UnimplementedCommandException; import google.registry.flows.EppException.UnimplementedExtensionException; import google.registry.flows.FlowUtils.NotLoggedInException; import google.registry.flows.FlowUtils.UnknownCurrencyEppException; @@ -686,8 +687,7 @@ class DomainRestoreRequestFlowTest extends ResourceFlowTestCase largeBatch = - java.util.stream.IntStream.range(0, 70) + IntStream.range(0, 70) .mapToObj(i -> createTldState("tld-" + i, "UP", "UP")) .collect(ImmutableList.toImmutableList()); mosApiMetrics.recordStates(largeBatch); diff --git a/core/src/test/java/google/registry/persistence/transaction/DatabaseExceptionTest.java b/core/src/test/java/google/registry/persistence/transaction/DatabaseExceptionTest.java index 771a5c3e4..eac7faa11 100644 --- a/core/src/test/java/google/registry/persistence/transaction/DatabaseExceptionTest.java +++ b/core/src/test/java/google/registry/persistence/transaction/DatabaseExceptionTest.java @@ -41,33 +41,32 @@ public class DatabaseExceptionTest { @Test void getSqlError_sqlExceptionNoDetails() { - assertThat(getSqlError(new java.sql.SQLException())).isEmpty(); + assertThat(getSqlError(new SQLException())).isEmpty(); } @Test void getSqlError_sqlExceptionWithSqlState() { - assertThat(getSqlError(new java.sql.SQLException("msg", "state"))) + assertThat(getSqlError(new SQLException("msg", "state"))) .contains("\tSQL Error: 0, SQLState: state, message: msg."); } @Test void getSqlError_sqlExceptionWithAllDetails() { - assertThat(getSqlError(new java.sql.SQLException("msg", "state", 1))) + assertThat(getSqlError(new SQLException("msg", "state", 1))) .contains("\tSQL Error: 1, SQLState: state, message: msg."); } @Test void getSqlError_chainedSqlExceptionWithAllDetails() { - SQLException sqlException = new java.sql.SQLException("msg", "state", 1); + SQLException sqlException = new SQLException("msg", "state", 1); assertThat(getSqlError(new Exception("not-captured", sqlException))) .contains("\tSQL Error: 1, SQLState: state, message: msg."); } @Test void getSqlError_multipleChainedSqlExceptionWithAllDetails() { - SQLException lower = new java.sql.SQLException("lower", "lower-state", 1); - SQLException higher = - new java.sql.SQLException("higher", "higher-state", 2, new Exception(lower)); + SQLException lower = new SQLException("lower", "lower-state", 1); + SQLException higher = new SQLException("higher", "higher-state", 2, new Exception(lower)); assertThat(getSqlError(new Exception(higher))) .contains( "\tSQL Error: 2, SQLState: higher-state, message: higher.\n" diff --git a/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java b/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java index d18d4a3b6..be8c06188 100644 --- a/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java +++ b/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java @@ -382,8 +382,8 @@ class AuthenticatedRegistrarAccessorTest { @Test void testConsoleUser_admin() { - google.registry.model.console.User consoleUser = - new google.registry.model.console.User.Builder() + User consoleUser = + new User.Builder() .setEmailAddress("email@email.com") .setUserRoles( new UserRoles.Builder().setIsAdmin(true).setGlobalRole(GlobalRole.FTE).build()) @@ -408,8 +408,8 @@ class AuthenticatedRegistrarAccessorTest { void testConsoleUser_globalRole() { // Users with global roles shouldn't necessarily have access to specific registrars if they're // not admins - google.registry.model.console.User consoleUser = - new google.registry.model.console.User.Builder() + User consoleUser = + new User.Builder() .setEmailAddress("email@email.com") .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build()) .build(); @@ -425,8 +425,8 @@ class AuthenticatedRegistrarAccessorTest { @Test void testConsoleUser_registrarRoles() { // Registrar employees should have OWNER access to their registrars - google.registry.model.console.User consoleUser = - new google.registry.model.console.User.Builder() + User consoleUser = + new User.Builder() .setEmailAddress("email@email.com") .setUserRoles( new UserRoles.Builder() diff --git a/core/src/test/java/google/registry/testing/DomainSubject.java b/core/src/test/java/google/registry/testing/DomainSubject.java index 94b13ff40..1d34b57c2 100644 --- a/core/src/test/java/google/registry/testing/DomainSubject.java +++ b/core/src/test/java/google/registry/testing/DomainSubject.java @@ -136,9 +136,7 @@ public final class DomainSubject extends AbstractEppResourceSubject hasNoAutorenewEndTime() { - return hasNoValue( - actual.getAutorenewEndTime().map(google.registry.util.DateTimeUtils::toInstant), - "getAutorenewEndTime()"); + return hasNoValue(actual.getAutorenewEndTimeInstant(), "getAutorenewEndTime()"); } public static SimpleSubjectBuilder assertAboutDomains() { diff --git a/java_common.gradle b/java_common.gradle index f3b3c7b1e..bd7622e1e 100644 --- a/java_common.gradle +++ b/java_common.gradle @@ -133,6 +133,9 @@ tasks.withType(JavaCompile).configureEach { // Allow assignment to injected variables: too many to fix. options.errorprone.disable("UnnecessaryAssignment") + // Report unnecessarily fully qualified names as warnings. + options.errorprone.warn("UnnecessarilyFullyQualified") + options.errorprone.disableWarningsInGeneratedCode = true options.errorprone.errorproneArgumentProviders.add([ asArguments: {