diff --git a/java/google/registry/model/registry/Registry.java b/java/google/registry/model/registry/Registry.java index f93ba9cc2..cc5b10985 100644 --- a/java/google/registry/model/registry/Registry.java +++ b/java/google/registry/model/registry/Registry.java @@ -18,10 +18,10 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Predicates.equalTo; import static com.google.common.base.Predicates.not; +import static com.google.common.collect.Iterables.getOnlyElement; import static google.registry.config.RegistryConfig.getSingletonCacheRefreshDuration; import static google.registry.model.common.EntityGroupRoot.getCrossTldKey; import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.util.CollectionUtils.isNullOrEmpty; import static google.registry.util.CollectionUtils.nullToEmptyImmutableCopy; import static google.registry.util.DateTimeUtils.END_OF_TIME; import static google.registry.util.DateTimeUtils.START_OF_TIME; @@ -290,8 +290,8 @@ public class Registry extends ImmutableObject implements Buildable { @OnLoad public void migrateDnsWriters() { - if (isNullOrEmpty(dnsWriters)) { - dnsWriters = ImmutableSet.of(dnsWriter); + if (dnsWriter == null) { + dnsWriter = getOnlyElement(dnsWriters); } } @@ -613,7 +613,7 @@ public class Registry extends ImmutableObject implements Buildable { @Deprecated public String getDnsWriter() { - return dnsWriter; + return getOnlyElement(dnsWriters); } public ImmutableSet getDnsWriters() { @@ -702,13 +702,13 @@ public class Registry extends ImmutableObject implements Buildable { return this; } - public Builder setDnsWriter(String dnsWriter) { - getInstance().dnsWriter = checkArgumentNotNull(dnsWriter); - getInstance().dnsWriters = ImmutableSet.of(dnsWriter); + public Builder setDnsWriters(ImmutableSet dnsWriters) { + checkArgument(dnsWriters.size() == 1, "Multiple DNS writers are not yet supported"); + getInstance().dnsWriters = dnsWriters; + getInstance().dnsWriter = getOnlyElement(dnsWriters); return this; } - public Builder setAddGracePeriodLength(Duration addGracePeriodLength) { checkArgument(addGracePeriodLength.isLongerThan(Duration.ZERO), "addGracePeriodLength must be non-zero"); diff --git a/java/google/registry/tools/CreateOrUpdateTldCommand.java b/java/google/registry/tools/CreateOrUpdateTldCommand.java index 47bda613e..d8056e7ea 100644 --- a/java/google/registry/tools/CreateOrUpdateTldCommand.java +++ b/java/google/registry/tools/CreateOrUpdateTldCommand.java @@ -393,7 +393,7 @@ abstract class CreateOrUpdateTldCommand extends MutatingCommand { dnsWriterNames.contains(dnsWriter.get()), "The DNS writer '%s' doesn't exist", dnsWriter.get()); - builder.setDnsWriter(dnsWriter.get()); + builder.setDnsWriters(ImmutableSet.of(dnsWriter.get())); } if (lrpPeriod != null) { diff --git a/javatests/google/registry/dns/PublishDnsUpdatesActionTest.java b/javatests/google/registry/dns/PublishDnsUpdatesActionTest.java index 479702c49..3f28cc90f 100644 --- a/javatests/google/registry/dns/PublishDnsUpdatesActionTest.java +++ b/javatests/google/registry/dns/PublishDnsUpdatesActionTest.java @@ -63,7 +63,8 @@ public class PublishDnsUpdatesActionTest { public void setUp() throws Exception { inject.setStaticField(Ofy.class, "clock", clock); createTld("xn--q9jyb4c"); - persistResource(Registry.get("xn--q9jyb4c").asBuilder().setDnsWriter("mock").build()); + persistResource( + Registry.get("xn--q9jyb4c").asBuilder().setDnsWriters(ImmutableSet.of("mock")).build()); DomainResource domain1 = persistActiveDomain("example.xn--q9jyb4c"); persistActiveSubordinateHost("ns1.example.xn--q9jyb4c", domain1); persistActiveSubordinateHost("ns2.example.xn--q9jyb4c", domain1); diff --git a/javatests/google/registry/model/registry/label/PremiumListUtilsTest.java b/javatests/google/registry/model/registry/label/PremiumListUtilsTest.java index 5e56f0b54..da5a39749 100644 --- a/javatests/google/registry/model/registry/label/PremiumListUtilsTest.java +++ b/javatests/google/registry/model/registry/label/PremiumListUtilsTest.java @@ -37,6 +37,7 @@ import static org.joda.time.Duration.standardMinutes; 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.dns.writer.VoidDnsWriter; @@ -98,7 +99,7 @@ public class PremiumListUtilsTest { new Registry.Builder() .setTldStr("ghost") .setPremiumPricingEngine(StaticPremiumListPricingEngine.NAME) - .setDnsWriter(VoidDnsWriter.NAME) + .setDnsWriters(ImmutableSet.of(VoidDnsWriter.NAME)) .build()); assertThat(Registry.get("ghost").getPremiumList()).isNull(); assertThat(getPremiumPrice("blah", Registry.get("ghost"))).isAbsent(); diff --git a/javatests/google/registry/testing/DatastoreHelper.java b/javatests/google/registry/testing/DatastoreHelper.java index 9ec3cac64..1fdcd72da 100644 --- a/javatests/google/registry/testing/DatastoreHelper.java +++ b/javatests/google/registry/testing/DatastoreHelper.java @@ -268,7 +268,7 @@ public class DatastoreHelper { // Always set a default premium list. Tests that don't want it can delete it. .setPremiumList(persistPremiumList(tld, DEFAULT_PREMIUM_LIST_CONTENTS.get())) .setPremiumPricingEngine(StaticPremiumListPricingEngine.NAME) - .setDnsWriter(VoidDnsWriter.NAME) + .setDnsWriters(ImmutableSet.of(VoidDnsWriter.NAME)) .build(); } diff --git a/javatests/google/registry/tools/CreateTldCommandTest.java b/javatests/google/registry/tools/CreateTldCommandTest.java index 02f5ad477..c057c0794 100644 --- a/javatests/google/registry/tools/CreateTldCommandTest.java +++ b/javatests/google/registry/tools/CreateTldCommandTest.java @@ -66,7 +66,7 @@ public class CreateTldCommandTest extends CommandTestCase { assertThat(registry.getAddGracePeriodLength()).isEqualTo(Registry.DEFAULT_ADD_GRACE_PERIOD); assertThat(registry.getCreationTime()).isIn(Range.closed(before, after)); assertThat(registry.getDomainCreateRestricted()).isFalse(); - assertThat(registry.getDnsWriter()).isEqualTo("FooDnsWriter"); + assertThat(registry.getDnsWriters()).containsExactly("FooDnsWriter"); assertThat(registry.getTldState(registry.getCreationTime())).isEqualTo(TldState.PREDELEGATION); assertThat(registry.getRedemptionGracePeriodLength()) .isEqualTo(Registry.DEFAULT_REDEMPTION_GRACE_PERIOD);