diff --git a/config/nom_build.py b/config/nom_build.py index 5de3d6567..2fc4f7d68 100644 --- a/config/nom_build.py +++ b/config/nom_build.py @@ -47,7 +47,7 @@ class GradleFlag: PROPERTIES_HEADER = """\ -# This file defines properties used by the gradle build. It must be kept in +# This file defines properties used by the gradle build. It must be kept in # sync with config/nom_build.py. # # To regenerate, run ./nom_build --generate-gradle-properties diff --git a/core/src/main/java/google/registry/persistence/transaction/TransactionManagerFactory.java b/core/src/main/java/google/registry/persistence/transaction/TransactionManagerFactory.java index a81727bc1..ac0f462a5 100644 --- a/core/src/main/java/google/registry/persistence/transaction/TransactionManagerFactory.java +++ b/core/src/main/java/google/registry/persistence/transaction/TransactionManagerFactory.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkState; import static google.registry.util.PreconditionsUtils.checkArgumentNotNull; import com.google.common.base.Suppliers; +import com.google.common.collect.ImmutableSet; import google.registry.persistence.DaggerPersistenceComponent; import google.registry.tools.RegistryToolEnvironment; import google.registry.util.NonFinalForTesting; @@ -27,6 +28,9 @@ import java.util.function.Supplier; /** Factory class to create {@link TransactionManager} instance. */ public final class TransactionManagerFactory { + private static final ImmutableSet NON_SERVING_ENVS = + ImmutableSet.of(RegistryEnvironment.UNITTEST, RegistryEnvironment.LOCAL); + /** Supplier for jpaTm so that it is initialized only once, upon first usage. */ @NonFinalForTesting private static Supplier jpaTm = @@ -41,7 +45,7 @@ public final class TransactionManagerFactory { private static JpaTransactionManager createJpaTransactionManager() { // If we are running a nomulus command, jpaTm will be injected in RegistryCli.java // by calling setJpaTm(). - if (RegistryEnvironment.get() != RegistryEnvironment.UNITTEST) { + if (!NON_SERVING_ENVS.contains(RegistryEnvironment.get())) { return DaggerPersistenceComponent.create().jpaTransactionManager(); } else { return DummyJpaTransactionManager.create(); diff --git a/core/src/main/java/google/registry/tools/RegistryCli.java b/core/src/main/java/google/registry/tools/RegistryCli.java index a5f06d41b..23f679a66 100644 --- a/core/src/main/java/google/registry/tools/RegistryCli.java +++ b/core/src/main/java/google/registry/tools/RegistryCli.java @@ -30,6 +30,7 @@ import google.registry.persistence.transaction.JpaTransactionManager; import google.registry.persistence.transaction.TransactionManagerFactory; import google.registry.tools.AuthModule.LoginRequiredException; import google.registry.tools.params.ParameterFactory; +import google.registry.util.RegistryEnvironment; import java.security.Security; import java.util.Map; import java.util.Optional; @@ -218,12 +219,19 @@ final class RegistryCli implements CommandRunner { // Reset the JPA transaction manager after every command to avoid a situation where a test can // interfere with other tests - JpaTransactionManager cachedJpaTm = tm(); + final JpaTransactionManager cachedJpaTm; + if (RegistryEnvironment.get() == RegistryEnvironment.UNITTEST) { + cachedJpaTm = tm(); + } else { + cachedJpaTm = null; + } TransactionManagerFactory.setJpaTm(() -> component.nomulusToolJpaTransactionManager().get()); TransactionManagerFactory.setReplicaJpaTm( () -> component.nomulusToolReplicaJpaTransactionManager().get()); command.run(); - TransactionManagerFactory.setJpaTm(() -> cachedJpaTm); + if (RegistryEnvironment.get() == RegistryEnvironment.UNITTEST) { + TransactionManagerFactory.setJpaTm(() -> cachedJpaTm); + } } void setEnvironment(RegistryToolEnvironment environment) {