diff --git a/docs/configuration.md b/docs/configuration.md
index 8f69aa1a4..fffd652d1 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -56,41 +56,15 @@ queues, and thus edit those associated XML files.
## Global configuration
-There are two different mechanisms by which global configuration is managed:
-`RegistryConfig` (the old way) and `ConfigModule` (the new way). Ideally there
-would just be one, but the required code cleanup that hasn't been completed yet.
-If you are adding new options, prefer adding them to `ConfigModule`.
-
-**`RegistryConfig`** is an interface, of which you write an implementing class
-containing the configuration values. `RegistryConfigLoader` is the class that
-provides the instance of `RegistryConfig`, and defaults to returning
-`ProductionRegistryConfigExample`.
-
-In order to create a configuration specific to your registry, we recommend
-copying the `ProductionRegistryConfigExample` class to a new class that will not
-be shared publicly, setting the `google.registry.config` system property in the
-`appengine-web.xml` files to the fully qualified class name of that new class so
-that `RegistryConfigLoader` will load it instead, and then editing said new
-class to add your specific configuration options. There is one
-`appengine-web.xml` file per service (so three per environment). The same
-configuration class must be used for each service, but different ones can be
-used for different environments.
-
-The `RegistryConfig` class has documentation on all of the methods that should
-be sufficient to explain what each option is, and
-`ProductionRegistryConfigExample` provides an example value for each one. Some
-example configuration options in this interface include the App Engine project
-ID, the number of days to retain commit logs, the names of various Cloud Storage
-bucket names, and URLs for some required services both external and internal.
-
-**`ConfigModule`** is a Dagger module that provides injectable configuration
-options (some of which come from `RegistryConfig` above, but most of which do
-not). This is preferred over `RegistryConfig` for new configuration options
-because being able to inject configuration options is a nicer pattern that makes
-for cleaner code. Some configuration options that can be changed in this class
-include timeout lengths and buffer sizes for various tasks, email addresses and
-URLs to use for various services, more Cloud Storage bucket names, and WHOIS
-disclaimer text.
+Global configuration is managed through **`ConfigModule`**, which is a Dagger
+module that provides injectable configuration options. Some configuration
+options that can be changed in this class include timeout lengths and buffer
+sizes for various tasks, email addresses and URLs to use for various services,
+more Cloud Storage bucket names, and WHOIS disclaimer text. Currently, in order
+to configure custom configuration, you need to copy `ConfigModule`, make changes
+to it, and include your new version instead of the default one in all Dagger
+components. In the near future, configuration via YAML files will be supported,
+after which point changes to `ConfigModule` will not be required at all.
## Sensitive global configuration
diff --git a/java/google/registry/config/ConfigModule.java b/java/google/registry/config/ConfigModule.java
index fdc37a11d..5c53aa576 100644
--- a/java/google/registry/config/ConfigModule.java
+++ b/java/google/registry/config/ConfigModule.java
@@ -52,10 +52,6 @@ import org.joda.time.Duration;
* in the user's repository. For this to work, other files need to be copied too, such as the
* {@code @Component} instances under {@code google.registry.module}. This allows modules to be
* substituted at the {@code @Component} level.
- *
- *
There's also a deprecated configuration class that needs to be overridden and supplied via a
- * system property. See the instructions in {@link ProductionRegistryConfigExample} and
- * {@link RegistryConfigLoader}.
*/
@Module
public final class ConfigModule {
diff --git a/java/google/registry/config/ProductionRegistryConfigExample.java b/java/google/registry/config/ProductionRegistryConfigExample.java
deleted file mode 100644
index 87fe6e765..000000000
--- a/java/google/registry/config/ProductionRegistryConfigExample.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2016 The Nomulus Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package google.registry.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import com.google.common.base.Optional;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * Default production configuration for global constants that can't be injected.
- *
- *
Warning: Editing this file in a forked repository is not recommended. The recommended
- * approach is to copy this file, give it a different name, and then change the system property
- * described in the {@link RegistryConfigLoader} documentation.
- */
-@Immutable
-public final class ProductionRegistryConfigExample extends RegistryConfig {
-
- @SuppressWarnings("unused")
- private final RegistryEnvironment environment;
-
- public ProductionRegistryConfigExample(RegistryEnvironment environment) {
- this.environment = checkNotNull(environment);
- }
-
- @Override
- public Optional getECatcherAddress() {
- throw new UnsupportedOperationException(); // n/a
- }
-}
diff --git a/java/google/registry/config/RegistryConfig.java b/java/google/registry/config/RegistryConfig.java
index 928cb4646..7e56099a6 100644
--- a/java/google/registry/config/RegistryConfig.java
+++ b/java/google/registry/config/RegistryConfig.java
@@ -17,18 +17,14 @@ package google.registry.config;
import static google.registry.config.ConfigUtils.makeUrl;
import com.google.common.base.Ascii;
-import com.google.common.base.Optional;
import com.google.common.net.HostAndPort;
import java.net.URL;
import org.joda.time.Duration;
/**
* Registry configuration for global constants that can't be injected.
- *
- * The goal of this custom configuration system is to have our project environments configured
- * in type-safe Java code that can be refactored, rather than XML files and system properties.
*/
-public abstract class RegistryConfig {
+public final class RegistryConfig {
/**
* Returns the App Engine project ID, which is based off the environment name.
@@ -104,8 +100,6 @@ public abstract class RegistryConfig {
}
}
- public abstract Optional getECatcherAddress();
-
/**
* Returns the address of the Nomulus app HTTP server.
*
@@ -211,5 +205,5 @@ public abstract class RegistryConfig {
}
}
- // XXX: Please consider using ConfigModule instead of adding new methods to this file.
+ private RegistryConfig() {}
}
diff --git a/java/google/registry/config/RegistryConfigLoader.java b/java/google/registry/config/RegistryConfigLoader.java
deleted file mode 100644
index 4b534001c..000000000
--- a/java/google/registry/config/RegistryConfigLoader.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2016 The Nomulus Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package google.registry.config;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Modifier;
-import javax.annotation.concurrent.ThreadSafe;
-
-/**
- * System property loader of {@link RegistryConfig} instance.
- *
- * This class reflectively loads the Java class defined by the system property
- * {@value #REGISTRY_CONFIG_PROPERTY} whose default value is {@value #REGISTRY_CONFIG_DEFAULT} and
- * can be set in {@code appengine-web.xml}. Once the class is loaded, its constructor is called,
- * passing the {@link RegistryEnvironment} as a single parameter.
- */
-@ThreadSafe
-@Deprecated // will be replaced by YAML config; see b/33386530 for details
-public final class RegistryConfigLoader {
-
- public static final String REGISTRY_CONFIG_PROPERTY = "google.registry.config";
- public static final String REGISTRY_CONFIG_DEFAULT =
- "google.registry.config.ProductionRegistryConfigExample";
-
- static RegistryConfig load(RegistryEnvironment environment) {
- String className = System.getProperty(REGISTRY_CONFIG_PROPERTY, REGISTRY_CONFIG_DEFAULT);
- Class> clazz;
- try {
- clazz = Class.forName(className);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(String.format(
- "Failed to load '%s' as specified by system property '%s'",
- className, REGISTRY_CONFIG_PROPERTY), e);
- }
- if (!RegistryConfig.class.isAssignableFrom(clazz)) {
- throw new RuntimeException(String.format(
- "%s does not implement %s",
- clazz.getSimpleName(), RegistryConfig.class.getSimpleName()));
- }
- @SuppressWarnings("unchecked")
- Class extends RegistryConfig> clazzy = (Class extends RegistryConfig>) clazz;
- if (!Modifier.isPublic(clazzy.getModifiers())) {
- throw new RuntimeException(String.format(
- "Must be a public class: %s", clazzy.getCanonicalName()));
- }
- Constructor extends RegistryConfig> constructor;
- try {
- constructor = clazzy.getConstructor(RegistryEnvironment.class);
- } catch (NoSuchMethodException | SecurityException e) {
- throw new RuntimeException(String.format(
- "Must have a public constructor(RegistryEnvironment): %s", clazzy.getCanonicalName()), e);
- }
- try {
- return constructor.newInstance(environment);
- } catch (InvocationTargetException e) {
- throw new RuntimeException(
- String.format("%s constructor threw an exception", clazzy.getSimpleName()), e);
- } catch (InstantiationException | IllegalAccessException | IllegalArgumentException e) {
- throw new RuntimeException(
- String.format("Failed to instantiate: %s", clazz.getCanonicalName()), e);
- }
- }
-}
diff --git a/java/google/registry/config/RegistryEnvironment.java b/java/google/registry/config/RegistryEnvironment.java
index 9ee148c08..a15f171fc 100644
--- a/java/google/registry/config/RegistryEnvironment.java
+++ b/java/google/registry/config/RegistryEnvironment.java
@@ -14,9 +14,7 @@
package google.registry.config;
-import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Ascii;
-import javax.annotation.Nullable;
/** Registry environments. */
public enum RegistryEnvironment {
@@ -54,39 +52,6 @@ public enum RegistryEnvironment {
return valueOf(Ascii.toUpperCase(System.getProperty(PROPERTY, UNITTEST.name())));
}
- /**
- * Returns configuration for this registry environment.
- *
- *
WARNING: Do not store this value to a static field, otherwise you won't be able to
- * override it for testing. You should instead store the environment object to a static field.
- */
- public RegistryConfig config() {
- if (configOverride != null) {
- return configOverride;
- } else if (this == UNITTEST) {
- return testingConfig;
- } else {
- return config;
- }
- }
-
- /** Globally override registry configuration from within a unit test. */
- @VisibleForTesting
- @Deprecated
- public static void overrideConfigurationForTesting(@Nullable RegistryConfig newConfig) {
- configOverride = newConfig;
- }
-
- @Nullable
- @Deprecated
- private static RegistryConfig configOverride;
-
- @Deprecated
- private static final RegistryConfig testingConfig = new TestRegistryConfig();
-
- @Deprecated
- private final RegistryConfig config = RegistryConfigLoader.load(this);
-
/** System property for configuring which environment we should use. */
public static final String PROPERTY = "google.registry.environment";
}
diff --git a/java/google/registry/config/TestRegistryConfig.java b/java/google/registry/config/TestRegistryConfig.java
deleted file mode 100644
index a56ca0caa..000000000
--- a/java/google/registry/config/TestRegistryConfig.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2016 The Nomulus Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package google.registry.config;
-
-import com.google.common.base.Optional;
-
-/**
- * An implementation of RegistryConfig for unit testing that contains suitable testing data.
- */
-public class TestRegistryConfig extends RegistryConfig {
-
- public TestRegistryConfig() {}
-
- @Override
- public Optional getECatcherAddress() {
- throw new UnsupportedOperationException();
- }
-}
diff --git a/java/google/registry/model/ofy/Ofy.java b/java/google/registry/model/ofy/Ofy.java
index c1074be06..8fe90b100 100644
--- a/java/google/registry/model/ofy/Ofy.java
+++ b/java/google/registry/model/ofy/Ofy.java
@@ -19,6 +19,7 @@ import static com.google.common.base.Preconditions.checkState;
import static com.google.common.base.Predicates.notNull;
import static com.google.common.collect.Maps.uniqueIndex;
import static com.googlecode.objectify.ObjectifyService.ofy;
+import static google.registry.config.RegistryConfig.getBaseOfyRetryDuration;
import static google.registry.util.CollectionUtils.union;
import static google.registry.util.ObjectifyUtils.OBJECTS_TO_KEYS;
@@ -37,7 +38,6 @@ import com.googlecode.objectify.Work;
import com.googlecode.objectify.cmd.Deleter;
import com.googlecode.objectify.cmd.Loader;
import com.googlecode.objectify.cmd.Saver;
-import google.registry.config.RegistryEnvironment;
import google.registry.model.annotations.NotBackedUp;
import google.registry.model.annotations.VirtualEntity;
import google.registry.model.ofy.ReadOnlyWork.KillTransactionException;
@@ -212,7 +212,7 @@ public class Ofy {
*/
@VisibleForTesting
R transactCommitLoggedWork(CommitLoggedWork work) {
- long baseRetryMillis = RegistryEnvironment.get().config().getBaseOfyRetryDuration().getMillis();
+ long baseRetryMillis = getBaseOfyRetryDuration().getMillis();
for (long attempt = 0, sleepMillis = baseRetryMillis;
true;
attempt++, sleepMillis *= 2) {
diff --git a/java/google/registry/model/registrar/Registrar.java b/java/google/registry/model/registrar/Registrar.java
index 549248dbb..291d5806e 100644
--- a/java/google/registry/model/registrar/Registrar.java
+++ b/java/google/registry/model/registrar/Registrar.java
@@ -24,6 +24,7 @@ import static com.google.common.base.Strings.emptyToNull;
import static com.google.common.base.Strings.nullToEmpty;
import static com.google.common.collect.Sets.immutableEnumSet;
import static com.google.common.io.BaseEncoding.base64;
+import static google.registry.config.RegistryConfig.getRegistrarDefaultReferralUrl;
import static google.registry.config.RegistryConfig.getRegistrarDefaultWhoisServer;
import static google.registry.model.common.EntityGroupRoot.getCrossTldKey;
import static google.registry.model.ofy.ObjectifyService.ofy;
@@ -53,7 +54,6 @@ import com.googlecode.objectify.annotation.IgnoreSave;
import com.googlecode.objectify.annotation.Index;
import com.googlecode.objectify.annotation.Parent;
import com.googlecode.objectify.condition.IfNull;
-import google.registry.config.RegistryEnvironment;
import google.registry.model.Buildable;
import google.registry.model.CreateAutoTimestamp;
import google.registry.model.ImmutableObject;
@@ -162,8 +162,6 @@ public class Registrar extends ImmutableObject implements Buildable, Jsonifiable
BRAINTREE;
}
- private static final RegistryEnvironment ENVIRONMENT = RegistryEnvironment.get();
-
/** Regex for E.164 phone number format specified by {@code contact.xsd}. */
private static final Pattern E164_PATTERN = Pattern.compile("\\+[0-9]{1,3}\\.[0-9]{1,14}");
@@ -463,10 +461,7 @@ public class Registrar extends ImmutableObject implements Buildable, Jsonifiable
}
public String getReferralUrl() {
- if (referralUrl == null) {
- return ENVIRONMENT.config().getRegistrarDefaultReferralUrl().toString();
- }
- return referralUrl;
+ return firstNonNull(referralUrl, getRegistrarDefaultReferralUrl().toString());
}
public String getIcannReferralEmail() {
diff --git a/java/google/registry/tools/AppEngineConnectionFlags.java b/java/google/registry/tools/AppEngineConnectionFlags.java
index 95c85dc66..213173e79 100644
--- a/java/google/registry/tools/AppEngineConnectionFlags.java
+++ b/java/google/registry/tools/AppEngineConnectionFlags.java
@@ -17,7 +17,7 @@ package google.registry.tools;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
import com.google.common.net.HostAndPort;
-import google.registry.config.RegistryEnvironment;
+import google.registry.config.RegistryConfig;
/**
* Class to contain the configuration flags for AppEngineConnection.
@@ -29,7 +29,7 @@ import google.registry.config.RegistryEnvironment;
class AppEngineConnectionFlags {
@Parameter(names = "--server", description = "HOST[:PORT] to which remote commands are sent.")
- private static HostAndPort server = RegistryEnvironment.get().config().getServer();
+ private static HostAndPort server = RegistryConfig.getServer();
HostAndPort getServer() {
return server;
diff --git a/javatests/google/registry/backup/CommitLogCheckpointStrategyTest.java b/javatests/google/registry/backup/CommitLogCheckpointStrategyTest.java
index 713914417..dccfa2a0f 100644
--- a/javatests/google/registry/backup/CommitLogCheckpointStrategyTest.java
+++ b/javatests/google/registry/backup/CommitLogCheckpointStrategyTest.java
@@ -33,7 +33,6 @@ import google.registry.model.registry.Registry;
import google.registry.testing.AppEngineRule;
import google.registry.testing.FakeClock;
import google.registry.testing.InjectRule;
-import google.registry.testing.RegistryConfigRule;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.junit.Before;
@@ -54,9 +53,6 @@ public class CommitLogCheckpointStrategyTest {
@Rule
public final InjectRule inject = new InjectRule();
- @Rule
- public final RegistryConfigRule configRule = new RegistryConfigRule();
-
final FakeClock clock = new FakeClock(DateTime.parse("2000-01-01TZ"));
final Ofy ofy = new Ofy(clock);
final CommitLogCheckpointStrategy strategy = new CommitLogCheckpointStrategy();
diff --git a/javatests/google/registry/backup/RestoreCommitLogsActionTest.java b/javatests/google/registry/backup/RestoreCommitLogsActionTest.java
index 4bbee420a..f4333624c 100644
--- a/javatests/google/registry/backup/RestoreCommitLogsActionTest.java
+++ b/javatests/google/registry/backup/RestoreCommitLogsActionTest.java
@@ -49,7 +49,6 @@ import google.registry.model.ofy.CommitLogMutation;
import google.registry.testing.AppEngineRule;
import google.registry.testing.FakeClock;
import google.registry.testing.FakeSleeper;
-import google.registry.testing.RegistryConfigRule;
import google.registry.testing.TestObject;
import google.registry.util.Retrier;
import java.io.ByteArrayOutputStream;
@@ -80,9 +79,6 @@ public class RestoreCommitLogsActionTest {
.withDatastore()
.build();
- @Rule
- public final RegistryConfigRule configRule = new RegistryConfigRule();
-
@Before
public void init() {
ObjectifyService.register(TestObject.class);
diff --git a/javatests/google/registry/export/sheet/SyncRegistrarsSheetTest.java b/javatests/google/registry/export/sheet/SyncRegistrarsSheetTest.java
index c66c2292b..4be3d17e7 100644
--- a/javatests/google/registry/export/sheet/SyncRegistrarsSheetTest.java
+++ b/javatests/google/registry/export/sheet/SyncRegistrarsSheetTest.java
@@ -32,7 +32,6 @@ import static org.mockito.Mockito.verify;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import google.registry.config.RegistryEnvironment;
import google.registry.model.common.Cursor;
import google.registry.model.ofy.Ofy;
import google.registry.model.registrar.Registrar;
@@ -55,8 +54,6 @@ import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class SyncRegistrarsSheetTest {
- private static final RegistryEnvironment ENVIRONMENT = RegistryEnvironment.get();
-
@Rule
public final AppEngineRule appEngine = AppEngineRule.builder()
.withDatastore()
@@ -345,8 +342,7 @@ public class SyncRegistrarsSheetTest {
assertThat(row).containsEntry("blockPremiumNames", "false");
assertThat(row).containsEntry("ipAddressWhitelist", "");
assertThat(row).containsEntry("url", "");
- assertThat(row).containsEntry("referralUrl",
- ENVIRONMENT.config().getRegistrarDefaultReferralUrl().toString());
+ assertThat(row).containsEntry("referralUrl", getRegistrarDefaultReferralUrl().toString());
assertThat(row).containsEntry("icannReferralEmail", "");
}
}
diff --git a/javatests/google/registry/model/ofy/CommitLogCheckpointTest.java b/javatests/google/registry/model/ofy/CommitLogCheckpointTest.java
index 0f821cb16..d93e1ac7d 100644
--- a/javatests/google/registry/model/ofy/CommitLogCheckpointTest.java
+++ b/javatests/google/registry/model/ofy/CommitLogCheckpointTest.java
@@ -21,7 +21,6 @@ import static org.joda.time.DateTimeZone.UTC;
import com.google.common.collect.ImmutableMap;
import google.registry.testing.AppEngineRule;
import google.registry.testing.ExceptionRule;
-import google.registry.testing.RegistryConfigRule;
import org.joda.time.DateTime;
import org.junit.Rule;
import org.junit.Test;
@@ -37,9 +36,6 @@ public class CommitLogCheckpointTest {
.withDatastore()
.build();
- @Rule
- public final RegistryConfigRule configRule = new RegistryConfigRule();
-
@Rule
public final ExceptionRule thrown = new ExceptionRule();
diff --git a/javatests/google/registry/testing/RegistryConfigRule.java b/javatests/google/registry/testing/RegistryConfigRule.java
deleted file mode 100644
index d7fffa49b..000000000
--- a/javatests/google/registry/testing/RegistryConfigRule.java
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2016 The Nomulus Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package google.registry.testing;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import com.google.common.base.Optional;
-import google.registry.config.RegistryConfig;
-import google.registry.config.RegistryEnvironment;
-import org.junit.rules.ExternalResource;
-
-/** JUnit Rule for overriding Nomulus configuration values. */
-@Deprecated // is obsoleted by YAML config; see b/33386530 for details
-public final class RegistryConfigRule extends ExternalResource {
-
- private final Optional override;
-
- /** Creates a new instance where {@link #override(RegistryConfig)} will be called as needed. */
- public RegistryConfigRule() {
- this.override = Optional.absent();
- }
-
- /** Creates a new instance where {@code override} will be used for each test method. */
- public RegistryConfigRule(RegistryConfig override) {
- this.override = Optional.of(override);
- }
-
- /** Override registry configuration from inside a test method. */
- public void override(RegistryConfig override) {
- RegistryEnvironment.overrideConfigurationForTesting(checkNotNull(override));
- }
-
- @Override
- protected void before() throws Exception {
- if (override.isPresent()) {
- RegistryEnvironment.overrideConfigurationForTesting(override.get());
- }
- }
-
- @Override
- protected void after() {
- RegistryEnvironment.overrideConfigurationForTesting(null);
- }
-}
diff --git a/javatests/google/registry/tmch/TmchActionTestCase.java b/javatests/google/registry/tmch/TmchActionTestCase.java
index f41ee0a62..e3a0179ec 100644
--- a/javatests/google/registry/tmch/TmchActionTestCase.java
+++ b/javatests/google/registry/tmch/TmchActionTestCase.java
@@ -26,7 +26,6 @@ import google.registry.testing.BouncyCastleProviderRule;
import google.registry.testing.ExceptionRule;
import google.registry.testing.FakeClock;
import google.registry.testing.InjectRule;
-import google.registry.testing.RegistryConfigRule;
import org.junit.Before;
import org.junit.Rule;
import org.junit.runner.RunWith;
@@ -51,9 +50,6 @@ public class TmchActionTestCase {
@Rule
public final BouncyCastleProviderRule bouncy = new BouncyCastleProviderRule();
- @Rule
- public final RegistryConfigRule configRule = new RegistryConfigRule();
-
@Rule
public final ExceptionRule thrown = new ExceptionRule();
diff --git a/javatests/google/registry/tmch/TmchXmlSignatureTest.java b/javatests/google/registry/tmch/TmchXmlSignatureTest.java
index 7137b2729..b5c99e059 100644
--- a/javatests/google/registry/tmch/TmchXmlSignatureTest.java
+++ b/javatests/google/registry/tmch/TmchXmlSignatureTest.java
@@ -20,7 +20,6 @@ import google.registry.testing.AppEngineRule;
import google.registry.testing.ExceptionRule;
import google.registry.testing.FakeClock;
import google.registry.testing.InjectRule;
-import google.registry.testing.RegistryConfigRule;
import java.security.SignatureException;
import java.security.cert.CertificateExpiredException;
import java.security.cert.CertificateNotYetValidException;
@@ -52,9 +51,6 @@ public class TmchXmlSignatureTest {
@Rule
public final InjectRule inject = new InjectRule();
- @Rule
- public final RegistryConfigRule configRule = new RegistryConfigRule();
-
private final FakeClock clock = new FakeClock(DateTime.parse("2013-11-24T23:15:37.4Z"));
private byte[] smdData;
private TmchXmlSignature tmchXmlSignature;