mirror of
https://github.com/google/nomulus
synced 2026-09-06 16:17:13 +00:00
Safely lazy load claims and reserved lists (#1177)
* Safely lazy load claims and reserved lists This moves the entries of all of these lists into "insignificant" fields and manages them explicitly. * Additional fixes Fix a few problems that came up in the merge or weren't caught in earlier local test runs. * Changes for review - removed debug code - added comments - improved some methods that were loading the entire claims list unnecessarily. * Fixed javadoc links * Reformatted * Minor fix for review
This commit is contained in:
@@ -24,6 +24,7 @@ import static google.registry.model.registry.label.DomainLabelMetrics.reservedLi
|
||||
import static google.registry.model.registry.label.ReservationType.ALLOWED_IN_SUNRISE;
|
||||
import static google.registry.model.registry.label.ReservationType.FULLY_BLOCKED;
|
||||
import static google.registry.model.registry.label.ReservationType.NAME_COLLISION;
|
||||
import static google.registry.model.registry.label.ReservedList.ReservedListEntry;
|
||||
import static google.registry.model.registry.label.ReservedList.getReservationTypes;
|
||||
import static google.registry.testing.DatabaseHelper.createTld;
|
||||
import static google.registry.testing.DatabaseHelper.persistReservedList;
|
||||
@@ -34,32 +35,37 @@ import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import google.registry.model.ofy.Ofy;
|
||||
import google.registry.model.registry.Registry;
|
||||
import google.registry.model.registry.label.ReservedList.ReservedListEntry;
|
||||
import google.registry.schema.tld.PremiumEntry;
|
||||
import google.registry.testing.AppEngineExtension;
|
||||
import google.registry.testing.DatabaseHelper;
|
||||
import google.registry.testing.FakeClock;
|
||||
import google.registry.testing.InjectExtension;
|
||||
import org.joda.time.DateTime;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Order;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
/** Unit tests for {@link ReservedList}. */
|
||||
class ReservedListTest {
|
||||
|
||||
@RegisterExtension final InjectExtension inject = new InjectExtension();
|
||||
private FakeClock clock = new FakeClock(DateTime.parse("2010-01-01T10:00:00Z"));
|
||||
|
||||
@Order(value = Order.DEFAULT - 1)
|
||||
@RegisterExtension
|
||||
final InjectExtension inject =
|
||||
new InjectExtension().withStaticFieldOverride(Ofy.class, "clock", clock);
|
||||
|
||||
@RegisterExtension
|
||||
final AppEngineExtension appEngine =
|
||||
AppEngineExtension.builder().withDatastoreAndCloudSql().build();
|
||||
|
||||
private FakeClock clock = new FakeClock(DateTime.parse("2010-01-01T10:00:00Z"));
|
||||
AppEngineExtension.builder()
|
||||
.withClock(clock)
|
||||
.withJpaUnitTestEntities(
|
||||
PremiumList.class, PremiumEntry.class, ReservedList.class, ReservedListEntry.class)
|
||||
.withDatastoreAndCloudSql()
|
||||
.build();
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
inject.setStaticField(Ofy.class, "clock", clock);
|
||||
// Auto-increment clock in DatabaseHelper.
|
||||
inject.setStaticField(DatabaseHelper.class, "clock", clock);
|
||||
createTld("tld");
|
||||
reservedListChecks.reset();
|
||||
reservedListProcessingTime.reset();
|
||||
|
||||
+1
-4
@@ -125,10 +125,7 @@ abstract class CreateOrUpdateReservedListCommandTestCase<
|
||||
.setParameter("name", name)
|
||||
.getSingleResult();
|
||||
return jpaTm()
|
||||
.query(
|
||||
"FROM ReservedList rl LEFT JOIN FETCH rl.reservedListMap WHERE"
|
||||
+ " rl.revisionId = :revisionId",
|
||||
ReservedList.class)
|
||||
.query("FROM ReservedList WHERE revisionId = :revisionId", ReservedList.class)
|
||||
.setParameter("revisionId", revisionId)
|
||||
.getSingleResult();
|
||||
});
|
||||
|
||||
@@ -754,6 +754,7 @@ class google.registry.model.registry.label.ReservedList {
|
||||
class google.registry.model.registry.label.ReservedList$ReservedListEntry {
|
||||
@Id java.lang.String label;
|
||||
google.registry.model.registry.label.ReservationType reservationType;
|
||||
java.lang.Long revisionId;
|
||||
java.lang.String comment;
|
||||
}
|
||||
class google.registry.model.reporting.DomainTransactionRecord {
|
||||
@@ -862,7 +863,7 @@ class google.registry.model.server.ServerSecret {
|
||||
class google.registry.model.tmch.ClaimsList {
|
||||
@Id long id;
|
||||
@Parent com.googlecode.objectify.Key<google.registry.model.tmch.ClaimsList$ClaimsListRevision> parent;
|
||||
java.util.Map<java.lang.String, java.lang.String> labelsToKeys;
|
||||
com.google.common.collect.ImmutableMap<java.lang.String, java.lang.String> labelsToKeys;
|
||||
org.joda.time.DateTime creationTime;
|
||||
}
|
||||
class google.registry.model.tmch.ClaimsList$ClaimsListRevision {
|
||||
|
||||
Reference in New Issue
Block a user