diff --git a/java/google/registry/model/domain/DomainApplication.java b/java/google/registry/model/domain/DomainApplication.java index 76f3614a2..9acf7f5df 100644 --- a/java/google/registry/model/domain/DomainApplication.java +++ b/java/google/registry/model/domain/DomainApplication.java @@ -14,22 +14,15 @@ package google.registry.model.domain; -import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.util.CollectionUtils.nullToEmptyImmutableCopy; import com.google.common.collect.ImmutableList; import com.googlecode.objectify.annotation.EntitySubclass; -import com.googlecode.objectify.annotation.OnLoad; import google.registry.model.annotations.ExternalMessagingName; import google.registry.model.domain.launch.ApplicationStatus; import google.registry.model.domain.launch.LaunchPhase; import google.registry.model.eppcommon.Trid; -import google.registry.model.eppinput.EppInput; -import google.registry.model.eppinput.EppInput.ResourceCommandWrapper; -import google.registry.model.reporting.HistoryEntry; import google.registry.model.smd.EncodedSignedMark; -import google.registry.xml.XmlTransformer; -import java.io.ByteArrayInputStream; import java.util.List; import org.joda.money.Money; import org.joda.time.DateTime; @@ -66,69 +59,6 @@ public class DomainApplication extends DomainBase { /** The amount paid at auction for the right to register the domain. Used only for reporting. */ Money auctionPrice; - // TODO(b/32447342): remove this once the period has been populated on all DomainApplications - @OnLoad - void setYears() { - if (period == null) { - // Extract the registration period from the XML used to create the domain application. - try { - HistoryEntry history = ofy().load() - .type(HistoryEntry.class) - .ancestor(this) - .order("modificationTime") - .first() - .now(); - if (history != null) { - byte[] xmlBytes = history.getXmlBytes(); - EppInput eppInput = unmarshal(EppInput.class, xmlBytes); - period = ((DomainCommand.Create) - ((ResourceCommandWrapper) eppInput.getCommandWrapper().getCommand()) - .getResourceCommand()).getPeriod(); - } - } catch (Exception e) { - // If we encounter an exception, give up on this defaulting. - } - } - } - - /** - * Unmarshal bytes into Epp classes. - * - *

This method, and the things it depends on, are copied from EppXmlTransformer, because that - * class is in the flows directory, and we don't want a build dependency of model on build. It can - * be removed when the @OnLoad method is removed. - * - * @param clazz type to return, specified as a param to enforce typesafe generics - * @see "http://errorprone.info/bugpattern/TypeParameterUnusedInFormals" - */ - private static T unmarshal(Class clazz, byte[] bytes) throws Exception { - return INPUT_TRANSFORMER.unmarshal(clazz, new ByteArrayInputStream(bytes)); - } - - // Hardcoded XML schemas, ordered with respect to dependency. - private static final ImmutableList SCHEMAS = ImmutableList.of( - "eppcom.xsd", - "epp.xsd", - "contact.xsd", - "host.xsd", - "domain.xsd", - "rgp.xsd", - "secdns.xsd", - "fee06.xsd", - "fee11.xsd", - "fee12.xsd", - "metadata.xsd", - "mark.xsd", - "dsig.xsd", - "smd.xsd", - "launch.xsd", - "allocate.xsd"); - - private static final XmlTransformer INPUT_TRANSFORMER = - new XmlTransformer(SCHEMAS, EppInput.class); - - // End of copied stuff used by @OnLoad method - @Override public String getFullyQualifiedDomainName() { return fullyQualifiedDomainName; diff --git a/javatests/google/registry/model/domain/DomainApplicationTest.java b/javatests/google/registry/model/domain/DomainApplicationTest.java index 815402d08..afad3a615 100644 --- a/javatests/google/registry/model/domain/DomainApplicationTest.java +++ b/javatests/google/registry/model/domain/DomainApplicationTest.java @@ -16,7 +16,6 @@ package google.registry.model.domain; import static com.google.common.truth.Truth.assertThat; import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.testing.DatastoreHelper.cloneAndSetAutoTimestamps; import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.newDomainApplication; @@ -24,17 +23,12 @@ import static google.registry.testing.DatastoreHelper.newHostResource; import static google.registry.testing.DatastoreHelper.persistActiveContact; import static google.registry.testing.DatastoreHelper.persistActiveHost; import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.FullFieldsTestEntityHelper.makeHistoryEntry; -import static google.registry.testing.TestDataHelper.loadFileWithSubstitutions; import static google.registry.util.DateTimeUtils.START_OF_TIME; import static org.joda.money.CurrencyUnit.USD; -import static org.joda.time.DateTimeZone.UTC; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.googlecode.objectify.Key; -import com.googlecode.objectify.VoidWork; import google.registry.model.EntityTestCase; import google.registry.model.domain.launch.ApplicationStatus; import google.registry.model.domain.launch.LaunchNotice; @@ -44,11 +38,9 @@ import google.registry.model.eppcommon.AuthInfo.PasswordAuth; import google.registry.model.eppcommon.StatusValue; import google.registry.model.eppcommon.Trid; import google.registry.model.host.HostResource; -import google.registry.model.reporting.HistoryEntry; import google.registry.model.smd.EncodedSignedMark; import google.registry.testing.ExceptionRule; import org.joda.money.Money; -import org.joda.time.DateTime; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -92,7 +84,7 @@ public class DomainApplicationTest extends EntityTestCase { LaunchNotice.create("tcnid", "validatorId", START_OF_TIME, START_OF_TIME)) .setCreationTrid(Trid.create("client-creation-trid", "server-trid")) .setPhase(LaunchPhase.LANDRUSH) - // TODO(b/32447342): set period + .setPeriod(Period.create(5, Period.Unit.YEARS)) .setEncodedSignedMarks(ImmutableList.of(EncodedSignedMark.create("base64", "abcdefg="))) .setApplicationStatus(ApplicationStatus.ALLOCATED) .setAuctionPrice(Money.of(USD, 11)) @@ -169,71 +161,4 @@ public class DomainApplicationTest extends EntityTestCase { // If there are circular references, this will overflow the stack. domainApplication.toHydratedString(); } - - // TODO(b/32447342): remove this once the period has been populated on all DomainApplications - private void triggerTheOnLoadMethod() { - ofy().transact(new VoidWork() { - @Override - public void vrun() { - domainApplication = ofy().load().fromEntity(ofy().save().toEntity(domainApplication)); - } - }); - } - - // TODO(b/32447342): remove this once the period has been populated on all DomainApplications - @Test - public void testPeriodIsNullByDefault() { - triggerTheOnLoadMethod(); - assertThat(domainApplication.getPeriod()).isNull(); - } - - // TODO(b/32447342): remove this once the period has been populated on all DomainApplications - @Test - public void testPeriodIsOneYearBecauseHistoryEntryHasNoPeriod() { - persistResource(makeHistoryEntry( - domainApplication, - HistoryEntry.Type.DOMAIN_APPLICATION_CREATE, - Period.create(5, Period.Unit.YEARS), - "testing", - DateTime.now(UTC), - loadFileWithSubstitutions( - getClass(), "domain_create_landrush.xml", ImmutableMap.of()))); - triggerTheOnLoadMethod(); - assertThat(domainApplication.getPeriod()).isNotNull(); - assertThat(domainApplication.getPeriod()).isEqualTo(Period.create(1, Period.Unit.YEARS)); - } - - // TODO(b/32447342): remove this once the period has been populated on all DomainApplications - @Test - public void testPeriodDefaultedFromHistoryEntry() { - persistResource(makeHistoryEntry( - domainApplication, - HistoryEntry.Type.DOMAIN_APPLICATION_CREATE, - Period.create(5, Period.Unit.YEARS), - "testing", - DateTime.now(UTC), - loadFileWithSubstitutions( - getClass(), "domain_create_landrush_with_period.xml", ImmutableMap.of("PERIOD", "5")))); - triggerTheOnLoadMethod(); - assertThat(domainApplication.getPeriod()).isNotNull(); - assertThat(domainApplication.getPeriod()).isEqualTo(Period.create(5, Period.Unit.YEARS)); - } - - // TODO(b/32447342): remove this once the period has been populated on all DomainApplications - @Test - public void testPeriodAlreadySet() { - domainApplication = persistResource( - domainApplication.asBuilder().setPeriod(Period.create(1, Period.Unit.YEARS)).build()); - persistResource(makeHistoryEntry( - domainApplication, - HistoryEntry.Type.DOMAIN_APPLICATION_CREATE, - Period.create(5, Period.Unit.YEARS), - "testing", - DateTime.now(UTC), - loadFileWithSubstitutions( - getClass(), "domain_create_landrush_with_period.xml", ImmutableMap.of("PERIOD", "5")))); - triggerTheOnLoadMethod(); - assertThat(domainApplication.getPeriod()).isNotNull(); - assertThat(domainApplication.getPeriod()).isEqualTo(Period.create(1, Period.Unit.YEARS)); - } } diff --git a/javatests/google/registry/model/domain/testdata/domain_create_landrush_with_period.xml b/javatests/google/registry/model/domain/testdata/domain_create_landrush_with_period.xml deleted file mode 100644 index 47a2c9f3c..000000000 --- a/javatests/google/registry/model/domain/testdata/domain_create_landrush_with_period.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - example.tld - %PERIOD% - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - ABC-12345 - - diff --git a/javatests/google/registry/testing/FullFieldsTestEntityHelper.java b/javatests/google/registry/testing/FullFieldsTestEntityHelper.java index 68331166d..e67fa924e 100644 --- a/javatests/google/registry/testing/FullFieldsTestEntityHelper.java +++ b/javatests/google/registry/testing/FullFieldsTestEntityHelper.java @@ -275,21 +275,11 @@ public final class FullFieldsTestEntityHelper { Period period, String reason, DateTime modificationTime) { - return makeHistoryEntry(resource, type, period, reason, modificationTime, ""); - } - - public static HistoryEntry makeHistoryEntry( - EppResource resource, - HistoryEntry.Type type, - Period period, - String reason, - DateTime modificationTime, - String xml) { HistoryEntry.Builder builder = new HistoryEntry.Builder() .setParent(resource) .setType(type) .setPeriod(period) - .setXmlBytes(xml.getBytes(UTF_8)) + .setXmlBytes("".getBytes(UTF_8)) .setModificationTime(modificationTime) .setClientId("foo") .setTrid(Trid.create("ABC-123", "server-trid"))