diff --git a/java/google/registry/rde/RdeStagingAction.java b/java/google/registry/rde/RdeStagingAction.java index 790ede76d..96199dfa3 100644 --- a/java/google/registry/rde/RdeStagingAction.java +++ b/java/google/registry/rde/RdeStagingAction.java @@ -45,6 +45,7 @@ import google.registry.request.RequestParameters; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; +import google.registry.xml.ValidationMode; import java.util.Optional; import javax.inject.Inject; import org.joda.time.DateTime; @@ -203,7 +204,7 @@ public final class RdeStagingAction implements Runnable { @Inject Clock clock; @Inject PendingDepositChecker pendingDepositChecker; - @Inject RdeStagingReducer reducer; + @Inject RdeStagingReducer.Factory reducerFactory; @Inject Response response; @Inject MapreduceRunner mrRunner; @Inject @Config("transactionCooldown") Duration transactionCooldown; @@ -231,7 +232,9 @@ public final class RdeStagingAction implements Runnable { for (PendingDeposit pending : pendings.values()) { logger.atInfo().log("Pending deposit: %s", pending); } - RdeStagingMapper mapper = new RdeStagingMapper(lenient ? LENIENT : STRICT, pendings); + ValidationMode validationMode = lenient ? LENIENT : STRICT; + RdeStagingMapper mapper = new RdeStagingMapper(validationMode, pendings); + RdeStagingReducer reducer = reducerFactory.create(validationMode); mrRunner .setJobName("Stage escrow deposits for all TLDs") diff --git a/java/google/registry/rde/RdeStagingReducer.java b/java/google/registry/rde/RdeStagingReducer.java index 3adb9931c..21688463b 100644 --- a/java/google/registry/rde/RdeStagingReducer.java +++ b/java/google/registry/rde/RdeStagingReducer.java @@ -21,8 +21,6 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; import static google.registry.model.common.Cursor.getCursorTimeOrStartOfTime; import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.xml.ValidationMode.LENIENT; -import static google.registry.xml.ValidationMode.STRICT; import static java.nio.charset.StandardCharsets.UTF_8; import com.google.appengine.tools.cloudstorage.GcsFilename; @@ -39,13 +37,13 @@ import google.registry.model.rde.RdeMode; import google.registry.model.rde.RdeNamingUtils; import google.registry.model.rde.RdeRevision; import google.registry.model.registry.Registry; -import google.registry.request.Parameter; import google.registry.request.RequestParameters; import google.registry.request.lock.LockHandler; import google.registry.tldconfig.idn.IdnTableEnum; import google.registry.util.TaskQueueUtils; import google.registry.xjc.rdeheader.XjcRdeHeader; import google.registry.xjc.rdeheader.XjcRdeHeaderElement; +import google.registry.xml.ValidationMode; import google.registry.xml.XmlException; import java.io.IOException; import java.io.OutputStream; @@ -76,22 +74,21 @@ public final class RdeStagingReducer extends Reducer { action.clock = clock; action.mrRunner = makeDefaultRunner(); action.lenient = false; - action.reducer = new RdeStagingReducer( - new TaskQueueUtils(new Retrier(new SystemSleeper(), 1)), // taskQueueUtils - new FakeLockHandler(true), - 0, // gcsBufferSize - "rde-bucket", // bucket - Duration.standardHours(1), // lockTimeout - PgpHelper.convertPublicKeyToBytes(encryptKey), // stagingKeyBytes - false); // lenient + action.reducerFactory = new RdeStagingReducer.Factory(); + action.reducerFactory.taskQueueUtils = new TaskQueueUtils(new Retrier(new SystemSleeper(), 1)); + action.reducerFactory.lockHandler = new FakeLockHandler(true); + action.reducerFactory.gcsBufferSize = 0; + action.reducerFactory.bucket = "rde-bucket"; + action.reducerFactory.lockTimeout = Duration.standardHours(1); + action.reducerFactory.stagingKeyBytes = PgpHelper.convertPublicKeyToBytes(encryptKey); action.pendingDepositChecker = new PendingDepositChecker(); action.pendingDepositChecker.brdaDayOfWeek = DateTimeConstants.TUESDAY; action.pendingDepositChecker.brdaInterval = Duration.standardDays(7);