mirror of
https://github.com/google/nomulus
synced 2026-07-07 00:27:12 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5d82893478 | |||
| d0af81ecdf | |||
| f273783894 | |||
| 0dfabe1c64 | |||
| 60a011c593 | |||
| 7716eebfff |
@@ -51,6 +51,7 @@ artifacts {
|
||||
dependencies {
|
||||
def deps = rootProject.dependencyMap
|
||||
|
||||
compile deps['com.github.ben-manes.caffeine:caffeine']
|
||||
compile deps['com.google.code.findbugs:jsr305']
|
||||
compile deps['com.google.guava:guava']
|
||||
compile deps['javax.inject:javax.inject']
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|
||||
com.google.j2objc:j2objc-annotations:1.3
|
||||
javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|
||||
com.google.j2objc:j2objc-annotations:1.3
|
||||
javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|
||||
com.google.j2objc:j2objc-annotations:1.3
|
||||
javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|
||||
com.google.j2objc:j2objc-annotations:1.3
|
||||
javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|
||||
com.google.j2objc:j2objc-annotations:1.3
|
||||
javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
|
||||
com.google.j2objc:j2objc-annotations:1.3
|
||||
javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.auto.value:auto-value-annotations:1.7.4
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -16,7 +17,7 @@ joda-time:joda-time:2.9.2
|
||||
junit:junit:4.13.1
|
||||
org.apiguardian:apiguardian-api:1.1.0
|
||||
org.checkerframework:checker-compat-qual:2.5.3
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.junit.jupiter:junit-jupiter-api:5.6.2
|
||||
org.junit.jupiter:junit-jupiter-engine:5.6.2
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.auto.value:auto-value-annotations:1.7.4
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -16,7 +17,7 @@ joda-time:joda-time:2.9.2
|
||||
junit:junit:4.13.1
|
||||
org.apiguardian:apiguardian-api:1.1.0
|
||||
org.checkerframework:checker-compat-qual:2.5.3
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.junit.jupiter:junit-jupiter-api:5.6.2
|
||||
org.junit.jupiter:junit-jupiter-engine:5.6.2
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.auto.value:auto-value-annotations:1.7.4
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -17,7 +18,7 @@ joda-time:joda-time:2.9.2
|
||||
junit:junit:4.13.1
|
||||
org.apiguardian:apiguardian-api:1.1.0
|
||||
org.checkerframework:checker-compat-qual:2.5.3
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.junit.jupiter:junit-jupiter-api:5.6.2
|
||||
org.junit.jupiter:junit-jupiter-engine:5.6.2
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.auto.value:auto-value-annotations:1.7.4
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -17,7 +18,7 @@ joda-time:joda-time:2.9.2
|
||||
junit:junit:4.13.1
|
||||
org.apiguardian:apiguardian-api:1.1.0
|
||||
org.checkerframework:checker-compat-qual:2.5.3
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.junit.jupiter:junit-jupiter-api:5.6.2
|
||||
org.junit.jupiter:junit-jupiter-engine:5.6.2
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.auto.value:auto-value-annotations:1.7.4
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -15,6 +16,6 @@ javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
junit:junit:4.13.1
|
||||
org.checkerframework:checker-compat-qual:2.5.3
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.ow2.asm:asm:9.0
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.auto.value:auto-value-annotations:1.7.4
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -15,6 +16,6 @@ javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
junit:junit:4.13.1
|
||||
org.checkerframework:checker-compat-qual:2.5.3
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.ow2.asm:asm:9.0
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.auto.value:auto-value-annotations:1.7.4
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -16,6 +17,6 @@ javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
junit:junit:4.13.1
|
||||
org.checkerframework:checker-compat-qual:2.5.3
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.ow2.asm:asm:9.0
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.auto.value:auto-value-annotations:1.7.4
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.errorprone:error_prone_annotations:2.5.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -16,6 +17,6 @@ javax.inject:javax.inject:1
|
||||
joda-time:joda-time:2.9.2
|
||||
junit:junit:4.13.1
|
||||
org.checkerframework:checker-compat-qual:2.5.3
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.ow2.asm:asm:9.0
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
|
||||
package google.registry.testing;
|
||||
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.github.benmanes.caffeine.cache.CacheLoader;
|
||||
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||
import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||
import com.google.common.flogger.FluentLogger;
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
@@ -29,7 +29,7 @@ public final class SystemInfo {
|
||||
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
|
||||
|
||||
private static final LoadingCache<String, Boolean> hasCommandCache =
|
||||
CacheBuilder.newBuilder()
|
||||
Caffeine.newBuilder()
|
||||
.build(
|
||||
new CacheLoader<String, Boolean>() {
|
||||
@Override
|
||||
|
||||
@@ -20,6 +20,7 @@ import static com.google.common.collect.ImmutableMap.toImmutableMap;
|
||||
import static google.registry.flows.FlowUtils.validateRegistrarIsLoggedIn;
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyTargetIdCount;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.getReservationTypes;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.handleFeeRequest;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.isAnchorTenant;
|
||||
@@ -100,6 +101,7 @@ import org.joda.time.DateTime;
|
||||
* @error {@link DomainFlowUtils.InvalidIdnDomainLabelException}
|
||||
* @error {@link DomainFlowUtils.InvalidPunycodeException}
|
||||
* @error {@link DomainFlowUtils.LeadingDashException}
|
||||
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
|
||||
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
|
||||
* @error {@link DomainFlowUtils.RestoresAreAlwaysForOneYearException}
|
||||
* @error {@link DomainFlowUtils.TldDoesNotExistException}
|
||||
@@ -153,6 +155,7 @@ public final class DomainCheckFlow implements Flow {
|
||||
boolean tldFirstTimeSeen = seenTlds.add(tld);
|
||||
if (tldFirstTimeSeen && !isSuperuser) {
|
||||
checkAllowedAccessToTld(registrarId, tld);
|
||||
checkHasBillingAccount(registrarId, tld);
|
||||
verifyNotInPredelegation(Registry.get(tld), now);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ package google.registry.flows.domain;
|
||||
import static google.registry.flows.FlowUtils.validateRegistrarIsLoggedIn;
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyTargetIdCount;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.validateDomainName;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.validateDomainNameWithIdnTables;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.verifyClaimsPeriodNotEnded;
|
||||
@@ -60,6 +61,7 @@ import org.joda.time.DateTime;
|
||||
* @error {@link google.registry.flows.FlowUtils.NotLoggedInException}
|
||||
* @error {@link DomainFlowUtils.BadCommandForRegistryPhaseException}
|
||||
* @error {@link DomainFlowUtils.ClaimsPeriodEndedException}
|
||||
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
|
||||
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
|
||||
* @error {@link DomainFlowUtils.TldDoesNotExistException}
|
||||
* @error {@link DomainClaimsCheckNotAllowedWithAllocationTokens}
|
||||
@@ -99,6 +101,7 @@ public final class DomainClaimsCheckFlow implements Flow {
|
||||
if (seenTlds.add(tld)) {
|
||||
if (!isSuperuser) {
|
||||
checkAllowedAccessToTld(registrarId, tld);
|
||||
checkHasBillingAccount(registrarId, tld);
|
||||
Registry registry = Registry.get(tld);
|
||||
DateTime now = clock.nowUtc();
|
||||
verifyNotInPredelegation(registry, now);
|
||||
|
||||
@@ -20,6 +20,7 @@ import static google.registry.flows.FlowUtils.validateRegistrarIsLoggedIn;
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyResourceDoesNotExist;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.COLLISION_MESSAGE;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.cloneAndLinkReferences;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.createFeeCreateResponse;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.getReservationTypes;
|
||||
@@ -180,6 +181,7 @@ import org.joda.time.Duration;
|
||||
* @error {@link DomainFlowUtils.MalformedTcnIdException}
|
||||
* @error {@link DomainFlowUtils.MaxSigLifeNotSupportedException}
|
||||
* @error {@link DomainFlowUtils.MissingAdminContactException}
|
||||
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
|
||||
* @error {@link DomainFlowUtils.MissingClaimsNoticeException}
|
||||
* @error {@link DomainFlowUtils.MissingContactTypeException}
|
||||
* @error {@link DomainFlowUtils.MissingRegistrantException}
|
||||
@@ -265,6 +267,7 @@ public final class DomainCreateFlow implements TransactionalFlow {
|
||||
// registering premium domains.
|
||||
if (!isSuperuser) {
|
||||
checkAllowedAccessToTld(registrarId, registry.getTldStr());
|
||||
checkHasBillingAccount(registrarId, registry.getTldStr());
|
||||
boolean isValidReservedCreate = isValidReservedCreate(domainName, allocationToken);
|
||||
verifyIsGaOrIsSpecialCase(tldState, isAnchorTenant, isValidReservedCreate, hasSignedMarks);
|
||||
if (launchCreate.isPresent()) {
|
||||
|
||||
@@ -293,6 +293,17 @@ public class DomainFlowUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/** Check if the registrar has the correct billing account map configured. */
|
||||
public static void checkHasBillingAccount(String registrarId, String tld) throws EppException {
|
||||
CurrencyUnit currency = Registry.get(tld).getCurrency();
|
||||
if (!Registrar.loadByRegistrarIdCached(registrarId)
|
||||
.get()
|
||||
.getBillingAccountMap()
|
||||
.containsKey(currency)) {
|
||||
throw new DomainFlowUtils.MissingBillingAccountMapException(currency);
|
||||
}
|
||||
}
|
||||
|
||||
/** Check that the DS data that will be set on a domain is valid. */
|
||||
static void validateDsData(Set<DelegationSignerData> dsData) throws EppException {
|
||||
if (dsData != null) {
|
||||
@@ -1501,6 +1512,13 @@ public class DomainFlowUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/** Registrar is missing the billing account map for this currency type. */
|
||||
public static class MissingBillingAccountMapException extends AuthorizationErrorException {
|
||||
public MissingBillingAccountMapException(CurrencyUnit currency) {
|
||||
super("Registrar is not fully onboarded for TLDs that bill in " + currency);
|
||||
}
|
||||
}
|
||||
|
||||
/** Registrant is not allow-listed for this TLD. */
|
||||
public static class RegistrantNotAllowedException extends StatusProhibitsOperationException {
|
||||
public RegistrantNotAllowedException(String contactId) {
|
||||
|
||||
@@ -22,6 +22,7 @@ import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfo;
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.newAutorenewBillingEvent;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.newAutorenewPollMessage;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.updateAutorenewRecurrenceEndTime;
|
||||
@@ -106,6 +107,7 @@ import org.joda.time.Duration;
|
||||
* @error {@link DomainFlowUtils.ExceedsMaxRegistrationYearsException}
|
||||
* @error {@link DomainFlowUtils.FeesMismatchException}
|
||||
* @error {@link DomainFlowUtils.FeesRequiredForPremiumNameException}
|
||||
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
|
||||
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
|
||||
* @error {@link DomainFlowUtils.RegistrarMustBeActiveForThisOperationException}
|
||||
* @error {@link DomainFlowUtils.UnsupportedFeeAttributeException}
|
||||
@@ -263,6 +265,7 @@ public final class DomainRenewFlow implements TransactionalFlow {
|
||||
if (!isSuperuser) {
|
||||
verifyResourceOwnership(registrarId, existingDomain);
|
||||
checkAllowedAccessToTld(registrarId, existingDomain.getTld());
|
||||
checkHasBillingAccount(registrarId, existingDomain.getTld());
|
||||
}
|
||||
verifyUnitIsYears(command.getPeriod());
|
||||
// If the date they specify doesn't match the expiration, fail. (This is an idempotence check).
|
||||
|
||||
@@ -20,6 +20,7 @@ import static google.registry.flows.ResourceFlowUtils.loadAndVerifyExistence;
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfo;
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.newAutorenewBillingEvent;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.newAutorenewPollMessage;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.validateFeeChallenge;
|
||||
@@ -104,6 +105,7 @@ import org.joda.time.DateTime;
|
||||
* @error {@link DomainFlowUtils.DomainReservedException}
|
||||
* @error {@link DomainFlowUtils.FeesMismatchException}
|
||||
* @error {@link DomainFlowUtils.FeesRequiredForPremiumNameException}
|
||||
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
|
||||
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
|
||||
* @error {@link DomainFlowUtils.PremiumNameBlockedException}
|
||||
* @error {@link DomainFlowUtils.RegistrarMustBeActiveForThisOperationException}
|
||||
@@ -216,6 +218,7 @@ public final class DomainRestoreRequestFlow implements TransactionalFlow {
|
||||
verifyNotReserved(InternetDomainName.from(targetId), false);
|
||||
verifyPremiumNameIsNotBlocked(targetId, now, registrarId);
|
||||
checkAllowedAccessToTld(registrarId, existingDomain.getTld());
|
||||
checkHasBillingAccount(registrarId, existingDomain.getTld());
|
||||
}
|
||||
// No other changes can be specified on a restore request.
|
||||
if (!command.noChangesPresent()) {
|
||||
|
||||
@@ -22,6 +22,7 @@ import static google.registry.flows.ResourceFlowUtils.verifyAuthInfo;
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyAuthInfoPresentForResourceTransfer;
|
||||
import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.checkHasBillingAccount;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.updateAutorenewRecurrenceEndTime;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.validateFeeChallenge;
|
||||
import static google.registry.flows.domain.DomainFlowUtils.verifyPremiumNameIsNotBlocked;
|
||||
@@ -111,6 +112,7 @@ import org.joda.time.DateTime;
|
||||
* @error {@link DomainFlowUtils.CurrencyValueScaleException}
|
||||
* @error {@link DomainFlowUtils.FeesMismatchException}
|
||||
* @error {@link DomainFlowUtils.FeesRequiredForPremiumNameException}
|
||||
* @error {@link DomainFlowUtils.MissingBillingAccountMapException}
|
||||
* @error {@link DomainFlowUtils.NotAuthorizedForTldException}
|
||||
* @error {@link DomainFlowUtils.PremiumNameBlockedException}
|
||||
* @error {@link DomainFlowUtils.RegistrarMustBeActiveForThisOperationException}
|
||||
@@ -273,6 +275,7 @@ public final class DomainTransferRequestFlow implements TransactionalFlow {
|
||||
verifyTransferPeriod(period, superuserExtension);
|
||||
if (!isSuperuser) {
|
||||
checkAllowedAccessToTld(gainingClientId, existingDomain.getTld());
|
||||
checkHasBillingAccount(gainingClientId, existingDomain.getTld());
|
||||
verifyPremiumNameIsNotBlocked(targetId, now, gainingClientId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,11 +21,9 @@ import static com.google.common.collect.Maps.transformValues;
|
||||
import static java.util.stream.Collectors.toCollection;
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.ImmutableSortedMap;
|
||||
@@ -59,36 +57,33 @@ public class ModelUtils {
|
||||
|
||||
/** Caches all instance fields on an object, including non-public and inherited fields. */
|
||||
private static final LoadingCache<Class<?>, ImmutableMap<String, Field>> ALL_FIELDS_CACHE =
|
||||
CacheBuilder.newBuilder()
|
||||
CacheUtils.newCacheBuilder()
|
||||
.build(
|
||||
new CacheLoader<Class<?>, ImmutableMap<String, Field>>() {
|
||||
@Override
|
||||
public ImmutableMap<String, Field> load(Class<?> clazz) {
|
||||
Deque<Class<?>> hierarchy = new ArrayDeque<>();
|
||||
// Walk the hierarchy up to but not including ImmutableObject (to ignore
|
||||
// hashCode).
|
||||
for (; clazz != ImmutableObject.class; clazz = clazz.getSuperclass()) {
|
||||
// Add to the front, so that shadowed fields show up later in the list.
|
||||
// This will mean that getFieldValues will show the most derived value.
|
||||
hierarchy.addFirst(clazz);
|
||||
}
|
||||
Map<String, Field> fields = new LinkedHashMap<>();
|
||||
for (Class<?> hierarchyClass : hierarchy) {
|
||||
// Don't use hierarchyClass.getFields() because it only picks up public fields.
|
||||
for (Field field : hierarchyClass.getDeclaredFields()) {
|
||||
if (!Modifier.isStatic(field.getModifiers())) {
|
||||
field.setAccessible(true);
|
||||
fields.put(field.getName(), field);
|
||||
}
|
||||
clazz -> {
|
||||
Deque<Class<?>> hierarchy = new ArrayDeque<>();
|
||||
// Walk the hierarchy up to but not including ImmutableObject (to ignore
|
||||
// hashCode).
|
||||
for (; clazz != ImmutableObject.class; clazz = clazz.getSuperclass()) {
|
||||
// Add to the front, so that shadowed fields show up later in the list.
|
||||
// This will mean that getFieldValues will show the most derived value.
|
||||
hierarchy.addFirst(clazz);
|
||||
}
|
||||
Map<String, Field> fields = new LinkedHashMap<>();
|
||||
for (Class<?> hierarchyClass : hierarchy) {
|
||||
// Don't use hierarchyClass.getFields() because it only picks up public fields.
|
||||
for (Field field : hierarchyClass.getDeclaredFields()) {
|
||||
if (!Modifier.isStatic(field.getModifiers())) {
|
||||
field.setAccessible(true);
|
||||
fields.put(field.getName(), field);
|
||||
}
|
||||
}
|
||||
return ImmutableMap.copyOf(fields);
|
||||
}
|
||||
return ImmutableMap.copyOf(fields);
|
||||
});
|
||||
|
||||
/** Lists all instance fields on an object, including non-public and inherited fields. */
|
||||
public static Map<String, Field> getAllFields(Class<?> clazz) {
|
||||
return ALL_FIELDS_CACHE.getUnchecked(clazz);
|
||||
return ALL_FIELDS_CACHE.get(clazz);
|
||||
}
|
||||
|
||||
/** Return a string representing the persisted schema of a type or enum. */
|
||||
|
||||
+5
-16
@@ -18,14 +18,13 @@ import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.google.common.collect.ImmutableMultimap;
|
||||
import com.google.common.collect.ImmutableSortedMap;
|
||||
import com.google.common.flogger.FluentLogger;
|
||||
import google.registry.config.RegistryEnvironment;
|
||||
import google.registry.model.CacheUtils;
|
||||
import google.registry.model.annotations.DeleteAfterMigration;
|
||||
import google.registry.model.common.TimedTransitionProperty.TimedTransition;
|
||||
import google.registry.model.replay.SqlOnlyEntity;
|
||||
@@ -135,18 +134,8 @@ public class DatabaseMigrationStateSchedule extends CrossTldSingleton implements
|
||||
TimedTransitionProperty<MigrationState, MigrationStateTransition>>
|
||||
// Each instance should cache the migration schedule for five minutes before reloading
|
||||
CACHE =
|
||||
CacheBuilder.newBuilder()
|
||||
.expireAfterWrite(Duration.ofMinutes(5))
|
||||
.build(
|
||||
new CacheLoader<
|
||||
Class<DatabaseMigrationStateSchedule>,
|
||||
TimedTransitionProperty<MigrationState, MigrationStateTransition>>() {
|
||||
@Override
|
||||
public TimedTransitionProperty<MigrationState, MigrationStateTransition> load(
|
||||
Class<DatabaseMigrationStateSchedule> unused) {
|
||||
return DatabaseMigrationStateSchedule.getUncached();
|
||||
}
|
||||
});
|
||||
CacheUtils.newCacheBuilder(Duration.ofMinutes(5))
|
||||
.build(singletonClazz -> DatabaseMigrationStateSchedule.getUncached());
|
||||
|
||||
// Restrictions on the state transitions, e.g. no going from DATASTORE_ONLY to SQL_ONLY
|
||||
private static final ImmutableMultimap<MigrationState, MigrationState> VALID_STATE_TRANSITIONS =
|
||||
@@ -235,7 +224,7 @@ public class DatabaseMigrationStateSchedule extends CrossTldSingleton implements
|
||||
|
||||
/** Loads the currently-set migration schedule from the cache, or the default if none exists. */
|
||||
public static TimedTransitionProperty<MigrationState, MigrationStateTransition> get() {
|
||||
return CACHE.getUnchecked(DatabaseMigrationStateSchedule.class);
|
||||
return CACHE.get(DatabaseMigrationStateSchedule.class);
|
||||
}
|
||||
|
||||
/** Returns the database migration status at the given time. */
|
||||
|
||||
@@ -16,15 +16,14 @@ package google.registry.model.server;
|
||||
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.google.common.primitives.Longs;
|
||||
import com.googlecode.objectify.annotation.Entity;
|
||||
import com.googlecode.objectify.annotation.Ignore;
|
||||
import com.googlecode.objectify.annotation.OnLoad;
|
||||
import com.googlecode.objectify.annotation.Unindex;
|
||||
import google.registry.model.CacheUtils;
|
||||
import google.registry.model.annotations.NotBackedUp;
|
||||
import google.registry.model.annotations.NotBackedUp.Reason;
|
||||
import google.registry.model.common.CrossTldSingleton;
|
||||
@@ -32,7 +31,6 @@ import google.registry.model.replay.NonReplicatedEntity;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.PostLoad;
|
||||
import javax.persistence.Transient;
|
||||
@@ -52,14 +50,7 @@ public class ServerSecret extends CrossTldSingleton implements NonReplicatedEnti
|
||||
* Supplier that can be reset for testing purposes.
|
||||
*/
|
||||
private static final LoadingCache<Class<ServerSecret>, ServerSecret> CACHE =
|
||||
CacheBuilder.newBuilder()
|
||||
.build(
|
||||
new CacheLoader<Class<ServerSecret>, ServerSecret>() {
|
||||
@Override
|
||||
public ServerSecret load(Class<ServerSecret> unused) {
|
||||
return retrieveAndSaveSecret();
|
||||
}
|
||||
});
|
||||
CacheUtils.newCacheBuilder().build(singletonClazz -> retrieveAndSaveSecret());
|
||||
|
||||
private static ServerSecret retrieveAndSaveSecret() {
|
||||
if (tm().isOfy()) {
|
||||
@@ -84,11 +75,7 @@ public class ServerSecret extends CrossTldSingleton implements NonReplicatedEnti
|
||||
|
||||
/** Returns the global ServerSecret instance, creating it if one isn't already in Datastore. */
|
||||
public static ServerSecret get() {
|
||||
try {
|
||||
return CACHE.get(ServerSecret.class);
|
||||
} catch (ExecutionException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return CACHE.get(ServerSecret.class);
|
||||
}
|
||||
|
||||
/** Most significant 8 bytes of the UUID value (stored separately for legacy purposes). */
|
||||
|
||||
@@ -33,8 +33,10 @@ import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.EOFException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.ObjectStreamClass;
|
||||
|
||||
/**
|
||||
* A SQL transaction that can be serialized and stored in its own table.
|
||||
@@ -105,7 +107,8 @@ public class Transaction extends ImmutableObject implements Buildable {
|
||||
}
|
||||
|
||||
public static Transaction deserialize(byte[] serializedTransaction) throws IOException {
|
||||
ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(serializedTransaction));
|
||||
ObjectInputStream in =
|
||||
new LenientObjectInputStream(new ByteArrayInputStream(serializedTransaction));
|
||||
|
||||
// Verify that the data is what we expect.
|
||||
int version = in.readInt();
|
||||
@@ -304,4 +307,35 @@ public class Transaction extends ImmutableObject implements Buildable {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ObjectInputStream that ignores the UIDs of serialized objects.
|
||||
*
|
||||
* <p>We only really need to deserialize VKeys. However, VKeys have a class object associated with
|
||||
* them, and if the class is changed and we haven't defined a serialVersionUID for it, we get an
|
||||
* exception during deserialization.
|
||||
*
|
||||
* <p>It's safe for us to ignore this condition: we only care about attaching the correct local
|
||||
* class object to the VKey. So this class effectively does so by replacing the class descriptor
|
||||
* if it's version UID doesn't match that of the local class.
|
||||
*/
|
||||
private static class LenientObjectInputStream extends ObjectInputStream {
|
||||
|
||||
public LenientObjectInputStream(InputStream in) throws IOException {
|
||||
super(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
|
||||
ObjectStreamClass persistedDescriptor = super.readClassDescriptor();
|
||||
Class localClass = Class.forName(persistedDescriptor.getName());
|
||||
ObjectStreamClass localDescriptor = ObjectStreamClass.lookup(localClass);
|
||||
if (localDescriptor != null) {
|
||||
if (persistedDescriptor.getSerialVersionUID() != localDescriptor.getSerialVersionUID()) {
|
||||
return localDescriptor;
|
||||
}
|
||||
}
|
||||
return persistedDescriptor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,6 +104,7 @@ public final class RegistryTool {
|
||||
.put("registrar_contact", RegistrarContactCommand.class)
|
||||
.put("remove_registry_one_key", RemoveRegistryOneKeyCommand.class)
|
||||
.put("renew_domain", RenewDomainCommand.class)
|
||||
.put("replay_txns", ReplayTxnsCommand.class)
|
||||
.put("resave_entities", ResaveEntitiesCommand.class)
|
||||
.put("resave_environment_entities", ResaveEnvironmentEntitiesCommand.class)
|
||||
.put("resave_epp_resource", ResaveEppResourceCommand.class)
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
// Copyright 2022 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.tools;
|
||||
|
||||
import static google.registry.persistence.transaction.TransactionManagerFactory.replicaJpaTm;
|
||||
|
||||
import com.beust.jcommander.Parameter;
|
||||
import com.beust.jcommander.Parameters;
|
||||
import google.registry.persistence.transaction.Transaction;
|
||||
import google.registry.persistence.transaction.TransactionEntity;
|
||||
import java.util.List;
|
||||
|
||||
@Parameters(separators = " =", commandDescription = "Replay a range of transactions.")
|
||||
public class ReplayTxnsCommand implements CommandWithRemoteApi {
|
||||
|
||||
private static final int BATCH_SIZE = 200;
|
||||
|
||||
@Parameter(
|
||||
names = {"-s", "--start-txn-id"},
|
||||
description = "Transaction id to start replaying at.",
|
||||
required = true)
|
||||
long startTxnId;
|
||||
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
List<TransactionEntity> txns;
|
||||
do {
|
||||
txns =
|
||||
replicaJpaTm()
|
||||
.transact(
|
||||
() ->
|
||||
replicaJpaTm()
|
||||
.query(
|
||||
"SELECT txn FROM TransactionEntity txn where id >= :startTxn ORDER"
|
||||
+ " BY id",
|
||||
TransactionEntity.class)
|
||||
.setParameter("startTxn", startTxnId)
|
||||
.setMaxResults(BATCH_SIZE)
|
||||
.getResultList());
|
||||
for (TransactionEntity txn : txns) {
|
||||
System.out.println("Replaying transaction " + txn.getId());
|
||||
Transaction.deserialize(txn.getContents());
|
||||
startTxnId = txn.getId() + 1;
|
||||
}
|
||||
} while (txns.size() > 0);
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ import static google.registry.testing.DatabaseHelper.persistReservedList;
|
||||
import static google.registry.testing.DatabaseHelper.persistResource;
|
||||
import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static org.joda.money.CurrencyUnit.JPY;
|
||||
import static org.joda.money.CurrencyUnit.USD;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
@@ -57,6 +58,7 @@ import google.registry.flows.domain.DomainFlowUtils.FeeChecksDontSupportPhasesEx
|
||||
import google.registry.flows.domain.DomainFlowUtils.InvalidIdnDomainLabelException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.InvalidPunycodeException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.LeadingDashException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingBillingAccountMapException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.RestoresAreAlwaysForOneYearException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.TldDoesNotExistException;
|
||||
@@ -600,6 +602,24 @@ class DomainCheckFlowTest extends ResourceCheckFlowTestCase<DomainCheckFlow, Dom
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_missingBillingAccount() {
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setCurrency(JPY)
|
||||
.setCreateBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRenewBillingCostTransitions(
|
||||
ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRegistryLockOrUnlockBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setServerStatusChangeBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setRestoreBillingCost(Money.ofMajor(JPY, 800))
|
||||
.build());
|
||||
EppException thrown = assertThrows(MissingBillingAccountMapException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testSuccess_superuserNotAuthorizedForTld() throws Exception {
|
||||
persistActiveDomain("example2.tld");
|
||||
|
||||
@@ -21,16 +21,20 @@ import static google.registry.testing.DatabaseHelper.createTlds;
|
||||
import static google.registry.testing.DatabaseHelper.loadRegistrar;
|
||||
import static google.registry.testing.DatabaseHelper.persistResource;
|
||||
import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static org.joda.money.CurrencyUnit.JPY;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.ImmutableSortedMap;
|
||||
import google.registry.flows.EppException;
|
||||
import google.registry.flows.FlowUtils.NotLoggedInException;
|
||||
import google.registry.flows.ResourceFlowTestCase;
|
||||
import google.registry.flows.domain.DomainClaimsCheckFlow.DomainClaimsCheckNotAllowedWithAllocationTokens;
|
||||
import google.registry.flows.domain.DomainFlowUtils.BadCommandForRegistryPhaseException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.ClaimsPeriodEndedException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingBillingAccountMapException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.TldDoesNotExistException;
|
||||
import google.registry.flows.exceptions.TooManyResourceChecksException;
|
||||
@@ -40,6 +44,7 @@ import google.registry.model.tld.Registry.TldState;
|
||||
import google.registry.testing.DualDatabaseTest;
|
||||
import google.registry.testing.ReplayExtension;
|
||||
import google.registry.testing.TestOfyAndSql;
|
||||
import org.joda.money.Money;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Order;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
@@ -133,6 +138,24 @@ public class DomainClaimsCheckFlowTest
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_missingBillingAccount() {
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setCurrency(JPY)
|
||||
.setCreateBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRenewBillingCostTransitions(
|
||||
ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRegistryLockOrUnlockBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setServerStatusChangeBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setRestoreBillingCost(Money.ofMajor(JPY, 800))
|
||||
.build());
|
||||
EppException thrown = assertThrows(MissingBillingAccountMapException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testSuccess_superuserNotAuthorizedForTld() throws Exception {
|
||||
persistClaimsList(
|
||||
|
||||
@@ -59,6 +59,7 @@ import static google.registry.tmch.LordnTaskUtils.QUEUE_CLAIMS;
|
||||
import static google.registry.tmch.LordnTaskUtils.QUEUE_SUNRISE;
|
||||
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static org.joda.money.CurrencyUnit.JPY;
|
||||
import static org.joda.money.CurrencyUnit.USD;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
@@ -117,6 +118,7 @@ import google.registry.flows.domain.DomainFlowUtils.LinkedResourcesDoNotExistExc
|
||||
import google.registry.flows.domain.DomainFlowUtils.MalformedTcnIdException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MaxSigLifeNotSupportedException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingAdminContactException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingBillingAccountMapException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingClaimsNoticeException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingContactTypeException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingRegistrantException;
|
||||
@@ -2222,6 +2224,25 @@ class DomainCreateFlowTest extends ResourceFlowTestCase<DomainCreateFlow, Domain
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_missingBillingAccountMap() {
|
||||
persistContactsAndHosts();
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setCurrency(JPY)
|
||||
.setCreateBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRenewBillingCostTransitions(
|
||||
ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRegistryLockOrUnlockBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setServerStatusChangeBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setRestoreBillingCost(Money.ofMajor(JPY, 800))
|
||||
.build());
|
||||
EppException thrown = assertThrows(MissingBillingAccountMapException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_registrantNotAllowListed() {
|
||||
persistActiveContact("someone");
|
||||
|
||||
@@ -35,6 +35,7 @@ import static google.registry.testing.TestDataHelper.updateSubstitutions;
|
||||
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static org.joda.money.CurrencyUnit.EUR;
|
||||
import static org.joda.money.CurrencyUnit.JPY;
|
||||
import static org.joda.money.CurrencyUnit.USD;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
@@ -55,6 +56,7 @@ import google.registry.flows.domain.DomainFlowUtils.CurrencyValueScaleException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.ExceedsMaxRegistrationYearsException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.FeesMismatchException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.FeesRequiredForPremiumNameException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingBillingAccountMapException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.RegistrarMustBeActiveForThisOperationException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.UnsupportedFeeAttributeException;
|
||||
@@ -122,6 +124,11 @@ class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, DomainBa
|
||||
@BeforeEach
|
||||
void initDomainTest() {
|
||||
createTld("tld");
|
||||
persistResource(
|
||||
loadRegistrar("TheRegistrar")
|
||||
.asBuilder()
|
||||
.setBillingAccountMap(ImmutableMap.of(USD, "123", EUR, "567"))
|
||||
.build());
|
||||
setEppInput("domain_renew.xml", ImmutableMap.of("DOMAIN", "example.tld", "YEARS", "5"));
|
||||
}
|
||||
|
||||
@@ -759,6 +766,25 @@ class DomainRenewFlowTest extends ResourceFlowTestCase<DomainRenewFlow, DomainBa
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_missingBillingAccountMap() throws Exception {
|
||||
persistDomain();
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setCurrency(JPY)
|
||||
.setCreateBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRenewBillingCostTransitions(
|
||||
ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRegistryLockOrUnlockBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setServerStatusChangeBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setRestoreBillingCost(Money.ofMajor(JPY, 800))
|
||||
.build());
|
||||
EppException thrown = assertThrows(MissingBillingAccountMapException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_pendingTransfer() throws Exception {
|
||||
persistDomain();
|
||||
|
||||
@@ -34,6 +34,7 @@ import static google.registry.testing.TaskQueueHelper.assertDnsTasksEnqueued;
|
||||
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static org.joda.money.CurrencyUnit.EUR;
|
||||
import static org.joda.money.CurrencyUnit.JPY;
|
||||
import static org.joda.money.CurrencyUnit.USD;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
@@ -53,6 +54,7 @@ import google.registry.flows.domain.DomainFlowUtils.CurrencyValueScaleException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.DomainReservedException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.FeesMismatchException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.FeesRequiredForPremiumNameException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingBillingAccountMapException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.PremiumNameBlockedException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.RegistrarMustBeActiveForThisOperationException;
|
||||
@@ -106,6 +108,11 @@ class DomainRestoreRequestFlowTest
|
||||
@BeforeEach
|
||||
void initDomainTest() {
|
||||
createTld("tld");
|
||||
persistResource(
|
||||
loadRegistrar("TheRegistrar")
|
||||
.asBuilder()
|
||||
.setBillingAccountMap(ImmutableMap.of(USD, "123", EUR, "567"))
|
||||
.build());
|
||||
setEppInput("domain_update_restore_request.xml", ImmutableMap.of("DOMAIN", "example.tld"));
|
||||
}
|
||||
|
||||
@@ -705,6 +712,25 @@ class DomainRestoreRequestFlowTest
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_missingBillingAccount() throws Exception {
|
||||
persistPendingDeleteDomain();
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setCurrency(JPY)
|
||||
.setCreateBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRenewBillingCostTransitions(
|
||||
ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRegistryLockOrUnlockBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setServerStatusChangeBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setRestoreBillingCost(Money.ofMajor(JPY, 800))
|
||||
.build());
|
||||
EppException thrown = assertThrows(MissingBillingAccountMapException.class, this::runFlow);
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testSuccess_superuserNotAuthorizedForTld() throws Exception {
|
||||
persistResource(
|
||||
|
||||
@@ -44,6 +44,7 @@ import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptio
|
||||
import static google.registry.testing.HistoryEntrySubject.assertAboutHistoryEntries;
|
||||
import static google.registry.testing.HostResourceSubject.assertAboutHosts;
|
||||
import static google.registry.util.DateTimeUtils.START_OF_TIME;
|
||||
import static org.joda.money.CurrencyUnit.JPY;
|
||||
import static org.joda.money.CurrencyUnit.USD;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
@@ -70,6 +71,7 @@ import google.registry.flows.domain.DomainFlowUtils.CurrencyUnitMismatchExceptio
|
||||
import google.registry.flows.domain.DomainFlowUtils.CurrencyValueScaleException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.FeesMismatchException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.FeesRequiredForPremiumNameException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.MissingBillingAccountMapException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.PremiumNameBlockedException;
|
||||
import google.registry.flows.domain.DomainFlowUtils.RegistrarMustBeActiveForThisOperationException;
|
||||
@@ -1065,6 +1067,30 @@ class DomainTransferRequestFlowTest
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_missingBillingAccount() {
|
||||
setupDomain("example", "tld");
|
||||
persistResource(
|
||||
Registry.get("tld")
|
||||
.asBuilder()
|
||||
.setCurrency(JPY)
|
||||
.setCreateBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRenewBillingCostTransitions(
|
||||
ImmutableSortedMap.of(START_OF_TIME, Money.ofMajor(JPY, 800)))
|
||||
.setRegistryLockOrUnlockBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setServerStatusChangeBillingCost(Money.ofMajor(JPY, 800))
|
||||
.setRestoreBillingCost(Money.ofMajor(JPY, 800))
|
||||
.build());
|
||||
EppException thrown =
|
||||
assertThrows(
|
||||
MissingBillingAccountMapException.class,
|
||||
() ->
|
||||
doSuccessfulTest(
|
||||
"domain_transfer_request.xml", "domain_transfer_request_response.xml"));
|
||||
assertAboutEppExceptions().that(thrown).marshalsToXml();
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testSuccess_superuserNotAuthorizedForTld() throws Exception {
|
||||
setupDomain("example", "tld");
|
||||
|
||||
@@ -225,7 +225,9 @@ public final class OteAccountBuilderTest {
|
||||
|
||||
OteAccountBuilder oteSetupHelper = OteAccountBuilder.forRegistrarId("myclientid");
|
||||
|
||||
assertThat(assertThrows(IllegalStateException.class, () -> oteSetupHelper.buildAndPersist()))
|
||||
IllegalStateException thrown =
|
||||
assertThrows(IllegalStateException.class, () -> oteSetupHelper.buildAndPersist());
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.contains("Found existing object(s) conflicting with OT&E objects");
|
||||
}
|
||||
@@ -236,7 +238,9 @@ public final class OteAccountBuilderTest {
|
||||
|
||||
OteAccountBuilder oteSetupHelper = OteAccountBuilder.forRegistrarId("myclientid");
|
||||
|
||||
assertThat(assertThrows(IllegalStateException.class, () -> oteSetupHelper.buildAndPersist()))
|
||||
IllegalStateException thrown =
|
||||
assertThrows(IllegalStateException.class, () -> oteSetupHelper.buildAndPersist());
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.contains("Found existing object(s) conflicting with OT&E objects");
|
||||
}
|
||||
|
||||
+17
-16
@@ -131,10 +131,11 @@ public class DatabaseMigrationStateScheduleTest extends EntityTestCase {
|
||||
.put(startTime.plusHours(2), DATASTORE_PRIMARY_NO_ASYNC)
|
||||
.put(startTime.plusHours(3), DATASTORE_PRIMARY_READ_ONLY)
|
||||
.build();
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> jpaTm().transact(() -> DatabaseMigrationStateSchedule.set(nowInvalidMap))))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> jpaTm().transact(() -> DatabaseMigrationStateSchedule.set(nowInvalidMap)));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo(
|
||||
"Cannot transition from current state-as-of-now DATASTORE_ONLY "
|
||||
@@ -143,14 +144,13 @@ public class DatabaseMigrationStateScheduleTest extends EntityTestCase {
|
||||
|
||||
@Test
|
||||
void testFailure_notInTransaction() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalStateException.class,
|
||||
() ->
|
||||
DatabaseMigrationStateSchedule.set(
|
||||
DatabaseMigrationStateSchedule.DEFAULT_TRANSITION_MAP.toValueMap())))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Not in a transaction");
|
||||
IllegalStateException thrown =
|
||||
assertThrows(
|
||||
IllegalStateException.class,
|
||||
() ->
|
||||
DatabaseMigrationStateSchedule.set(
|
||||
DatabaseMigrationStateSchedule.DEFAULT_TRANSITION_MAP.toValueMap()));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Not in a transaction");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -188,10 +188,11 @@ public class DatabaseMigrationStateScheduleTest extends EntityTestCase {
|
||||
private void runInvalidTransition(MigrationState from, MigrationState to) {
|
||||
ImmutableSortedMap<DateTime, MigrationState> transitions =
|
||||
createMapEndingWithTransition(from, to);
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> jpaTm().transact(() -> DatabaseMigrationStateSchedule.set(transitions))))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> jpaTm().transact(() -> DatabaseMigrationStateSchedule.set(transitions)));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo(
|
||||
String.format("validStateTransitions map cannot transition from %s to %s.", from, to));
|
||||
|
||||
@@ -73,8 +73,10 @@ final class AbstractJsonableObjectTest {
|
||||
@JsonableElement String myString = "A";
|
||||
@JsonableElement("myString") String anotherString = "B";
|
||||
};
|
||||
assertThat(assertThrows(JsonableException.class, () -> jsonable.toJson()))
|
||||
.hasMessageThat().contains("Encountered the same field name 'myString' multiple times");
|
||||
JsonableException thrown = assertThrows(JsonableException.class, () -> jsonable.toJson());
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.contains("Encountered the same field name 'myString' multiple times");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -96,8 +98,8 @@ final class AbstractJsonableObjectTest {
|
||||
return in;
|
||||
}
|
||||
};
|
||||
assertThat(assertThrows(JsonableException.class, () -> jsonable.toJson()))
|
||||
.hasMessageThat().contains("must have no arguments");
|
||||
JsonableException thrown = assertThrows(JsonableException.class, () -> jsonable.toJson());
|
||||
assertThat(thrown).hasMessageThat().contains("must have no arguments");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -186,8 +188,10 @@ final class AbstractJsonableObjectTest {
|
||||
@JsonableElement("myList[]")
|
||||
Optional<Integer> myListMeaningOfLife = Optional.of(42);
|
||||
};
|
||||
assertThat(assertThrows(JsonableException.class, () -> jsonable.toJson()))
|
||||
.hasMessageThat().contains("Encountered the same field name 'myList' multiple times");
|
||||
JsonableException thrown = assertThrows(JsonableException.class, () -> jsonable.toJson());
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.contains("Encountered the same field name 'myList' multiple times");
|
||||
}
|
||||
|
||||
@RestrictJsonNames({"allowed", "allowedList[]"})
|
||||
@@ -226,7 +230,8 @@ final class AbstractJsonableObjectTest {
|
||||
@JsonableElement
|
||||
JsonableWithNameRestrictions wrong = new JsonableWithNameRestrictions();
|
||||
};
|
||||
assertThat(assertThrows(JsonableException.class, () -> jsonable.toJson()))
|
||||
JsonableException thrown = assertThrows(JsonableException.class, () -> jsonable.toJson());
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.contains("must be named one of ['allowed', 'allowedList[]'], but is named 'wrong'");
|
||||
}
|
||||
@@ -237,9 +242,8 @@ final class AbstractJsonableObjectTest {
|
||||
@JsonableElement
|
||||
JsonableWithNoAllowedNames wrong = new JsonableWithNoAllowedNames();
|
||||
};
|
||||
assertThat(assertThrows(JsonableException.class, () -> jsonable.toJson()))
|
||||
.hasMessageThat()
|
||||
.contains("is annotated with an empty RestrictJsonNames");
|
||||
JsonableException thrown = assertThrows(JsonableException.class, () -> jsonable.toJson());
|
||||
assertThat(thrown).hasMessageThat().contains("is annotated with an empty RestrictJsonNames");
|
||||
}
|
||||
|
||||
@RestrictJsonNames({})
|
||||
|
||||
@@ -232,17 +232,15 @@ public final class UpdateRegistrarRdapBaseUrlsActionTest {
|
||||
@TestOfyAndSql
|
||||
void testNoTlds() {
|
||||
deleteTld("tld");
|
||||
assertThat(assertThrows(IllegalArgumentException.class, action::run))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("There must exist at least one REAL TLD.");
|
||||
IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, action::run);
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("There must exist at least one REAL TLD.");
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testOnlyTestTlds() {
|
||||
persistResource(Registry.get("tld").asBuilder().setTldType(TldType.TEST).build());
|
||||
assertThat(assertThrows(IllegalArgumentException.class, action::run))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("There must exist at least one REAL TLD.");
|
||||
IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, action::run);
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("There must exist at least one REAL TLD.");
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
@@ -278,7 +276,8 @@ public final class UpdateRegistrarRdapBaseUrlsActionTest {
|
||||
httpTransport.addNextResponse(badLoginResponse);
|
||||
httpTransport.addNextResponse(badLoginResponse);
|
||||
|
||||
assertThat(assertThrows(RuntimeException.class, action::run))
|
||||
RuntimeException thrown = assertThrows(RuntimeException.class, action::run);
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Error contacting MosAPI server. Tried TLDs [secondtld, tld]");
|
||||
}
|
||||
@@ -316,9 +315,8 @@ public final class UpdateRegistrarRdapBaseUrlsActionTest {
|
||||
httpTransport.addNextResponse(logoutResponse);
|
||||
httpTransport.addNextResponse(badLoginResponse);
|
||||
|
||||
assertThat(assertThrows(RuntimeException.class, action::run))
|
||||
.hasCauseThat()
|
||||
.isInstanceOf(JsonSyntaxException.class);
|
||||
RuntimeException thrown = assertThrows(RuntimeException.class, action::run);
|
||||
assertThat(thrown).hasCauseThat().isInstanceOf(JsonSyntaxException.class);
|
||||
}
|
||||
|
||||
private static void addValidResponses(TestHttpTransport httpTransport) {
|
||||
|
||||
+3
-3
@@ -403,9 +403,9 @@ class AuthenticatedRegistrarAccessorTest {
|
||||
AuthenticatedRegistrarAccessor registrarAccessor =
|
||||
AuthenticatedRegistrarAccessor.createForTesting(ImmutableSetMultimap.of());
|
||||
|
||||
assertThat(assertThrows(RegistrarAccessDeniedException.class, registrarAccessor::guessClientId))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("TestUserId isn't associated with any registrar");
|
||||
RegistrarAccessDeniedException thrown =
|
||||
assertThrows(RegistrarAccessDeniedException.class, registrarAccessor::guessClientId);
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("TestUserId isn't associated with any registrar");
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
|
||||
+22
-25
@@ -61,41 +61,38 @@ abstract class CreateOrUpdateReservedListCommandTestCase<
|
||||
|
||||
@Test
|
||||
void testFailure_fileDoesntExist() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
ParameterException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--name=xn--q9jyb4c_common-reserved",
|
||||
"--input=" + reservedTermsPath + "-nonexistent")))
|
||||
.hasMessageThat()
|
||||
.contains("-i not found");
|
||||
ParameterException thrown =
|
||||
assertThrows(
|
||||
ParameterException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--name=xn--q9jyb4c_common-reserved",
|
||||
"--input=" + reservedTermsPath + "-nonexistent"));
|
||||
assertThat(thrown).hasMessageThat().contains("-i not found");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_fileDoesntParse() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--name=xn--q9jyb4c_common-reserved",
|
||||
"--input=" + invalidReservedTermsPath)))
|
||||
.hasMessageThat()
|
||||
.contains("No enum constant");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--name=xn--q9jyb4c_common-reserved", "--input=" + invalidReservedTermsPath));
|
||||
assertThat(thrown).hasMessageThat().contains("No enum constant");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_invalidLabel_includesFullDomainName() throws Exception {
|
||||
Files.asCharSink(new File(invalidReservedTermsPath), UTF_8)
|
||||
.write("example.tld,FULLY_BLOCKED\n\n");
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--name=xn--q9jyb4c_common-reserved",
|
||||
"--input=" + invalidReservedTermsPath)))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
"--name=xn--q9jyb4c_common-reserved", "--input=" + invalidReservedTermsPath));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Label example.tld must not be a multi-level domain name");
|
||||
}
|
||||
|
||||
@@ -60,7 +60,6 @@ import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.DateTimeZone;
|
||||
import org.junit.Assert;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
import org.mockito.junit.jupiter.MockitoSettings;
|
||||
@@ -317,12 +316,13 @@ public final class DomainLockUtilsTest {
|
||||
domainLockUtils.saveNewRegistryUnlockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", false, Optional.empty());
|
||||
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryUnlockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", false, Optional.empty())))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryUnlockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", false, Optional.empty()));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo("A pending unlock action already exists for example.tld");
|
||||
}
|
||||
@@ -332,37 +332,38 @@ public final class DomainLockUtilsTest {
|
||||
RegistryLock lock =
|
||||
domainLockUtils.saveNewRegistryLockRequest(DOMAIN_NAME, "TheRegistrar", null, true);
|
||||
domainLockUtils.verifyAndApplyLock(lock.getVerificationCode(), true);
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryUnlockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", false, Optional.empty())))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryUnlockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", false, Optional.empty()));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Non-admin user cannot unlock admin-locked domain example.tld");
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_createLock_unknownDomain() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryLockRequest(
|
||||
"asdf.tld", "TheRegistrar", POC_ID, false)))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Domain doesn't exist");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryLockRequest(
|
||||
"asdf.tld", "TheRegistrar", POC_ID, false));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Domain doesn't exist");
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_createLock_alreadyPendingLock() {
|
||||
domainLockUtils.saveNewRegistryLockRequest(DOMAIN_NAME, "TheRegistrar", POC_ID, false);
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryLockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", POC_ID, false)))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryLockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", POC_ID, false));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo("A pending or completed lock action already exists for example.tld");
|
||||
}
|
||||
@@ -370,26 +371,24 @@ public final class DomainLockUtilsTest {
|
||||
@TestOfyAndSql
|
||||
void testFailure_createLock_alreadyLocked() {
|
||||
persistResource(domain.asBuilder().setStatusValues(REGISTRY_LOCK_STATUSES).build());
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryLockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", POC_ID, false)))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Domain example.tld is already locked");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryLockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", POC_ID, false));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Domain example.tld is already locked");
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_createUnlock_alreadyUnlocked() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryUnlockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", false, Optional.empty())))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Domain example.tld is already unlocked");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
domainLockUtils.saveNewRegistryUnlockRequest(
|
||||
DOMAIN_NAME, "TheRegistrar", false, Optional.empty()));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Domain example.tld is already unlocked");
|
||||
}
|
||||
|
||||
@TestOfyAndSql
|
||||
@@ -398,12 +397,11 @@ public final class DomainLockUtilsTest {
|
||||
domainLockUtils.saveNewRegistryLockRequest(DOMAIN_NAME, "TheRegistrar", POC_ID, false);
|
||||
domainLockUtils.verifyAndApplyLock(lock.getVerificationCode(), false);
|
||||
domain = loadByEntity(domain);
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyLock(lock.getVerificationCode(), false)))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Domain example.tld is already locked");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyLock(lock.getVerificationCode(), false));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Domain example.tld is already locked");
|
||||
assertNoDomainChanges();
|
||||
}
|
||||
|
||||
@@ -412,12 +410,11 @@ public final class DomainLockUtilsTest {
|
||||
RegistryLock lock =
|
||||
domainLockUtils.saveNewRegistryLockRequest(DOMAIN_NAME, "TheRegistrar", POC_ID, false);
|
||||
clock.advanceBy(standardDays(1));
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyLock(lock.getVerificationCode(), true)))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("The pending lock has expired; please try again");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyLock(lock.getVerificationCode(), true));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("The pending lock has expired; please try again");
|
||||
assertNoDomainChanges();
|
||||
}
|
||||
|
||||
@@ -425,12 +422,11 @@ public final class DomainLockUtilsTest {
|
||||
void testFailure_applyLock_nonAdmin_applyAdminLock() {
|
||||
RegistryLock lock =
|
||||
domainLockUtils.saveNewRegistryLockRequest(DOMAIN_NAME, "TheRegistrar", null, true);
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyLock(lock.getVerificationCode(), false)))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Non-admin user cannot complete admin lock");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyLock(lock.getVerificationCode(), false));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Non-admin user cannot complete admin lock");
|
||||
assertNoDomainChanges();
|
||||
}
|
||||
|
||||
@@ -444,12 +440,11 @@ public final class DomainLockUtilsTest {
|
||||
DOMAIN_NAME, "TheRegistrar", false, Optional.empty());
|
||||
domainLockUtils.verifyAndApplyUnlock(unlock.getVerificationCode(), false);
|
||||
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyUnlock(unlock.getVerificationCode(), false)))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Domain example.tld is already unlocked");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyUnlock(unlock.getVerificationCode(), false));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Domain example.tld is already unlocked");
|
||||
assertNoDomainChanges();
|
||||
}
|
||||
|
||||
@@ -461,12 +456,11 @@ public final class DomainLockUtilsTest {
|
||||
// reload to pick up modification times, etc
|
||||
lock = getRegistryLockByVerificationCode(verificationCode).get();
|
||||
domain = persistResource(domain.asBuilder().setStatusValues(REGISTRY_LOCK_STATUSES).build());
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyLock(verificationCode, false)))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Domain example.tld is already locked");
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.verifyAndApplyLock(verificationCode, false));
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Domain example.tld is already locked");
|
||||
|
||||
// Failure during Datastore portion shouldn't affect the SQL object
|
||||
RegistryLock afterAction = getRegistryLockByVerificationCode(lock.getVerificationCode()).get();
|
||||
@@ -517,10 +511,11 @@ public final class DomainLockUtilsTest {
|
||||
.setRegistrarPocId("someone@example.com")
|
||||
.setVerificationCode("hi")
|
||||
.build());
|
||||
assertThat(
|
||||
Assert.assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.enqueueDomainRelock(lockWithoutDuration)))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() -> domainLockUtils.enqueueDomainRelock(lockWithoutDuration));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo(
|
||||
String.format(
|
||||
|
||||
+19
-20
@@ -139,14 +139,15 @@ public class SetDatabaseMigrationStateCommandTest
|
||||
|
||||
@TestOfyAndSql
|
||||
void testFailure_invalidTransition() {
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
String.format(
|
||||
"--migration_schedule=%s=DATASTORE_ONLY,%s=DATASTORE_PRIMARY_READ_ONLY",
|
||||
START_OF_TIME, START_OF_TIME.plusHours(1)))))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
String.format(
|
||||
"--migration_schedule=%s=DATASTORE_ONLY,%s=DATASTORE_PRIMARY_READ_ONLY",
|
||||
START_OF_TIME, START_OF_TIME.plusHours(1))));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo(
|
||||
"validStateTransitions map cannot transition from DATASTORE_ONLY "
|
||||
@@ -158,18 +159,16 @@ public class SetDatabaseMigrationStateCommandTest
|
||||
// The map we pass in is valid by itself, but we can't go from DATASTORE_ONLY now to
|
||||
// DATASTORE_PRIMARY_READ_ONLY now
|
||||
DateTime now = fakeClock.nowUtc();
|
||||
assertThat(
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
String.format(
|
||||
"--migration_schedule=%s=DATASTORE_ONLY,%s=DATASTORE_PRIMARY,"
|
||||
+ "%s=DATASTORE_PRIMARY_NO_ASYNC,%s=DATASTORE_PRIMARY_READ_ONLY",
|
||||
START_OF_TIME,
|
||||
now.minusHours(3),
|
||||
now.minusHours(2),
|
||||
now.minusHours(1)))))
|
||||
IllegalArgumentException thrown =
|
||||
assertThrows(
|
||||
IllegalArgumentException.class,
|
||||
() ->
|
||||
runCommandForced(
|
||||
String.format(
|
||||
"--migration_schedule=%s=DATASTORE_ONLY,%s=DATASTORE_PRIMARY,"
|
||||
+ "%s=DATASTORE_PRIMARY_NO_ASYNC,%s=DATASTORE_PRIMARY_READ_ONLY",
|
||||
START_OF_TIME, now.minusHours(3), now.minusHours(2), now.minusHours(1))));
|
||||
assertThat(thrown)
|
||||
.hasMessageThat()
|
||||
.isEqualTo(
|
||||
"Cannot transition from current state-as-of-now DATASTORE_ONLY "
|
||||
|
||||
+6
-9
@@ -226,25 +226,22 @@ final class RegistryLockGetActionTest {
|
||||
@Test
|
||||
void testFailure_invalidMethod() {
|
||||
action.method = Method.POST;
|
||||
assertThat(assertThrows(IllegalArgumentException.class, action::run))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("Only GET requests allowed");
|
||||
IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, action::run);
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("Only GET requests allowed");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_noAuthInfo() {
|
||||
action.authResult = AuthResult.NOT_AUTHENTICATED;
|
||||
assertThat(assertThrows(IllegalArgumentException.class, action::run))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("User auth info must be present");
|
||||
IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, action::run);
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("User auth info must be present");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFailure_noClientId() {
|
||||
action.paramClientId = Optional.empty();
|
||||
assertThat(assertThrows(IllegalArgumentException.class, action::run))
|
||||
.hasMessageThat()
|
||||
.isEqualTo("clientId must be present");
|
||||
IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, action::run);
|
||||
assertThat(thrown).hasMessageThat().isEqualTo("clientId must be present");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -269,6 +269,7 @@ information.
|
||||
* Domain name must have exactly one part above the TLD.
|
||||
* Domain name must not equal an existing multi-part TLD.
|
||||
* 2201
|
||||
* Registrar is missing the billing account map for this currency type.
|
||||
* Registrar is not authorized to access this TLD.
|
||||
* 2306
|
||||
* Too many resource checks requested in one check command.
|
||||
@@ -304,6 +305,7 @@ An EPP flow that checks whether domain labels are trademarked.
|
||||
* 2004
|
||||
* Domain name is under tld which doesn't exist.
|
||||
* 2201
|
||||
* Registrar is missing the billing account map for this currency type.
|
||||
* Registrar is not authorized to access this TLD.
|
||||
* 2304
|
||||
* The claims period for this TLD has ended.
|
||||
@@ -361,6 +363,7 @@ An EPP flow that creates a new domain resource.
|
||||
* The allocation token is invalid.
|
||||
* Only a tool can pass a metadata extension.
|
||||
* Registrar is not authorized to access this TLD.
|
||||
* Registrar is missing the billing account map for this currency type.
|
||||
* Registrar must be active in order to perform this operation.
|
||||
* 2302
|
||||
* Resource with this id already exists.
|
||||
@@ -501,6 +504,7 @@ comes in at the exact millisecond that the domain would have expired.
|
||||
server policy.
|
||||
* 2201
|
||||
* The specified resource belongs to another client.
|
||||
* Registrar is missing the billing account map for this currency type.
|
||||
* Registrar is not authorized to access this TLD.
|
||||
* Registrar must be active in order to perform this operation.
|
||||
* 2303
|
||||
@@ -561,6 +565,7 @@ regardless of what the original expiration time was.
|
||||
* Specified extension is not implemented.
|
||||
* 2201
|
||||
* The specified resource belongs to another client.
|
||||
* Registrar is missing the billing account map for this currency type.
|
||||
* Registrar is not authorized to access this TLD.
|
||||
* Registrar must be active in order to perform this operation.
|
||||
* 2303
|
||||
@@ -736,6 +741,7 @@ new ones with the correct approval time).
|
||||
server policy.
|
||||
* 2201
|
||||
* Authorization info is required to request a transfer.
|
||||
* Registrar is missing the billing account map for this currency type.
|
||||
* Registrar is not authorized to access this TLD.
|
||||
* Registrar must be active in order to perform this operation.
|
||||
* 2202
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -68,7 +69,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
|
||||
@@ -20,7 +21,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -66,7 +67,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
org.yaml:snakeyaml:1.17
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -70,7 +71,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -70,7 +71,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -70,7 +71,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -70,7 +71,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -25,7 +26,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -77,7 +78,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -24,7 +25,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -75,7 +76,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.junit.jupiter:junit-jupiter-api:5.7.0
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -25,7 +26,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -79,7 +80,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -25,7 +26,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -79,7 +80,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -71,7 +72,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
|
||||
@@ -20,7 +21,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -69,7 +70,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
org.yaml:snakeyaml:1.17
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -71,7 +72,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -71,7 +72,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -71,7 +72,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -71,7 +72,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -25,7 +26,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -83,7 +84,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -24,7 +25,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -81,7 +82,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.junit.jupiter:junit-jupiter-api:5.7.0
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -25,7 +26,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -83,7 +84,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -25,7 +26,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -83,7 +84,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -31,7 +32,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -84,7 +85,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
|
||||
@@ -30,7 +31,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -82,7 +83,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
org.yaml:snakeyaml:1.17
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -31,7 +32,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -84,7 +85,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -31,7 +32,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -84,7 +85,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -31,7 +32,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -84,7 +85,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -31,7 +32,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -84,7 +85,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -5,6 +5,7 @@ com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.12.1
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -35,7 +36,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -96,7 +97,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -5,6 +5,7 @@ com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.12.1
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -34,7 +35,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -94,7 +95,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
org.junit.jupiter:junit-jupiter-api:5.7.0
|
||||
|
||||
@@ -5,6 +5,7 @@ com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.12.1
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -35,7 +36,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -96,7 +97,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -5,6 +5,7 @@ com.beust:jcommander:1.60
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.12.1
|
||||
com.fasterxml.jackson.core:jackson-core:2.12.1
|
||||
com.fasterxml.jackson:jackson-bom:2.12.1
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -35,7 +36,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -96,7 +97,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:1.3
|
||||
|
||||
@@ -108,7 +108,7 @@ def get_nomulus_root() -> str:
|
||||
The absolute path to the Nomulus root directory.
|
||||
"""
|
||||
for folder in pathlib.Path(__file__).parents:
|
||||
if folder.name != 'nomulus':
|
||||
if not folder.joinpath('rollback_tool').exists():
|
||||
continue
|
||||
if not folder.joinpath('settings.gradle').exists():
|
||||
continue
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -20,7 +21,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -60,7 +61,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.89.2
|
||||
@@ -19,7 +20,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -58,7 +59,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
org.yaml:snakeyaml:1.17
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -61,7 +62,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -61,7 +62,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -61,7 +62,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# This is a Gradle generated file for dependency locking.
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.google.android:annotations:4.1.1.4
|
||||
com.google.api-client:google-api-client:1.31.3
|
||||
com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2
|
||||
@@ -21,7 +22,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava:30.1.1-jre
|
||||
@@ -61,7 +62,7 @@ org.apache.httpcomponents:httpcore:4.4.14
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.8.0
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.threeten:threetenbp:1.5.1
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -25,7 +26,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava-testlib:30.1.1-jre
|
||||
@@ -73,7 +74,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:2.2
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -24,7 +25,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
com.google.guava:guava-testlib:30.1.1-jre
|
||||
@@ -71,7 +72,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:2.2
|
||||
org.hamcrest:hamcrest:2.2
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -26,7 +27,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -75,7 +76,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:2.2
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Manual edits can break the build and are not advised.
|
||||
# This file is expected to be part of source control.
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.10.3
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3
|
||||
com.github.docker-java:docker-java-api:3.2.7
|
||||
com.github.docker-java:docker-java-transport-zerodep:3.2.7
|
||||
com.github.docker-java:docker-java-transport:3.2.7
|
||||
@@ -26,7 +27,7 @@ com.google.cloud:google-cloud-tasks:1.33.2
|
||||
com.google.code.findbugs:jsr305:3.0.2
|
||||
com.google.code.gson:gson:2.8.7
|
||||
com.google.dagger:dagger:2.33
|
||||
com.google.errorprone:error_prone_annotations:2.7.1
|
||||
com.google.errorprone:error_prone_annotations:2.10.0
|
||||
com.google.flogger:flogger-system-backend:0.7.4
|
||||
com.google.flogger:flogger:0.7.4
|
||||
com.google.guava:failureaccess:1.0.1
|
||||
@@ -75,7 +76,7 @@ org.apiguardian:apiguardian-api:1.1.0
|
||||
org.bouncycastle:bcpkix-jdk15on:1.67
|
||||
org.bouncycastle:bcprov-jdk15on:1.67
|
||||
org.checkerframework:checker-compat-qual:2.5.5
|
||||
org.checkerframework:checker-qual:3.9.1
|
||||
org.checkerframework:checker-qual:3.19.0
|
||||
org.codehaus.mojo:animal-sniffer-annotations:1.20
|
||||
org.conscrypt:conscrypt-openjdk-uber:2.5.1
|
||||
org.hamcrest:hamcrest-core:2.2
|
||||
|
||||
Reference in New Issue
Block a user