diff --git a/build.gradle b/build.gradle index b30b2668c..8c93817a6 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ buildscript { dependencies { classpath 'com.google.cloud.tools:appengine-gradle-plugin:2.4.1' - classpath 'net.ltgt.gradle:gradle-errorprone-plugin:2.0.2' + classpath 'net.ltgt.gradle:gradle-errorprone-plugin:3.1.0' classpath 'org.sonatype.aether:aether-api:1.13.1' classpath 'org.sonatype.aether:aether-impl:1.13.1' } @@ -41,9 +41,9 @@ plugins { // Re-enable when compatible with Gradle 8 // id 'nebula.lint' version '16.0.2' - id 'net.ltgt.errorprone' version '2.0.2' + id 'net.ltgt.errorprone' version '3.1.0' id 'checkstyle' - id 'com.github.johnrengelman.shadow' version '5.1.0' + id 'com.github.johnrengelman.shadow' version '8.1.1' // NodeJs plugin id "com.github.node-gradle.node" version "3.0.1" @@ -307,8 +307,7 @@ subprojects { afterEvaluate { if (rootProject.enableDependencyLocking.toBoolean() - && project.name != 'integration' - && project.name != 'java8compatibility') { + && project.name != 'integration') { // The ':integration' project runs server/schema integration tests using // dynamically specified jars with no transitive dependency. Therefore // dependency-locking does not make sense. Furthermore, during @@ -316,9 +315,6 @@ subprojects { // immutable. Locking activation would trigger an invalid operation // exception. // - // The ':java8compatibility' project is test-only. Its source does not go - // into production. - // // For all other projects, due to problem with the gradle-license-report // plugin, the dependencyLicenseReport configuration must opt out of // dependency-locking. See dependency_lic.gradle for the reason why. @@ -362,9 +358,13 @@ subprojects { apply from: "${rootDir.path}/java_common.gradle" - if (project.name != 'docs') { + if (!rootProject.enableCrossReferencing.toBoolean()) { compileJava { - // TODO: Remove this once we migrate off AppEngine. + // TODO: Remove this once we migrate off of AppEngine. + options.release = 8 + } + compileTestJava { + // TODO: Remove this once we migrate off of AppEngine. options.release = 8 } } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index a69065fba..786ea811a 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -36,7 +36,7 @@ plugins { // We don't anticipate enabling the Gradle lint plugin because they will not support Kotlin // See https://github.com/nebula-plugins/gradle-lint-plugin/issues/166 // id 'nebula.lint' version '16.0.2' - id("net.ltgt.errorprone") version "2.0.2" + id("net.ltgt.errorprone") version "3.1.0" checkstyle id("com.diffplug.spotless") version "6.20.0" } diff --git a/buildSrc/buildscript-gradle.lockfile b/buildSrc/buildscript-gradle.lockfile index afed2c7a6..02c775a54 100644 --- a/buildSrc/buildscript-gradle.lockfile +++ b/buildSrc/buildscript-gradle.lockfile @@ -15,14 +15,14 @@ com.squareup.okhttp3:okhttp:4.10.0=classpath com.squareup.okio:okio-jvm:3.0.0=classpath com.squareup.okio:okio:3.0.0=classpath dev.equo.ide:solstice:1.3.1=classpath -net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin:2.0.2=classpath -net.ltgt.gradle:gradle-errorprone-plugin:2.0.2=classpath +net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin:3.1.0=classpath +net.ltgt.gradle:gradle-errorprone-plugin:3.1.0=classpath org.eclipse.jgit:org.eclipse.jgit:6.6.0.202305301015-r=classpath org.eclipse.platform:org.eclipse.osgi:3.18.300=classpath -org.jetbrains.kotlin:kotlin-stdlib-common:1.9.0=classpath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0=classpath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0=classpath -org.jetbrains.kotlin:kotlin-stdlib:1.9.0=classpath +org.jetbrains.kotlin:kotlin-stdlib-common:1.9.20=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0=classpath +org.jetbrains.kotlin:kotlin-stdlib:1.9.20=classpath org.jetbrains:annotations:13.0=classpath org.slf4j:slf4j-api:1.7.36=classpath org.tukaani:xz:1.9=classpath diff --git a/buildSrc/gradle.lockfile b/buildSrc/gradle.lockfile index 62a3dd32f..fa59eca5a 100644 --- a/buildSrc/gradle.lockfile +++ b/buildSrc/gradle.lockfile @@ -1,11 +1,11 @@ # 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. -aopalliance:aopalliance:1.0=buildScriptClasspath,compileClasspath +aopalliance:aopalliance:1.0=annotationProcessor,buildScriptClasspath,compileClasspath args4j:args4j:2.0.23=buildScriptClasspath,compileClasspath com.fasterxml.jackson.core:jackson-core:2.14.2=buildScriptClasspath,compileClasspath com.fasterxml.jackson:jackson-bom:2.14.2=buildScriptClasspath,compileClasspath -com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor com.google.android:annotations:4.1.1.4=buildScriptClasspath com.google.api-client:google-api-client:2.2.0=buildScriptClasspath,compileClasspath @@ -21,29 +21,30 @@ com.google.api:gax:2.31.0=buildScriptClasspath,compileClasspath com.google.apis:google-api-services-storage:v1-rev20230301-2.0.0=buildScriptClasspath,compileClasspath com.google.auth:google-auth-library-credentials:1.19.0=buildScriptClasspath,compileClasspath com.google.auth:google-auth-library-oauth2-http:1.19.0=buildScriptClasspath,compileClasspath +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor com.google.auto.value:auto-value-annotations:1.10.1=buildScriptClasspath,compileClasspath +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor com.google.auto.value:auto-value:1.10.4=annotationProcessor -com.google.auto:auto-common:0.10=annotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor com.google.cloud:google-cloud-core-grpc:2.21.0=buildScriptClasspath,compileClasspath com.google.cloud:google-cloud-core-http:2.21.0=buildScriptClasspath,compileClasspath com.google.cloud:google-cloud-core:2.21.0=buildScriptClasspath,compileClasspath com.google.cloud:google-cloud-storage:2.22.6=buildScriptClasspath,compileClasspath -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,buildScriptClasspath,compileClasspath com.google.code.gson:gson:2.10.1=buildScriptClasspath,compileClasspath com.google.common.html.types:types:1.0.6=buildScriptClasspath,compileClasspath -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=buildScriptClasspath,compileClasspath -com.google.errorprone:error_prone_annotations:2.3.4=annotationProcessor -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,buildScriptClasspath,compileClasspath +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor com.google.escapevelocity:escapevelocity:0.9.1=buildScriptClasspath,compileClasspath com.google.guava:failureaccess:1.0.1=annotationProcessor com.google.guava:failureaccess:1.0.2=buildScriptClasspath,compileClasspath -com.google.guava:guava:27.0.1-jre=annotationProcessor +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor +com.google.guava:guava:32.1.1-jre=annotationProcessor com.google.guava:guava:33.0.0-jre=buildScriptClasspath,compileClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,buildScriptClasspath,compileClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=buildScriptClasspath,compileClasspath com.google.http-client:google-http-client-apache-v2:1.43.3=buildScriptClasspath,compileClasspath com.google.http-client:google-http-client-appengine:1.43.3=buildScriptClasspath,compileClasspath com.google.http-client:google-http-client-gson:1.43.3=buildScriptClasspath,compileClasspath @@ -51,19 +52,20 @@ com.google.http-client:google-http-client-jackson2:1.43.3=buildScriptClasspath,c com.google.http-client:google-http-client:1.43.3=buildScriptClasspath,compileClasspath com.google.inject.extensions:guice-multibindings:4.1.0=buildScriptClasspath,compileClasspath com.google.inject:guice:4.1.0=buildScriptClasspath,compileClasspath -com.google.j2objc:j2objc-annotations:1.1=annotationProcessor +com.google.inject:guice:5.1.0=annotationProcessor com.google.j2objc:j2objc-annotations:2.8=buildScriptClasspath,compileClasspath com.google.jsinterop:jsinterop-annotations:1.0.1=buildScriptClasspath,compileClasspath com.google.oauth-client:google-oauth-client:1.34.1=buildScriptClasspath,compileClasspath com.google.protobuf:protobuf-java-util:3.23.2=buildScriptClasspath,compileClasspath +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor com.google.protobuf:protobuf-java:3.23.2=buildScriptClasspath,compileClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor com.google.re2j:re2j:1.6=buildScriptClasspath com.google.template:soy:2021-02-01=buildScriptClasspath,compileClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor com.ibm.icu:icu4j:57.1=buildScriptClasspath,compileClasspath commons-codec:commons-codec:1.15=buildScriptClasspath,compileClasspath commons-logging:commons-logging:1.2=buildScriptClasspath,compileClasspath +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor io.grpc:grpc-alts:1.55.3=buildScriptClasspath,compileClasspath io.grpc:grpc-api:1.55.3=buildScriptClasspath,compileClasspath io.grpc:grpc-auth:1.55.3=buildScriptClasspath,compileClasspath @@ -84,16 +86,13 @@ io.opencensus:opencensus-proto:0.2.0=buildScriptClasspath io.perfmark:perfmark-api:0.26.0=buildScriptClasspath javax.annotation:javax.annotation-api:1.3.2=buildScriptClasspath,compileClasspath javax.annotation:jsr250-api:1.0=buildScriptClasspath,compileClasspath -javax.inject:javax.inject:1=buildScriptClasspath,compileClasspath +javax.inject:javax.inject:1=annotationProcessor,buildScriptClasspath,compileClasspath org.apache.commons:commons-lang3:3.13.0=buildScriptClasspath,compileClasspath org.apache.commons:commons-text:1.11.0=buildScriptClasspath,compileClasspath org.apache.httpcomponents:httpclient:4.5.14=buildScriptClasspath,compileClasspath org.apache.httpcomponents:httpcore:4.4.16=buildScriptClasspath,compileClasspath -org.checkerframework:checker-qual:3.0.0=annotationProcessor +org.checkerframework:checker-qual:3.33.0=annotationProcessor org.checkerframework:checker-qual:3.41.0=buildScriptClasspath,compileClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor org.codehaus.mojo:animal-sniffer-annotations:1.23=buildScriptClasspath org.conscrypt:conscrypt-openjdk-uber:2.5.2=buildScriptClasspath,compileClasspath org.json:json:20160212=buildScriptClasspath,compileClasspath @@ -102,9 +101,6 @@ org.ow2.asm:asm-commons:7.0=buildScriptClasspath,compileClasspath org.ow2.asm:asm-tree:7.0=buildScriptClasspath,compileClasspath org.ow2.asm:asm-util:7.0=buildScriptClasspath,compileClasspath org.ow2.asm:asm:7.0=buildScriptClasspath,compileClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor org.threeten:threetenbp:1.6.8=buildScriptClasspath,compileClasspath empty= diff --git a/buildSrc/src/main/java/google/registry/gradle/plugin/CoverPageGenerator.java b/buildSrc/src/main/java/google/registry/gradle/plugin/CoverPageGenerator.java index e316cf976..629d6003a 100644 --- a/buildSrc/src/main/java/google/registry/gradle/plugin/CoverPageGenerator.java +++ b/buildSrc/src/main/java/google/registry/gradle/plugin/CoverPageGenerator.java @@ -35,7 +35,7 @@ import java.util.function.Supplier; import java.util.stream.Collectors; /** - * Creates the files for a web-page summary of a given {@Link ProjectData}. + * Creates the files for a web-page summary of a given {@link ProjectData}. * *

The main job of this class is rendering a tailored cover page that includes information about * the project and any task that ran. diff --git a/buildscript-gradle.lockfile b/buildscript-gradle.lockfile index d2be34106..ab2a09315 100644 --- a/buildscript-gradle.lockfile +++ b/buildscript-gradle.lockfile @@ -11,8 +11,8 @@ com.diffplug.spotless:spotless-lib:2.40.0=classpath com.diffplug.spotless:spotless-plugin-gradle:6.20.0=classpath com.dorongold.plugins:task-tree:2.1.0=classpath com.dorongold.task-tree:com.dorongold.task-tree.gradle.plugin:2.1.0=classpath -com.github.jengelman.gradle.plugins:shadow:5.1.0=classpath -com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin:5.1.0=classpath +com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin:8.1.1=classpath +com.github.johnrengelman:shadow:8.1.1=classpath com.github.node-gradle.node:com.github.node-gradle.node.gradle.plugin:3.0.1=classpath com.github.node-gradle:gradle-node-plugin:3.0.1=classpath com.google.cloud.tools:appengine-gradle-plugin:2.4.1=classpath @@ -29,35 +29,34 @@ com.googlecode.javaewah:JavaEWAH:1.2.3=classpath com.squareup.okhttp3:okhttp:4.10.0=classpath com.squareup.okio:okio-jvm:3.0.0=classpath com.squareup.okio:okio:3.0.0=classpath -commons-io:commons-io:2.6=classpath +commons-io:commons-io:2.11.0=classpath dev.equo.ide:solstice:1.3.1=classpath -net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin:2.0.2=classpath -net.ltgt.gradle:gradle-errorprone-plugin:2.0.2=classpath -org.apache.ant:ant-launcher:1.9.7=classpath -org.apache.ant:ant:1.9.7=classpath +net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin:3.1.0=classpath +net.ltgt.gradle:gradle-errorprone-plugin:3.1.0=classpath +org.apache.ant:ant-launcher:1.10.13=classpath +org.apache.ant:ant:1.10.13=classpath org.apache.commons:commons-compress:1.20=classpath org.apache.commons:commons-lang3:3.5=classpath org.checkerframework:checker-qual:2.10.0=classpath -org.codehaus.plexus:plexus-utils:3.0.24=classpath +org.codehaus.plexus:plexus-utils:3.5.1=classpath org.eclipse.jgit:org.eclipse.jgit:6.6.0.202305301015-r=classpath org.eclipse.platform:org.eclipse.osgi:3.18.300=classpath org.glassfish:javax.json:1.0.4=classpath -org.jdom:jdom2:2.0.6=classpath +org.jdom:jdom2:2.0.6.1=classpath org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20=classpath org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31=classpath org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31=classpath org.jetbrains.kotlin:kotlin-stdlib:1.6.20=classpath org.jetbrains:annotations:13.0=classpath -org.ow2.asm:asm-analysis:7.0-beta=classpath -org.ow2.asm:asm-commons:7.0-beta=classpath -org.ow2.asm:asm-tree:7.0-beta=classpath -org.ow2.asm:asm:7.0-beta=classpath +org.ow2.asm:asm-commons:9.4=classpath +org.ow2.asm:asm-tree:9.4=classpath +org.ow2.asm:asm:9.4=classpath org.slf4j:slf4j-api:1.7.36=classpath org.sonatype.aether:aether-api:1.13.1=classpath org.sonatype.aether:aether-impl:1.13.1=classpath org.sonatype.aether:aether-spi:1.13.1=classpath org.sonatype.aether:aether-util:1.13.1=classpath org.tukaani:xz:1.9=classpath -org.vafer:jdependency:2.1.1=classpath +org.vafer:jdependency:2.8.0=classpath org.yaml:snakeyaml:1.21=classpath empty= diff --git a/common/gradle.lockfile b/common/gradle.lockfile index dc5ab55af..fc1796656 100644 --- a/common/gradle.lockfile +++ b/common/gradle.lockfile @@ -1,51 +1,51 @@ # 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.7.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.github.ben-manes.caffeine:caffeine:2.9.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.google.auto.value:auto-value-annotations:1.10.4=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,testing,testingAnnotationProcessor,testingCompileClasspath -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -com.google.errorprone:error_prone_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,testing,testingAnnotationProcessor,testingCompileClasspath com.google.errorprone:error_prone_annotations:2.7.1=checkstyle -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.flogger:flogger:0.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -com.google.guava:guava:27.0.1-jre=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.google.guava:guava:31.0.1-jre=checkstyle +com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.google.guava:guava:33.0.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,testing,testingAnnotationProcessor,testingCompileClasspath -com.google.j2objc:j2objc-annotations:1.1=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.google.j2objc:j2objc-annotations:1.3=checkstyle com.google.j2objc:j2objc-annotations:2.8=compileClasspath,testCompileClasspath,testingCompileClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.google.truth:truth:1.2.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor com.puppycrawl.tools:checkstyle:9.3=checkstyle commons-beanutils:commons-beanutils:1.9.4=checkstyle commons-collections:commons-collections:3.2.2=checkstyle info.picocli:picocli:4.6.2=checkstyle -io.github.java-diff-utils:java-diff-utils:4.12=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -javax.inject:javax.inject:1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,testing,testingAnnotationProcessor,testingCompileClasspath +javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath,testing,testingAnnotationProcessor,testingCompileClasspath joda-time:joda-time:2.12.6=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath net.sf.saxon:Saxon-HE:10.6=checkstyle org.antlr:antlr4-runtime:4.9.3=checkstyle org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -org.checkerframework:checker-qual:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor org.checkerframework:checker-qual:3.12.0=checkstyle +org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor org.checkerframework:checker-qual:3.42.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath org.jacoco:org.jacoco.agent:0.8.9=jacocoAgent,jacocoAnt org.jacoco:org.jacoco.ant:0.8.9=jacocoAnt @@ -62,9 +62,6 @@ org.ow2.asm:asm-commons:9.5=jacocoAnt org.ow2.asm:asm-tree:9.5=jacocoAnt org.ow2.asm:asm:9.5=jacocoAnt org.ow2.asm:asm:9.6=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath,testing,testingCompileClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor,testingAnnotationProcessor org.reflections:reflections:0.10.2=checkstyle -empty=errorproneJavac,testingCompile,testingRuntime,testingRuntimeClasspath +empty=testingCompile,testingRuntime,testingRuntimeClasspath diff --git a/common/src/testing/java/google/registry/testing/SystemInfo.java b/common/src/testing/java/google/registry/testing/SystemInfo.java index 944daea45..f15669539 100644 --- a/common/src/testing/java/google/registry/testing/SystemInfo.java +++ b/common/src/testing/java/google/registry/testing/SystemInfo.java @@ -49,13 +49,11 @@ public final class SystemInfo { /** * Returns {@code true} if system command can be run from path. * - *

Warning: The command is actually run! So there could be side-effects. You might - * need to specify a version flag or something. Return code is ignored. + *

Warning: The command is actually run! So there could be side-effects. You might need + * to specify a version flag or something. Return code is ignored. * - *

This result is a memoized. If multiple therads try to get the same result at once, the - * heavy lifting will only be performed by the first thread and the rest will wait. - * - * @throws ExecutionException + *

This result is a memoized. If multiple therads try to get the same result at once, the heavy + * lifting will only be performed by the first thread and the rest will wait. */ public static boolean hasCommand(String cmd) throws ExecutionException { return hasCommandCache.get(cmd); diff --git a/config/dependency-license/allowed_licenses.json b/config/dependency-license/allowed_licenses.json index bc5ffeb83..75360754f 100644 --- a/config/dependency-license/allowed_licenses.json +++ b/config/dependency-license/allowed_licenses.json @@ -317,6 +317,14 @@ // "Apache License, Version 2.0". "moduleLicense": null, "moduleName": "com.squareup.okio:okio" + }, + { + "moduleLicense": "(GPL-2.0-only WITH Classpath-exception-2.0)", + "moduleName": "io.github.eisop:dataflow-errorprone" + }, + { + "moduleLicense": "GNU General Public License, version 2 (GPL2), with the classpath exception", + "moduleName": "io.github.eisop:dataflow-errorprone" } ] } diff --git a/config/nom_build.py b/config/nom_build.py index 36c8f3e94..a72a09510 100644 --- a/config/nom_build.py +++ b/config/nom_build.py @@ -99,8 +99,6 @@ PROPERTIES = [ 'If true, show all test output in near-realtime.', 'false', bool), - Property('flowDocsFile', - 'Output filename for the flowDocsTool command.'), Property('enableDependencyLocking', 'Enables dependency locking.', 'true', diff --git a/console-webapp/gradle.lockfile b/console-webapp/gradle.lockfile index c8978f07f..abff4d7b7 100644 --- a/console-webapp/gradle.lockfile +++ b/console-webapp/gradle.lockfile @@ -1,36 +1,39 @@ # 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.7.0=annotationProcessor,errorprone,testAnnotationProcessor +aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:error_prone_annotations:2.7.1=checkstyle -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor -com.google.guava:guava:27.0.1-jre=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:31.0.1-jre=checkstyle -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor -com.google.j2objc:j2objc-annotations:1.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.j2objc:j2objc-annotations:1.3=checkstyle -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor com.puppycrawl.tools:checkstyle:9.3=checkstyle commons-beanutils:commons-beanutils:1.9.4=checkstyle commons-collections:commons-collections:3.2.2=checkstyle info.picocli:picocli:4.6.2=checkstyle +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,errorprone,testAnnotationProcessor +javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor net.sf.saxon:Saxon-HE:10.6=checkstyle org.antlr:antlr4-runtime:4.9.3=checkstyle -org.checkerframework:checker-qual:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.12.0=checkstyle -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,errorprone,testAnnotationProcessor +org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor org.jacoco:org.jacoco.agent:0.8.9=jacocoAgent,jacocoAnt org.jacoco:org.jacoco.ant:0.8.9=jacocoAnt org.jacoco:org.jacoco.core:0.8.9=jacocoAnt @@ -39,9 +42,6 @@ org.javassist:javassist:3.28.0-GA=checkstyle org.ow2.asm:asm-commons:9.5=jacocoAnt org.ow2.asm:asm-tree:9.5=jacocoAnt org.ow2.asm:asm:9.5=jacocoAnt -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor org.reflections:reflections:0.10.2=checkstyle -empty=compileClasspath,deploy_jar,errorproneJavac,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +empty=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/core/gradle.lockfile b/core/gradle.lockfile index 6945e75c9..c39bd6067 100644 --- a/core/gradle.lockfile +++ b/core/gradle.lockfile @@ -2,7 +2,7 @@ # Manual edits can break the build and are not advised. # This file is expected to be part of source control. antlr:antlr:2.7.7=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -aopalliance:aopalliance:1.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testCompileClasspath,testRuntimeClasspath +aopalliance:aopalliance:1.0=annotationProcessor,compileClasspath,deploy_jar,errorprone,nonprodAnnotationProcessor,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath args4j:args4j:2.0.23=soy args4j:args4j:2.0.26=css args4j:args4j:2.33=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -18,8 +18,8 @@ com.fasterxml.jackson.datatype:jackson-datatype-joda:2.15.2=compileClasspath,dep com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson:jackson-bom:2.15.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml:classmate:1.5.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.github.ben-manes.caffeine:caffeine:2.9.3=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.github.docker-java:docker-java-api:3.3.4=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport-zerodep:3.3.4=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport:3.3.4=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -68,8 +68,8 @@ com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.55.0=compileC com.google.api.grpc:proto-google-cloud-spanner-v1:6.55.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-storage-v2:2.23.0-alpha=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-common-protos:2.29.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-iam-v1:1.24.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api:api-common:2.21.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -98,12 +98,13 @@ com.google.appengine:appengine-api-stubs:2.0.24=testCompileClasspath,testRuntime com.google.appengine:appengine-testing:1.9.86=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.auth:google-auth-library-credentials:1.20.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.auth:google-auth-library-oauth2-http:1.20.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.service:auto-service-annotations:1.0.1=errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.google.auto.service:auto-service-annotations:1.1.1=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.auto.service:auto-service:1.1.1=annotationProcessor com.google.auto.value:auto-value-annotations:1.10.4=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.google.auto.value:auto-value:1.10.4=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.auto:auto-common:0.10=errorprone,nonprodAnnotationProcessor,testAnnotationProcessor -com.google.auto:auto-common:1.2.1=annotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.google.closure-stylesheets:closure-stylesheets:1.5.0=css com.google.cloud.bigdataoss:gcsio:2.2.16=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud.bigdataoss:util:2.2.16=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -126,10 +127,9 @@ com.google.cloud:google-cloud-pubsublite:1.12.19=compileClasspath,deploy_jar,non com.google.cloud:google-cloud-secretmanager:2.23.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-spanner:6.55.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.22.6=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-tasks:2.32.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.cloud:google-cloud-tasks:2.23.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:grpc-gcp:1.5.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.15.7=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.google.code.findbugs:jsr305:3.0.1=css com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,nonprodAnnotationProcessor,nonprodCompileClasspath,nonprodRuntime,nonprodRuntimeClasspath,runtime,runtimeClasspath,soy,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.10.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -139,14 +139,14 @@ com.google.dagger:dagger-compiler:2.50=annotationProcessor,testAnnotationProcess com.google.dagger:dagger-spi:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger:2.50=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.devtools.ksp:symbol-processing-api:1.9.20-1.0.14=annotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.3.4=errorprone,nonprodAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,compileClasspath,deploy_jar,errorprone,nonprodAnnotationProcessor,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.errorprone:error_prone_annotations:2.7.1=checkstyle,soy -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.google.errorprone:javac-shaded:9-dev-r4023-3=annotationProcessor,testAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.escapevelocity:escapevelocity:0.9.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testCompileClasspath,testRuntimeClasspath com.google.flatbuffers:flatbuffers-java:1.12.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.flogger:flogger-system-backend:0.8=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntime,nonprodRuntimeClasspath,runtime,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -155,12 +155,13 @@ com.google.flogger:google-extensions:0.8=compileClasspath,deploy_jar,nonprodComp com.google.googlejavaformat:google-java-format:1.5=annotationProcessor,testAnnotationProcessor com.google.guava:failureaccess:1.0.1=checkstyle,errorprone,nonprodAnnotationProcessor,soy com.google.guava:failureaccess:1.0.2=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:guava-parent:32.1.1-jre=errorprone,nonprodAnnotationProcessor com.google.guava:guava-testlib:33.0.0-jre=testCompileClasspath,testRuntimeClasspath com.google.guava:guava:20.0=css -com.google.guava:guava:27.0.1-jre=errorprone,nonprodAnnotationProcessor com.google.guava:guava:31.0.1-jre=checkstyle,soy +com.google.guava:guava:32.1.1-jre=errorprone,nonprodAnnotationProcessor com.google.guava:guava:33.0.0-jre=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,nonprodAnnotationProcessor,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.gwt:gwt-user:2.10.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-apache-v2:1.43.3=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-appengine:1.43.3=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -170,8 +171,8 @@ com.google.http-client:google-http-client-protobuf:1.43.3=compileClasspath,deplo com.google.http-client:google-http-client:1.43.3=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.inject.extensions:guice-multibindings:4.1.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testCompileClasspath,testRuntimeClasspath com.google.inject:guice:4.1.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.google.inject:guice:7.0.0=soy -com.google.j2objc:j2objc-annotations:1.1=errorprone,nonprodAnnotationProcessor com.google.j2objc:j2objc-annotations:1.3=checkstyle,soy com.google.j2objc:j2objc-annotations:2.8=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.javascript:closure-compiler-externs:v20160713=css @@ -189,14 +190,13 @@ com.google.oauth-client:google-oauth-client-servlet:1.34.1=compileClasspath,depl com.google.oauth-client:google-oauth-client:1.34.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.protobuf:protobuf-java-util:3.25.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.protobuf:protobuf-java:2.5.0=css +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.google.protobuf:protobuf-java:3.25.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.google.protobuf:protobuf-java:4.0.0-rc-2=soy com.google.re2j:re2j:1.7=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.template:soy:2021-02-01=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testCompileClasspath,testRuntimeClasspath com.google.truth.extensions:truth-java8-extension:1.2.0=testCompileClasspath,testRuntimeClasspath com.google.truth:truth:1.2.0=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor com.googlecode.json-simple:json-simple:1.1.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.ibm.icu:icu4j:57.1=compileClasspath,nonprodCompileClasspath,soy,testCompileClasspath com.ibm.icu:icu4j:74.2=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath @@ -237,7 +237,8 @@ io.confluent:common-utils:5.3.2=compileClasspath,deploy_jar,nonprodCompileClassp io.confluent:kafka-avro-serializer:5.3.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.confluent:kafka-schema-registry-client:5.3.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.github.classgraph:classgraph:4.8.162=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.github.java-diff-utils:java-diff-utils:4.12=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,deploy_jar,errorprone,nonprodAnnotationProcessor,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath io.grpc:grpc-alts:1.59.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.grpc:grpc-api:1.59.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.grpc:grpc-auth:1.59.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -290,7 +291,7 @@ javax.activation:activation:1.1=compileClasspath,deploy_jar,nonprodCompileClassp javax.activation:javax.activation-api:1.2.0=compileClasspath,deploy_jar,jaxb,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath javax.annotation:javax.annotation-api:1.3.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath javax.annotation:jsr250-api:1.0=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,soy,testCompileClasspath,testRuntimeClasspath -javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,errorprone,nonprodAnnotationProcessor,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath javax.jdo:jdo2-api:2.3-20090302111651=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath javax.mail:mail:1.5.0-b01=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath javax.persistence:javax.persistence-api:2.2=annotationProcessor,compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath @@ -357,15 +358,12 @@ org.bouncycastle:bcprov-jdk15on:1.67=compileClasspath,deploy_jar,nonprodCompileC org.checkerframework:checker-compat-qual:2.5.3=compileClasspath,nonprodCompileClasspath,nonprodRuntime,runtime,testCompileClasspath org.checkerframework:checker-compat-qual:2.5.5=annotationProcessor,testAnnotationProcessor org.checkerframework:checker-compat-qual:2.5.6=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath -org.checkerframework:checker-qual:3.0.0=errorprone,nonprodAnnotationProcessor org.checkerframework:checker-qual:3.12.0=checkstyle,soy +org.checkerframework:checker-qual:3.33.0=errorprone,nonprodAnnotationProcessor org.checkerframework:checker-qual:3.41.0=annotationProcessor,compileClasspath,nonprodCompileClasspath,nonprodRuntime,runtime,testAnnotationProcessor org.checkerframework:checker-qual:3.42.0=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor org.codehaus.jackson:jackson-core-asl:1.9.13=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.codehaus.jackson:jackson-mapper-asl:1.9.13=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.codehaus.mojo:animal-sniffer-annotations:1.17=errorprone,nonprodAnnotationProcessor org.codehaus.mojo:animal-sniffer-annotations:1.23=deploy_jar,nonprodRuntimeClasspath,runtimeClasspath,testRuntimeClasspath org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.easymock:easymock:3.0=css @@ -449,10 +447,7 @@ org.ow2.asm:asm-util:9.6=compileClasspath,deploy_jar,nonprodCompileClasspath,non org.ow2.asm:asm:7.0=soy org.ow2.asm:asm:9.5=jacocoAnt org.ow2.asm:asm:9.6=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,nonprodAnnotationProcessor,testAnnotationProcessor org.postgresql:postgresql:42.7.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntime,nonprodRuntimeClasspath,runtime,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.reflections:reflections:0.10.2=checkstyle org.rnorth.duct-tape:duct-tape:1.0.8=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -494,4 +489,4 @@ us.fatehi:schemacrawler-utility:16.10.1=compileClasspath,deploy_jar,nonprodCompi us.fatehi:schemacrawler:16.10.1=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath xerces:xmlParserAPIs:2.6.2=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath xpp3:xpp3:1.1.4c=compileClasspath,deploy_jar,nonprodCompileClasspath,nonprodRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -empty=devtool,errorproneJavac,nomulus_test +empty=devtool,nomulus_test diff --git a/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java b/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java index b402e93d9..1701ce9f6 100644 --- a/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java +++ b/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java @@ -39,7 +39,6 @@ import google.registry.request.Action; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.EmailMessage; -import java.util.Date; import java.util.Optional; import javax.inject.Inject; import javax.mail.internet.AddressException; @@ -160,12 +159,11 @@ public class SendExpiringCertificateNotificationEmailAction implements Runnable try { ImmutableSet recipients = getEmailAddresses(registrar, Type.TECH); ImmutableSet ccs = getEmailAddresses(registrar, Type.ADMIN); - Date expirationDate = certificateChecker.getCertificate(certificate.get()).getNotAfter(); + DateTime expirationDate = + new DateTime(certificateChecker.getCertificate(certificate.get()).getNotAfter()); logger.atInfo().log( " %s SSL certificate of registrar '%s' will expire on %s.", - certificateType.getDisplayName(), - registrar.getRegistrarName(), - expirationDate.toString()); + certificateType.getDisplayName(), registrar.getRegistrarName(), expirationDate); if (recipients.isEmpty() && ccs.isEmpty()) { logger.atWarning().log( "Registrar %s contains no TECH nor ADMIN email addresses to receive notification" @@ -302,7 +300,7 @@ public class SendExpiringCertificateNotificationEmailAction implements Runnable @VisibleForTesting @SuppressWarnings("lgtm[java/dereferenced-value-may-be-null]") String getEmailBody( - String registrarName, CertificateType type, Date expirationDate, String registrarId) { + String registrarName, CertificateType type, DateTime expirationDate, String registrarId) { checkArgumentNotNull(expirationDate, "Expiration date cannot be null"); checkArgumentNotNull(type, "Certificate type cannot be null"); checkArgumentNotNull(registrarId, "Registrar Id cannot be null"); @@ -310,7 +308,7 @@ public class SendExpiringCertificateNotificationEmailAction implements Runnable expirationWarningEmailBodyText, registrarName, type.getDisplayName(), - DATE_FORMATTER.print(new DateTime(expirationDate)), + DATE_FORMATTER.print(expirationDate), registrarId); } diff --git a/core/src/main/java/google/registry/beam/common/RegistryPipelineOptions.java b/core/src/main/java/google/registry/beam/common/RegistryPipelineOptions.java index c74fbd7c4..71de316d6 100644 --- a/core/src/main/java/google/registry/beam/common/RegistryPipelineOptions.java +++ b/core/src/main/java/google/registry/beam/common/RegistryPipelineOptions.java @@ -63,7 +63,7 @@ public interface RegistryPipelineOptions extends GcpOptions { } /** - * Validates the GCP project and Registry environment settings in {@code option}. If project is + * Validates the GCP project and Registry environment settings in {@code options}. If project is * undefined, it is set according to the Registry environment; if project is defined but * inconsistent with the Registry environment, an {@link IllegalArgumentException} will be thrown. * diff --git a/core/src/main/java/google/registry/beam/rde/RdeIO.java b/core/src/main/java/google/registry/beam/rde/RdeIO.java index bc898f439..d97340d26 100644 --- a/core/src/main/java/google/registry/beam/rde/RdeIO.java +++ b/core/src/main/java/google/registry/beam/rde/RdeIO.java @@ -144,6 +144,7 @@ public class RdeIO { this.marshaller = new RdeMarshaller(validationMode); } + @SuppressWarnings("unused") @Setup public void setup() { Security.addProvider(new BouncyCastleProvider()); diff --git a/core/src/main/java/google/registry/beam/rde/RdePipeline.java b/core/src/main/java/google/registry/beam/rde/RdePipeline.java index c30088ea4..a016e7228 100644 --- a/core/src/main/java/google/registry/beam/rde/RdePipeline.java +++ b/core/src/main/java/google/registry/beam/rde/RdePipeline.java @@ -116,14 +116,14 @@ import org.joda.time.DateTime; *

The pipeline is broadly divided into two parts -- creating the {@link DepositFragment}s, and * processing them. * - *

Creating {@link DepositFragment}

+ *

Creating {@link DepositFragment}

* - *

{@link Registrar}

+ *

{@link Registrar}

* * Non-test registrar entities are loaded from Cloud SQL and marshalled into deposit fragments. They * are NOT rewound to the watermark. * - *

{@link EppResource}

+ *

{@link EppResource}

* * All EPP resources are loaded from the corresponding {@link HistoryEntry}, which has the resource * embedded. In general, we find most recent history entry before watermark and filter out the ones @@ -158,7 +158,7 @@ import org.joda.time.DateTime; * watermark to the domain at watermark. We then proceed to create the (pending deposit: deposit * fragment) pair for subordinate hosts using the added domain information. * - *

Processing {@link DepositFragment}

+ *

Processing {@link DepositFragment}

* * The (pending deposit: deposit fragment) pairs from different resources are combined and grouped * by pending deposit. For each pending deposit, all the relevant deposit fragments are written into diff --git a/core/src/main/java/google/registry/beam/spec11/SafeBrowsingTransforms.java b/core/src/main/java/google/registry/beam/spec11/SafeBrowsingTransforms.java index 179a2bce5..f6d5ce460 100644 --- a/core/src/main/java/google/registry/beam/spec11/SafeBrowsingTransforms.java +++ b/core/src/main/java/google/registry/beam/spec11/SafeBrowsingTransforms.java @@ -225,7 +225,7 @@ public class SafeBrowsingTransforms { new JSONObject( CharStreams.toString( new InputStreamReader(response.getEntity().getContent(), UTF_8))); - logger.atInfo().log("Got response: %s", responseBody.toString()); + logger.atInfo().log("Got response: %s", responseBody); if (responseBody.length() == 0) { logger.atInfo().log("Response was empty, no threats detected."); } else { diff --git a/core/src/main/java/google/registry/bigquery/BigqueryConnection.java b/core/src/main/java/google/registry/bigquery/BigqueryConnection.java index 9baefb6d4..8e6873128 100644 --- a/core/src/main/java/google/registry/bigquery/BigqueryConnection.java +++ b/core/src/main/java/google/registry/bigquery/BigqueryConnection.java @@ -144,7 +144,8 @@ public class BigqueryConnection implements AutoCloseable { public Builder setPollInterval(Duration pollInterval) { checkArgument( !pollInterval.isShorterThan(MIN_POLL_INTERVAL), - "poll interval must be at least %ldms", MIN_POLL_INTERVAL.getMillis()); + "poll interval must be at least %s ms", + MIN_POLL_INTERVAL.getMillis()); instance.pollInterval = pollInterval; return this; } @@ -216,7 +217,7 @@ public class BigqueryConnection implements AutoCloseable { } public Builder timeToLive(Duration duration) { - this.table.setExpirationTime(new DateTime(UTC).plus(duration).getMillis()); + this.table.setExpirationTime(DateTime.now(UTC).plus(duration).getMillis()); return this; } @@ -556,7 +557,6 @@ public class BigqueryConnection implements AutoCloseable { /** * Launch a job, but do not wait for it to complete. * - * @throws BigqueryJobFailureException */ private Job launchJob(Job job, @Nullable AbstractInputStreamContent data) { verify(job.getStatus() == null); @@ -572,7 +572,6 @@ public class BigqueryConnection implements AutoCloseable { /** * Synchronously waits for a job to complete that's already been launched. * - * @throws BigqueryJobFailureException */ private Job waitForJob(Job job) { verify(job.getStatus() != null); @@ -591,7 +590,6 @@ public class BigqueryConnection implements AutoCloseable { /** * Checks completed job for errors. * - * @throws BigqueryJobFailureException */ private static Job checkJob(Job job) { verify(job.getStatus() != null); diff --git a/core/src/main/java/google/registry/bigquery/BigqueryJobFailureException.java b/core/src/main/java/google/registry/bigquery/BigqueryJobFailureException.java index 8aea0d603..28bf1b662 100644 --- a/core/src/main/java/google/registry/bigquery/BigqueryJobFailureException.java +++ b/core/src/main/java/google/registry/bigquery/BigqueryJobFailureException.java @@ -72,7 +72,7 @@ public final class BigqueryJobFailureException extends RuntimeException { /** * Returns a short error code describing why this job failed. * - *

Sample Reasons

+ *

Sample Reasons: * *

* - * @see - * Troubleshooting Errors + * @see Troubleshooting + * Errors */ public String getReason() { if (jobStatus != null) { diff --git a/core/src/main/java/google/registry/bsa/BlockListFetcher.java b/core/src/main/java/google/registry/bsa/BlockListFetcher.java index bb9a54650..22f6d7907 100644 --- a/core/src/main/java/google/registry/bsa/BlockListFetcher.java +++ b/core/src/main/java/google/registry/bsa/BlockListFetcher.java @@ -117,10 +117,10 @@ public class BlockListFetcher { private String readChecksum() throws IOException { StringBuilder checksum = new StringBuilder(); char ch; - while ((ch = peekInputStream()) != (char) -1 && !Character.isWhitespace(ch)) { + while ((ch = peekInputStream()) != Character.MAX_VALUE && !Character.isWhitespace(ch)) { checksum.append((char) inputStream.read()); } - while ((ch = peekInputStream()) != (char) -1 && Character.isWhitespace(ch)) { + while ((ch = peekInputStream()) != Character.MAX_VALUE && Character.isWhitespace(ch)) { inputStream.read(); } return checksum.toString(); diff --git a/core/src/main/java/google/registry/bsa/BsaDiffCreator.java b/core/src/main/java/google/registry/bsa/BsaDiffCreator.java index b4175e810..b79d0f067 100644 --- a/core/src/main/java/google/registry/bsa/BsaDiffCreator.java +++ b/core/src/main/java/google/registry/bsa/BsaDiffCreator.java @@ -70,7 +70,7 @@ class BsaDiffCreator { BsaDiff createDiff(DownloadSchedule schedule, IdnChecker idnChecker) { String currentJobName = schedule.jobName(); Optional previousJobName = schedule.latestCompleted().map(CompletedJob::jobName); - /** + /* * Memory usage is a concern when creating a diff, when the newest download needs to be held in * memory in its entirety. The top-grade AppEngine VM has 3GB of memory, leaving less than 1.5GB * to application memory footprint after subtracting overheads due to copying garbage collection @@ -92,7 +92,7 @@ class BsaDiffCreator { try (Stream currentStream = loadBlockLists(currentJobName); Stream previousStream = previousJobName.map(this::loadBlockLists).orElseGet(Stream::of)) { - /** + /* * Load current label/order pairs into a multimap, which will contain both new labels and * those that stay on when processing is done. */ @@ -123,7 +123,7 @@ class BsaDiffCreator { toMultimap( LabelOrderPair::label, LabelOrderPair::orderId, this::listBackedMultiMap)); - /** + /* * Labels in `newAndRemaining`: * *
    @@ -245,7 +245,7 @@ class BsaDiffCreator { abstract Long orderId(); - static LabelOrderPair of(String key, Long value) { + static LabelOrderPair of(String key, Long value) { return new AutoValue_BsaDiffCreator_LabelOrderPair(key, value); } } diff --git a/core/src/main/java/google/registry/bsa/persistence/BsaDomainRefresh.java b/core/src/main/java/google/registry/bsa/persistence/BsaDomainRefresh.java index 756d82fa9..e5073f36d 100644 --- a/core/src/main/java/google/registry/bsa/persistence/BsaDomainRefresh.java +++ b/core/src/main/java/google/registry/bsa/persistence/BsaDomainRefresh.java @@ -86,6 +86,7 @@ class BsaDomainRefresh { return this; } + @SuppressWarnings("AmbiguousMethodReference") VKey vKey() { return vKey(jobId); } diff --git a/core/src/main/java/google/registry/bsa/persistence/DownloadSchedule.java b/core/src/main/java/google/registry/bsa/persistence/DownloadSchedule.java index ac78597c4..85272b09a 100644 --- a/core/src/main/java/google/registry/bsa/persistence/DownloadSchedule.java +++ b/core/src/main/java/google/registry/bsa/persistence/DownloadSchedule.java @@ -84,9 +84,7 @@ public abstract class DownloadSchedule { BsaDownload bsaDownload = tm().loadByKey(BsaDownload.vKey(jobId())); verify( bsaDownload.getStage().equals(DownloadStage.DOWNLOAD_BLOCK_LISTS), - "Invalid invocation. May only invoke during the DOWNLOAD stage.", - bsaDownload.getStage(), - stage); + "Invalid invocation. May only invoke during the DOWNLOAD stage."); bsaDownload.setStage(stage); bsaDownload.setChecksums(checksums); tm().put(bsaDownload); diff --git a/core/src/main/java/google/registry/config/DelegatedCredentials.java b/core/src/main/java/google/registry/config/DelegatedCredentials.java index ce7902df6..d1a05d9e0 100644 --- a/core/src/main/java/google/registry/config/DelegatedCredentials.java +++ b/core/src/main/java/google/registry/config/DelegatedCredentials.java @@ -112,7 +112,6 @@ public class DelegatedCredentials extends GoogleCredentials { * @param clock Used for setting token expiration times. * @param tokenRefreshDelay The lifetime of each token. Should not exceed one hour according to * GCP recommendations. - * @return */ static DelegatedCredentials createSelfSignedDelegatedCredential( ServiceAccountSigner signer, @@ -197,7 +196,9 @@ public class DelegatedCredentials extends GoogleCredentials { String accessToken = validateString(responseData, "access_token", PARSE_ERROR_PREFIX); int expiresInSeconds = validateInt32(responseData, "expires_in", PARSE_ERROR_PREFIX); long expiresAtMilliseconds = clock.nowUtc().getMillis() + expiresInSeconds * 1000L; - return new AccessToken(accessToken, new Date(expiresAtMilliseconds)); + @SuppressWarnings("JavaUtilDate") + AccessToken token = new AccessToken(accessToken, new Date(expiresAtMilliseconds)); + return token; } String createAssertion(JsonFactory jsonFactory, long currentTime) throws IOException { diff --git a/core/src/main/java/google/registry/config/RegistryConfig.java b/core/src/main/java/google/registry/config/RegistryConfig.java index 30d0391a5..c107ba1f3 100644 --- a/core/src/main/java/google/registry/config/RegistryConfig.java +++ b/core/src/main/java/google/registry/config/RegistryConfig.java @@ -253,7 +253,11 @@ public final class RegistryConfig { return projectId + "-zonefiles"; } - /** @see RegistryConfig#getDatabaseRetention() */ + /** + * Returns the length of time before commit logs should be deleted from the database. + * + * @see RegistryConfig#getDatabaseRetention() + */ @Provides @Config("databaseRetention") public static Duration provideDatabaseRetention() { @@ -294,7 +298,11 @@ public final class RegistryConfig { return projectId + "-icann-brda"; } - /** @see google.registry.rde.BrdaCopyAction */ + /** + * Returns the day of the week on which BRDA deposits should be made. + * + * @see google.registry.rde.BrdaCopyAction + */ @Provides @Config("brdaDayOfWeek") public static int provideBrdaDayOfWeek() { diff --git a/core/src/main/java/google/registry/cron/TldFanoutAction.java b/core/src/main/java/google/registry/cron/TldFanoutAction.java index 714008354..1e76c565c 100644 --- a/core/src/main/java/google/registry/cron/TldFanoutAction.java +++ b/core/src/main/java/google/registry/cron/TldFanoutAction.java @@ -53,7 +53,7 @@ import javax.inject.Inject; /** * Action for fanning out cron tasks shared by TLD. * - *

    Parameters Reference

    + *

    Parameters Reference

    * *
      *
    • {@code endpoint} (Required) URL path of servlet to launch. This may contain pathargs. @@ -68,7 +68,7 @@ import javax.inject.Inject; * task. *
    * - *

    Patharg Reference

    + *

    Patharg Reference

    * *

    The following values may be specified inside the "endpoint" param. * diff --git a/core/src/main/java/google/registry/dns/DnsMetrics.java b/core/src/main/java/google/registry/dns/DnsMetrics.java index 1e935fe86..840334580 100644 --- a/core/src/main/java/google/registry/dns/DnsMetrics.java +++ b/core/src/main/java/google/registry/dns/DnsMetrics.java @@ -245,12 +245,13 @@ public class DnsMetrics { if (batchSize > 0) { normalizedProcessingTimePerCommitDist.record( - (double) processingDuration.getMillis() / batchSize, - tld, status.name(), dnsWriter); + processingDuration.getMillis() / (double) batchSize, tld, status.name(), dnsWriter); normalizedProcessingTimePerItemDist.record( - (double) processingDuration.getMillis() / batchSize, + processingDuration.getMillis() / (double) batchSize, batchSize, - tld, status.name(), dnsWriter); + tld, + status.name(), + dnsWriter); } totalBatchSizePerCommitDist.record(batchSize, tld, status.name(), dnsWriter); diff --git a/core/src/main/java/google/registry/dns/writer/VoidDnsWriterModule.java b/core/src/main/java/google/registry/dns/writer/VoidDnsWriterModule.java index b3378dcc9..9ace1ce36 100644 --- a/core/src/main/java/google/registry/dns/writer/VoidDnsWriterModule.java +++ b/core/src/main/java/google/registry/dns/writer/VoidDnsWriterModule.java @@ -14,6 +14,7 @@ package google.registry.dns.writer; +import dagger.Binds; import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoMap; @@ -23,14 +24,12 @@ import javax.inject.Named; /** Dagger module that disables DNS updates. */ @Module -public final class VoidDnsWriterModule { +public abstract class VoidDnsWriterModule { - @Provides + @Binds @IntoMap @StringKey(VoidDnsWriter.NAME) - static DnsWriter provideWriter(VoidDnsWriter writer) { - return writer; - } + abstract DnsWriter provideWriter(VoidDnsWriter writer); @Provides @IntoSet diff --git a/core/src/main/java/google/registry/dns/writer/clouddns/CloudDnsWriter.java b/core/src/main/java/google/registry/dns/writer/clouddns/CloudDnsWriter.java index d4ec3fd65..b47633a22 100644 --- a/core/src/main/java/google/registry/dns/writer/clouddns/CloudDnsWriter.java +++ b/core/src/main/java/google/registry/dns/writer/clouddns/CloudDnsWriter.java @@ -363,8 +363,8 @@ public class CloudDnsWriter extends BaseDnsWriter { *

    This call should be used in conjunction with {@link #getResourceRecordsForDomains} in a * get-and-set retry loop. * - *

    See {@link "Troubleshoot Cloud - * DNS"} for a list of errors produced by the Google Cloud DNS API. + *

    See Troubleshoot Cloud DNS for a + * list of errors produced by the Google Cloud DNS API. * * @throws ZoneStateException if the operation could not be completely successfully because the * records to delete do not exist, already exist or have been modified with different diff --git a/core/src/main/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterModule.java b/core/src/main/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterModule.java index ed5901573..3329fe2af 100644 --- a/core/src/main/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterModule.java +++ b/core/src/main/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterModule.java @@ -14,6 +14,7 @@ package google.registry.dns.writer.dnsupdate; +import dagger.Binds; import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoMap; @@ -32,12 +33,10 @@ public abstract class DnsUpdateWriterModule { return SocketFactory.getDefault(); } - @Provides + @Binds @IntoMap @StringKey(DnsUpdateWriter.NAME) - static DnsWriter provideWriter(DnsUpdateWriter writer) { - return writer; - } + abstract DnsWriter provideWriter(DnsUpdateWriter writer); @Provides @IntoSet diff --git a/core/src/main/java/google/registry/flows/ServerTridProviderModule.java b/core/src/main/java/google/registry/flows/ServerTridProviderModule.java index 96c29aa46..267de00cb 100644 --- a/core/src/main/java/google/registry/flows/ServerTridProviderModule.java +++ b/core/src/main/java/google/registry/flows/ServerTridProviderModule.java @@ -14,15 +14,13 @@ package google.registry.flows; +import dagger.Binds; import dagger.Module; -import dagger.Provides; /** Dagger module for the server Trid provider. */ @Module -public class ServerTridProviderModule { +public abstract class ServerTridProviderModule { - @Provides - static ServerTridProvider provideServerTridProvider(ServerTridProviderImpl defaultProvider) { - return defaultProvider; - } + @Binds + abstract ServerTridProvider provideServerTridProvider(ServerTridProviderImpl defaultProvider); } diff --git a/core/src/main/java/google/registry/flows/certs/CertificateChecker.java b/core/src/main/java/google/registry/flows/certs/CertificateChecker.java index 953937fd8..81dda2971 100644 --- a/core/src/main/java/google/registry/flows/certs/CertificateChecker.java +++ b/core/src/main/java/google/registry/flows/certs/CertificateChecker.java @@ -42,9 +42,10 @@ import org.bouncycastle.openssl.jcajce.JcaMiscPEMGenerator; import org.bouncycastle.util.io.pem.PemObjectGenerator; import org.bouncycastle.util.io.pem.PemWriter; import org.joda.time.DateTime; +import org.joda.time.DateTimeComparator; import org.joda.time.Days; -/** An utility to check that a given certificate meets our requirements */ +/** A utility to check that a given certificate meets our requirements */ public class CertificateChecker { private final ImmutableSortedMap maxValidityLengthSchedule; @@ -162,9 +163,9 @@ public class CertificateChecker { // Check if currently in validity period Date now = clock.nowUtc().toDate(); - if (certificate.getNotAfter().before(now)) { + if (DateTimeComparator.getInstance().compare(certificate.getNotAfter(), now) < 0) { violations.add(CertificateViolation.EXPIRED); - } else if (certificate.getNotBefore().after(now)) { + } else if (DateTimeComparator.getInstance().compare(certificate.getNotBefore(), now) > 0) { violations.add(CertificateViolation.NOT_YET_VALID); } @@ -231,8 +232,8 @@ public class CertificateChecker { X509Certificate certificate = getCertificate(certificateStr); DateTime now = clock.nowUtc(); // expiration date is one day after lastValidDate - Date lastValidDate = certificate.getNotAfter(); - if (lastValidDate.before(now.toDate())) { + DateTime lastValidDate = new DateTime(certificate.getNotAfter()); + if (lastValidDate.isBefore(now)) { return false; } /* @@ -242,12 +243,11 @@ public class CertificateChecker { * 2) client has received notification but the interval between now and * lastExpiringNotificationSentDate is greater than expirationWarningIntervalDays. */ - return !lastValidDate.after(now.plusDays(expirationWarningDays).toDate()) + return !lastValidDate.isAfter(now.plusDays(expirationWarningDays)) && (lastExpiringNotificationSentDate.equals(START_OF_TIME) || !lastExpiringNotificationSentDate .plusDays(expirationWarningIntervalDays) - .toDate() - .after(now.toDate())); + .isAfter(now)); } private String getViolationDisplayMessage(CertificateViolation certificateViolation) { diff --git a/core/src/main/java/google/registry/keyring/api/PgpHelper.java b/core/src/main/java/google/registry/keyring/api/PgpHelper.java index 5e3849ef4..2addf4b1e 100644 --- a/core/src/main/java/google/registry/keyring/api/PgpHelper.java +++ b/core/src/main/java/google/registry/keyring/api/PgpHelper.java @@ -104,9 +104,12 @@ public final class PgpHelper { PGPPublicKey publicKey = lookupPublicKey(publics, query, want); PGPPrivateKey privateKey; try { - PGPSecretKey secret = verifyNotNull(privates.getSecretKey(publicKey.getKeyID()), - "Keyring missing private key associated with public key id: %x (query '%s')", - publicKey.getKeyID(), query); + PGPSecretKey secret = + verifyNotNull( + privates.getSecretKey(publicKey.getKeyID()), + "Keyring missing private key associated with public key id: %s (query %s)", + publicKey.getKeyID(), + query); // We do not support putting a password on the private key so we're just going to // put char[0] here. privateKey = secret.extractPrivateKey( diff --git a/core/src/main/java/google/registry/model/ResourceTransferUtils.java b/core/src/main/java/google/registry/model/ResourceTransferUtils.java index 378d084ed..0288ad39e 100644 --- a/core/src/main/java/google/registry/model/ResourceTransferUtils.java +++ b/core/src/main/java/google/registry/model/ResourceTransferUtils.java @@ -57,6 +57,7 @@ public final class ResourceTransferUtils { public static TransferResponse createTransferResponse( EppResource eppResource, TransferData transferData) { assertIsContactOrDomain(eppResource); + @SuppressWarnings("NonCanonicalType") TransferResponse.Builder builder; if (eppResource instanceof Contact) { builder = new ContactTransferResponse.Builder().setContactId(eppResource.getForeignKey()); diff --git a/core/src/main/java/google/registry/model/domain/DomainBase.java b/core/src/main/java/google/registry/model/domain/DomainBase.java index 95b84ff9c..13a55e213 100644 --- a/core/src/main/java/google/registry/model/domain/DomainBase.java +++ b/core/src/main/java/google/registry/model/domain/DomainBase.java @@ -120,7 +120,7 @@ public class DomainBase extends EppResource * from (creationTime, deletionTime) there can only be one domain in the database with this name. * However, there can be many domains with the same name and non-overlapping lifetimes. * - * @invariant domainName == domainName.toLowerCase(Locale.ENGLISH) + *

    Invariant: domainName == domainName.toLowerCase(Locale.ENGLISH) */ @Expose String domainName; diff --git a/core/src/main/java/google/registry/model/eppoutput/Result.java b/core/src/main/java/google/registry/model/eppoutput/Result.java index afd767976..21b1acc63 100644 --- a/core/src/main/java/google/registry/model/eppoutput/Result.java +++ b/core/src/main/java/google/registry/model/eppoutput/Result.java @@ -147,7 +147,7 @@ public class Result extends ImmutableObject { this.msgLang = "en"; // All of our messages are English. } - /** @return true iff the response code is in the 1xxx category, representing success. */ + /** Returns true iff the response code is in the 1xxx category, representing success. */ public boolean isSuccess() { return code < 2000; } diff --git a/core/src/main/java/google/registry/model/host/HostBase.java b/core/src/main/java/google/registry/model/host/HostBase.java index f28138b48..7a29c8c9d 100644 --- a/core/src/main/java/google/registry/model/host/HostBase.java +++ b/core/src/main/java/google/registry/model/host/HostBase.java @@ -122,6 +122,7 @@ public class HostBase extends EppResource { @Deprecated @Override + @SuppressWarnings("InlineMeSuggester") public HostBase cloneProjectedAtTime(DateTime now) { return this; } diff --git a/core/src/main/java/google/registry/model/registrar/Registrar.java b/core/src/main/java/google/registry/model/registrar/Registrar.java index ed7531d92..84ca2c17b 100644 --- a/core/src/main/java/google/registry/model/registrar/Registrar.java +++ b/core/src/main/java/google/registry/model/registrar/Registrar.java @@ -892,7 +892,11 @@ public class Registrar extends UpdateAutoTimestampEntity implements Buildable, J return this; } - /** @throws IllegalArgumentException if provided passcode is not 5-digit numeric */ + /** + * Set the phone passcode. + * + * @throws IllegalArgumentException if provided passcode is not 5-digit numeric + */ public Builder setPhonePasscode(String phonePasscode) { checkArgument( phonePasscode == null || PHONE_PASSCODE_PATTERN.matcher(phonePasscode).matches(), diff --git a/core/src/main/java/google/registry/pricing/PricingModule.java b/core/src/main/java/google/registry/pricing/PricingModule.java index 9991f245c..3d7a33ee8 100644 --- a/core/src/main/java/google/registry/pricing/PricingModule.java +++ b/core/src/main/java/google/registry/pricing/PricingModule.java @@ -14,8 +14,8 @@ package google.registry.pricing; +import dagger.Binds; import dagger.Module; -import dagger.Provides; import dagger.multibindings.IntoMap; import dagger.multibindings.StringKey; import google.registry.model.pricing.PremiumPricingEngine; @@ -25,15 +25,14 @@ import google.registry.model.pricing.StaticPremiumListPricingEngine; * Dagger module for injecting pricing engines. * *

    To add a new pricing engine, create a new class that implements {@link PremiumPricingEngine}, - * and add a module that provides an instance of {@link PremiumPricingEngine} with a unique - * {@link StringKey} annotation, and also @Provides @IntoMap annotations. + * and add a module that provides an instance of {@link PremiumPricingEngine} with a unique {@link + * StringKey} annotation, and also @Provides @IntoMap annotations. */ @Module -public class PricingModule { +public abstract class PricingModule { - @Provides @IntoMap + @Binds + @IntoMap @StringKey(StaticPremiumListPricingEngine.NAME) - static PremiumPricingEngine provideStaticPremiumList(StaticPremiumListPricingEngine engine) { - return engine; - } + abstract PremiumPricingEngine provideStaticPremiumList(StaticPremiumListPricingEngine engine); } diff --git a/core/src/main/java/google/registry/rdap/RdapObjectClasses.java b/core/src/main/java/google/registry/rdap/RdapObjectClasses.java index 8d1f33b62..67583931f 100644 --- a/core/src/main/java/google/registry/rdap/RdapObjectClasses.java +++ b/core/src/main/java/google/registry/rdap/RdapObjectClasses.java @@ -195,7 +195,9 @@ final class RdapObjectClasses { *

    Not part of the spec, but seems convenient. */ private abstract static class RdapObjectBase extends ReplyPayloadBase { - @JsonableElement final ObjectClassName objectClassName; + @SuppressWarnings("unused") + @JsonableElement + final ObjectClassName objectClassName; @JsonableElement abstract Optional handle(); @JsonableElement abstract ImmutableList publicIds(); diff --git a/core/src/main/java/google/registry/rde/Ghostryde.java b/core/src/main/java/google/registry/rde/Ghostryde.java index 51393c6ac..a39e8ae44 100644 --- a/core/src/main/java/google/registry/rde/Ghostryde.java +++ b/core/src/main/java/google/registry/rde/Ghostryde.java @@ -44,10 +44,9 @@ import org.joda.time.DateTime; /** * Utility class for reading and writing data in the ghostryde container format. * - *

    Whenever we stage sensitive data to cloud storage (like XML RDE deposit data), we - * GHOST RYDE IT first to keep it safe from the prying - * eyes of anyone with access to the Google Cloud - * Console. + *

    Whenever we stage sensitive data to cloud storage (like XML RDE deposit data), we GHOST RYDE IT first to keep it safe from the prying eyes + * of anyone with access to the Google Cloud Console. * *

    The encryption is similar to the "regular" RyDE RDE deposit file encryption. The main * difference (and the reason we had to create a custom encryption) is that the RDE deposit has a @@ -63,35 +62,37 @@ import org.joda.time.DateTime; * *

    Here's how you write a file: * - *

       {@code
    + * 
    {@code
      * File in = new File("lol.txt");
      * File out = new File("lol.txt.ghostryde");
      * File lengthOut = new File("lol.length.ghostryde");
      * try (OutputStream output = new FileOutputStream(out);
      *     OutputStream lengthOutput = new FileOutputStream(lengthOut);
      *     OutputStream ghostrydeEncoder = Ghostryde.encoder(output, publicKey, lengthOut);
    - *     InputStream input = new FileInputStream(in)) {
    - *   ByteStreams.copy(input, ghostrydeEncoder);
    - * }}
    + * InputStream input = new FileInputStream(in)) { + * ByteStreams.copy(input, ghostrydeEncoder); + * } + * }
    * *

    Here's how you read a file: * - *

       {@code
    + * 
    {@code
      * File in = new File("lol.txt.ghostryde");
      * File out = new File("lol.txt");
      * Ghostryde ghost = new Ghostryde(1024);
      * try (InputStream fileInput = new FileInputStream(in);
      *     InputStream ghostrydeDecoder = new Ghostryde.decoder(fileInput, privateKey);
    - *     OutputStream fileOutput = new FileOutputStream(out)) {
    - *   ByteStreams.copy(ghostryderDecoder, fileOutput);
    - * }}
    + * OutputStream fileOutput = new FileOutputStream(out)) { + * ByteStreams.copy(ghostryderDecoder, fileOutput); + * } + * }
    * *

    Simple API

    * *

    If you're writing test code or are certain your data can fit in memory, you might find these * static methods more convenient: * - *

       {@code
    + * 
    {@code
      * byte[] data = "hello kitty".getBytes(UTF_8);
      * byte[] blob = Ghostryde.encode(data, publicKey);
      * byte[] result = Ghostryde.decode(blob, privateKey);
    diff --git a/core/src/main/java/google/registry/rde/JSchSshSession.java b/core/src/main/java/google/registry/rde/JSchSshSession.java
    index 0fa7646e0..8011a76c0 100644
    --- a/core/src/main/java/google/registry/rde/JSchSshSession.java
    +++ b/core/src/main/java/google/registry/rde/JSchSshSession.java
    @@ -86,8 +86,6 @@ final class JSchSshSession implements Closeable {
       /**
        * Opens a new SFTP channel over this SSH session.
        *
    -   * @throws JSchException
    -   * @throws SftpException
        * @see JSchSftpChannel
        */
       public JSchSftpChannel openSftpChannel() throws JSchException, SftpException {
    diff --git a/core/src/main/java/google/registry/rde/RdeMarshaller.java b/core/src/main/java/google/registry/rde/RdeMarshaller.java
    index 88d0e4ed8..6667f6ac8 100644
    --- a/core/src/main/java/google/registry/rde/RdeMarshaller.java
    +++ b/core/src/main/java/google/registry/rde/RdeMarshaller.java
    @@ -39,6 +39,7 @@ import google.registry.xml.XmlException;
     import google.registry.xml.XmlFragmentMarshaller;
     import java.io.ByteArrayOutputStream;
     import java.io.Serializable;
    +import java.io.UnsupportedEncodingException;
     import java.util.Collection;
     import javax.annotation.concurrent.NotThreadSafe;
     import javax.xml.bind.JAXBElement;
    @@ -84,14 +85,16 @@ public final class RdeMarshaller implements Serializable {
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         try {
           XjcXmlTransformer.marshal(deposit, os, UTF_8, validationMode);
    -    } catch (XmlException e) {
    +      // TODO: Call StandardCharset.UTF_8 instead once we are one Java 17 runtime.
    +      String rdeDocument = os.toString("UTF-8");
    +      String marker = "\n";
    +      int startOfContents = rdeDocument.indexOf(marker);
    +      verify(startOfContents > 0, "Bad RDE document:\n%s", rdeDocument);
    +      return rdeDocument.substring(0, startOfContents + marker.length());
    +    } catch (XmlException | UnsupportedEncodingException e) {
           throw new RuntimeException(e);
         }
    -    String rdeDocument = os.toString();
    -    String marker = "\n";
    -    int startOfContents = rdeDocument.indexOf(marker);
    -    verify(startOfContents > 0, "Bad RDE document:\n%s", rdeDocument);
    -    return rdeDocument.substring(0, startOfContents + marker.length());
    +
       }
     
       /** Returns bottom-portion of XML document. */
    diff --git a/core/src/main/java/google/registry/rde/RdeStagingAction.java b/core/src/main/java/google/registry/rde/RdeStagingAction.java
    index 898a55f0c..636f8ea20 100644
    --- a/core/src/main/java/google/registry/rde/RdeStagingAction.java
    +++ b/core/src/main/java/google/registry/rde/RdeStagingAction.java
    @@ -68,13 +68,13 @@ import org.joda.time.Duration;
      * Action that kicks off a Dataflow job to stage escrow deposit XML files on GCS for RDE/BRDA for
      * all TLDs.
      *
    - * 

    Pending Deposits

    + *

    Pending Deposits

    * *

    This task starts by asking {@link PendingDepositChecker} which deposits need to be generated. * If there's nothing to deposit, we return 204 No Content; otherwise, we fire off a job and * redirect to its status GUI. The task can also be run in manual operation, as described below. * - *

    Dataflow

    + *

    Dataflow

    * * The Dataflow job finds the most recent history entry on or before watermark for each resource * type and loads the embedded resource from it, which is then projected to watermark time to @@ -84,9 +84,9 @@ import org.joda.time.Duration; * be included in the corresponding pending deposit. * *

    {@link Registrar} entities, both active and inactive, are included in all deposits. They are - * not rewinded point-in-time. + * not rewound point-in-time. * - *

    Afterward

    + *

    Afterward

    * *

    The XML deposit files generated by this job are humongous. A tiny XML report file is generated * for each deposit, telling us how much of what it contains. @@ -98,7 +98,7 @@ import org.joda.time.Duration; *

    To generate escrow deposits manually and locally, use the {@code nomulus} tool command {@code * GenerateEscrowDepositCommand}. * - *

    Logging

    + *

    Logging

    * *

    To identify the reduce worker request for a deposit in App Engine's log viewer, you can use * search text like {@code tld=soy}, {@code watermark=2015-01-01}, and {@code mode=FULL}. @@ -161,7 +161,7 @@ import org.joda.time.Duration; * *

    Determinism

    * - *

    The filename of an escrow deposit is determistic for a given (TLD, watermark, {@linkplain + *

    The filename of an escrow deposit is deterministic for a given (TLD, watermark, {@linkplain * RdeMode mode}) triplet. Its generated contents is deterministic in all the ways that we care * about. Its view of the database is strongly consistent in Cloud SQL automatically by nature of * the initial query for the history entry running at {@code READ_COMMITTED} transaction isolation diff --git a/core/src/main/java/google/registry/rde/RdeUtils.java b/core/src/main/java/google/registry/rde/RdeUtils.java index 9e3cc3e5c..0760400ab 100644 --- a/core/src/main/java/google/registry/rde/RdeUtils.java +++ b/core/src/main/java/google/registry/rde/RdeUtils.java @@ -100,8 +100,7 @@ public final class RdeUtils { } /** - * Generates an ID matching the regex {@code \w{1,13} } from a millisecond - * timestamp. + * Generates an ID matching the regex {@code \w{1,13}} from a millisecond timestamp. * *

    This routine works by turning the number of UTC milliseconds from the UNIX epoch into a * big-endian byte-array which is then converted to a base32 string without padding that's no diff --git a/core/src/main/java/google/registry/reporting/icann/IcannReportingUploadAction.java b/core/src/main/java/google/registry/reporting/icann/IcannReportingUploadAction.java index af9d88e79..27d6e6989 100644 --- a/core/src/main/java/google/registry/reporting/icann/IcannReportingUploadAction.java +++ b/core/src/main/java/google/registry/reporting/icann/IcannReportingUploadAction.java @@ -145,7 +145,7 @@ public final class IcannReportingUploadAction implements Runnable { + " exist.", cursorType, tldStr, filename, gcsFilename.getName(), gcsFilename.getBucket()); if (clock.nowUtc().dayOfMonth().get() == 1) { - logger.atInfo().log(logMessage + " This report may not have been staged yet."); + logger.atInfo().log("%s This report may not have been staged yet.", logMessage); } else { logger.atSevere().log(logMessage); } diff --git a/core/src/main/java/google/registry/request/JsonResponse.java b/core/src/main/java/google/registry/request/JsonResponse.java index 100e46709..516e2dbc3 100644 --- a/core/src/main/java/google/registry/request/JsonResponse.java +++ b/core/src/main/java/google/registry/request/JsonResponse.java @@ -37,7 +37,11 @@ public class JsonResponse { this.response = rsp; } - /** @see Response#setStatus */ + /** + * Sets the status. + * + * @see Response#setStatus + */ public void setStatus(int status) { response.setStatus(status); } @@ -54,12 +58,20 @@ public class JsonResponse { response.setPayload(JSON_SAFETY_PREFIX + toJSONString(checkNotNull(responseMap))); } - /** @see Response#setHeader */ + /** + * Sets the header. + * + * @see Response#setHeader + */ public void setHeader(String header, String value) { response.setHeader(header, value); } - /** @see Response#setDateHeader */ + /** + * Sets the date header. + * + *

    see Response#setDateHeader + */ public void setDateHeader(String header, DateTime timestamp) { response.setDateHeader(header, timestamp); } diff --git a/core/src/main/java/google/registry/request/RequestHandler.java b/core/src/main/java/google/registry/request/RequestHandler.java index 6611c8295..309d3bd0e 100644 --- a/core/src/main/java/google/registry/request/RequestHandler.java +++ b/core/src/main/java/google/registry/request/RequestHandler.java @@ -42,10 +42,11 @@ import org.joda.time.Duration; *

    This class creates an HTTP request processor from a Dagger component. It routes requests from * your servlet to an {@link Action @Action} annotated handler class. * - *

    Component Definition

    + *

    Component Definition

    + * + *

    Action instances are supplied on a per-request basis by invoking the methods on {@code C}. For + * example: * - *

    Action instances are supplied on a per-request basis by invoking the methods on {@code C}. - * For example: *

      * {@literal @Component}
      * interface ServerComponent {
    @@ -53,12 +54,13 @@ import org.joda.time.Duration;
      * }
    * *

    The rules for component methods are as follows: + * *

      - *
    1. Methods whose raw return type does not implement {@code Runnable} will be ignored - *
    2. Methods whose raw return type does not have an {@code @Action} annotation are ignored + *
    3. Methods whose raw return type does not implement {@code Runnable} will be ignored + *
    4. Methods whose raw return type does not have an {@code @Action} annotation are ignored *
    * - *

    Security Features

    + *

    Security Features

    * * @param request component type */ diff --git a/core/src/main/java/google/registry/tools/CommandUtilities.java b/core/src/main/java/google/registry/tools/CommandUtilities.java index 7a30a8572..6e1448d2b 100644 --- a/core/src/main/java/google/registry/tools/CommandUtilities.java +++ b/core/src/main/java/google/registry/tools/CommandUtilities.java @@ -46,6 +46,8 @@ class CommandUtilities { } } + // TODO: change Strings.repeat("-", n) to "-".repeat(n) once we are on Java 17 runtime. + @SuppressWarnings("InlineMeInliner") static String addHeader(String header, String body) { return String.format("%s:\n%s\n%s", header, Strings.repeat("-", header.length() + 1), body); } diff --git a/core/src/main/java/google/registry/tools/GetReservedListCommand.java b/core/src/main/java/google/registry/tools/GetReservedListCommand.java index e9b26bed5..9c3df49d0 100644 --- a/core/src/main/java/google/registry/tools/GetReservedListCommand.java +++ b/core/src/main/java/google/registry/tools/GetReservedListCommand.java @@ -16,7 +16,6 @@ package google.registry.tools; import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; -import com.google.common.collect.Streams; import google.registry.model.tld.label.ReservedList.ReservedListEntry; import google.registry.model.tld.label.ReservedListDao; import java.util.Comparator; @@ -37,11 +36,11 @@ public class GetReservedListCommand implements Command { if (ReservedListDao.getLatestRevision(reservedListName).isPresent()) { System.out.printf( "%s\n", - Streams.stream( - ReservedListDao.getLatestRevision(reservedListName) - .get() - .getReservedListEntries() - .values()) + ReservedListDao.getLatestRevision(reservedListName) + .get() + .getReservedListEntries() + .values() + .stream() .sorted(Comparator.comparing(ReservedListEntry::getDomainLabel)) .map(ReservedListEntry::toString) .collect(Collectors.joining("\n"))); diff --git a/core/src/main/java/google/registry/tools/GetTldCommand.java b/core/src/main/java/google/registry/tools/GetTldCommand.java index f2c98e092..b255c8b5a 100644 --- a/core/src/main/java/google/registry/tools/GetTldCommand.java +++ b/core/src/main/java/google/registry/tools/GetTldCommand.java @@ -40,10 +40,12 @@ final class GetTldCommand implements Command { @Override public void run() throws JsonProcessingException, UnsupportedEncodingException { - try (PrintStream printStream = new PrintStream(System.out, false, UTF_8.name())) { - for (String tld : assertTldsExist(mainParameters)) { + // Don't use try-with-resources to manage standard output streams, closing the stream will + // cause subsequent output to standard output or standard error to be lost + // See: https://errorprone.info/bugpattern/ClosingStandardOutputStreams + PrintStream printStream = new PrintStream(System.out, false, UTF_8.name()); + for (String tld : assertTldsExist(mainParameters)) { printStream.println(objectMapper.writeValueAsString(Tld.get(tld))); } - } } } diff --git a/core/src/main/java/google/registry/tools/RegistryToolEnvironment.java b/core/src/main/java/google/registry/tools/RegistryToolEnvironment.java index 749e3eacc..f26ae0b7a 100644 --- a/core/src/main/java/google/registry/tools/RegistryToolEnvironment.java +++ b/core/src/main/java/google/registry/tools/RegistryToolEnvironment.java @@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import google.registry.util.RegistryEnvironment; import google.registry.util.SystemPropertySetter; +import java.util.Map; /** Enum of production environments, used for the {@code --environment} flag. */ public enum RegistryToolEnvironment { @@ -93,7 +94,7 @@ public enum RegistryToolEnvironment { void setup(SystemPropertySetter systemPropertySetter) { instance = this; actualEnvironment.setup(systemPropertySetter); - for (ImmutableMap.Entry entry : extraProperties.entrySet()) { + for (Map.Entry entry : extraProperties.entrySet()) { systemPropertySetter.setProperty(entry.getKey(), entry.getValue()); } } diff --git a/core/src/main/java/google/registry/tools/ShellCommand.java b/core/src/main/java/google/registry/tools/ShellCommand.java index 7292fbcfa..65306bbdb 100644 --- a/core/src/main/java/google/registry/tools/ShellCommand.java +++ b/core/src/main/java/google/registry/tools/ShellCommand.java @@ -200,10 +200,9 @@ public class ShellCommand implements Command { private void encapsulatedRun(String[] args) throws Exception { PrintStream orgOut = System.out; PrintStream orgErr = System.err; - try (PrintStream newOut = - new PrintStream(new EncapsulatingOutputStream(System.out, "out: ")); - PrintStream newErr = - new PrintStream(new EncapsulatingOutputStream(System.out, "err: "))) { + PrintStream newOut = new PrintStream(new EncapsulatingOutputStream(System.out, "out: ")); + PrintStream newErr = new PrintStream(new EncapsulatingOutputStream(System.out, "err: ")); + try { System.setOut(newOut); System.setErr(newErr); runner.run(args); diff --git a/core/src/main/java/google/registry/tools/params/EnumParameter.java b/core/src/main/java/google/registry/tools/params/EnumParameter.java index 1635d180f..fefdc494b 100644 --- a/core/src/main/java/google/registry/tools/params/EnumParameter.java +++ b/core/src/main/java/google/registry/tools/params/EnumParameter.java @@ -16,10 +16,11 @@ package google.registry.tools.params; import google.registry.util.TypeUtils.TypeInstantiator; -/** Base class for Enum-based parameters. +/** + * Base class for Enum-based parameters. * *

    This is not necessary for single-value Enum parameters (i.e. arity = 1) as JCommander natively - * supports them, but is necessary for variable-arity ({@code List<Enum>}) parameters. + * supports them, but is necessary for variable-arity ({@code List}) parameters. */ public abstract class EnumParameter> extends ParameterConverterValidator { diff --git a/core/src/main/java/google/registry/ui/forms/FormField.java b/core/src/main/java/google/registry/ui/forms/FormField.java index 225ec2325..37ab2f7b7 100644 --- a/core/src/main/java/google/registry/ui/forms/FormField.java +++ b/core/src/main/java/google/registry/ui/forms/FormField.java @@ -75,7 +75,7 @@ import javax.annotation.concurrent.Immutable; *

    This class provides full type-safety if and only if you statically initialize * your FormField objects and write a unit test that causes the class to be loaded. * - *

    Exception Handling

    + *

    Exception Handling

    * *

    When values passed to {@link #convert} or {@link #extract} don't meet the contract, {@link * FormFieldException} will be thrown, which provides the field name and a short error message diff --git a/core/src/main/java/google/registry/ui/server/registrar/ConsoleOteSetupAction.java b/core/src/main/java/google/registry/ui/server/registrar/ConsoleOteSetupAction.java index 4b02806a4..a5a43dd7a 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/ConsoleOteSetupAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/ConsoleOteSetupAction.java @@ -35,7 +35,7 @@ import google.registry.ui.server.SoyTemplateUtils; import google.registry.ui.soy.registrar.OteSetupConsoleSoyInfo; import google.registry.util.RegistryEnvironment; import google.registry.util.StringGenerator; -import java.util.HashMap; +import java.util.Map; import java.util.Optional; import javax.inject.Inject; import javax.inject.Named; @@ -90,7 +90,7 @@ public final class ConsoleOteSetupAction extends HtmlAction { ConsoleOteSetupAction() {} @Override - public void runAfterLogin(HashMap data) { + public void runAfterLogin(Map data) { checkState( !RegistryEnvironment.get().equals(PRODUCTION), "Can't create OT&E in prod"); @@ -122,7 +122,7 @@ public final class ConsoleOteSetupAction extends HtmlAction { return PATH; } - private void runPost(HashMap data) { + private void runPost(Map data) { try { checkState(clientId.isPresent() && email.isPresent(), "Must supply clientId and email"); @@ -162,7 +162,7 @@ public final class ConsoleOteSetupAction extends HtmlAction { } } - private void runGet(HashMap data) { + private void runGet(Map data) { // set the values to pre-fill, if given data.put("baseClientId", clientId.orElse(null)); data.put("contactEmail", email.orElse(null)); diff --git a/core/src/main/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorAction.java b/core/src/main/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorAction.java index e64a544c6..d3c0eaacf 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorAction.java @@ -45,7 +45,7 @@ import google.registry.ui.soy.registrar.FormsSoyInfo; import google.registry.ui.soy.registrar.RegistrarCreateConsoleSoyInfo; import google.registry.util.RegistryEnvironment; import google.registry.util.StringGenerator; -import java.util.HashMap; +import java.util.Map; import java.util.Optional; import java.util.function.Supplier; import java.util.stream.Stream; @@ -108,7 +108,7 @@ public final class ConsoleRegistrarCreatorAction extends HtmlAction { @Inject ConsoleRegistrarCreatorAction() {} @Override - public void runAfterLogin(HashMap data) { + public void runAfterLogin(Map data) { if (!registrarAccessor.isAdmin()) { response.setStatus(SC_FORBIDDEN); response.setPayload( @@ -165,7 +165,7 @@ public final class ConsoleRegistrarCreatorAction extends HtmlAction { } } - private void runPost(HashMap data) { + private void runPost(Map data) { try { checkPresent(clientId, "clientId"); checkPresent(name, "name"); @@ -263,7 +263,7 @@ public final class ConsoleRegistrarCreatorAction extends HtmlAction { } } - private void runGet(HashMap data) { + private void runGet(Map data) { // set the values to pre-fill, if given data.put("clientId", clientId.orElse(null)); data.put("name", name.orElse(null)); diff --git a/core/src/main/java/google/registry/ui/server/registrar/ConsoleUiAction.java b/core/src/main/java/google/registry/ui/server/registrar/ConsoleUiAction.java index fe22c10ca..7c925abd0 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/ConsoleUiAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/ConsoleUiAction.java @@ -36,7 +36,7 @@ import google.registry.request.auth.AuthenticatedRegistrarAccessor.Role; import google.registry.ui.server.SoyTemplateUtils; import google.registry.ui.soy.registrar.ConsoleSoyInfo; import google.registry.util.RegistryEnvironment; -import java.util.HashMap; +import java.util.Map; import java.util.Optional; import javax.inject.Inject; @@ -92,7 +92,7 @@ public final class ConsoleUiAction extends HtmlAction { ConsoleUiAction() {} @Override - public void runAfterLogin(HashMap data) { + public void runAfterLogin(Map data) { SoyMapData soyMapData = new SoyMapData(); data.forEach((key, value) -> soyMapData.put(key, value)); diff --git a/core/src/main/java/google/registry/ui/server/registrar/HtmlAction.java b/core/src/main/java/google/registry/ui/server/registrar/HtmlAction.java index ca32133d2..6ff65c9e2 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/HtmlAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/HtmlAction.java @@ -102,7 +102,7 @@ public abstract class HtmlAction implements Runnable { runAfterLogin(data); } - public abstract void runAfterLogin(HashMap data); + public abstract void runAfterLogin(Map data); public abstract String getPath(); } diff --git a/core/src/main/java/google/registry/ui/server/registrar/RegistryLockVerifyAction.java b/core/src/main/java/google/registry/ui/server/registrar/RegistryLockVerifyAction.java index c1a455fd7..68f20a6e7 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/RegistryLockVerifyAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/RegistryLockVerifyAction.java @@ -27,7 +27,7 @@ import google.registry.request.auth.Auth; import google.registry.tools.DomainLockUtils; import google.registry.ui.server.SoyTemplateUtils; import google.registry.ui.soy.registrar.RegistryLockVerificationSoyInfo; -import java.util.HashMap; +import java.util.Map; import javax.inject.Inject; /** Action that allows for verification of registry lock / unlock requests */ @@ -63,7 +63,7 @@ public final class RegistryLockVerifyAction extends HtmlAction { } @Override - public void runAfterLogin(HashMap data) { + public void runAfterLogin(Map data) { try { boolean isAdmin = authResult.userAuthInfo().get().isUserAdmin(); final RegistryLock resultLock; diff --git a/core/src/main/java/google/registry/whois/NonCachingWhoisModule.java b/core/src/main/java/google/registry/whois/NonCachingWhoisModule.java index 6e4285bc4..cf1000f4a 100644 --- a/core/src/main/java/google/registry/whois/NonCachingWhoisModule.java +++ b/core/src/main/java/google/registry/whois/NonCachingWhoisModule.java @@ -21,7 +21,7 @@ import google.registry.config.RegistryConfig.Config; /** * Whois module for systems that require that we not cache EPP resources (e.g. the nomulus tool). * - *

    Dependencies

    + *

    Dependencies

    * *
      *
    • {@link google.registry.request.RequestModule RequestModule} diff --git a/core/src/main/java/google/registry/whois/WhoisModule.java b/core/src/main/java/google/registry/whois/WhoisModule.java index 8836762ba..a91525323 100644 --- a/core/src/main/java/google/registry/whois/WhoisModule.java +++ b/core/src/main/java/google/registry/whois/WhoisModule.java @@ -24,7 +24,7 @@ import google.registry.config.RegistryConfig.Config; /** * Dagger module for the whois package. * - *

      Dependencies

      + *

      Dependencies

      * *
        *
      • {@link google.registry.request.RequestModule RequestModule} diff --git a/core/src/main/java/google/registry/xml/TrimWhitespaceAdapter.java b/core/src/main/java/google/registry/xml/TrimWhitespaceAdapter.java index f0b978998..06b5c0116 100644 --- a/core/src/main/java/google/registry/xml/TrimWhitespaceAdapter.java +++ b/core/src/main/java/google/registry/xml/TrimWhitespaceAdapter.java @@ -25,9 +25,9 @@ import javax.xml.bind.annotation.adapters.XmlAdapter; * values can commonly be formatted like so: * *
        {@code
        - *   <ns:tag>
        - *     XML value here.
        - *   </ns:tag>
        + * 
        + *   XML value here.
        + * 
          * }
        */ public class TrimWhitespaceAdapter extends XmlAdapter { diff --git a/core/src/test/java/google/registry/batch/SendExpiringCertificateNotificationEmailActionTest.java b/core/src/test/java/google/registry/batch/SendExpiringCertificateNotificationEmailActionTest.java index 42c63511b..970e5b17b 100644 --- a/core/src/test/java/google/registry/batch/SendExpiringCertificateNotificationEmailActionTest.java +++ b/core/src/test/java/google/registry/batch/SendExpiringCertificateNotificationEmailActionTest.java @@ -582,10 +582,7 @@ class SendExpiringCertificateNotificationEmailActionTest { String registrarId = "registrarid"; String emailBody = action.getEmailBody( - registrarName, - certificateType, - DateTime.parse(certExpirationDateStr).toDate(), - registrarId); + registrarName, certificateType, DateTime.parse(certExpirationDateStr), registrarId); assertThat(emailBody).contains(registrarName); assertThat(emailBody).contains(certificateType.getDisplayName()); assertThat(emailBody).contains(certExpirationDateStr); @@ -614,7 +611,7 @@ class SendExpiringCertificateNotificationEmailActionTest { IllegalArgumentException.class, () -> action.getEmailBody( - "good registrar", null, DateTime.parse("2021-06-15").toDate(), "registrarId")); + "good registrar", null, DateTime.parse("2021-06-15"), "registrarId")); assertThat(thrown).hasMessageThat().contains("Certificate type cannot be null"); } @@ -627,7 +624,7 @@ class SendExpiringCertificateNotificationEmailActionTest { action.getEmailBody( "good registrar", CertificateType.FAILOVER, - DateTime.parse("2021-06-15").toDate(), + DateTime.parse("2021-06-15"), null)); assertThat(thrown).hasMessageThat().contains("Registrar Id cannot be null"); } diff --git a/core/src/test/java/google/registry/bsa/BsaDiffCreatorTest.java b/core/src/test/java/google/registry/bsa/BsaDiffCreatorTest.java index c317fe5f8..7bd5ef900 100644 --- a/core/src/test/java/google/registry/bsa/BsaDiffCreatorTest.java +++ b/core/src/test/java/google/registry/bsa/BsaDiffCreatorTest.java @@ -48,8 +48,14 @@ class BsaDiffCreatorTest { @Mock GcsClient gcsClient; - @Mock DownloadSchedule schedule; - @Mock CompletedJob completedJob; + @SuppressWarnings("DoNotMockAutoValue") + @Mock + DownloadSchedule schedule; + + @SuppressWarnings("DoNotMockAutoValue") + @Mock + CompletedJob completedJob; + @Mock IdnChecker idnChecker; BsaDiffCreator diffCreator; diff --git a/core/src/test/java/google/registry/bsa/persistence/BsaLabelUtilsTest.java b/core/src/test/java/google/registry/bsa/persistence/BsaLabelUtilsTest.java index 936b8bd99..0e982cd58 100644 --- a/core/src/test/java/google/registry/bsa/persistence/BsaLabelUtilsTest.java +++ b/core/src/test/java/google/registry/bsa/persistence/BsaLabelUtilsTest.java @@ -88,10 +88,8 @@ public class BsaLabelUtilsTest { when(replicaTm.loadByKey(any())).thenReturn(new BsaLabel("abc", fakeClock.nowUtc())); try { assertThat(isLabelBlocked("abc")).isTrue(); - /** - * If test fails, check and fix cache expiry in the config file. Do not increase the duration - * on the line below without proper discussion. - */ + // If test fails, check and fix cache expiry in the config file. Do not increase the duration + // on the line below without proper discussion. fakeClock.advanceBy(standardMinutes(1).plus(millis(1))); assertThat(isLabelBlocked("abc")).isTrue(); verify(replicaTm, times(2)).loadByKey(any()); diff --git a/core/src/test/java/google/registry/bsa/persistence/LabelDiffUpdatesTest.java b/core/src/test/java/google/registry/bsa/persistence/LabelDiffUpdatesTest.java index 7f458d996..6f8ab669e 100644 --- a/core/src/test/java/google/registry/bsa/persistence/LabelDiffUpdatesTest.java +++ b/core/src/test/java/google/registry/bsa/persistence/LabelDiffUpdatesTest.java @@ -62,7 +62,10 @@ class LabelDiffUpdatesTest { new JpaTestExtensions.Builder().withClock(fakeClock).buildIntegrationWithCoverageExtension(); @Mock IdnChecker idnChecker; - @Mock DownloadSchedule schedule; + + @SuppressWarnings("DoNotMockAutoValue") + @Mock + DownloadSchedule schedule; Tld app; Tld dev; diff --git a/core/src/test/java/google/registry/dns/writer/dnsupdate/DnsMessageTransportTest.java b/core/src/test/java/google/registry/dns/writer/dnsupdate/DnsMessageTransportTest.java index 506e08088..ffc3b5834 100644 --- a/core/src/test/java/google/registry/dns/writer/dnsupdate/DnsMessageTransportTest.java +++ b/core/src/test/java/google/registry/dns/writer/dnsupdate/DnsMessageTransportTest.java @@ -59,6 +59,7 @@ class DnsMessageTransportTest { private DnsMessageTransport resolver; @BeforeEach + @SuppressWarnings("AddressSelection") void beforeEach() throws Exception { simpleQuery = Message.newQuery(Record.newRecord(Name.fromString("example.com."), Type.A, DClass.IN)); diff --git a/core/src/test/java/google/registry/flows/certs/CertificateCheckerTest.java b/core/src/test/java/google/registry/flows/certs/CertificateCheckerTest.java index a8956dd53..7d7cc99e2 100644 --- a/core/src/test/java/google/registry/flows/certs/CertificateCheckerTest.java +++ b/core/src/test/java/google/registry/flows/certs/CertificateCheckerTest.java @@ -403,7 +403,7 @@ class CertificateCheckerTest { // Invalid curve KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC"); AlgorithmParameters apParam = AlgorithmParameters.getInstance("EC"); - apParam.init(new ECGenParameterSpec("secp128r1")); + apParam.init(new ECGenParameterSpec("secp521r1")); ECParameterSpec spec = apParam.getParameterSpec(ECParameterSpec.class); keyGen.initialize(spec, new SecureRandom()); X509Certificate certificate = diff --git a/core/src/test/java/google/registry/flows/domain/DomainCreateFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainCreateFlowTest.java index f9e720992..e7e6ad646 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainCreateFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainCreateFlowTest.java @@ -190,6 +190,8 @@ import google.registry.tmch.SmdrlCsvParser; import google.registry.tmch.TmchData; import google.registry.tmch.TmchTestData; import google.registry.xml.ValidationMode; +import java.io.BufferedReader; +import java.io.StringReader; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.util.Map; @@ -2762,7 +2764,11 @@ class DomainCreateFlowTest extends ResourceFlowTestCasePlease refer to the class javadoc of {@link DatabaseException} for more information. */ +@Disabled // TODO: re-enable test class after upgrading to Java 17. +// LogManager.updateConfiguration() is only supported in Java 9 and later. public class HibernateLoggingSuppressionTest { private static final String LOG_SUPPRESSION_TARGET = @@ -73,6 +74,7 @@ public class HibernateLoggingSuppressionTest { void suppressHibernateLogs() throws IOException { try (ByteArrayInputStream additionalProperties = new ByteArrayInputStream(LOGGING_PROPERTIES_LINE.getBytes(UTF_8))) { + /* LogManager.getLogManager() .updateConfiguration( additionalProperties, @@ -84,12 +86,14 @@ public class HibernateLoggingSuppressionTest { checkArgument(o == null, "Cannot override old value in this test"); return n; }); + */ } } void revertSuppressionOfHibernateLogs() throws IOException { try (ByteArrayInputStream additionalProperties = new ByteArrayInputStream(LOGGING_PROPERTIES_LINE.getBytes(UTF_8))) { + /* LogManager.getLogManager() .updateConfiguration( additionalProperties, @@ -100,6 +104,7 @@ public class HibernateLoggingSuppressionTest { } return null; }); + */ } } diff --git a/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java b/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java index 53cb96995..e434dee03 100644 --- a/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java +++ b/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.truth.Truth.assertWithMessage; import static google.registry.testing.DatabaseHelper.insertSimpleResources; +import static java.nio.charset.StandardCharsets.UTF_8; import static org.testcontainers.containers.PostgreSQLContainer.POSTGRESQL_PORT; import com.google.common.base.Charsets; @@ -172,7 +173,8 @@ public abstract class JpaTransactionManagerExtension File tempSqlFile = File.createTempFile("tempSqlFile", ".sql"); tempSqlFile.deleteOnExit(); exporter.export(extraEntityClasses, tempSqlFile); - executeSql(Files.readString(tempSqlFile.toPath())); + // TODO: Use Files.readString() once we upgrade to Java 17 runtime. + executeSql(new String(Files.readAllBytes(tempSqlFile.toPath()), UTF_8)); } assertReasonableNumDbConnections(); emf = createEntityManagerFactory(getJpaProperties()); diff --git a/core/src/test/java/google/registry/rde/RdeReportActionTest.java b/core/src/test/java/google/registry/rde/RdeReportActionTest.java index 866176f51..d6d8ae6d8 100644 --- a/core/src/test/java/google/registry/rde/RdeReportActionTest.java +++ b/core/src/test/java/google/registry/rde/RdeReportActionTest.java @@ -66,6 +66,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link RdeReportAction}. */ +@SuppressWarnings("DirectInvocationOnMock") // FakeUrlConnectionService mocks the getURL() method. public class RdeReportActionTest { private static final ByteSource REPORT_XML = RdeTestData.loadBytes("report.xml"); diff --git a/core/src/test/java/google/registry/reporting/icann/ActivityReportingQueryBuilderTest.java b/core/src/test/java/google/registry/reporting/icann/ActivityReportingQueryBuilderTest.java index 386c3e495..23c5dda0b 100644 --- a/core/src/test/java/google/registry/reporting/icann/ActivityReportingQueryBuilderTest.java +++ b/core/src/test/java/google/registry/reporting/icann/ActivityReportingQueryBuilderTest.java @@ -26,6 +26,7 @@ class ActivityReportingQueryBuilderTest { private final YearMonth yearMonth = new YearMonth(2017, 9); + @SuppressWarnings("NonCanonicalType") private ActivityReportingQueryBuilder createQueryBuilder(String datasetName) { return new ActivityReportingQueryBuilder( "domain-registry-alpha", diff --git a/core/src/test/java/google/registry/testing/FakeResponse.java b/core/src/test/java/google/registry/testing/FakeResponse.java index 3f72c2f46..f5038fcdb 100644 --- a/core/src/test/java/google/registry/testing/FakeResponse.java +++ b/core/src/test/java/google/registry/testing/FakeResponse.java @@ -24,6 +24,7 @@ import com.google.common.net.MediaType; import google.registry.request.Response; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.servlet.http.Cookie; import org.joda.time.DateTime; @@ -92,7 +93,7 @@ public final class FakeResponse implements Response { cookies.add(cookie); } - public ArrayList getCookies() { + public List getCookies() { return cookies; } diff --git a/core/src/test/java/google/registry/testing/FakeServletInputStream.java b/core/src/test/java/google/registry/testing/FakeServletInputStream.java index 2fb1e9df5..6489163f0 100644 --- a/core/src/test/java/google/registry/testing/FakeServletInputStream.java +++ b/core/src/test/java/google/registry/testing/FakeServletInputStream.java @@ -38,7 +38,6 @@ public final class FakeServletInputStream extends ServletInputStream { /** * Use a {@link ByteSource} as input for the servlet. Be sure to call {@link #close} after * your servlet runs so the resource opened via {@code bytes} gets closed. - * @throws IOException */ public FakeServletInputStream(ByteSource bytes) throws IOException { this.input = bytes.openStream(); diff --git a/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java b/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java index 40c18b1f3..f68ef4677 100644 --- a/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java +++ b/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java @@ -237,6 +237,7 @@ class NordnUploadActionTest { assertThat(domain.getLordnPhase()).isEqualTo(LordnPhase.NONE); } + @SuppressWarnings("DirectInvocationOnMock") private void testRun(String phase, String domain1, String domain2, String csv) throws Exception { action.phase = phase; action.run(); @@ -248,7 +249,8 @@ class NordnUploadActionTest { verify(httpUrlConnection).setRequestMethod("POST"); assertThat(httpUrlConnection.getURL()) .isEqualTo(new URL("http://127.0.0.1/LORDN/tld/" + phase)); - assertThat(connectionOutputStream.toString(UTF_8)).contains(csv); + // TODO: use toString(StandardCharsets.UTF_8) once we upgrade to Java 17. + assertThat(connectionOutputStream.toString("UTF-8")).contains(csv); verifyColumnCleared(domain1); verifyColumnCleared(domain2); cloudTasksHelper.assertTasksEnqueued( diff --git a/core/src/test/java/google/registry/tmch/NordnVerifyActionTest.java b/core/src/test/java/google/registry/tmch/NordnVerifyActionTest.java index 891401df0..e4008df20 100644 --- a/core/src/test/java/google/registry/tmch/NordnVerifyActionTest.java +++ b/core/src/test/java/google/registry/tmch/NordnVerifyActionTest.java @@ -101,6 +101,7 @@ class NordnVerifyActionTest { } @Test + @SuppressWarnings("DirectInvocationOnMock") void testSuccess_sendHttpRequest_urlIsCorrect() throws Exception { action.run(); assertThat(httpUrlConnection.getURL()).isEqualTo(new URL("http://127.0.0.1/blobio")); diff --git a/core/src/test/java/google/registry/tools/CreateTldCommandTest.java b/core/src/test/java/google/registry/tools/CreateTldCommandTest.java index 7eaa50791..32479ae86 100644 --- a/core/src/test/java/google/registry/tools/CreateTldCommandTest.java +++ b/core/src/test/java/google/registry/tools/CreateTldCommandTest.java @@ -282,7 +282,7 @@ class CreateTldCommandTest extends CommandTestCase { runCommandForced("co.uk", "--roid_suffix=COUK", "--dns_writers=VoidDnsWriter"); Tld registry = Tld.get("co.uk"); - assertThat(registry.getTldState(new DateTime())).isEqualTo(PREDELEGATION); + assertThat(registry.getTldState(DateTime.now(UTC))).isEqualTo(PREDELEGATION); assertThat(registry.getAddGracePeriodLength()).isEqualTo(Tld.DEFAULT_ADD_GRACE_PERIOD); assertThat(registry.getRedemptionGracePeriodLength()) .isEqualTo(Tld.DEFAULT_REDEMPTION_GRACE_PERIOD); diff --git a/core/src/test/java/google/registry/tools/GcpProjectConnectionTest.java b/core/src/test/java/google/registry/tools/GcpProjectConnectionTest.java index d73130b0e..942fe3eb4 100644 --- a/core/src/test/java/google/registry/tools/GcpProjectConnectionTest.java +++ b/core/src/test/java/google/registry/tools/GcpProjectConnectionTest.java @@ -73,7 +73,8 @@ final class GcpProjectConnectionTest { ByteArrayOutputStream output = new ByteArrayOutputStream(); getStreamingContent().writeTo(output); output.close(); - return output.toString(UTF_8); + // TODO: use toString(StandardCharsets.UTF_8) once we upgrade to Java 17. + return output.toString("UTF-8"); } } diff --git a/core/src/test/java/google/registry/tools/ShellCommandTest.java b/core/src/test/java/google/registry/tools/ShellCommandTest.java index a3b0a2487..d16dd9037 100644 --- a/core/src/test/java/google/registry/tools/ShellCommandTest.java +++ b/core/src/test/java/google/registry/tools/ShellCommandTest.java @@ -241,22 +241,22 @@ class ShellCommandTest { } @Test - void testEncapsulatedOutputStream_basicFuncionality() { + void testEncapsulatedOutputStream_basicFuncionality() throws Exception { ByteArrayOutputStream backing = new ByteArrayOutputStream(); try (PrintStream out = new PrintStream(new ShellCommand.EncapsulatingOutputStream(backing, "out: "))) { out.println("first line"); out.print("second line\ntrailing data"); } - assertThat(backing.toString()) + assertThat(backing.toString("UTF-8")) .isEqualTo("out: first line\nout: second line\nout: trailing data\n"); } @Test - void testEncapsulatedOutputStream_emptyStream() { + void testEncapsulatedOutputStream_emptyStream() throws Exception { ByteArrayOutputStream backing = new ByteArrayOutputStream(); new PrintStream(new ShellCommand.EncapsulatingOutputStream(backing, "out: ")).close(); - assertThat(backing.toString()).isEqualTo(""); + assertThat(backing.toString("UTF-8")).isEqualTo(""); } @Test @@ -275,8 +275,8 @@ class ShellCommandTest { shellCommand.encapsulateOutput = true; shellCommand.run(); - assertThat(stderr.toString()).isEmpty(); - assertThat(stdout.toString()) + assertThat(stderr.toString("UTF-8")).isEmpty(); + assertThat(stdout.toString("UTF-8")) .isEqualTo( "RUNNING \"command1\"\n" + "out: first line\nerr: second line\nerr: surprise!\nout: fragmented line\n" @@ -295,8 +295,8 @@ class ShellCommandTest { }); shellCommand.encapsulateOutput = true; shellCommand.run(); - assertThat(stderr.toString()).isEmpty(); - assertThat(stdout.toString()) + assertThat(stderr.toString("UTF-8")).isEmpty(); + assertThat(stdout.toString("UTF-8")) .isEqualTo( "RUNNING \"command1\"\n" + "out: first line\n" @@ -316,8 +316,8 @@ class ShellCommandTest { "do something"); shellCommand.encapsulateOutput = true; shellCommand.run(); - assertThat(stderr.toString()).isEmpty(); - assertThat(stdout.toString()) + assertThat(stderr.toString("UTF-8")).isEmpty(); + assertThat(stdout.toString("UTF-8")) .isEqualTo("RUNNING \"do\" \"something\"\nout: first line\nSUCCESS\n"); } diff --git a/core/src/test/java/google/registry/tools/server/GenerateZoneFilesActionTest.java b/core/src/test/java/google/registry/tools/server/GenerateZoneFilesActionTest.java index a17b8f7ea..0b8bcd773 100644 --- a/core/src/test/java/google/registry/tools/server/GenerateZoneFilesActionTest.java +++ b/core/src/test/java/google/registry/tools/server/GenerateZoneFilesActionTest.java @@ -77,6 +77,7 @@ class GenerateZoneFilesActionTest { testGenerate("tldCustomTtl.zone"); } + @SuppressWarnings("AddressSelection") void testGenerate(String goldenFileName) throws Exception { DateTime now = DateTime.now(DateTimeZone.UTC).withTimeAtStartOfDay(); diff --git a/core/src/test/java/google/registry/tools/server/ListDomainsActionTest.java b/core/src/test/java/google/registry/tools/server/ListDomainsActionTest.java index d484cea6b..a93dfe78d 100644 --- a/core/src/test/java/google/registry/tools/server/ListDomainsActionTest.java +++ b/core/src/test/java/google/registry/tools/server/ListDomainsActionTest.java @@ -63,7 +63,7 @@ class ListDomainsActionTest extends ListActionTestCase { @Test void testRun_noParameters() { action.tlds = ImmutableSet.of("foo"); - testRunSuccess(action, null, null, null); + testRunSuccess(action, Optional.empty(), Optional.empty(), Optional.empty()); } @Test diff --git a/core/src/test/java/google/registry/tools/server/ListHostsActionTest.java b/core/src/test/java/google/registry/tools/server/ListHostsActionTest.java index c584c1ab9..32b64536c 100644 --- a/core/src/test/java/google/registry/tools/server/ListHostsActionTest.java +++ b/core/src/test/java/google/registry/tools/server/ListHostsActionTest.java @@ -37,11 +37,7 @@ class ListHostsActionTest extends ListActionTestCase { @Test void testRun_noParameters() { - testRunSuccess( - action, - null, - null, - null); + testRunSuccess(action, Optional.empty(), Optional.empty(), Optional.empty()); } @Test diff --git a/core/src/test/java/google/registry/ui/server/console/ConsoleUserDataActionTest.java b/core/src/test/java/google/registry/ui/server/console/ConsoleUserDataActionTest.java index 885f5cae0..2fe15c4f1 100644 --- a/core/src/test/java/google/registry/ui/server/console/ConsoleUserDataActionTest.java +++ b/core/src/test/java/google/registry/ui/server/console/ConsoleUserDataActionTest.java @@ -32,7 +32,7 @@ import google.registry.testing.FakeConsoleApiParams; import google.registry.testing.FakeResponse; import google.registry.ui.server.registrar.ConsoleApiParams; import java.io.IOException; -import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Optional; import javax.servlet.http.Cookie; @@ -63,7 +63,7 @@ class ConsoleUserDataActionTest { createAction( Optional.of(FakeConsoleApiParams.get(Optional.of(authResult))), Action.Method.GET); action.run(); - ArrayList cookies = ((FakeResponse) consoleApiParams.response()).getCookies(); + List cookies = ((FakeResponse) consoleApiParams.response()).getCookies(); assertThat(cookies.stream().map(cookie -> cookie.getName()).collect(toImmutableList())) .containsExactly("X-CSRF-Token"); } diff --git a/db/gradle.lockfile b/db/gradle.lockfile index 93cd8dbd4..2ac10147b 100644 --- a/db/gradle.lockfile +++ b/db/gradle.lockfile @@ -1,13 +1,14 @@ # 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. +aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor com.fasterxml.jackson.core:jackson-annotations:2.15.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-core:2.15.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-databind:2.15.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.15.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson:jackson-bom:2.15.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor,errorprone,testAnnotationProcessor com.github.ben-manes.caffeine:caffeine:2.9.3=testCompileClasspath,testRuntimeClasspath +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor com.github.docker-java:docker-java-api:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport-zerodep:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport:3.3.4=testCompileClasspath,testRuntimeClasspath @@ -25,51 +26,53 @@ com.google.api:gax:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.apis:google-api-services-sqladmin:v1beta4-rev20231208-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.auth:google-auth-library-credentials:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.auth:google-auth-library-oauth2-http:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.10.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.cloud.sql:jdbc-socket-factory-core:1.15.1=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.cloud.sql:postgres-socket-factory:1.15.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.10.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.errorprone:error_prone_annotations:2.7.1=checkstyle -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.flogger:flogger-system-backend:0.8=testRuntimeClasspath com.google.flogger:flogger:0.8=testCompileClasspath,testRuntimeClasspath com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor com.google.guava:failureaccess:1.0.2=testCompileClasspath,testRuntimeClasspath -com.google.guava:guava:27.0.1-jre=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:31.0.1-jre=checkstyle +com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:32.1.3-android=deploy_jar,runtimeClasspath com.google.guava:guava:33.0.0-jre=testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-apache-v2:1.42.3=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.http-client:google-http-client-gson:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.http-client:google-http-client:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.j2objc:j2objc-annotations:1.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.j2objc:j2objc-annotations:1.3=checkstyle com.google.j2objc:j2objc-annotations:2.8=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.oauth-client:google-oauth-client:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor com.google.truth.extensions:truth-java8-extension:1.2.0=testCompileClasspath,testRuntimeClasspath com.google.truth:truth:1.2.0=testCompileClasspath,testRuntimeClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor com.puppycrawl.tools:checkstyle:9.3=checkstyle commons-beanutils:commons-beanutils:1.9.4=checkstyle commons-codec:commons-codec:1.15=deploy_jar,runtimeClasspath,testRuntimeClasspath commons-collections:commons-collections:3.2.2=checkstyle commons-logging:commons-logging:1.2=deploy_jar,runtimeClasspath,testRuntimeClasspath info.picocli:picocli:4.6.2=checkstyle -io.github.java-diff-utils:java-diff-utils:4.12=testCompileClasspath,testRuntimeClasspath +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath io.grpc:grpc-context:1.27.2=deploy_jar,runtimeClasspath,testRuntimeClasspath io.opencensus:opencensus-api:0.31.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.opencensus:opencensus-contrib-http-util:0.31.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.inject:javax.inject:1=testCompileClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath joda-time:joda-time:2.12.6=testCompileClasspath,testRuntimeClasspath junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath net.java.dev.jna:jna:5.13.0=testCompileClasspath,testRuntimeClasspath @@ -80,13 +83,10 @@ org.apache.httpcomponents:httpclient:4.5.14=deploy_jar,runtimeClasspath,testRunt org.apache.httpcomponents:httpcore:4.4.16=deploy_jar,runtimeClasspath,testRuntimeClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.checkerframework:checker-compat-qual:2.5.3=testCompileClasspath,testRuntimeClasspath -org.checkerframework:checker-qual:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.12.0=checkstyle +org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.41.0=deploy_jar,runtimeClasspath org.checkerframework:checker-qual:3.42.0=testCompileClasspath,testRuntimeClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,errorprone,testAnnotationProcessor org.flywaydb:flyway-core:9.22.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath org.jacoco:org.jacoco.agent:0.8.9=jacocoAgent,jacocoAnt @@ -109,10 +109,7 @@ org.ow2.asm:asm-tree:9.6=deploy_jar,runtimeClasspath,testRuntimeClasspath org.ow2.asm:asm-util:9.6=deploy_jar,runtimeClasspath,testRuntimeClasspath org.ow2.asm:asm:9.5=jacocoAnt org.ow2.asm:asm:9.6=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor org.postgresql:postgresql:42.7.1=deploy_jar,runtimeClasspath,testRuntimeClasspath org.reflections:reflections:0.10.2=checkstyle org.rnorth.duct-tape:duct-tape:1.0.8=testCompileClasspath,testRuntimeClasspath @@ -123,4 +120,4 @@ org.testcontainers:jdbc:1.19.3=testCompileClasspath,testRuntimeClasspath org.testcontainers:junit-jupiter:1.19.3=testCompileClasspath,testRuntimeClasspath org.testcontainers:postgresql:1.19.3=testCompileClasspath,testRuntimeClasspath org.testcontainers:testcontainers:1.19.3=testCompileClasspath,testRuntimeClasspath -empty=errorproneJavac,implementationApi,schema +empty=implementationApi,schema diff --git a/db/src/test/java/google/registry/sql/flyway/FlywayDeadlockTest.java b/db/src/test/java/google/registry/sql/flyway/FlywayDeadlockTest.java index 0be611e29..11bc205dc 100644 --- a/db/src/test/java/google/registry/sql/flyway/FlywayDeadlockTest.java +++ b/db/src/test/java/google/registry/sql/flyway/FlywayDeadlockTest.java @@ -29,9 +29,11 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.flogger.FluentLogger; +import com.google.common.io.ByteStreams; import java.io.File; import java.io.IOException; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Map; import java.util.Optional; import java.util.regex.Matcher; @@ -181,7 +183,8 @@ public class FlywayDeadlockTest { .splitToStream( readAllLines(path, UTF_8).stream() .map(line -> line.replaceAll("--.*", "")) - .filter(line -> !line.isBlank()) + // TODO: Use line.isBlank() one we are on Java 17. + .filter(line -> !line.trim().isEmpty()) .collect(joining(" "))) .map(FlywayDeadlockTest::getDdlLockedElementName) .filter(Optional::isPresent) @@ -211,7 +214,8 @@ public class FlywayDeadlockTest { .splitToList(executeShellCommand(changedScriptsCommand, Optional.of(rootDir))) .stream() .map(pathStr -> rootDir + File.separator + pathStr) - .map(Path::of) + // TODO: Use Path::of once we are on Java 17. + .map(path -> Paths.get(path)) .collect(toImmutableList()); if (changedPaths.isEmpty()) { logger.atInfo().log("There are no schema changes."); @@ -234,8 +238,9 @@ public class FlywayDeadlockTest { new ProcessBuilder(SHELL_COMMAND_SPLITTER.splitToList(command).toArray(new String[0])); workingDir.map(File::new).ifPresent(processBuilder::directory); Process process = processBuilder.start(); - String output = new String(process.getInputStream().readAllBytes(), UTF_8); - String error = new String(process.getErrorStream().readAllBytes(), UTF_8); + // TODO:Use InputStream.readAllBytes() once we are on Java 17. + String output = new String(ByteStreams.toByteArray(process.getInputStream()), UTF_8); + String error = new String(ByteStreams.toByteArray(process.getErrorStream()), UTF_8); try { process.waitFor(1, SECONDS); } catch (InterruptedException ie) { diff --git a/db/src/test/java/google/registry/sql/flyway/SchemaTest.java b/db/src/test/java/google/registry/sql/flyway/SchemaTest.java index a0ddcaf46..611d06bad 100644 --- a/db/src/test/java/google/registry/sql/flyway/SchemaTest.java +++ b/db/src/test/java/google/registry/sql/flyway/SchemaTest.java @@ -124,7 +124,7 @@ class SchemaTest { sqlContainer.getJdbcUrl(), sqlContainer.getUsername(), sqlContainer.getPassword()) .load(); flyway.migrate(); - logger.atInfo().log("Base schema version: %s", flyway.info().current().getVersion().toString()); + logger.atInfo().log("Base schema version: %s", flyway.info().current().getVersion()); // Deploy latest scripts from resources directory. flyway = @@ -135,8 +135,7 @@ class SchemaTest { .load(); flyway.migrate(); flyway.validate(); - logger.atInfo().log( - "Latest schema version: %s", flyway.info().current().getVersion().toString()); + logger.atInfo().log("Latest schema version: %s", flyway.info().current().getVersion()); } private static String[] getSchemaDumpCommand(String username, String dbName) { diff --git a/dependencies.gradle b/dependencies.gradle index 51121c7fb..3ccbdb45e 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -132,10 +132,10 @@ ext { 'com.google.cloud.sql:postgres-socket-factory:[1.2.1,)', 'com.google.cloud:google-cloud-core:[1.94.3,)', 'com.google.cloud:google-cloud-core-http:[1.94.3,)', - 'com.google.cloud:google-cloud-secretmanager:[1.4.0, 2.23.0]!!)', + 'com.google.cloud:google-cloud-secretmanager:[1.4.0, 2.23.0]!!', 'com.google.cloud:google-cloud-storage:[1.113.12, 2.22.6]!!', 'com.google.cloud:google-cloud-nio:[0.123.4, 0.126.19]!!', - 'com.google.cloud:google-cloud-tasks:[1.33.2,)', + 'com.google.cloud:google-cloud-tasks:[1.33.2, 2.23.0]!!', 'com.google.code.findbugs:jsr305:[3.0.2,)', 'com.google.code.gson:gson:[2.8.6,)', 'com.google.dagger:dagger-compiler:[2.33,)', @@ -194,7 +194,8 @@ ext { 'org.junit.jupiter:junit-jupiter-params:[5.6.2,)', 'org.junit.platform:junit-platform-runner:[1.6.2,)', 'org.junit.platform:junit-platform-suite-api:[1.6.2,)', - 'org.junit-pioneer:junit-pioneer:[0.7.0, 2.0.0[', + // TODO: remove the exclusive upper bound once we are on Java 17 runtime. + 'org.junit-pioneer:junit-pioneer:[0.7.0,2.0.0[', 'org.apache.avro:avro:[1.8.2,)', 'org.apache.beam:beam-runners-core-construction-java:[2.37.0,)', 'org.apache.beam:beam-runners-direct-java:[2.37.0,)', diff --git a/docs/build.gradle b/docs/build.gradle deleted file mode 100644 index 53ae3f3a9..000000000 --- a/docs/build.gradle +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2020 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. - -dependencies { - def deps = rootProject.dependencyMap - - implementation deps['com.beust:jcommander'] - implementation deps['com.google.appengine:appengine-api-1.0-sdk'] - implementation deps['com.google.code.findbugs:jsr305'] - implementation deps['com.google.flogger:flogger'] - implementation deps['com.google.guava:guava'] - implementation deps['com.google.re2j:re2j'] - implementation project(':core') - implementation project(':util') - - testImplementation deps['com.google.truth:truth'] - testImplementation deps['com.thoughtworks.qdox:qdox'] - testImplementation deps['junit:junit'] - testImplementation deps['org.junit.jupiter:junit-jupiter-api'] - testImplementation deps['org.junit.jupiter:junit-jupiter-engine'] - testImplementation deps['org.junit.platform:junit-platform-runner'] - testImplementation deps['org.junit.platform:junit-platform-suite-api'] - testImplementation deps['org.testcontainers:junit-jupiter'] -} - -test { - useJUnitPlatform() -} - -task flowDocsTool(type: JavaExec) { - systemProperty 'test.projectRoot', rootProject.projectRootDir - jvmArgs = ['--add-exports', 'jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED'] - classpath = sourceSets.main.runtimeClasspath - main = 'google.registry.documentation.FlowDocumentationTool' - - def arguments = [] - if (rootProject.flowDocsFile) { - arguments << "--output_file=${rootProject.flowDocsFile}" - } else { - arguments << "--output_file=${rootProject.projectRootDir}/docs/flows.md" - } - args arguments -} - -tasks.compileJava { - options.compilerArgs = ["--add-exports", - "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED", - "--add-exports", - "jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", - "--add-exports", - "jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED"] - -} - -tasks.test { - jvmArgs = ['--add-exports', - 'jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED'] -} diff --git a/docs/buildscript-gradle.lockfile b/docs/buildscript-gradle.lockfile deleted file mode 100644 index 0d156738b..000000000 --- a/docs/buildscript-gradle.lockfile +++ /dev/null @@ -1,4 +0,0 @@ -# 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. -empty=classpath diff --git a/docs/flows.md b/docs/flows.md deleted file mode 100644 index c6fd540ec..000000000 --- a/docs/flows.md +++ /dev/null @@ -1,1072 +0,0 @@ -# Nomulus EPP Command API Documentation - -## ContactCheckFlow - -### Description - -An EPP flow that checks whether a contact can be provisioned. - -This flows can check the existence of multiple contacts simultaneously. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2306 - * Too many resource checks requested in one check command. - -## ContactCreateFlow - -### Description - -An EPP flow that creates a new contact. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2005 - * Internationalized postal infos can only contain ASCII characters. -* 2302 - * Resource with this id already exists. -* 2306 - * Declining contact disclosure is disallowed by server policy. - -## ContactDeleteFlow - -### Description - -An EPP flow that deletes a contact. - -Contacts that are in use by any domain cannot be deleted. The flow may return -immediately if a quick smoke check determines that deletion is impossible due to -an existing reference. However, a successful delete will always be asynchronous, -as all existing domains must be checked for references to the host before the -deletion is allowed to proceed. A poll message will be written with the success -or failure message when the process is complete. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2201 - * The specified resource belongs to another client. -* 2303 - * Resource with this id does not exist. -* 2304 - * Resource status prohibits this operation. -* 2305 - * Resource to be deleted has active incoming references. - -## ContactInfoFlow - -### Description - -An EPP flow that returns information about a contact. - -The response includes the contact's postal info, phone numbers, emails, the -authInfo which can be used to request a transfer and the details of the -contact's most recent transfer if it has ever been transferred. Any registrar -can see any contact's information, but the authInfo is only visible to the -registrar that owns the contact or to a registrar that already supplied it. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2201 - * The specified resource belongs to another client. -* 2303 - * Resource with this id does not exist. - -## ContactTransferApproveFlow - -### Description - -An EPP flow that approves a pending transfer on a contact. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. Within -that window, this flow allows the losing client to explicitly approve the -transfer request, which then becomes effective immediately. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2201 - * The specified resource belongs to another client. -* 2202 - * Authorization information for accessing resource is invalid. -* 2301 - * The resource does not have a pending transfer. -* 2303 - * Resource with this id does not exist. - -## ContactTransferCancelFlow - -### Description - -An EPP flow that cancels a pending transfer on a contact. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. Within -that window, this flow allows the gaining client to withdraw the transfer -request. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2201 - * Registrar is not the initiator of this transfer. -* 2202 - * Authorization information for accessing resource is invalid. -* 2301 - * The resource does not have a pending transfer. -* 2303 - * Resource with this id does not exist. - -## ContactTransferQueryFlow - -### Description - -An EPP flow that queries a pending transfer on a contact. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. This flow -can be used by the gaining or losing registrars (or anyone with the correct -authId) to see the status of a transfer, which may still be pending or may have -been approved, rejected, cancelled or implicitly approved by virtue of the -transfer period expiring. - -### Errors - -* 2002 - * Registrar is not logged in. - * Object has no transfer history. -* 2201 - * Registrar is not authorized to view transfer status. -* 2202 - * Authorization information for accessing resource is invalid. -* 2303 - * Resource with this id does not exist. - -## ContactTransferRejectFlow - -### Description - -An EPP flow that rejects a pending transfer on a contact. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. Within -that window, this flow allows the losing client to reject the transfer request. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2201 - * The specified resource belongs to another client. -* 2202 - * Authorization information for accessing resource is invalid. -* 2301 - * The resource does not have a pending transfer. -* 2303 - * Resource with this id does not exist. - -## ContactTransferRequestFlow - -### Description - -An EPP flow that requests a transfer on a contact. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. Within -that window, the transfer might be approved explicitly by the losing registrar -or rejected, and the gaining registrar can also cancel the transfer request. - -### Errors - -* 2002 - * Registrar is not logged in. - * Registrar already sponsors the object of this transfer request. -* 2201 - * Authorization info is required to request a transfer. -* 2202 - * Authorization information for accessing resource is invalid. -* 2300 - * The resource is already pending transfer. -* 2303 - * Resource with this id does not exist. -* 2304 - * Resource status prohibits this operation. - -## ContactUpdateFlow - -### Description - -An EPP flow that updates a contact. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2004 - * The specified status value cannot be set by clients. -* 2005 - * Internationalized postal infos can only contain ASCII characters. -* 2201 - * The specified resource belongs to another client. -* 2303 - * Resource with this id does not exist. -* 2304 - * This resource has clientUpdateProhibited on it, and the update does not - clear that status. - * Resource status prohibits this operation. -* 2306 - * Cannot add and remove the same value. - * Declining contact disclosure is disallowed by server policy. - -## DomainCheckFlow - -### Description - -An EPP flow that checks whether a domain can be provisioned. - -This flow also supports the EPP fee extension and can return pricing -information. - -### Errors - -* 2002 - * Registrar is not logged in. - * Command is not allowed in the current registry phase. -* 2004 - * Unknown currency. - * Domain label is not allowed by IDN table. - * Domain name is under tld which doesn't exist. -* 2005 - * 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. - * Domain names can only contain a-z, 0-9, '.' and '-'. - * Periods for domain registrations must be specified in years. - * The requested fees cannot be provided in the requested currency. - * Non-IDN domain names cannot contain hyphens in the third or fourth - position. - * Domain labels cannot be longer than 63 characters. - * No part of a domain name can be empty. - * Fee checks for command phases and subphases are not supported. - * Domain name starts with xn-- but is not a valid IDN. - * Domain labels cannot begin with a dash. - * Restores always renew a domain for one year. - * Domain labels cannot end with a dash. - * Transfers always renew a domain for one year. - * Unknown fee command name. - * By server policy, fee check names must be listed in the availability - check. - -## DomainClaimsCheckFlow - -### Description - -An EPP flow that checks whether domain labels are trademarked. - -### Errors - -* 2002 - * Registrar is not logged in. - * Command is not allowed in the current registry phase. - * Claims checks are not allowed with allocation tokens. -* 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. -* 2306 - * Too many resource checks requested in one check command. - -## DomainCreateFlow - -### Description - -An EPP flow that creates a new domain resource. - -### Errors - -* 2002 - * Service extension(s) must be declared at login. - * Registrar is not logged in. - * The current registry phase allows registrations only with signed marks. - * The current registry phase does not allow for general registrations. - * Bulk pricing domain registered for too many years. - * Signed marks are only allowed during sunrise. - * An allocation token was provided that is invalid for premium domains. -* 2003 - * The provided mark does not match the desired domain label. - * Fees must be explicitly acknowledged when creating domains during the - Early Access Program. - * Fees must be explicitly acknowledged when performing any operations on a - premium name. - * Admin contact is required. - * Registrant is required. - * Technical contact is required. -* 2004 - * Unknown currency. - * The acceptance time specified in the claim notice is more than 48 hours - in the past. - * New registration period exceeds maximum number of years. - * The expiration time specified in the claim notice has elapsed. - * The fees passed in the transform command do not match the fees that will - be charged. - * Domain label is not allowed by IDN table. - * The checksum in the specified TCNID does not validate. - * Domain name is under tld which doesn't exist. -* 2005 - * Domain name must have exactly one part above the TLD. - * Domain name must not equal an existing multi-part TLD. - * The requested fee is expressed in a scale that is invalid for the given - currency. - * The specified TCNID is invalid. -* 2102 - * The 'maxSigLife' setting is not supported. - * The 'grace-period', 'applied' and 'refundable' fields are disallowed by - server policy. -* 2103 - * Specified extension is not implemented. -* 2201 - * 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. -* 2303 - * Resource linked to this domain does not exist. -* 2304 - * The allocation token is not currently valid. - * The claims period for this TLD has ended. - * Requested domain is reserved. - * Linked resource in pending delete prohibits operation. - * Requested domain requires a claims notice. - * Nameservers are not allow-listed for this TLD. - * Nameservers not specified for domain on TLD with nameserver allow list. - * The requested domain name is on the premium price list, and this - registrar has blocked premium registrations. - * Registrant is not allow-listed for this TLD. - * Requested domain does not require a claims notice. -* 2305 - * The allocation token is not valid for this domain. - * The allocation token is not valid for this registrar. - * The allocation token is not valid for this TLD. - * The allocation token was already redeemed. -* 2306 - * Anchor tenant domain create is for the wrong number of years. - * Trademarked domains cannot be registered before the sunrise period. - * The provided mark is not yet valid. - * The provided mark has expired. - * Signed mark data is revoked. - * Domain names can only contain a-z, 0-9, '.' and '-'. - * Periods for domain registrations must be specified in years. - * The requested fees cannot be provided in the requested currency. - * Non-IDN domain names cannot contain hyphens in the third or fourth - position. - * Domain label is blocked by the Brand Safety Alliance. - * Domain labels cannot be longer than 63 characters. - * More than one contact for a given role is not allowed. - * No part of a domain name can be empty. - * The fee description passed in the transform command matches multiple fee - types. - * The fee description passed in the transform command cannot be parsed. - * Domain has an invalid DS record. - * Domain name starts with xn-- but is not a valid IDN. - * The specified trademark validator is not supported. - * Domain labels cannot begin with a dash. - * Missing type attribute for contact. - * Too many DS records set on a domain. - * Too many nameservers set on this domain. - * Domain labels cannot end with a dash. - * Only encoded signed marks are supported. - -## DomainDeleteFlow - -### Description - -An EPP flow that deletes a domain. - -### Errors - -* 2002 - * Registrar is not logged in. - * Command is not allowed in the current registry phase. -* 2103 - * Specified extension is not implemented. -* 2201 - * The specified resource belongs to another client. - * Only a tool can pass a metadata extension. - * Registrar is not authorized to access this TLD. -* 2303 - * Resource with this id does not exist. -* 2304 - * Resource status prohibits this operation. -* 2305 - * Domain to be deleted has subordinate hosts. - -## DomainInfoFlow - -### Description - -An EPP flow that returns information about a domain. - -The registrar that owns the domain, and any registrar presenting a valid -authInfo for the domain, will get a rich result with all of the domain's fields. -All other requests will be answered with a minimal result containing only basic -information about the domain. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2004 - * Unknown currency. -* 2202 - * Authorization information for accessing resource is invalid. -* 2303 - * Resource with this id does not exist. -* 2306 - * Periods for domain registrations must be specified in years. - * The requested fees cannot be provided in the requested currency. - * Fee checks for command phases and subphases are not supported. - * Restores always renew a domain for one year. - * Transfers always renew a domain for one year. - -## DomainRenewFlow - -### Description - -An EPP flow that renews a domain. - -Registrars can use this flow to manually extend the length of a registration, -instead of relying on domain auto-renewal (where the registry performs an -automatic one-year renewal at the instant a domain would expire). - -ICANN prohibits any registration from being longer than ten years so if the -request would result in a registration greater than ten years long it will fail. -In practice this means it's impossible to request a ten-year renewal, since that -will always cause the new registration to be longer than 10 years unless it -comes in at the exact millisecond that the domain would have expired. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2003 - * Fees must be explicitly acknowledged when performing any operations on a - premium name. -* 2004 - * Unknown currency. - * New registration period exceeds maximum number of years. - * The fees passed in the transform command do not match the fees that will - be charged. - * The current expiration date is incorrect. -* 2005 - * The requested fee is expressed in a scale that is invalid for the given - currency. -* 2102 - * The 'grace-period', 'applied' and 'refundable' fields are disallowed by - 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. - * The allocation token is invalid. -* 2303 - * Resource with this id does not exist. -* 2304 - * Resource status prohibits this operation. - * The allocation token is not currently valid. -* 2305 - * The __REMOVE_BULK_PRICING__ token is missing on a bulk pricing domain - command - * The __REMOVE_BULK_PRICING__ token is not allowed on non bulk pricing - domains - * The allocation token is not valid for this domain. - * The allocation token is not valid for this registrar. - * The allocation token is not valid for this TLD. - * The allocation token was already redeemed. -* 2306 - * Periods for domain registrations must be specified in years. - * The requested fees cannot be provided in the requested currency. - -## DomainRestoreRequestFlow - -### Description - -An EPP flow that requests that a domain in the redemption grace period be -restored. - -When a domain is deleted it is removed from DNS immediately and marked as -pending delete, but is not actually soft deleted. There is a period (by default -30 days) during which it can be restored by the original owner. When that period -expires there is a second period (by default 5 days) during which the domain -cannot be restored. After that period anyone can re-register this name. - -This flow is called a restore "request" because technically it is only supposed -to signal that the registrar requests the restore, which the registry can choose -to process or not based on a restore report that is submitted through an -out-of-band process and details the request. However, in practice this flow does -the restore immediately. This is allowable because all the fields on a restore -report are optional or have default values, and so by policy when the request -comes in we consider it to have been accompanied by a default-initialized report -which we auto-approve. - -Restores cost a fixed restore fee plus a one-year renewal fee for the domain. -The domain is restored to a single year expiration starting at the restore time, -regardless of what the original expiration time was. - -### Errors - -* 2002 - * Registrar is not logged in. - * Restore command cannot have other changes specified. -* 2003 - * Fees must be explicitly acknowledged when performing any operations on a - premium name. -* 2004 - * Unknown currency. - * The fees passed in the transform command do not match the fees that will - be charged. -* 2005 - * The requested fee is expressed in a scale that is invalid for the given - currency. -* 2102 - * The 'grace-period', 'applied' and 'refundable' fields are disallowed by - server policy. -* 2103 - * 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 - * Resource with this id does not exist. -* 2304 - * Requested domain is reserved. - * The requested domain name is on the premium price list, and this - registrar has blocked premium registrations. - * Domain is not eligible for restore. -* 2306 - * The requested fees cannot be provided in the requested currency. - -## DomainTransferApproveFlow - -### Description - -An EPP flow that approves a pending transfer on a domain. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. Within -that window, this flow allows the losing client to explicitly approve the -transfer request, which then becomes effective immediately. - -When the transfer was requested, poll messages and billing events were saved to -the database with timestamps such that they only would become active when the -transfer period passed. In this flow, those speculative objects are deleted and -replaced with new ones with the correct approval time. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2201 - * The specified resource belongs to another client. - * Registrar is not authorized to access this TLD. - * The allocation token is invalid. -* 2202 - * Authorization information for accessing resource is invalid. -* 2301 - * The resource does not have a pending transfer. -* 2303 - * Resource with this id does not exist. -* 2304 - * The allocation token is not currently valid. -* 2305 - * The allocation token is not valid for this domain. - * The allocation token is not valid for this registrar. - * The allocation token is not valid for this TLD. - * The allocation token was already redeemed. - -## DomainTransferCancelFlow - -### Description - -An EPP flow that cancels a pending transfer on a domain. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. Within -that window, this flow allows the gaining client to withdraw the transfer -request. - -When the transfer was requested, poll messages and billing events were saved to -the database with timestamps such that they only would become active when the -transfer period passed. In this flow, those speculative objects are deleted. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2201 - * Registrar is not the initiator of this transfer. - * Registrar is not authorized to access this TLD. -* 2202 - * Authorization information for accessing resource is invalid. -* 2301 - * The resource does not have a pending transfer. -* 2303 - * Resource with this id does not exist. - -## DomainTransferQueryFlow - -### Description - -An EPP flow that queries a pending transfer on a domain. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. This flow -can be used by the gaining or losing registrars (or anyone with the correct -authId) to see the status of a transfer, which may still be pending or may have -been approved, rejected, cancelled or implicitly approved by virtue of the -transfer period expiring. - -### Errors - -* 2002 - * Registrar is not logged in. - * Object has no transfer history. -* 2201 - * Registrar is not authorized to view transfer status. -* 2202 - * Authorization information for accessing resource is invalid. -* 2303 - * Resource with this id does not exist. - -## DomainTransferRejectFlow - -### Description - -An EPP flow that rejects a pending transfer on a domain. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. Within -that window, this flow allows the losing client to reject the transfer request. - -When the transfer was requested, poll messages and billing events were saved to -SQL with timestamps such that they only would become active when the transfer -period passed. In this flow, those speculative objects are deleted. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2201 - * The specified resource belongs to another client. - * Registrar is not authorized to access this TLD. -* 2202 - * Authorization information for accessing resource is invalid. -* 2301 - * The resource does not have a pending transfer. -* 2303 - * Resource with this id does not exist. - -## DomainTransferRequestFlow - -### Description - -An EPP flow that requests a transfer on a domain. - -The "gaining" registrar requests a transfer from the "losing" (aka current) -registrar. The losing registrar has a "transfer" time period to respond (by -default five days) after which the transfer is automatically approved. Within -that window, the transfer might be approved explicitly by the losing registrar -or rejected, and the gaining registrar can also cancel the transfer request. - -When a transfer is requested, poll messages and billing events are saved to the -database with timestamps such that they only become active when the -server-approval period passes. Keys to these speculative objects are saved in -the domain's transfer data, and on explicit approval, rejection or cancellation -of the request, they will be deleted (and in the approval case, replaced with -new ones with the correct approval time). - -### Errors - -* 2002 - * Registrar is not logged in. - * Registrar already sponsors the object of this transfer request. -* 2003 - * Fees must be explicitly acknowledged when performing any operations on a - premium name. -* 2004 - * Unknown currency. - * The fees passed in the transform command do not match the fees that will - be charged. -* 2005 - * The requested fee is expressed in a scale that is invalid for the given - currency. -* 2102 - * The 'grace-period', 'applied' and 'refundable' fields are disallowed by - 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. - * The allocation token is invalid. -* 2202 - * Authorization information for accessing resource is invalid. -* 2300 - * The resource is already pending transfer. -* 2303 - * Resource with this id does not exist. -* 2304 - * Resource status prohibits this operation. - * Domain transfer period cannot be zero when using the fee transfer - extension. - * The requested domain name is on the premium price list, and this - registrar has blocked premium registrations. - * The allocation token is not currently valid. -* 2305 - * The allocation token is not valid for this domain. - * The allocation token is not valid for this registrar. - * The allocation token is not valid for this TLD. - * The allocation token was already redeemed. -* 2306 - * Domain transfer period must be one year. - * Domain transfer period must be zero or one year when using the superuser - EPP extension. - * Periods for domain registrations must be specified in years. - * The requested fees cannot be provided in the requested currency. - -## DomainUpdateFlow - -### Description - -An EPP flow that updates a domain. - -Updates can change contacts, nameservers and delegation signer data of a domain. -Updates cannot change the domain's name. - -Some status values (those of the form "serverSomethingProhibited") can only be -applied by the superuser. As such, adding or removing these statuses incurs a -billing event. There will be only one charge per update, even if several such -statuses are updated at once. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2003 - * At least one of 'add' or 'rem' is required on a secDNS update. - * Fees must be explicitly acknowledged when performing an operation which - is not free. - * Admin contact is required. - * Technical contact is required. - * Registrant is required. -* 2004 - * The specified status value cannot be set by clients. - * The fees passed in the transform command do not match the fees that will - be charged. -* 2102 - * Changing 'maxSigLife' is not supported. - * The 'urgent' attribute is not supported. -* 2103 - * Specified extension is not implemented. -* 2201 - * The specified resource belongs to another client. - * Only a tool can pass a metadata extension. - * Registrar is not authorized to access this TLD. -* 2303 - * Resource with this id does not exist. - * Resource linked to this domain does not exist. -* 2304 - * This resource has clientUpdateProhibited on it, and the update does not - clear that status. - * Resource status prohibits this operation. - * Linked resource in pending delete prohibits operation. - * Nameservers are not allow-listed for this TLD. - * Nameservers not specified for domain on TLD with nameserver allow list. - * Registrant is not allow-listed for this TLD. -* 2306 - * Cannot add and remove the same value. - * More than one contact for a given role is not allowed. - * Domain has an invalid DS record. - * Missing type attribute for contact. - * The secDNS:all element must have value 'true' if present. - * Too many DS records set on a domain. - * Too many nameservers set on this domain. - -## HelloFlow - -### Description - -A flow for an Epp "hello". - -### Errors - -* 2001 - * Generic XML syntax error that can be thrown by any flow. - -## HostCheckFlow - -### Description - -An EPP flow that checks whether a host can be provisioned. - -This flows can check the existence of multiple hosts simultaneously. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2306 - * Too many resource checks requested in one check command. - -## HostCreateFlow - -### Description - -An EPP flow that creates a new host. - -Hosts can be "external", or "internal" (also known as "in bailiwick"). Internal -hosts are those that are under a top level domain within this registry, and -external hosts are all other hosts. Internal hosts must have at least one ip -address associated with them, whereas external hosts cannot have any. This flow -allows creating a host name, and if necessary enqueues tasks to update DNS. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2003 - * Subordinate hosts must have an ip address. -* 2004 - * IP address version mismatch. - * Host names are limited to 253 characters. - * External hosts must not have ip addresses. -* 2005 - * Invalid host name. - * Host names must be in lower-case. - * Host names must be in normalized format. - * Host names must be puny-coded. -* 2302 - * Resource with this id already exists. -* 2303 - * Superordinate domain for this hostname does not exist. -* 2304 - * Superordinate domain for this hostname is in pending delete. -* 2306 - * Host names must be at least two levels below the registry suffix. - -## HostDeleteFlow - -### Description - -An EPP flow that deletes a host. - -Hosts that are in use by any domain cannot be deleted. The flow may return -immediately if a quick smoke check determines that deletion is impossible due to -an existing reference. However, a successful delete will always be asynchronous, -as all existing domains must be checked for references to the host before the -deletion is allowed to proceed. A poll message will be written with the success -or failure message when the process is complete. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2005 - * Host names must be in lower-case. - * Host names must be in normalized format. - * Host names must be puny-coded. -* 2201 - * The specified resource belongs to another client. -* 2303 - * Resource with this id does not exist. -* 2304 - * Resource status prohibits this operation. -* 2305 - * Resource to be deleted has active incoming references. - -## HostInfoFlow - -### Description - -An EPP flow that returns information about a host. - -The returned information included IP addresses, if any, and details of the -host's most recent transfer if it has ever been transferred. Any registrar can -see the information for any host. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2005 - * Host names must be in lower-case. - * Host names must be in normalized format. - * Host names must be puny-coded. -* 2303 - * Resource with this id does not exist. - -## HostUpdateFlow - -### Description - -An EPP flow that updates a host. - -Hosts can be "external", or "internal" (also known as "in bailiwick"). Internal -hosts are those that are under a top level domain within this registry, and -external hosts are all other hosts. Internal hosts must have at least one IP -address associated with them, whereas external hosts cannot have any. - -This flow allows changing a host name, and adding or removing IP addresses to -hosts. When a host is renamed from internal to external all IP addresses must be -simultaneously removed, and when it is renamed from external to internal at -least one must be added. If the host is renamed or IP addresses are added, tasks -are enqueued to update DNS accordingly. - -### Errors - -* 2002 - * Registrar is not logged in. -* 2004 - * The specified status value cannot be set by clients. - * Host names are limited to 253 characters. - * Cannot add IP addresses to an external host. - * Host rename from subordinate to external must also remove all IP - addresses. -* 2005 - * Host names must be in lower-case. - * Host names must be in normalized format. - * Host names must be puny-coded. - * Invalid host name. -* 2201 - * The specified resource belongs to another client. - * Domain for host is sponsored by another registrar. -* 2302 - * Host with specified name already exists. -* 2303 - * Resource with this id does not exist. - * Superordinate domain for this hostname does not exist. -* 2304 - * This resource has clientUpdateProhibited on it, and the update does not - clear that status. - * Resource status prohibits this operation. - * Superordinate domain for this hostname is in pending delete. - * Cannot remove all IP addresses from a subordinate host. - * Cannot rename an external host. -* 2306 - * Cannot add and remove the same value. - * Host names must be at least two levels below the registry suffix. - -## LoginFlow - -### Description - -An EPP flow for login. - -### Errors - -* 2001 - * Generic XML syntax error that can be thrown by any flow. -* 2002 - * Registrar is already logged in. -* 2100 - * Specified protocol version is not implemented. -* 2103 - * Specified extension is not implemented. -* 2200 - * Registrar certificate does not match stored certificate. - * Registrar IP address is not in stored allow list. - * Registrar certificate not present. - * Registrar password is incorrect. - * Registrar with this ID could not be found. -* 2201 - * Registrar account is not active. -* 2306 - * Specified language is not supported. -* 2307 - * Specified object service is not implemented. -* 2501 - * Registrar login failed too many times. - -## LogoutFlow - -### Description - -An EPP flow for logout. - -### Errors - -* 2002 - * Registrar is not logged in. - -## PollAckFlow - -### Description - -An EPP flow for acknowledging {@link PollMessage}s. - -Registrars refer to poll messages using an externally visible id generated by -{@link PollMessageExternalKeyConverter}. One-time poll messages are deleted from -the database once they are ACKed, whereas autorenew poll messages are simply -marked as read, and won't be delivered again until the next year of their -recurrence. - -### Errors - -* 2003 - * Message id is required. -* 2005 - * Message id is invalid. -* 2201 - * Registrar is not authorized to ack this message. -* 2303 - * Message with this id does not exist. - -## PollRequestFlow - -### Description - -An EPP flow for requesting {@link PollMessage}s. - -This flow uses an eventually consistent query to return the oldest poll message -for the registrar, as well as the total number of pending messages. Note that -poll messages whose event time is in the future (i.e. they are speculative and -could still be changed or rescinded) are ignored. The externally visible id for -the poll message that the registrar sees is generated by {@link -PollMessageExternalKeyConverter}. - -### Errors - -* 2005 - * Unexpected message id. - diff --git a/docs/gradle.lockfile b/docs/gradle.lockfile deleted file mode 100644 index 3f4ed8e43..000000000 --- a/docs/gradle.lockfile +++ /dev/null @@ -1,385 +0,0 @@ -# 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. -antlr:antlr:2.7.7=deploy_jar,runtimeClasspath,testRuntimeClasspath -aopalliance:aopalliance:1.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -args4j:args4j:2.33=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.101tec:zkclient:0.10=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.beust:jcommander:1.60=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-annotations:2.10.3=testCompileClasspath -com.fasterxml.jackson.core:jackson-annotations:2.15.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-core:2.15.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.core:jackson-databind:2.15.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.dataformat:jackson-dataformat-toml:2.15.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.datatype:jackson-datatype-joda:2.15.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.fasterxml.jackson:jackson-bom:2.15.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.fasterxml:classmate:1.5.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor,errorprone,testAnnotationProcessor -com.github.ben-manes.caffeine:caffeine:2.9.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.docker-java:docker-java-api:3.3.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.github.docker-java:docker-java-transport-zerodep:3.3.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.github.docker-java:docker-java-transport:3.3.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.github.jnr:jffi:1.3.12=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-a64asm:1.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-constants:0.10.4=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-enxio:0.32.16=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-ffi:2.2.15=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-posix:3.1.18=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-unixsocket:0.38.21=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.jnr:jnr-x86asm:1.0.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api-client:google-api-client-appengine:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api-client:google-api-client-jackson2:2.0.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api-client:google-api-client-java6:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api-client:google-api-client-servlet:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api-client:google-api-client:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:gapic-google-cloud-storage-v2:2.22.6-alpha=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1:2.47.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta1:0.171.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-bigquerystorage-v1beta2:0.171.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.30.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.107.13=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-pubsublite-v1:1.12.19=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-spanner-admin-database-v1:6.55.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-spanner-admin-instance-v1:6.55.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-spanner-v1:6.55.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-cloud-storage-v2:2.23.0-alpha=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:grpc-google-common-protos:2.29.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-bigquerystorage-v1:2.47.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.171.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2:0.171.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:2.30.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-bigtable-v2:2.30.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-datastore-v1:0.108.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-firestore-v1:3.15.7=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-monitoring-v3:3.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-pubsub-v1:1.107.13=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-pubsublite-v1:1.12.19=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-secretmanager-v1:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-secretmanager-v1beta1:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-spanner-admin-database-v1:6.55.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.55.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-spanner-v1:6.55.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-storage-v2:2.23.0-alpha=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-common-protos:2.29.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-iam-v1:1.24.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:api-common:2.21.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax-grpc:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax-httpjson:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-appengine:v1-rev20231107-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-bigquery:v2-rev20230812-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-cloudresourcemanager:v1-rev20230806-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-dataflow:v1b3-rev20220920-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-drive:v2-rev393-1.25.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-gmail:v1-rev20220404-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-groupssettings:v1-rev20210624-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-healthcare:v1-rev20231101-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-iamcredentials:v1-rev20211203-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-monitoring:v3-rev20231215-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-pubsub:v1-rev20220904-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-sheets:v4-rev20230815-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-sqladmin:v1beta4-rev20231208-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.apis:google-api-services-storage:v1-rev20231202-2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.appengine:appengine-api-1.0-sdk:1.9.86=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.appengine:appengine-testing:1.9.86=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-credentials:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-oauth2-http:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auto.service:auto-service-annotations:1.1.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auto.value:auto-value-annotations:1.10.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.auto.value:auto-value:1.10.4=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor -com.google.cloud.bigdataoss:gcsio:2.2.16=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud.bigdataoss:util:2.2.16=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud.bigtable:bigtable-client-core-config:1.28.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud.datastore:datastore-v1-proto-client:2.17.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud.sql:jdbc-socket-factory-core:1.15.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud.sql:postgres-socket-factory:1.15.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-bigquerystorage:2.47.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-bigtable-stats:2.30.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-bigtable:2.30.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-core-grpc:2.28.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-core-http:2.21.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-core:2.28.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-firestore:3.15.7=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-monitoring:3.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-pubsub:1.125.13=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-pubsublite:1.12.19=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-secretmanager:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-spanner:6.55.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-storage:2.22.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-tasks:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:grpc-gcp:1.5.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.15.7=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.code.gson:gson:2.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.common.html.types:types:1.0.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.dagger:dagger:2.50=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.7.1=checkstyle -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.escapevelocity:escapevelocity:0.9.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.flatbuffers:flatbuffers-java:1.12.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.flogger:flogger-system-backend:0.8=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.flogger:flogger:0.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.flogger:google-extensions:0.8=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor -com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:guava:27.0.1-jre=annotationProcessor,errorprone,testAnnotationProcessor -com.google.guava:guava:31.0.1-jre=checkstyle -com.google.guava:guava:33.0.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.gwt:gwt-user:2.10.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.http-client:google-http-client-apache-v2:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.http-client:google-http-client-appengine:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.http-client:google-http-client-gson:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.http-client:google-http-client-jackson2:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.http-client:google-http-client-protobuf:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.http-client:google-http-client:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.inject.extensions:guice-multibindings:4.1.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.inject:guice:4.1.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.j2objc:j2objc-annotations:1.1=annotationProcessor,errorprone,testAnnotationProcessor -com.google.j2objc:j2objc-annotations:1.3=checkstyle -com.google.j2objc:j2objc-annotations:2.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.jsinterop:jsinterop-annotations:2.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.monitoring-client:metrics:1.0.7=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.monitoring-client:stackdriver:1.0.7=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.oauth-client:google-oauth-client-appengine:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.oauth-client:google-oauth-client-java6:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.oauth-client:google-oauth-client-jetty:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.oauth-client:google-oauth-client-servlet:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.oauth-client:google-oauth-client:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java-util:3.25.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.25.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.re2j:re2j:1.7=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.template:soy:2021-02-01=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.truth:truth:1.2.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor -com.googlecode.json-simple:json-simple:1.1.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.ibm.icu:icu4j:74.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.jcraft:jsch:0.1.55=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.lmax:disruptor:3.4.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.puppycrawl.tools:checkstyle:9.3=checkstyle -com.squareup.okhttp3:okhttp:4.12.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.squareup.okio:okio-jvm:3.6.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.squareup.okio:okio:3.6.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.sun.istack:istack-commons-runtime:3.0.7=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.sun.xml.fastinfoset:FastInfoset:1.2.15=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.thoughtworks.paranamer:paranamer:2.7=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.thoughtworks.qdox:qdox:1.12.1=testCompileClasspath,testRuntimeClasspath -com.zaxxer:HikariCP:3.4.5=deploy_jar,runtimeClasspath,testRuntimeClasspath -commons-beanutils:commons-beanutils:1.9.4=checkstyle -commons-codec:commons-codec:1.16.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -commons-collections:commons-collections:3.2.2=checkstyle -commons-logging:commons-logging:1.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -dnsjava:dnsjava:3.5.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -info.picocli:picocli:4.6.2=checkstyle -io.confluent:common-config:5.3.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.confluent:common-utils:5.3.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.confluent:kafka-avro-serializer:5.3.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.confluent:kafka-schema-registry-client:5.3.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.github.classgraph:classgraph:4.8.162=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.github.java-diff-utils:java-diff-utils:4.12=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-alts:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-api:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-auth:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-census:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-context:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-core:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-googleapis:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-grpclb:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-inprocess:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-netty-shaded:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-netty:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-protobuf-lite:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-protobuf:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-rls:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-services:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-stub:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-util:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-xds:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-buffer:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-codec-http2:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-codec-http:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-codec-socks:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-codec:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-common:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-handler-proxy:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-handler:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-resolver:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-tcnative-boringssl-static:2.0.52.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-tcnative-classes:2.0.52.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-transport-native-unix-common:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.netty:netty-transport:4.1.97.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-api:0.31.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-contrib-exemplar-util:0.31.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-contrib-grpc-metrics:0.31.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-contrib-grpc-util:0.31.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-contrib-http-util:0.31.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-contrib-resource-util:0.31.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-exporter-metrics-util:0.31.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-exporter-stats-stackdriver:0.31.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-impl-core:0.31.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-impl:0.31.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.opencensus:opencensus-proto:0.2.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.perfmark:perfmark-api:0.26.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.activation:activation:1.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.activation:javax.activation-api:1.2.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.annotation:javax.annotation-api:1.3.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.annotation:jsr250-api:1.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.inject:javax.inject:1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -javax.jdo:jdo2-api:2.3-20090302111651=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.mail:mail:1.5.0-b01=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.persistence:javax.persistence-api:2.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.servlet:servlet-api:2.5=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.validation:validation-api:1.0.0.GA=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.xml.bind:jaxb-api:2.3.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -jline:jline:1.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -joda-time:joda-time:2.10.14=deploy_jar,runtimeClasspath,testRuntimeClasspath -junit:junit:4.13.2=testCompileClasspath,testRuntimeClasspath -net.bytebuddy:byte-buddy:1.12.18=deploy_jar,runtimeClasspath,testRuntimeClasspath -net.java.dev.jna:jna:5.13.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -net.sf.saxon:Saxon-HE:10.6=checkstyle -org.antlr:antlr4-runtime:4.9.3=checkstyle -org.apache.arrow:arrow-format:5.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.arrow:arrow-memory-core:5.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.arrow:arrow-vector:5.0.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.avro:avro:1.8.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-model-fn-execution:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-model-job-management:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-model-pipeline:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-runners-core-construction-java:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-runners-core-java:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-runners-google-cloud-dataflow-java:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-runners-java-fn-execution:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-core:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-expansion-service:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-extensions-arrow:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-extensions-avro:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-extensions-protobuf:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-fn-execution:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-harness:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-io-kafka:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-sdks-java-transform-service-launcher:2.53.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-vendor-grpc-1_54_0:0.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.beam:beam-vendor-guava-32_1_2-jre:0.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.commons:commons-compress:1.24.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.apache.commons:commons-csv:1.10.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.commons:commons-lang3:3.14.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.httpcomponents:httpclient:4.5.14=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apache.httpcomponents:httpcore:4.4.16=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath -org.bouncycastle:bcpg-jdk15on:1.67=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.bouncycastle:bcpkix-jdk15on:1.67=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.bouncycastle:bcprov-jdk15on:1.67=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.checkerframework:checker-compat-qual:2.5.3=compileClasspath,testCompileClasspath -org.checkerframework:checker-compat-qual:2.5.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.checkerframework:checker-qual:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:checker-qual:3.12.0=checkstyle -org.checkerframework:checker-qual:3.41.0=compileClasspath -org.checkerframework:checker-qual:3.42.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.jackson:jackson-core-asl:1.9.13=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.codehaus.jackson:jackson-mapper-asl:1.9.13=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.23=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.conscrypt:conscrypt-openjdk-uber:2.5.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-http:9.4.49.v20220914=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:9.4.49.v20220914=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-security:9.4.49.v20220914=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-server:9.4.49.v20220914=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-servlet:9.4.49.v20220914=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util-ajax:9.4.49.v20220914=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:9.4.49.v20220914=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.flywaydb:flyway-core:9.22.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.glassfish.jaxb:jaxb-runtime:2.3.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.glassfish.jaxb:txw2:2.3.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.gwtproject:gwt-user:2.10.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath -org.hamcrest:hamcrest:2.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.hibernate.common:hibernate-commons-annotations:5.1.2.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.hibernate:hibernate-core:5.6.15.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.hibernate:hibernate-hikaricp:5.6.15.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jacoco:org.jacoco.agent:0.8.9=jacocoAgent,jacocoAnt -org.jacoco:org.jacoco.ant:0.8.9=jacocoAnt -org.jacoco:org.jacoco.core:0.8.9=jacocoAnt -org.jacoco:org.jacoco.report:0.8.9=jacocoAnt -org.javassist:javassist:3.28.0-GA=checkstyle -org.jboss.logging:jboss-logging:3.4.3.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.1.1.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jboss:jandex:2.4.2.Final=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jetbrains.kotlin:kotlin-stdlib:1.9.10=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jetbrains:annotations:17.0.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.joda:joda-money:1.0.4=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.json:json:20231013=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.jsoup:jsoup:1.17.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.junit.jupiter:junit-jupiter-api:5.10.1=testCompileClasspath,testRuntimeClasspath -org.junit.jupiter:junit-jupiter-engine:5.10.1=testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-commons:1.10.1=testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-engine:1.10.1=testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-launcher:1.10.1=testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-runner:1.10.1=testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-suite-api:1.10.1=testCompileClasspath,testRuntimeClasspath -org.junit.platform:junit-platform-suite-commons:1.10.1=testRuntimeClasspath -org.junit:junit-bom:5.10.1=testCompileClasspath,testRuntimeClasspath -org.jvnet.staxex:stax-ex:1.8=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath -org.ow2.asm:asm-analysis:9.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.ow2.asm:asm-commons:9.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.ow2.asm:asm-commons:9.5=jacocoAnt -org.ow2.asm:asm-tree:9.5=jacocoAnt -org.ow2.asm:asm-tree:9.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.ow2.asm:asm-util:9.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.ow2.asm:asm:9.5=jacocoAnt -org.ow2.asm:asm:9.6=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor -org.postgresql:postgresql:42.7.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.reflections:reflections:0.10.2=checkstyle -org.rnorth.duct-tape:duct-tape:1.0.8=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.slf4j:slf4j-api:1.7.36=testCompileClasspath -org.slf4j:slf4j-api:2.1.0-alpha1=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.slf4j:slf4j-jdk14:2.1.0-alpha1=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.springframework:spring-core:5.3.27=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.springframework:spring-expression:5.3.27=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.springframework:spring-jcl:5.3.27=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.testcontainers:database-commons:1.19.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.testcontainers:jdbc:1.19.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.testcontainers:junit-jupiter:1.19.3=testCompileClasspath,testRuntimeClasspath -org.testcontainers:postgresql:1.19.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.testcontainers:testcontainers:1.19.3=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.threeten:threetenbp:1.6.8=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.tukaani:xz:1.5=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.w3c.css:sac:1.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.xerial.snappy:snappy-java:1.1.10.4=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.yaml:snakeyaml:2.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -us.fatehi:schemacrawler-api:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -us.fatehi:schemacrawler-diagram:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -us.fatehi:schemacrawler-tools:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -us.fatehi:schemacrawler-utility:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -us.fatehi:schemacrawler:16.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -xerces:xmlParserAPIs:2.6.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -xpp3:xpp3:1.1.4c=deploy_jar,runtimeClasspath,testRuntimeClasspath -empty=errorproneJavac diff --git a/docs/src/main/java/google/registry/documentation/DocumentationGenerator.java b/docs/src/main/java/google/registry/documentation/DocumentationGenerator.java deleted file mode 100644 index cfac57673..000000000 --- a/docs/src/main/java/google/registry/documentation/DocumentationGenerator.java +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2017 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.documentation; - -import static com.google.common.collect.ImmutableList.toImmutableList; -import static java.util.Comparator.comparing; - -import com.google.common.collect.ImmutableList; -import google.registry.documentation.FlowDocumentation.ErrorCase; -import java.util.stream.Stream; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.TypeElement; -import javax.lang.model.util.ElementFilter; -import jdk.javadoc.doclet.DocletEnvironment; - -/** - * Main entry point class for documentation generation. An instance of this class reads data via the - * javadoc system upon creation and stores it for answering future queries for documentation - * information. - */ -public final class DocumentationGenerator { - - private final DocletEnvironment sourceRoot; - - /** Returns a new DocumentationGenerator object with parsed information from javadoc. */ - public DocumentationGenerator() throws Exception { - sourceRoot = JavadocWrapper.getDocletEnv(); - } - - /** Returns generated Markdown output for the flows. Convenience method for clients. */ - public String generateMarkdown() { - return MarkdownDocumentationFormatter.generateMarkdownOutput(getFlowDocs()); - } - - /** Returns a list of flow documentation objects derived from this generator's data. */ - public ImmutableList getFlowDocs() { - // Relevant flows are leaf flows: precisely the concrete subclasses of Flow. - return getConcreteSubclassesStream(FlowDocumentation.BASE_FLOW_CLASS_NAME) - .sorted(comparing(element -> element.getSimpleName().toString())) - .map(typeElement -> new FlowDocumentation(typeElement, sourceRoot)) - .collect(toImmutableList()); - } - - /** Returns a list of all possible error cases that might occur. */ - public ImmutableList getAllErrors() { - // Relevant error cases are precisely the concrete subclasses of EppException. - return getConcreteSubclassesStream(FlowDocumentation.EXCEPTION_CLASS_NAME) - .map( - typeElement -> - new ErrorCase( - typeElement, - sourceRoot.getDocTrees().getDocCommentTree(typeElement), - sourceRoot.getTypeUtils())) - .collect(toImmutableList()); - } - - /** Helper to return all concrete subclasses of a given named class. */ - private Stream getConcreteSubclassesStream(String baseClassName) { - final TypeElement baseFlowTypeElement = - sourceRoot.getElementUtils().getTypeElement(baseClassName); - return ElementFilter.typesIn(sourceRoot.getIncludedElements()).stream() - .filter( - typeElement -> - sourceRoot - .getTypeUtils() - .isSubtype(typeElement.asType(), baseFlowTypeElement.asType()) - && !typeElement.getModifiers().contains(Modifier.ABSTRACT)); - } -} diff --git a/docs/src/main/java/google/registry/documentation/FlowDocumentation.java b/docs/src/main/java/google/registry/documentation/FlowDocumentation.java deleted file mode 100644 index 109da5612..000000000 --- a/docs/src/main/java/google/registry/documentation/FlowDocumentation.java +++ /dev/null @@ -1,370 +0,0 @@ -// Copyright 2017 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.documentation; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.collect.MoreCollectors.onlyElement; -import static java.nio.charset.StandardCharsets.UTF_8; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ListMultimap; -import com.google.common.collect.Multimaps; -import com.google.re2j.Matcher; -import com.google.re2j.Pattern; -import com.sun.source.doctree.DocCommentTree; -import com.sun.source.doctree.DocTree; -import com.sun.source.doctree.DocTree.Kind; -import com.sun.source.doctree.LinkTree; -import com.sun.source.doctree.ReferenceTree; -import com.sun.source.doctree.UnknownBlockTagTree; -import google.registry.flows.EppException; -import google.registry.model.eppoutput.Result.Code; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.StringJoiner; -import java.util.TreeMap; -import javax.annotation.Nullable; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.AnnotationValue; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeMirror; -import javax.lang.model.util.Elements; -import javax.lang.model.util.Types; -import jdk.javadoc.doclet.DocletEnvironment; - -/** - * Class to represent documentation information for a single EPP flow. - * - *

        The static method {@link DocumentationGenerator#getFlowDocs} returns a list of {@link - * FlowDocumentation} instances corresponding to the leaf flows in the flows package, constructing - * the instances from class information returned from the javadoc system. Each instance has methods - * for retrieving relevant information about the flow, such as a description, error conditions, etc. - */ -public class FlowDocumentation { - - /** Constants for names of various relevant packages and classes. */ - static final String FLOW_PACKAGE_NAME = "google.registry.flows"; - - static final String BASE_FLOW_CLASS_NAME = FLOW_PACKAGE_NAME + ".Flow"; - static final String EXCEPTION_CLASS_NAME = FLOW_PACKAGE_NAME + ".EppException"; - static final String CODE_ANNOTATION_NAME = EXCEPTION_CLASS_NAME + ".EppResultCode"; - - /** Root of the source doclet environment. */ - private final DocletEnvironment sourceRoot; - - /** Type Element of the class. */ - private final TypeElement typeElement; - - /** Doc tree for the flow. */ - private final DocCommentTree docTree; - - /** Javadoc-tagged error conditions for this flow in list form. */ - private final List errors; - - /** Javadoc-tagged error conditions for this flow, organized by underlying error code. */ - private final ListMultimap errorsByCode; - - /** - * Creates a {@link FlowDocumentation} for this flow class using data from javadoc tags. Not - * public because clients should get FlowDocumentation objects via the DocumentationGenerator - * class. - */ - protected FlowDocumentation(TypeElement typeElement, DocletEnvironment sourceRoot) { - this.sourceRoot = sourceRoot; - this.typeElement = typeElement; - this.docTree = sourceRoot.getDocTrees().getDocCommentTree(typeElement); - errors = new ArrayList<>(); - // Store error codes in sorted order, and leave reasons in insert order. - errorsByCode = Multimaps.newListMultimap(new TreeMap<>(), ArrayList::new); - parseTags(); - } - - /** Name of the class for this flow. */ - public String getName() { - return typeElement.getSimpleName().toString(); - } - - /** Fully qualified name of the class for this flow. */ - public String getQualifiedName() { - return typeElement.getQualifiedName().toString(); - } - - /** Name of the package in which this flow resides. */ - public String getPackageName() { - return sourceRoot.getElementUtils().getPackageOf(typeElement).getQualifiedName().toString(); - } - - /** Javadoc of the class. */ - public String getDocTree() { - StringJoiner joiner = new StringJoiner(""); - docTree.getFullBody().forEach(dt -> joiner.add(dt.toString())); - return joiner.toString(); - } - - public ImmutableList getErrors() { - return ImmutableList.copyOf(errors); - } - - public ImmutableMultimap getErrorsByCode() { - return ImmutableMultimap.copyOf(errorsByCode); - } - - /** Iterates through javadoc tags on the underlying class and calls specific parsing methods. */ - private void parseTags() { - for (DocTree tag : docTree.getBlockTags()) { - if (tag.getKind() == DocTree.Kind.UNKNOWN_BLOCK_TAG) { - UnknownBlockTagTree unknownBlockTagTree = (UnknownBlockTagTree) tag; - // Everything else is not a relevant tag. - if (unknownBlockTagTree.getTagName().equals("error")) { - parseErrorTag(unknownBlockTagTree); - } - } - } - } - - /** Exception to throw when an @error tag cannot be parsed correctly. */ - private static class BadErrorTagFormatException extends IllegalStateException { - /** Makes a message to use as a prefix for the reason passed up to the superclass. */ - private static String makeMessage( - String reason, TypeElement typeElement, UnknownBlockTagTree tagTree) { - return String.format( - "Bad @error tag format (%s) in class %s - %s", - tagTree.toString(), typeElement.getQualifiedName(), reason); - } - - private BadErrorTagFormatException( - String reason, TypeElement typeElement, UnknownBlockTagTree tagTree) { - super(makeMessage(reason, typeElement, tagTree)); - } - - private BadErrorTagFormatException( - String reason, TypeElement typeElement, UnknownBlockTagTree tagTree, Exception cause) { - super(makeMessage(reason, typeElement, tagTree), cause); - } - } - - /** Parses a javadoc tag corresponding to an error case and updates the error mapping. */ - private void parseErrorTag(UnknownBlockTagTree tagTree) { - // Parse the @error tag text to find the @link inline tag. - LinkTree linkedTag; - try { - linkedTag = - tagTree.getContent().stream() - .filter(docTree -> docTree.getKind() == Kind.LINK) - .map(LinkTree.class::cast) - .collect(onlyElement()); - } catch (NoSuchElementException | IllegalArgumentException e) { - throw new BadErrorTagFormatException( - String.format( - "expected one @link tag in tag text but found %s: %s", - (e instanceof NoSuchElementException ? "none" : "multiple"), tagTree.toString()), - typeElement, - tagTree, - e); - } - // Check to see if the @link tag references a valid class. - ReferenceTree referenceTree = linkedTag.getReference(); - TypeElement referencedTypeElement = getReferencedElement(referenceTree); - if (referencedTypeElement == null) { - throw new BadErrorTagFormatException( - "could not resolve class from @link tag text: " + linkedTag.toString(), - typeElement, - tagTree); - } - // Try to convert the referenced class into an ErrorCase; fail if it's not an EppException. - ErrorCase error; - try { - DocCommentTree docCommentTree = - sourceRoot.getDocTrees().getDocCommentTree(referencedTypeElement); - error = new ErrorCase(referencedTypeElement, docCommentTree, sourceRoot.getTypeUtils()); - } catch (IllegalStateException | IllegalArgumentException e) { - throw new BadErrorTagFormatException( - "class referenced in @link is not a valid EppException: " - + referencedTypeElement.getQualifiedName(), - typeElement, - tagTree, - e); - } - // Success; store this as a parsed error case. - errors.add(error); - errorsByCode.put(error.getCode(), error); - } - - /** - * Try to find the {@link TypeElement} of the class in the {@link ReferenceTree}. - * - *

        Unfortunately the new Javadoc API doesn't expose the referenced class object directly, so we - * have to find it by trying to find out its fully qualified class name and then loading it from - * the {@link Elements}. - */ - private TypeElement getReferencedElement(ReferenceTree referenceTree) { - String signature = referenceTree.getSignature(); - Elements elements = sourceRoot.getElementUtils(); - TypeElement referencedTypeElement = elements.getTypeElement(signature); - // If the signature is already a qualified class name, we should find it directly. Otherwise - // only the simple class name is used in the @error tag and we try to find its package name. - if (referencedTypeElement == null) { - // First try if the error class is in the same package as the flow class that we are - // processing. - referencedTypeElement = - elements.getTypeElement(String.format("%s.%s", getPackageName(), signature)); - } - if (referencedTypeElement == null) { - // Then try if the error class is a nested class of the flow class that we are processing. - referencedTypeElement = - elements.getTypeElement(String.format("%s.%s", getQualifiedName(), signature)); - } - if (referencedTypeElement == null) { - // Lastly, the error class must have been imported. We read the flow class file, and try to - // find the import statement that ends with the simple class name. - String currentClassFilename = - String.format( - "%s/%s.java", - JavadocWrapper.SOURCE_PATH, getQualifiedName().replaceAll("\\.", "\\/")); - String unusedClassFileContent; - try { - unusedClassFileContent = Files.readString(Path.of(currentClassFilename), UTF_8); - } catch (IOException e) { - throw new RuntimeException(e); - } - // To understand this regex: the import statement must start with a new line or a semicolon, - // followed by any number of whitespaces, the word "import" (we don't consider static import), - // any number of whitespaces, repeats of "\w*." (this is not exactly precise, but for all - // well-named classes it should suffice), the signature, any number of whitespaces, and - // finally an ending semicolon. "?:" is used to designate non-capturing groups as we are only - // interested in capturing the fully qualified class name. - Pattern pattern = - Pattern.compile(String.format("(?:\\n|;)\\s*import\\s+((?:\\w*\\.)*%s)\\s*;", signature)); - Matcher matcher = pattern.matcher(unusedClassFileContent); - if (matcher.find()) { - referencedTypeElement = elements.getTypeElement(matcher.group(1)); - } - } - - return referencedTypeElement; - } - - /** - * Represents an error case for a flow, with a reason for the error and the EPP error code. - * - *

        This class is an immutable wrapper for the name of an {@link EppException} subclass that - * gets thrown to indicate an error condition. It overrides {@code equals()} and {@code - * hashCode()} so that instances of this class can be used in collections in the normal fashion. - */ - public static class ErrorCase { - - /** The non-qualified name of the exception class. */ - private final String name; - - /** The fully-qualified name of the exception class. */ - private final String className; - - /** The reason this error was thrown, normally documented on the low-level exception class. */ - private final String reason; - - /** Utility class to convert {@link TypeMirror} to {@link TypeElement}. */ - private final Types types; - - /** The EPP error code value corresponding to this error condition. */ - private final long errorCode; - - /** Constructs an ErrorCase from the corresponding class for a low-level flow exception. */ - protected ErrorCase(TypeElement typeElement, DocCommentTree commentTree, Types types) { - name = typeElement.getSimpleName().toString(); - className = typeElement.getQualifiedName().toString(); - // The javadoc comment on the class explains the reason for the error condition. - reason = commentTree.getFullBody().toString(); - this.types = types; - TypeElement highLevelExceptionTypeElement = getHighLevelExceptionFrom(typeElement); - errorCode = extractErrorCode(highLevelExceptionTypeElement); - checkArgument( - !typeElement.getModifiers().contains(Modifier.ABSTRACT), - "Cannot use an abstract subclass of EppException as an error case"); - } - - public String getName() { - return name; - } - - protected String getClassName() { - return className; - } - - public String getReason() { - return reason; - } - - public long getCode() { - return errorCode; - } - - /** Returns the direct subclass of EppException that this class is a subclass of (or is). */ - private TypeElement getHighLevelExceptionFrom(TypeElement typeElement) { - // While we're not yet at the root, move up the class hierarchy looking for EppException. - while (typeElement.getSuperclass() != null) { - TypeElement superClassTypeElement = - (TypeElement) types.asElement(typeElement.getSuperclass()); - if (superClassTypeElement.getQualifiedName().toString().equals(EXCEPTION_CLASS_NAME)) { - return typeElement; - } - typeElement = superClassTypeElement; - } - // Failure; we reached the root without finding a subclass of EppException. - throw new IllegalArgumentException( - String.format("Class referenced is not a subclass of %s", EXCEPTION_CLASS_NAME)); - } - - /** Returns the corresponding EPP error code for an annotated subclass of EppException. */ - private long extractErrorCode(TypeElement typeElement) { - try { - // We're looking for a specific annotation by name that should appear only once. - AnnotationMirror errorCodeAnnotation = - typeElement.getAnnotationMirrors().stream() - .filter(anno -> anno.getAnnotationType().toString().equals(CODE_ANNOTATION_NAME)) - .findFirst() - .get(); - // The annotation should have one element whose value converts to an EppResult.Code. - AnnotationValue value = - errorCodeAnnotation.getElementValues().entrySet().iterator().next().getValue(); - return Code.valueOf(value.getValue().toString()).code; - } catch (IllegalStateException e) { - throw new IllegalStateException( - "No error code annotation found on exception " + typeElement.getQualifiedName(), e); - } catch (ArrayIndexOutOfBoundsException | ClassCastException | IllegalArgumentException e) { - throw new IllegalStateException( - "Bad annotation on exception " + typeElement.getQualifiedName(), e); - } - } - - @Override - public boolean equals(@Nullable Object object) { - // The className field canonically identifies the EppException wrapped by this class, and - // all other instance state is derived from that exception, so we only check className. - return object instanceof ErrorCase && this.className.equals(((ErrorCase) object).className); - } - - @Override - public int hashCode() { - // See note for equals() - only className is needed for comparisons. - return className.hashCode(); - } - } -} diff --git a/docs/src/main/java/google/registry/documentation/FlowDocumentationTool.java b/docs/src/main/java/google/registry/documentation/FlowDocumentationTool.java deleted file mode 100644 index 29c448a9e..000000000 --- a/docs/src/main/java/google/registry/documentation/FlowDocumentationTool.java +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2017 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.documentation; - -import static java.nio.charset.StandardCharsets.UTF_8; - -import com.beust.jcommander.JCommander; -import com.beust.jcommander.Parameter; -import com.beust.jcommander.ParameterException; -import com.beust.jcommander.Parameters; -import com.google.common.io.Files; -import java.io.File; -import java.io.IOException; - -/** - * Tool to generate documentation for the EPP flows and corresponding external API. - * - *

        Mostly responsible for producing standalone documentation files (HTML and Markdown) from flow - * information objects; those call into javadoc to extract documentation information from the flows - * package source files. See the {@link FlowDocumentation} class for more details. - */ -@Parameters(separators = " =", commandDescription = "Tool to generate EPP API documentation") -public class FlowDocumentationTool { - - @Parameter( - names = {"-o", "--output_file"}, - description = "file where generated documentation will be written (use '-' for stdout)") - private String outputFileName; - - @Parameter( - names = {"--help", "--helpshort"}, - description = "print this help", - help = true) - private boolean displayHelp = false; - - /** Parses command line flags and then runs the documentation tool. */ - public static void main(String[] args) { - FlowDocumentationTool docTool = new FlowDocumentationTool(); - JCommander jcommander = new JCommander(docTool); - jcommander.setProgramName("flow_docs_tool"); - - try { - jcommander.parse(args); - } catch (ParameterException e) { - jcommander.usage(); - throw e; - } - - if (docTool.displayHelp) { - jcommander.usage(); - return; - } - - docTool.run(); - } - - /** Generates flow documentation and then outputs it to the specified file. */ - public void run() { - DocumentationGenerator docGenerator; - try { - docGenerator = new DocumentationGenerator(); - } catch (Exception e) { - throw new RuntimeException("IO error while running Javadoc tool", e); - } - String output = docGenerator.generateMarkdown(); - if (outputFileName.equals("-")) { - System.out.println(output); - } else { - if (outputFileName == null) { - outputFileName = "doclet.md"; - } - try { - Files.asCharSink(new File(outputFileName), UTF_8).write(output); - } catch (IOException e) { - throw new RuntimeException("Could not write to specified output file", e); - } - } - } -} diff --git a/docs/src/main/java/google/registry/documentation/JavadocWrapper.java b/docs/src/main/java/google/registry/documentation/JavadocWrapper.java deleted file mode 100644 index 12270e9ed..000000000 --- a/docs/src/main/java/google/registry/documentation/JavadocWrapper.java +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2017 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.documentation; - -import static google.registry.util.BuildPathUtils.getProjectRoot; -import static java.nio.charset.StandardCharsets.UTF_8; - -import com.google.common.collect.ImmutableList; -import com.google.common.flogger.FluentLogger; -import com.sun.tools.javac.file.JavacFileManager; -import com.sun.tools.javac.util.Context; -import java.io.File; -import java.util.Collection; -import java.util.EnumMap; -import java.util.Map; -import javax.tools.StandardLocation; -import jdk.javadoc.doclet.DocletEnvironment; -import jdk.javadoc.internal.tool.AccessKind; -import jdk.javadoc.internal.tool.JavadocTool; -import jdk.javadoc.internal.tool.Messager; -import jdk.javadoc.internal.tool.ToolOption; - -/** - * Wrapper class to simplify calls to the javadoc system and hide internal details. An instance - * represents a set of parameters for calling out to javadoc; these parameters can be set via the - * appropriate methods, and determine what files and packages javadoc will process. The actual - * running of javadoc occurs when calling getRootDoc() to retrieve a javadoc RootDoc. - */ -public final class JavadocWrapper { - - private static final FluentLogger logger = FluentLogger.forEnclosingClass(); - - /** Shows any member visible at at least the default (package) level. */ - private static final AccessKind ACCESS_KIND = AccessKind.PACKAGE; - - /** Root directory for source files. */ - public static final String SOURCE_PATH = - getProjectRoot().resolve("core/src/main/java").toString(); - - /** Specific packages to generate documentation for. */ - private static final ImmutableList SOURCE_PACKAGE_NAMES = - ImmutableList.of(FlowDocumentation.FLOW_PACKAGE_NAME); - - /** - * Obtains a Javadoc {@link DocletEnvironment} object containing raw Javadoc documentation. Wraps - * a call to the static method {@link #createDocletEnv} and passes in instance-specific settings. - */ - public static DocletEnvironment getDocletEnv() throws Exception { - logger.atInfo().log("Starting Javadoc tool"); - File sourceFilePath = new File(SOURCE_PATH); - logger.atInfo().log("Using source directory: %s", sourceFilePath.getAbsolutePath()); - try { - return createDocletEnv(SOURCE_PATH, SOURCE_PACKAGE_NAMES); - } finally { - logger.atInfo().log("Javadoc tool finished"); - } - } - - /** - * Obtains a Javadoc {@link DocletEnvironment} object for the specified source path and - * package/Java names. If the source path is null, then the working directory is assumed as the - * source path. - * - *

        If a list of package names is provided, then Javadoc will run on these packages and all - * their subpackages, based out of the specified source path. - * - *

        If a list of file names is provided, then Javadoc will also run on these Java source files. - * The specified source path is not considered in this case. - * - * @param sourcePath the directory where to look for packages. - * @param packageNames name of the package to run javadoc on, including subpackages. - * @see - * Package jdk.javadoc.doclet - */ - private static DocletEnvironment createDocletEnv( - String sourcePath, Collection packageNames) throws Exception { - - // Create a context to hold settings for Javadoc. - Context context = new Context(); - - // Pre-register a messager for the context. - Messager.preRegister(context, JavadocWrapper.class.getName()); - - // Set source path option for Javadoc. - try (JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8)) { - - fileManager.setLocation(StandardLocation.SOURCE_PATH, ImmutableList.of(new File(sourcePath))); - - // Create an instance of Javadoc. - JavadocTool javadocTool = JavadocTool.make0(context); - - // Set up javadoc tool options. - Map options = new EnumMap<>(ToolOption.class); - options.put(ToolOption.SHOW_PACKAGES, ACCESS_KIND); - options.put(ToolOption.SHOW_TYPES, ACCESS_KIND); - options.put(ToolOption.SHOW_MEMBERS, ACCESS_KIND); - options.put(ToolOption.SHOW_MODULE_CONTENTS, ACCESS_KIND); - options.put(ToolOption.SUBPACKAGES, packageNames); - - // Invoke Javadoc and ask it for a DocletEnvironment containing the specified packages. - return javadocTool.getEnvironment( - options, // options - ImmutableList.of(), // java names - ImmutableList.of()); // java files - } - } - - private JavadocWrapper() {} -} diff --git a/docs/src/main/java/google/registry/documentation/MarkdownDocumentationFormatter.java b/docs/src/main/java/google/registry/documentation/MarkdownDocumentationFormatter.java deleted file mode 100644 index 998aec153..000000000 --- a/docs/src/main/java/google/registry/documentation/MarkdownDocumentationFormatter.java +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright 2017 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.documentation; - -import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.CharMatcher; -import com.google.common.base.Splitter; -import com.google.common.base.Strings; -import com.google.re2j.Matcher; -import com.google.re2j.Pattern; -import google.registry.documentation.FlowDocumentation.ErrorCase; -import java.util.ArrayList; -import java.util.List; - -/** Formatter that converts flow documentation into Markdown. */ -public final class MarkdownDocumentationFormatter { - - /** Header for flow documentation HTML output. */ - private static final String MARKDOWN_HEADER = "# Nomulus EPP Command API Documentation\n\n"; - - /** Pattern that naively matches HTML tags and entity references. */ - private static final Pattern HTML_TAG_AND_ENTITY_PATTERN = Pattern.compile("<[^>]*>|&[^;]*;"); - - /** 8 character indentation. */ - private static final String INDENT8 = Strings.repeat(" ", 8); - - /** Max linewidth for our markdown docs. */ - private static final int LINE_WIDTH = 80; - - /** - * Returns the string with all HTML tags stripped. Also, removes a single space after any newlines - * that have one (we get a single space indent for all lines but the first because of the way that - * javadocs are written in comments). - */ - @VisibleForTesting - static String fixHtml(String value) { - Matcher matcher = HTML_TAG_AND_ENTITY_PATTERN.matcher(value); - int pos = 0; - StringBuilder result = new StringBuilder(); - while (matcher.find(pos)) { - result.append(value, pos, matcher.start()); - switch (matcher.group(0)) { - case "

        ": - //

        is simply removed. - break; - case "&": - result.append("&"); - break; - case "<": - result.append("<"); - break; - case ">": - result.append(">"); - break; - case "&squot;": - result.append("'"); - break; - case """: - result.append("\""); - break; - default: - throw new IllegalArgumentException("Unrecognized HTML sequence: " + matcher.group(0)); - } - pos = matcher.end(); - } - - // Add the string after the last HTML sequence. - result.append(value.substring(pos)); - - return result.toString().replace("\n ", "\n"); - } - - /** Formats a list of words into a paragraph with less than maxWidth characters per line. */ - @VisibleForTesting - static String formatParagraph(List words, int maxWidth) { - int lineLength = 0; - - StringBuilder output = new StringBuilder(); - for (String word : words) { - // This check ensures that 1) don't add a space before the word and 2) always have at least - // one word per line, so that we don't mishandle a very long word at the end of a line by - // adding a blank line before the word. - if (lineLength > 0) { - // Do we have enough room for another word? - if (lineLength + 1 + word.length() > maxWidth) { - // No. End the line. - output.append('\n'); - lineLength = 0; - } else { - // Yes: Insert a space before the word. - output.append(' '); - ++lineLength; - } - } - - output.append(word); - lineLength += word.length(); - } - - output.append('\n'); - return output.toString(); - } - - /** Returns 'value' with words reflowed to maxWidth characters. */ - @VisibleForTesting - static String reflow(String text, int maxWidth) { - - // A list of words that will be constructed into the list of words in a paragraph. - ArrayList words = new ArrayList<>(); - - // Read through the lines, process a paragraph every time we get a blank line. - StringBuilder resultBuilder = new StringBuilder(); - for (String line : Splitter.on('\n').trimResults().split(text)) { - - // If we got a blank line, format our current paragraph and start fresh. - if (line.trim().isEmpty()) { - resultBuilder.append(formatParagraph(words, maxWidth)); - resultBuilder.append('\n'); - words.clear(); - continue; - } - - // Split the line into words and add them to the current paragraph. - words.addAll( - Splitter.on(CharMatcher.breakingWhitespace()).omitEmptyStrings().splitToList(line)); - } - - // Format the last paragraph, if any. - if (!words.isEmpty()) { - resultBuilder.append(formatParagraph(words, maxWidth)); - } - - return resultBuilder.toString(); - } - - /** Returns a string of HTML representing the provided flow documentation objects. */ - public static String generateMarkdownOutput(Iterable flowDocs) { - StringBuilder output = new StringBuilder(); - output.append(MARKDOWN_HEADER); - for (FlowDocumentation flowDoc : flowDocs) { - output.append(String.format("## %s\n\n", flowDoc.getName())); - output.append("### Description\n\n"); - output.append(String.format("%s\n", reflow(fixHtml(flowDoc.getDocTree()), LINE_WIDTH))); - output.append("### Errors\n\n"); - for (Long code : flowDoc.getErrorsByCode().keySet()) { - output.append(String.format("* %d\n", code)); - - flowDoc.getErrorsByCode().get(code).stream() - .map(ErrorCase::getReason) - .distinct() - .forEach( - reason -> { - output.append(" * "); - String wrappedReason = reflow(fixHtml(reason), LINE_WIDTH - 8); - - // Replace internal newlines with indentation and strip the final newline. - output.append(wrappedReason.trim().replace("\n", "\n" + INDENT8)); - output.append('\n'); - }); - } - output.append('\n'); - } - return output.toString(); - } - - private MarkdownDocumentationFormatter() {} -} diff --git a/docs/src/test/java/google/registry/documentation/FlowContext.java b/docs/src/test/java/google/registry/documentation/FlowContext.java deleted file mode 100644 index 38fd560a5..000000000 --- a/docs/src/test/java/google/registry/documentation/FlowContext.java +++ /dev/null @@ -1,268 +0,0 @@ -// Copyright 2017 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.documentation; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkState; -import static com.google.common.collect.ImmutableSet.toImmutableSet; -import static com.google.common.collect.MoreCollectors.onlyElement; -import static google.registry.util.BuildPathUtils.getProjectRoot; -import static java.util.stream.Collectors.joining; - -import com.google.common.base.Ascii; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.MultimapBuilder; -import com.google.common.collect.SetMultimap; -import com.google.common.collect.Sets; -import com.google.common.collect.Streams; -import com.thoughtworks.qdox.JavaDocBuilder; -import com.thoughtworks.qdox.model.JavaSource; -import google.registry.documentation.FlowDocumentation.ErrorCase; -import java.io.File; -import java.io.IOException; -import java.nio.file.DirectoryStream; -import java.nio.file.FileSystems; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Set; - -/** - * Stores the context for a flow and computes exception mismatches between javadoc and tests. - * - *

        This class uses the flow_docs library built for the documentation generator tool to pull out - * the set of flow exceptions documented by custom javadoc tags on the specified flow. It then - * derives the corresponding test files for that flow and pulls out the imported names from those - * files, checking against a set of all possible flow exceptions to determine those used by this - * particular test. The set of javadoc-based exceptions and the set of imported exceptions should - * be identical, ensuring a correspondence between error cases listed in the documentation and - * those tested in the flow unit tests. - * - *

        If the two sets are not identical, the getMismatchedExceptions() method on this class will - * return a non-empty string containing messages about what the mismatches were and which lines - * need to be added or removed in which files in order to satisfy the correspondence condition. - */ -public class FlowContext { - /** Represents one of the two possible places an exception may be referenced from. */ - // TODO(b/19124943): This enum is only used in ErrorCaseMismatch and ideally belongs there, but - // can't go in the inner class because it's not a static inner class. At some point it might - // be worth refactoring so that this enum can be properly scoped. - private enum SourceType { JAVADOC, IMPORT } - - /** The package in which this flow resides. */ - final String packageName; - - /** The source file for this flow, used for help messages. */ - final String sourceFilename; - - /** The test files for this flow, used for help messages and extracting imported exceptions. */ - final Set testFilenames; - - /** The set of all possible exceptions that could be error cases for a flow. */ - final Set possibleExceptions; - - /** The set of exceptions referenced from the javadoc on this flow. */ - final Set javadocExceptions; - - /** Maps exceptions imported by the test files for this flow to the files in which they occur. */ - final SetMultimap importExceptionsToFilenames; - - /** - * Creates a FlowContext from a FlowDocumentation object and a set of all possible exceptions. - * The latter parameter is needed in order to filter imported names in the flow test file. - */ - public FlowContext(FlowDocumentation flowDoc, Set possibleExceptions) - throws IOException { - packageName = flowDoc.getPackageName(); - // Assume the standard filename conventions for locating the flow class's source file. - sourceFilename = "java/" + flowDoc.getQualifiedName().replace('.', '/') + ".java"; - testFilenames = getTestFilenames(flowDoc.getQualifiedName()); - checkState(testFilenames.size() >= 1, "No test files found for %s.", flowDoc.getName()); - this.possibleExceptions = possibleExceptions; - javadocExceptions = Sets.newHashSet(flowDoc.getErrors()); - importExceptionsToFilenames = getImportExceptions(); - } - - /** - * Helper to locate test files for this flow by looking in src/test/java/ for all files with the - * exact same relative filename as the flow file, but with a "*Test{,Case}.java" suffix. - */ - private static Set getTestFilenames(String flowName) throws IOException { - String commonPrefix = - getProjectRoot().resolve("core/src/test/java").resolve(flowName.replace('.', '/')) - .toString(); - return Sets.union( - getFilenamesMatchingGlob(commonPrefix + "*Test.java"), - getFilenamesMatchingGlob(commonPrefix + "*TestCase.java")); - } - - /** - * Helper to return the set of filenames matching the given glob. The glob should only have - * asterisks in the portion following the last slash (if there is one). - */ - private static Set getFilenamesMatchingGlob(String fullGlob) throws IOException { - Path globPath = FileSystems.getDefault().getPath(fullGlob); - Path dirPath = globPath.getParent(); - String glob = globPath.getFileName().toString(); - try (DirectoryStream dirStream = Files.newDirectoryStream(dirPath, glob)) { - return Streams.stream(dirStream).map(Object::toString).collect(toImmutableSet()); - } - } - - /** - * Returns a multimap mapping each exception imported in test files for this flow to the set of - * filenames for files that import that exception. - */ - private SetMultimap getImportExceptions() throws IOException { - ImmutableMultimap.Builder builder = new ImmutableMultimap.Builder<>(); - for (String testFileName : testFilenames) { - builder.putAll(testFileName, getImportExceptionsFromFile(testFileName)); - } - // Invert the mapping so that later we can easily map exceptions to where they were imported. - return MultimapBuilder.hashKeys().hashSetValues().build(builder.build().inverse()); - } - - /** - * Returns the set of exceptions imported in this test file. First extracts the set of - * all names imported by the test file, and then uses these to filter a global list of possible - * exceptions, so that the additional exception information available via the global list objects - * (which are ErrorCases wrapping exception names) can be preserved. - */ - private Set getImportExceptionsFromFile(String filename) throws IOException { - JavaDocBuilder builder = new JavaDocBuilder(); - JavaSource src = builder.addSource(new File(filename)); - final Set importedNames = Sets.newHashSet(src.getImports()); - return possibleExceptions - .stream() - .filter(errorCase -> importedNames.contains(errorCase.getClassName())) - .collect(toImmutableSet()); - } - - - /** - * Represents a mismatch in this flow for a specific error case and documents how to fix it. - * A mismatch occurs when the exception for this error case appears in either the source file - * javadoc or at least one matching test file, but not in both. - */ - private class ErrorCaseMismatch { - - /** The format for an import statement for a given exception name. */ - static final String IMPORT_FORMAT = "import %s;"; - - /** The format for a javadoc tag referencing a given exception name. */ - static final String JAVADOC_FORMAT = "@error {@link %s}"; - - // Template strings for printing output. - static final String TEMPLATE_HEADER = "Extra %s for %s:\n"; - static final String TEMPLATE_ADD = " Add %s to %s:\n + %s\n"; - static final String TEMPLATE_ADD_MULTIPLE = " Add %s to one or more of:\n%s + %s\n"; - static final String TEMPLATE_REMOVE = " Or remove %s in %s:\n - %s\n"; - static final String TEMPLATE_REMOVE_MULTIPLE = " Or remove %ss in:\n%s - %s\n"; - static final String TEMPLATE_MULTIPLE_FILES = " * %s\n"; - - /** The error case for which the mismatch was detected. */ - final ErrorCase errorCase; - - /** The source type where references could be added to fix the mismatch. */ - final SourceType addType; - - /** The source type where references could be removed to fix the mismatch. */ - final SourceType removeType; - - /** - * Constructs an ErrorCaseMismatch for the given ErrorCase and SourceType. The latter parameter - * indicates the source type this exception was referenced from. - */ - public ErrorCaseMismatch(ErrorCase errorCase, SourceType foundType) { - this.errorCase = errorCase; - // Effectively addType = !foundType. - addType = (foundType == SourceType.IMPORT ? SourceType.JAVADOC : SourceType.IMPORT); - removeType = foundType; - } - - /** Returns the line of code needed to refer to this exception from the given source type. */ - public String getCodeLineAs(SourceType sourceType) { - return sourceType == SourceType.JAVADOC - // Strip the flow package prefix from the exception class name if possible, for brevity. - ? String.format(JAVADOC_FORMAT, errorCase.getClassName().replace(packageName + ".", "")) - : String.format(IMPORT_FORMAT, errorCase.getClassName()); - } - - /** Helper to format a set of filenames for printing in a mismatch message. */ - private String formatMultipleFiles(Set filenames) { - checkArgument(filenames.size() >= 1, "Cannot format empty list of files."); - if (filenames.size() == 1) { - return filenames.stream().collect(onlyElement()); - } - return filenames - .stream() - .map(filename -> String.format(TEMPLATE_MULTIPLE_FILES, filename)) - .collect(joining("")); - } - - /** Helper to format the section describing how to add references to fix the mismatch. */ - private String makeAddSection() { - String addTypeString = Ascii.toLowerCase(addType.toString()); - String codeLine = getCodeLineAs(addType); - Set files = (addType == SourceType.JAVADOC - ? ImmutableSet.of(sourceFilename) - : testFilenames); - return (files.size() == 1 - ? String.format( - TEMPLATE_ADD, addTypeString, formatMultipleFiles(files), codeLine) - : String.format( - TEMPLATE_ADD_MULTIPLE, addTypeString, formatMultipleFiles(files), codeLine)); - } - - /** Helper to format the section describing how to remove references to fix the mismatch. */ - // TODO(b/19124943): Repeating structure from makeAddSection() - would be nice to clean up. - private String makeRemoveSection() { - String removeTypeString = Ascii.toLowerCase(removeType.toString()); - String codeLine = getCodeLineAs(removeType); - Set files = (removeType == SourceType.JAVADOC - ? ImmutableSet.of(sourceFilename) - : importExceptionsToFilenames.get(errorCase)); - return (files.size() == 1 - ? String.format( - TEMPLATE_REMOVE, removeTypeString, formatMultipleFiles(files), codeLine) - : String.format( - TEMPLATE_REMOVE_MULTIPLE, removeTypeString, formatMultipleFiles(files), codeLine)); - } - - /** Returns a string describing the mismatch for this flow exception and how to fix it. */ - @Override - public String toString() { - String headerSection = String.format( - TEMPLATE_HEADER, Ascii.toLowerCase(removeType.toString()), errorCase.getName()); - return headerSection + makeAddSection() + makeRemoveSection(); - } - } - - /** - * Returns a single string describing all mismatched exceptions for this flow. An empty string - * means no mismatched exceptions were found. - */ - public String getMismatchedExceptions() { - Set importExceptions = importExceptionsToFilenames.keySet(); - StringBuilder builder = new StringBuilder(); - for (ErrorCase errorCase : Sets.difference(javadocExceptions, importExceptions)) { - builder.append(new ErrorCaseMismatch(errorCase, SourceType.JAVADOC)).append("\n"); - } - for (ErrorCase errorCase : Sets.difference(importExceptions, javadocExceptions)) { - builder.append(new ErrorCaseMismatch(errorCase, SourceType.IMPORT)).append("\n"); - } - return builder.toString(); - } -} diff --git a/docs/src/test/java/google/registry/documentation/FlowDocumentationTest.java b/docs/src/test/java/google/registry/documentation/FlowDocumentationTest.java deleted file mode 100644 index bca9affd8..000000000 --- a/docs/src/test/java/google/registry/documentation/FlowDocumentationTest.java +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2017 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.documentation; - -import static com.google.common.truth.Truth.assertWithMessage; -import static google.registry.util.BuildPathUtils.getProjectRoot; - -import com.google.common.base.Joiner; -import java.nio.file.Files; -import java.nio.file.Path; -import org.junit.jupiter.api.Test; - -/** Tests to ensure that generated flow documentation matches the expected documentation. */ -class FlowDocumentationTest { - private static final Path GOLDEN_MARKDOWN_FILEPATH = getProjectRoot().resolve("docs/flows.md"); - - private static final String UPDATE_COMMAND = "./gradlew :docs:flowDocsTool"; - private static final String UPDATE_INSTRUCTIONS = - Joiner.on('\n') - .join( - "", - "-----------------------------------------------------------------------------------", - "Your changes affect the flow API documentation output. To update the golden version " - + "of the documentation, run:", - UPDATE_COMMAND, - ""); - - @Test - void testGeneratedMatchesGolden() throws Exception { - // Read the markdown file. - String goldenMarkdown = Files.readString(GOLDEN_MARKDOWN_FILEPATH); - - // Don't use Truth's isEqualTo() because the output is huge and unreadable for large files. - DocumentationGenerator generator = new DocumentationGenerator(); - if (!generator.generateMarkdown().equals(goldenMarkdown)) { - assertWithMessage(UPDATE_INSTRUCTIONS).fail(); - } - } -} diff --git a/docs/src/test/java/google/registry/documentation/FlowExceptionsTest.java b/docs/src/test/java/google/registry/documentation/FlowExceptionsTest.java deleted file mode 100644 index c636a63ae..000000000 --- a/docs/src/test/java/google/registry/documentation/FlowExceptionsTest.java +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2017 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.documentation; - -import static com.google.common.truth.Truth.assertWithMessage; - -import com.google.common.collect.Sets; -import com.google.common.flogger.FluentLogger; -import google.registry.documentation.FlowDocumentation.ErrorCase; -import java.util.Set; -import org.junit.jupiter.api.Test; - -/** - * Test to ensure accurate documentation of flow exceptions. - * - *

        This test goes through each flow and ensures that the exceptions listed in custom javadoc - * tags on the flow class match the import statements in the test case for that flow. Thus it - * catches the case where someone adds a test case for an exception without updating the javadoc, - * and the case where someone adds a javadoc tag to a flow without writing a test for this error - * condition. For example, there should always be a matching pair of lines such as the following: - * - *

        - *   src/main/java/.../flows/session/LoginFlow.java:
        - *     @error {@link AlreadyLoggedInException}
        - *
        - *   src/test/java/.../flows/session/LoginFlowTest.java:
        - *     import .....flows.session.LoginFlow.AlreadyLoggedInException;
        - * 
        - * - * If the first line is missing, this test fails and suggests adding the javadoc tag or removing - * the import. If the second line is missing, this test fails and suggests adding the import or - * removing the javadoc tag. - */ -@SuppressWarnings("javadoc") -class FlowExceptionsTest { - - private static final FluentLogger logger = FluentLogger.forEnclosingClass(); - - @Test - void testExceptionCorrespondence() throws Exception { - DocumentationGenerator docGenerator = new DocumentationGenerator(); - Set possibleErrors = Sets.newHashSet(docGenerator.getAllErrors()); - Set mismatchingFlows = Sets.newHashSet(); - for (FlowDocumentation flow : docGenerator.getFlowDocs()) { - FlowContext context = new FlowContext(flow, possibleErrors); - String mismatches = context.getMismatchedExceptions(); - if (!mismatches.isEmpty()) { - logger.atWarning().log("%-40s FAIL\n\n%s", flow.getName(), mismatches); - mismatchingFlows.add(flow.getName()); - } else { - logger.atInfo().log("%-40s OK", flow.getName()); - } - } - assertWithMessage( - "Mismatched exceptions between flow documentation and tests. See test log for full " - + "details. The set of failing flows follows.") - .that(mismatchingFlows) - .isEmpty(); - } -} diff --git a/docs/src/test/java/google/registry/documentation/MarkdownDocumentationFormatterTest.java b/docs/src/test/java/google/registry/documentation/MarkdownDocumentationFormatterTest.java deleted file mode 100644 index 49e070242..000000000 --- a/docs/src/test/java/google/registry/documentation/MarkdownDocumentationFormatterTest.java +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2017 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.documentation; - -import static com.google.common.truth.Truth.assertThat; -import static org.junit.jupiter.api.Assertions.assertThrows; - -import java.util.Arrays; -import org.junit.jupiter.api.Test; - -/** Test conversion of javadocs to markdown. */ -class MarkdownDocumentationFormatterTest { - - @Test - void testHtmlSanitization() { - assertThat( - MarkdownDocumentationFormatter.fixHtml( - "First.

        Second. < > & &squot; "")) - .isEqualTo("First. Second. < > & ' \""); - assertThat(MarkdownDocumentationFormatter.fixHtml("

        Leading substitution.")) - .isEqualTo("Leading substitution."); - assertThat(MarkdownDocumentationFormatter.fixHtml("No substitution.")) - .isEqualTo("No substitution."); - } - - @Test - void testDedents() { - assertThat( - MarkdownDocumentationFormatter.fixHtml("First line\n\n

        Second line.\n Third line.")) - .isEqualTo("First line\n\nSecond line.\nThird line."); - } - - @Test - void testUnknownSequences() { - assertThrows( - IllegalArgumentException.class, () -> MarkdownDocumentationFormatter.fixHtml("&blech;")); - } - - @Test - void testParagraphFormatting() { - String[] words = {"first", "second", "third", "really-really-long-word", "more", "stuff"}; - String formatted = MarkdownDocumentationFormatter.formatParagraph(Arrays.asList(words), 16); - assertThat(formatted).isEqualTo("first second\nthird\nreally-really-long-word\nmore stuff\n"); - } - - @Test - void testReflow() { - String input = - "This is the very first line.\n" - + " \n" // add a little blank space to this line just to make things interesting. - + "This is the second paragraph. Aint\n" - + "it sweet?\n" - + "\n" - + "This is our third and final paragraph.\n" - + "It is multi-line and ends with no blank\n" - + "line."; - - String expected = - "This is the very\n" - + "first line.\n" - + "\n" - + "This is the\n" - + "second\n" - + "paragraph. Aint\n" - + "it sweet?\n" - + "\n" - + "This is our\n" - + "third and final\n" - + "paragraph. It is\n" - + "multi-line and\n" - + "ends with no\n" - + "blank line.\n"; - - assertThat(MarkdownDocumentationFormatter.reflow(input, 16)).isEqualTo(expected); - } - - MarkdownDocumentationFormatterTest() {} -} diff --git a/gradle.lockfile b/gradle.lockfile index 6a23bc82e..640eb3070 100644 --- a/gradle.lockfile +++ b/gradle.lockfile @@ -3,6 +3,7 @@ # This file is expected to be part of source control. com.google.code.findbugs:jsr305:3.0.2=checkstyle com.google.errorprone:error_prone_annotations:2.7.1=checkstyle +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.guava:failureaccess:1.0.1=checkstyle com.google.guava:guava:31.0.1-jre=checkstyle com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle @@ -23,4 +24,4 @@ org.ow2.asm:asm-commons:9.5=jacocoAnt org.ow2.asm:asm-tree:9.5=jacocoAnt org.ow2.asm:asm:9.5=jacocoAnt org.reflections:reflections:0.10.2=checkstyle -empty=errorprone,errorproneJavac,shadow +empty=errorprone,shadow diff --git a/gradle.properties b/gradle.properties index ce732df52..984e96711 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,6 @@ uploaderDestination= uploaderCredentialsFile= uploaderMultithreadedUpload= verboseTestOutput=false -flowDocsFile= enableDependencyLocking=true enableCrossReferencing=false testFilter= diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 27313fbc8..d0d403e27 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/java8compatibility/build.gradle b/java8compatibility/build.gradle deleted file mode 100644 index 2960637ad..000000000 --- a/java8compatibility/build.gradle +++ /dev/null @@ -1,41 +0,0 @@ -// 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. - -configurations { - all_prod_jars -} - -dependencies { - def deps = rootProject.dependencyMap - - testImplementation deps['com.google.guava:guava'] - testImplementation deps['com.google.truth:truth'] - testImplementation deps['org.junit.jupiter:junit-jupiter-api'] - testImplementation deps['org.junit.jupiter:junit-jupiter-engine'] - testImplementation deps['org.junit.jupiter:junit-jupiter-params'] - testRuntimeOnly project(path: ':core', configuration: 'deploy_jar') - - // Collection of jars that get deployed to Appengine. Please refer to - // ../appengine_war.gradle for more information. - // This includes nomulus production classes and all dependencies. - all_prod_jars project(path: ':core', configuration: 'deploy_jar') -} - -test { - def jarlist = configurations.all_prod_jars.each { - it.toURI().toURL() - }.join(',') - - systemProperty 'all_prod_jars', jarlist -} diff --git a/java8compatibility/buildscript-gradle.lockfile b/java8compatibility/buildscript-gradle.lockfile deleted file mode 100644 index 0d156738b..000000000 --- a/java8compatibility/buildscript-gradle.lockfile +++ /dev/null @@ -1,4 +0,0 @@ -# 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. -empty=classpath diff --git a/java8compatibility/src/test/java/google/registry/java8compatibility/ByteCodeVersionTest.java b/java8compatibility/src/test/java/google/registry/java8compatibility/ByteCodeVersionTest.java deleted file mode 100644 index 61f6d1259..000000000 --- a/java8compatibility/src/test/java/google/registry/java8compatibility/ByteCodeVersionTest.java +++ /dev/null @@ -1,115 +0,0 @@ -// 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.java8compatibility; - -import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.Truth.assertWithMessage; - -import com.google.common.base.Splitter; -import com.google.common.collect.ImmutableList; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.Enumeration; -import java.util.stream.Stream; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; - -/** - * Verifies that a list of user-specified jars are compatible with Java 8. - * - *

        User should use the {@link #JAR_LIST_PROPERTY_NAME} system property to pass in the - * fully-qualified filenames of the jars to be verified, separate by comma. - * - *

        To verify Java 8 compatibility, it is not sufficient to run tests with the Java 8 JVM. Many - * API jars, notably those for GCP services, are not exercised by tests. This class takes the - * conservative approach, and fails if any class is not compatible, regardless if it is in a - * production code path. - */ -class ByteCodeVersionTest { - - public static final String JAR_LIST_PROPERTY_NAME = "all_prod_jars"; - - /** - * The major version of bytecode at Java 8 target level. Technically this is a short value. - * However, a byte is sufficient for the lifetime of this class. - */ - private static final byte JAVA8_MAJOR_VERSION = (byte) 52; - // Offset of the major version number's lower byte in the class file. - private static final int MAJOR_VERSION_OFFSET = 7; - private static final int HEADER_LENGTH = MAJOR_VERSION_OFFSET + 1; - - private static ImmutableList jarsPaths; - - @BeforeAll - static void setup() { - jarsPaths = - ImmutableList.copyOf( - Splitter.on(',') - .omitEmptyStrings() - .trimResults() - .split(System.getProperty(JAR_LIST_PROPERTY_NAME))); - assertWithMessage("Jar list is empty.").that(jarsPaths).isNotEmpty(); - jarsPaths.forEach(path -> assertThat(path).endsWith(".jar")); - } - - @SuppressWarnings("unused") - private static Stream provideJarNames() { - return jarsPaths.stream() - .filter(pathStr -> new File(pathStr).exists()) - .map(pathStr -> Arguments.of(pathStr.substring(pathStr.lastIndexOf('/') + 1), pathStr)); - } - - @ParameterizedTest(name = "verifyBytecode_isJava8: {0}") - @MethodSource("provideJarNames") - void verifyBytecode_isJava8(String jarName, String jarPath) throws IOException { - ZipFile jarFile = new ZipFile(jarPath); - for (Enumeration entries = jarFile.entries(); entries.hasMoreElements(); ) { - verifyOneZipEntry(jarPath, jarFile, entries.nextElement()); - } - } - - private void verifyOneZipEntry(String jarPath, ZipFile jarFile, ZipEntry entry) - throws IOException { - /** - * A few jars (jaxb-api and bcprov-jdk15on) include Java 9+ module classes under - * META-INF/versions. They don't affect Java 8. - */ - if (entry.getName().startsWith("META-INF/versions/")) { - return; - } - if (!entry.getName().endsWith(".class")) { - return; - } - // Several jars include module-info.class at the root instead of under META-INF. This does not - // affect Java 8 either. - if (entry.getName().endsWith("module-info.class")) { - return; - } - try (InputStream inputStream = jarFile.getInputStream(entry)) { - byte[] header = inputStream.readNBytes(HEADER_LENGTH); - assertWithMessage("Malformed java class %s in %s.", entry.getName(), jarPath) - .that(header != null && header.length == HEADER_LENGTH) - .isTrue(); - assertWithMessage("Incompatible with Java 8: Class %s in %s.", entry.getName(), jarPath) - .that(header[MAJOR_VERSION_OFFSET]) - .isAtMost(JAVA8_MAJOR_VERSION); - } - } -} diff --git a/java_common.gradle b/java_common.gradle index 70c77559c..78de05033 100644 --- a/java_common.gradle +++ b/java_common.gradle @@ -71,8 +71,8 @@ configurations { } dependencies { - // compatibility with Java 8 - errorprone("com.google.errorprone:error_prone_core:2.3.4") + // compatibility with Java 17 + errorprone("com.google.errorprone:error_prone_core:2.23.0") } test { @@ -109,27 +109,37 @@ tasks.withType(Test).configureEach { } tasks.withType(JavaCompile).configureEach { - // The -Werror flag causes Intellij to fail on deprecated api use. - // Allow IDE user to turn off this flag by specifying a Gradle VM - // option from inside the IDE. - if (System.getProperty('no_werror') != 'true' && - // The core project throws an warning about Gradle annotation processor - // not compatible with Java source version > 8. Re-assess once the - // warning is fixed. - getProject().name != 'core') { - options.compilerArgs << "-Werror" - } - options.errorprone.disableWarningsInGeneratedCode = true - options.errorprone.errorproneArgumentProviders.add([ - asArguments: { - return ['-XepExcludedPaths:.*/build/generated/.*'] - }] as CommandLineArgumentProvider) - // Disable features currently incompatible with Java 12 - if ((JavaVersion.current().majorVersion as Integer) > 11) { - // This check is broken in Java 12. - // See https://github.com/google/error-prone/issues/1257 - options.errorprone.errorproneArgs=['-Xep:Finally:OFF'] - } + // The -Werror flag causes Intellij to fail on deprecated api use. + // Allow IDE user to turn off this flag by specifying a Gradle VM + // option from inside the IDE. + if (System.getProperty('no_werror') != 'true') { + options.compilerArgs << "-Werror" + } + if (name.equals('compileTestJava')) { + // Allow unused methods in tests. + options.errorprone.disable("UnusedMethod") + // Allow unused variables in tests. + options.errorprone.disable("UnusedVariable") + } + // Allow using non-constant strings in log. + options.errorprone.disable("FloggerLogString") + // Allow using @error in javadoc. + options.errorprone.disable("InvalidBlockTag") + // Allow creating format string as single-use variables. + options.errorprone.disable("InlineFormatString") + // TODO: enable this check once we fix all existing violations. + options.errorprone.disable("NullableOptional") + // Allow implicit cast from long to double. + options.errorprone.disable("LongDoubleConversion") + // Allow import of commonly-used names such as "Type". + options.errorprone.disable("BadImport") + // TODO: enable this once we are on Java 17 runtime. + options.errorprone.disable("InlineMeInliner") + options.errorprone.disableWarningsInGeneratedCode = true + options.errorprone.errorproneArgumentProviders.add([ + asArguments: { + return ['-XepExcludedPaths:.*/build/generated/.*'] + }] as CommandLineArgumentProvider) } compileJava { options.encoding = "UTF-8" } diff --git a/networking/gradle.lockfile b/networking/gradle.lockfile index b6dc9446b..20e0d54b5 100644 --- a/networking/gradle.lockfile +++ b/networking/gradle.lockfile @@ -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. +aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor com.fasterxml.jackson.core:jackson-annotations:2.10.3=testCompileClasspath,testRuntimeClasspath -com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor,errorprone,testAnnotationProcessor com.github.ben-manes.caffeine:caffeine:2.9.3=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor com.github.docker-java:docker-java-api:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport-zerodep:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport:3.3.4=testCompileClasspath,testRuntimeClasspath @@ -11,84 +12,84 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api-client:google-api-client:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-common-protos:2.29.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-iam-v1:1.24.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:api-common:2.21.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax-grpc:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax-httpjson:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-common-protos:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-iam-v1:1.18.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:api-common:2.15.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax-grpc:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax-httpjson:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.appengine:appengine-api-1.0-sdk:1.9.86=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.appengine:appengine-testing:1.9.86=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-credentials:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-oauth2-http:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.auth:google-auth-library-credentials:1.19.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.auth:google-auth-library-oauth2-http:1.19.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.10.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value:1.10.4=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor -com.google.cloud:google-cloud-tasks:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.cloud:google-cloud-tasks:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.10.1=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.dagger:dagger-compiler:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger-spi:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger:2.50=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.devtools.ksp:symbol-processing-api:1.9.20-1.0.14=annotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.3.4=errorprone -com.google.errorprone:error_prone_annotations:2.7.1=annotationProcessor,checkstyle,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_annotations:2.7.1=checkstyle +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:javac-shaded:9-dev-r4023-3=annotationProcessor,testAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.flogger:flogger-system-backend:0.8=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.flogger:flogger:0.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.googlejavaformat:google-java-format:1.5=annotationProcessor,testAnnotationProcessor com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:guava:27.0.1-jre=errorprone -com.google.guava:guava:31.0.1-jre=annotationProcessor,checkstyle,testAnnotationProcessor +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:guava:31.0.1-jre=checkstyle +com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:33.0.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-apache-v2:1.42.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.http-client:google-http-client-gson:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.http-client:google-http-client:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.j2objc:j2objc-annotations:1.1=errorprone -com.google.j2objc:j2objc-annotations:1.3=annotationProcessor,checkstyle,testAnnotationProcessor +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.j2objc:j2objc-annotations:1.3=checkstyle com.google.j2objc:j2objc-annotations:2.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.oauth-client:google-oauth-client:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java-util:3.25.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.25.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java-util:3.23.2=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java:3.23.2=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.re2j:re2j:1.7=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.truth:truth:1.2.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor com.ibm.icu:icu4j:74.2=deploy_jar,runtimeClasspath,testRuntimeClasspath com.puppycrawl.tools:checkstyle:9.3=checkstyle com.squareup:javapoet:1.13.0=annotationProcessor,testAnnotationProcessor com.squareup:kotlinpoet:1.11.0=annotationProcessor,testAnnotationProcessor commons-beanutils:commons-beanutils:1.9.4=checkstyle -commons-codec:commons-codec:1.16.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +commons-codec:commons-codec:1.15=deploy_jar,runtimeClasspath,testRuntimeClasspath commons-collections:commons-collections:3.2.2=checkstyle commons-logging:commons-logging:1.2=deploy_jar,runtimeClasspath,testRuntimeClasspath info.picocli:picocli:4.6.2=checkstyle -io.github.java-diff-utils:java-diff-utils:4.12=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-alts:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-api:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-auth:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-context:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-core:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-googleapis:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-grpclb:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-inprocess:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-netty-shaded:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-protobuf-lite:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-protobuf:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-services:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-stub:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-util:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-xds:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-alts:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-api:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-auth:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-context:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-core:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-googleapis:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-grpclb:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-netty-shaded:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-protobuf-lite:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-protobuf:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-services:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-stub:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-xds:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.netty:netty-buffer:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-codec-http:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-codec:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -105,7 +106,7 @@ io.perfmark:perfmark-api:0.26.0=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.activation:activation:1.1=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.activation:javax.activation-api:1.2.0=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.annotation:javax.annotation-api:1.3.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath javax.mail:mail:1.5.0-b01=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.xml.bind:jaxb-api:2.4.0-b180830.0359=deploy_jar,runtimeClasspath,testRuntimeClasspath joda-time:joda-time:2.12.6=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -123,13 +124,10 @@ org.bouncycastle:bcprov-jdk15on:1.67=compileClasspath,deploy_jar,runtimeClasspat org.checkerframework:checker-compat-qual:2.5.3=compileClasspath,testCompileClasspath org.checkerframework:checker-compat-qual:2.5.5=annotationProcessor,testAnnotationProcessor org.checkerframework:checker-compat-qual:2.5.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.checkerframework:checker-qual:3.0.0=errorprone -org.checkerframework:checker-qual:3.12.0=annotationProcessor,checkstyle,testAnnotationProcessor +org.checkerframework:checker-qual:3.12.0=checkstyle +org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.41.0=compileClasspath org.checkerframework:checker-qual:3.42.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=errorprone org.codehaus.mojo:animal-sniffer-annotations:1.23=deploy_jar,runtimeClasspath,testRuntimeClasspath org.conscrypt:conscrypt-openjdk-uber:2.5.2=deploy_jar,runtimeClasspath,testRuntimeClasspath org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath @@ -159,10 +157,7 @@ org.ow2.asm:asm-commons:9.5=jacocoAnt org.ow2.asm:asm-tree:9.5=jacocoAnt org.ow2.asm:asm:9.5=jacocoAnt org.ow2.asm:asm:9.6=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor org.reflections:reflections:0.10.2=checkstyle org.rnorth.duct-tape:duct-tape:1.0.8=testCompileClasspath,testRuntimeClasspath org.slf4j:slf4j-api:1.7.36=testCompileClasspath,testRuntimeClasspath @@ -170,4 +165,4 @@ org.testcontainers:junit-jupiter:1.19.3=testCompileClasspath,testRuntimeClasspat org.testcontainers:testcontainers:1.19.3=testCompileClasspath,testRuntimeClasspath org.threeten:threetenbp:1.6.8=deploy_jar,runtimeClasspath,testRuntimeClasspath org.yaml:snakeyaml:2.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -empty=errorproneJavac +empty= diff --git a/prober/gradle.lockfile b/prober/gradle.lockfile index 0707817b8..7a5305378 100644 --- a/prober/gradle.lockfile +++ b/prober/gradle.lockfile @@ -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. +aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor com.fasterxml.jackson.core:jackson-annotations:2.10.3=testCompileClasspath,testRuntimeClasspath -com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor,errorprone,testAnnotationProcessor com.github.ben-manes.caffeine:caffeine:2.9.3=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor com.github.docker-java:docker-java-api:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport-zerodep:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport:3.3.4=testCompileClasspath,testRuntimeClasspath @@ -11,87 +12,87 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api-client:google-api-client:1.35.2=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-common-protos:2.29.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-iam-v1:1.24.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:api-common:2.21.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax-grpc:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax-httpjson:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api:gax:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-common-protos:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-iam-v1:1.18.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:api-common:2.15.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax-grpc:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax-httpjson:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.appengine:appengine-api-1.0-sdk:1.9.86=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.appengine:appengine-testing:1.9.86=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-credentials:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-oauth2-http:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.auth:google-auth-library-credentials:1.19.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.auth:google-auth-library-oauth2-http:1.19.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.10.4=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value:1.10.4=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor -com.google.cloud:google-cloud-tasks:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.cloud:google-cloud-tasks:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.10.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.dagger:dagger-compiler:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger-spi:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger:2.50=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.devtools.ksp:symbol-processing-api:1.9.20-1.0.14=annotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.3.4=errorprone -com.google.errorprone:error_prone_annotations:2.7.1=annotationProcessor,checkstyle,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_annotations:2.7.1=checkstyle +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:javac-shaded:9-dev-r4023-3=annotationProcessor,testAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.flogger:flogger-system-backend:0.8=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.flogger:flogger:0.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.googlejavaformat:google-java-format:1.5=annotationProcessor,testAnnotationProcessor com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:guava:27.0.1-jre=errorprone -com.google.guava:guava:31.0.1-jre=annotationProcessor,checkstyle,testAnnotationProcessor +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:guava:31.0.1-jre=checkstyle +com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:33.0.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-apache-v2:1.42.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.http-client:google-http-client-gson:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.http-client:google-http-client:1.43.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.j2objc:j2objc-annotations:1.1=errorprone -com.google.j2objc:j2objc-annotations:1.3=annotationProcessor,checkstyle,testAnnotationProcessor +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.j2objc:j2objc-annotations:1.3=checkstyle com.google.j2objc:j2objc-annotations:2.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.monitoring-client:contrib:1.0.7=testCompileClasspath,testRuntimeClasspath com.google.monitoring-client:metrics:1.0.7=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.oauth-client:google-oauth-client:1.34.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java-util:3.25.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.25.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java-util:3.23.2=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java:3.23.2=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.re2j:re2j:1.1=compileClasspath,testCompileClasspath com.google.re2j:re2j:1.7=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.truth:truth:1.2.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor com.ibm.icu:icu4j:74.2=deploy_jar,runtimeClasspath,testRuntimeClasspath com.puppycrawl.tools:checkstyle:9.3=checkstyle com.squareup:javapoet:1.13.0=annotationProcessor,testAnnotationProcessor com.squareup:kotlinpoet:1.11.0=annotationProcessor,testAnnotationProcessor commons-beanutils:commons-beanutils:1.9.4=checkstyle -commons-codec:commons-codec:1.16.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +commons-codec:commons-codec:1.15=deploy_jar,runtimeClasspath,testRuntimeClasspath commons-collections:commons-collections:3.2.2=checkstyle commons-logging:commons-logging:1.2=deploy_jar,runtimeClasspath,testRuntimeClasspath info.picocli:picocli:4.6.2=checkstyle -io.github.java-diff-utils:java-diff-utils:4.12=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-alts:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-api:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-auth:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-context:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-core:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-googleapis:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-grpclb:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-inprocess:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-netty-shaded:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-protobuf-lite:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-protobuf:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-services:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-stub:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-util:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-xds:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-alts:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-api:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-auth:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-context:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-core:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-googleapis:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-grpclb:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-netty-shaded:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-protobuf-lite:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-protobuf:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-services:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-stub:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-xds:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.netty:netty-buffer:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-codec-http:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-codec:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -108,7 +109,7 @@ io.perfmark:perfmark-api:0.26.0=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.activation:activation:1.1=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.activation:javax.activation-api:1.2.0=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.annotation:javax.annotation-api:1.3.2=deploy_jar,runtimeClasspath,testRuntimeClasspath -javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath javax.mail:mail:1.5.0-b01=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.xml.bind:jaxb-api:2.4.0-b180830.0359=deploy_jar,runtimeClasspath,testRuntimeClasspath joda-time:joda-time:2.12.6=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -128,13 +129,10 @@ org.bouncycastle:bcprov-jdk15on:1.67=compileClasspath,deploy_jar,runtimeClasspat org.checkerframework:checker-compat-qual:2.5.3=compileClasspath,testCompileClasspath org.checkerframework:checker-compat-qual:2.5.5=annotationProcessor,testAnnotationProcessor org.checkerframework:checker-compat-qual:2.5.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.checkerframework:checker-qual:3.0.0=errorprone -org.checkerframework:checker-qual:3.12.0=annotationProcessor,checkstyle,testAnnotationProcessor +org.checkerframework:checker-qual:3.12.0=checkstyle +org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.41.0=compileClasspath org.checkerframework:checker-qual:3.42.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=errorprone org.codehaus.mojo:animal-sniffer-annotations:1.23=deploy_jar,runtimeClasspath,testRuntimeClasspath org.conscrypt:conscrypt-openjdk-uber:2.5.2=deploy_jar,runtimeClasspath,testRuntimeClasspath org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath @@ -166,10 +164,7 @@ org.ow2.asm:asm-commons:9.5=jacocoAnt org.ow2.asm:asm-tree:9.5=jacocoAnt org.ow2.asm:asm:9.5=jacocoAnt org.ow2.asm:asm:9.6=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor org.reflections:reflections:0.10.2=checkstyle org.rnorth.duct-tape:duct-tape:1.0.8=testCompileClasspath,testRuntimeClasspath org.slf4j:slf4j-api:1.7.36=testCompileClasspath,testRuntimeClasspath @@ -179,4 +174,4 @@ org.threeten:threetenbp:1.6.8=deploy_jar,runtimeClasspath,testRuntimeClasspath org.yaml:snakeyaml:2.2=deploy_jar,runtimeClasspath,testRuntimeClasspath xerces:xmlParserAPIs:2.6.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath xpp3:xpp3:1.1.4c=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -empty=errorproneJavac +empty= diff --git a/prober/src/main/java/google/registry/monitoring/blackbox/handler/WebWhoisActionHandler.java b/prober/src/main/java/google/registry/monitoring/blackbox/handler/WebWhoisActionHandler.java index 09240362d..fb1707550 100644 --- a/prober/src/main/java/google/registry/monitoring/blackbox/handler/WebWhoisActionHandler.java +++ b/prober/src/main/java/google/registry/monitoring/blackbox/handler/WebWhoisActionHandler.java @@ -87,7 +87,7 @@ public class WebWhoisActionHandler extends ActionHandler { if (response.status().equals(HttpResponseStatus.OK)) { logger.atInfo().log("Received Successful HttpResponseStatus"); - logger.atInfo().log("Response Received: " + response); + logger.atInfo().log("Response Received: %s", response); // On success, we always pass message to ActionHandler's channelRead0 method. super.channelRead0(ctx, msg); diff --git a/prober/src/test/java/google/registry/monitoring/blackbox/ProbingSequenceTest.java b/prober/src/test/java/google/registry/monitoring/blackbox/ProbingSequenceTest.java index cccf9127e..183f59f87 100644 --- a/prober/src/test/java/google/registry/monitoring/blackbox/ProbingSequenceTest.java +++ b/prober/src/test/java/google/registry/monitoring/blackbox/ProbingSequenceTest.java @@ -54,6 +54,7 @@ import org.mockito.Mockito; * UnrecoverableStateException}, using mocks of the steps or actions, as the sequences are run using * the main thread (with {@link EmbeddedChannel}). */ +@SuppressWarnings("DoNotMockAutoValue") class ProbingSequenceTest { private static final String PROTOCOL_NAME = "PROTOCOL"; diff --git a/prober/src/test/java/google/registry/monitoring/blackbox/testserver/TestServer.java b/prober/src/test/java/google/registry/monitoring/blackbox/testserver/TestServer.java index c2779daea..9bdc8b5e2 100644 --- a/prober/src/test/java/google/registry/monitoring/blackbox/testserver/TestServer.java +++ b/prober/src/test/java/google/registry/monitoring/blackbox/testserver/TestServer.java @@ -39,7 +39,6 @@ import io.netty.channel.nio.NioEventLoopGroup; import io.netty.handler.codec.http.HttpRequest; import io.netty.handler.codec.http.HttpResponse; import io.netty.handler.codec.http.HttpResponseStatus; -import org.w3c.dom.Document; /** * Mock Server Superclass whose subclasses implement specific behaviors we expect blackbox server to @@ -137,7 +136,6 @@ public class TestServer { private static class EppHandler extends ChannelDuplexHandler { - Document doc; private ChannelPromise future; @Override @@ -157,7 +155,7 @@ public class TestServer { // LengthFieldBasedFrameDecoder. try { - doc = EppMessage.byteArrayToXmlDoc(messageBytes); + EppMessage.byteArrayToXmlDoc(messageBytes); ChannelFuture unusedFuture = future.setSuccess(); } catch (FailureException e) { ChannelFuture unusedFuture = future.setFailure(e); diff --git a/processor/gradle.lockfile b/processor/gradle.lockfile index f22669232..dde246ad9 100644 --- a/processor/gradle.lockfile +++ b/processor/gradle.lockfile @@ -1,43 +1,45 @@ # 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.7.0=annotationProcessor,errorprone,testAnnotationProcessor +aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.errorprone:error_prone_annotations:2.7.1=checkstyle -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:guava:27.0.1-jre=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:31.0.1-jre=checkstyle +com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:33.0.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.j2objc:j2objc-annotations:1.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.j2objc:j2objc-annotations:1.3=checkstyle com.google.j2objc:j2objc-annotations:2.8=compileClasspath,testCompileClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor com.puppycrawl.tools:checkstyle:9.3=checkstyle com.squareup:javapoet:1.13.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath commons-beanutils:commons-beanutils:1.9.4=checkstyle commons-collections:commons-collections:3.2.2=checkstyle info.picocli:picocli:4.6.2=checkstyle +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,errorprone,testAnnotationProcessor +javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor javax.persistence:javax.persistence-api:2.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath net.sf.saxon:Saxon-HE:10.6=checkstyle org.antlr:antlr4-runtime:4.9.3=checkstyle -org.checkerframework:checker-qual:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.12.0=checkstyle +org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.41.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=annotationProcessor,errorprone,testAnnotationProcessor org.jacoco:org.jacoco.agent:0.8.9=jacocoAgent,jacocoAnt org.jacoco:org.jacoco.ant:0.8.9=jacocoAnt org.jacoco:org.jacoco.core:0.8.9=jacocoAnt @@ -46,9 +48,6 @@ org.javassist:javassist:3.28.0-GA=checkstyle org.ow2.asm:asm-commons:9.5=jacocoAnt org.ow2.asm:asm-tree:9.5=jacocoAnt org.ow2.asm:asm:9.5=jacocoAnt -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor org.reflections:reflections:0.10.2=checkstyle -empty=errorproneJavac +empty= diff --git a/processor/src/main/java/google/registry/processors/VKeyProcessor.java b/processor/src/main/java/google/registry/processors/VKeyProcessor.java index 47818742a..8b9da6d03 100644 --- a/processor/src/main/java/google/registry/processors/VKeyProcessor.java +++ b/processor/src/main/java/google/registry/processors/VKeyProcessor.java @@ -78,7 +78,7 @@ public class VKeyProcessor extends AbstractProcessor { .collect(toImmutableList()); checkState( actualAnnotations.size() == 1, - "% can have only one @WithVKey annotation", + "%s can have only one @WithVKey annotation", simpleTypeName); TypeName keyType = null; for (Map.Entry entry : diff --git a/proxy/gradle.lockfile b/proxy/gradle.lockfile index 2afe35db7..47bbf3fea 100644 --- a/proxy/gradle.lockfile +++ b/proxy/gradle.lockfile @@ -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. +aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor com.beust:jcommander:1.60=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-annotations:2.14.2=testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-core:2.14.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson:jackson-bom:2.14.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor,errorprone,testAnnotationProcessor com.github.ben-manes.caffeine:caffeine:2.9.3=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor com.github.docker-java:docker-java-api:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport-zerodep:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport:3.3.4=testCompileClasspath,testRuntimeClasspath @@ -17,118 +18,113 @@ com.google.api.grpc:gapic-google-cloud-storage-v2:2.22.6-alpha=compileClasspath, com.google.api.grpc:grpc-google-cloud-storage-v2:2.22.6-alpha=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-storage-v2:2.22.6-alpha=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-common-protos:2.22.0=compileClasspath,testCompileClasspath -com.google.api.grpc:proto-google-common-protos:2.29.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-common-protos:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-iam-v1:1.17.0=compileClasspath,testCompileClasspath -com.google.api.grpc:proto-google-iam-v1:1.24.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-iam-v1:1.18.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api:api-common:2.14.0=compileClasspath,testCompileClasspath -com.google.api:api-common:2.21.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:api-common:2.15.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api:gax-grpc:2.31.0=compileClasspath,testCompileClasspath -com.google.api:gax-grpc:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax-grpc:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api:gax-httpjson:2.31.0=compileClasspath,testCompileClasspath -com.google.api:gax-httpjson:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax-httpjson:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api:gax:2.31.0=compileClasspath,testCompileClasspath -com.google.api:gax:2.38.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.api:gax:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.apis:google-api-services-cloudkms:v1-rev20231212-2.0.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.apis:google-api-services-monitoring:v3-rev20231215-2.0.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.apis:google-api-services-storage:v1-rev20230301-2.0.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.appengine:appengine-api-1.0-sdk:1.9.86=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.appengine:appengine-testing:1.9.86=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-credentials:1.19.0=compileClasspath,testCompileClasspath -com.google.auth:google-auth-library-credentials:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-oauth2-http:1.19.0=compileClasspath,testCompileClasspath -com.google.auth:google-auth-library-oauth2-http:1.20.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +com.google.auth:google-auth-library-credentials:1.19.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auth:google-auth-library-oauth2-http:1.19.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.10.1=compileClasspath com.google.auto.value:auto-value-annotations:1.10.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value:1.10.4=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.cloud:google-cloud-core-grpc:2.21.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-core-http:2.21.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-core:2.21.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.22.6=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-tasks:2.32.0=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.cloud:google-cloud-tasks:2.23.0=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.10.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.dagger:dagger-compiler:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger-spi:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger:2.50=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.devtools.ksp:symbol-processing-api:1.9.20-1.0.14=annotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.3.4=errorprone -com.google.errorprone:error_prone_annotations:2.7.1=annotationProcessor,checkstyle,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_annotations:2.7.1=checkstyle +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:javac-shaded:9-dev-r4023-3=annotationProcessor,testAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.flogger:flogger-system-backend:0.8=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.flogger:flogger:0.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.googlejavaformat:google-java-format:1.5=annotationProcessor,testAnnotationProcessor com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:guava:27.0.1-jre=errorprone -com.google.guava:guava:31.0.1-jre=annotationProcessor,checkstyle,testAnnotationProcessor +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:guava:31.0.1-jre=checkstyle +com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:33.0.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-apache-v2:1.43.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-appengine:1.43.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-gson:1.43.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-jackson2:1.43.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client:1.43.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.j2objc:j2objc-annotations:1.1=errorprone -com.google.j2objc:j2objc-annotations:1.3=annotationProcessor,checkstyle,testAnnotationProcessor +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.j2objc:j2objc-annotations:1.3=checkstyle com.google.j2objc:j2objc-annotations:2.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.monitoring-client:contrib:1.0.7=testCompileClasspath,testRuntimeClasspath com.google.monitoring-client:metrics:1.0.7=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.monitoring-client:stackdriver:1.0.7=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.oauth-client:google-oauth-client:1.34.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java-util:3.23.2=compileClasspath,testCompileClasspath -com.google.protobuf:protobuf-java-util:3.25.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.23.2=compileClasspath,testCompileClasspath -com.google.protobuf:protobuf-java:3.25.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java-util:3.23.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java:3.23.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.re2j:re2j:1.1=compileClasspath,testCompileClasspath com.google.re2j:re2j:1.7=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.truth:truth:1.2.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor com.ibm.icu:icu4j:74.2=deploy_jar,runtimeClasspath,testRuntimeClasspath com.puppycrawl.tools:checkstyle:9.3=checkstyle com.squareup:javapoet:1.13.0=annotationProcessor,testAnnotationProcessor com.squareup:kotlinpoet:1.11.0=annotationProcessor,testAnnotationProcessor commons-beanutils:commons-beanutils:1.9.4=checkstyle -commons-codec:commons-codec:1.15=compileClasspath,testCompileClasspath -commons-codec:commons-codec:1.16.0=deploy_jar,runtimeClasspath,testRuntimeClasspath +commons-codec:commons-codec:1.15=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath commons-collections:commons-collections:3.2.2=checkstyle commons-logging:commons-logging:1.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath info.picocli:picocli:4.6.2=checkstyle -io.github.java-diff-utils:java-diff-utils:4.12=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath io.grpc:grpc-alts:1.55.3=compileClasspath,testCompileClasspath -io.grpc:grpc-alts:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-alts:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.grpc:grpc-api:1.55.3=compileClasspath,testCompileClasspath -io.grpc:grpc-api:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-api:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.grpc:grpc-auth:1.55.3=compileClasspath,testCompileClasspath -io.grpc:grpc-auth:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-auth:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.grpc:grpc-context:1.55.3=compileClasspath,testCompileClasspath -io.grpc:grpc-context:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-core:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-googleapis:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-context:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-core:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-googleapis:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.grpc:grpc-grpclb:1.55.3=compileClasspath,testCompileClasspath -io.grpc:grpc-grpclb:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-inprocess:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-netty-shaded:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-grpclb:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-netty-shaded:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.grpc:grpc-protobuf-lite:1.55.3=compileClasspath,testCompileClasspath -io.grpc:grpc-protobuf-lite:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-protobuf-lite:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.grpc:grpc-protobuf:1.55.3=compileClasspath,testCompileClasspath -io.grpc:grpc-protobuf:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-protobuf:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.grpc:grpc-rls:1.55.3=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-services:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-services:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.grpc:grpc-stub:1.55.3=compileClasspath,testCompileClasspath -io.grpc:grpc-stub:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-util:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-xds:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-stub:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-xds:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.netty:netty-buffer:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-codec-http:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.netty:netty-codec:4.1.59.Final=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -145,7 +141,7 @@ io.perfmark:perfmark-api:0.26.0=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.activation:activation:1.1=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.activation:javax.activation-api:1.2.0=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.annotation:javax.annotation-api:1.3.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath javax.mail:mail:1.5.0-b01=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.xml.bind:jaxb-api:2.4.0-b180830.0359=deploy_jar,runtimeClasspath,testRuntimeClasspath joda-time:joda-time:2.12.6=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -165,13 +161,10 @@ org.bouncycastle:bcprov-jdk15on:1.67=compileClasspath,deploy_jar,runtimeClasspat org.checkerframework:checker-compat-qual:2.5.3=compileClasspath,testCompileClasspath org.checkerframework:checker-compat-qual:2.5.5=annotationProcessor,testAnnotationProcessor org.checkerframework:checker-compat-qual:2.5.6=deploy_jar,runtimeClasspath,testRuntimeClasspath -org.checkerframework:checker-qual:3.0.0=errorprone -org.checkerframework:checker-qual:3.12.0=annotationProcessor,checkstyle,testAnnotationProcessor +org.checkerframework:checker-qual:3.12.0=checkstyle +org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.41.0=compileClasspath org.checkerframework:checker-qual:3.42.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=errorprone org.codehaus.mojo:animal-sniffer-annotations:1.23=deploy_jar,runtimeClasspath,testRuntimeClasspath org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.hamcrest:hamcrest-core:1.3=testCompileClasspath,testRuntimeClasspath @@ -203,10 +196,7 @@ org.ow2.asm:asm-commons:9.5=jacocoAnt org.ow2.asm:asm-tree:9.5=jacocoAnt org.ow2.asm:asm:9.5=jacocoAnt org.ow2.asm:asm:9.6=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor org.reflections:reflections:0.10.2=checkstyle org.rnorth.duct-tape:duct-tape:1.0.8=testCompileClasspath,testRuntimeClasspath org.slf4j:slf4j-api:1.7.36=testCompileClasspath,testRuntimeClasspath @@ -214,4 +204,4 @@ org.testcontainers:junit-jupiter:1.19.3=testCompileClasspath,testRuntimeClasspat org.testcontainers:testcontainers:1.19.3=testCompileClasspath,testRuntimeClasspath org.threeten:threetenbp:1.6.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.yaml:snakeyaml:2.2=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -empty=errorproneJavac +empty= diff --git a/services/backend/gradle.lockfile b/services/backend/gradle.lockfile index 1bcc7e0d2..2077e9a9b 100644 --- a/services/backend/gradle.lockfile +++ b/services/backend/gradle.lockfile @@ -63,8 +63,8 @@ com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.55.0=compileC com.google.api.grpc:proto-google-cloud-spanner-v1:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-storage-v2:2.23.0-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-common-protos:2.29.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-iam-v1:1.24.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api:api-common:2.21.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -114,7 +114,7 @@ com.google.cloud:google-cloud-pubsublite:1.12.19=compileClasspath,runtimeClasspa com.google.cloud:google-cloud-secretmanager:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-spanner:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.22.6=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-tasks:2.32.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.cloud:google-cloud-tasks:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:grpc-gcp:1.5.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.15.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/services/bsa/gradle.lockfile b/services/bsa/gradle.lockfile index 1bcc7e0d2..2077e9a9b 100644 --- a/services/bsa/gradle.lockfile +++ b/services/bsa/gradle.lockfile @@ -63,8 +63,8 @@ com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.55.0=compileC com.google.api.grpc:proto-google-cloud-spanner-v1:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-storage-v2:2.23.0-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-common-protos:2.29.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-iam-v1:1.24.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api:api-common:2.21.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -114,7 +114,7 @@ com.google.cloud:google-cloud-pubsublite:1.12.19=compileClasspath,runtimeClasspa com.google.cloud:google-cloud-secretmanager:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-spanner:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.22.6=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-tasks:2.32.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.cloud:google-cloud-tasks:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:grpc-gcp:1.5.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.15.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/services/default/gradle.lockfile b/services/default/gradle.lockfile index 1bcc7e0d2..2077e9a9b 100644 --- a/services/default/gradle.lockfile +++ b/services/default/gradle.lockfile @@ -63,8 +63,8 @@ com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.55.0=compileC com.google.api.grpc:proto-google-cloud-spanner-v1:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-storage-v2:2.23.0-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-common-protos:2.29.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-iam-v1:1.24.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api:api-common:2.21.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -114,7 +114,7 @@ com.google.cloud:google-cloud-pubsublite:1.12.19=compileClasspath,runtimeClasspa com.google.cloud:google-cloud-secretmanager:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-spanner:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.22.6=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-tasks:2.32.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.cloud:google-cloud-tasks:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:grpc-gcp:1.5.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.15.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/services/pubapi/gradle.lockfile b/services/pubapi/gradle.lockfile index 1bcc7e0d2..2077e9a9b 100644 --- a/services/pubapi/gradle.lockfile +++ b/services/pubapi/gradle.lockfile @@ -63,8 +63,8 @@ com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.55.0=compileC com.google.api.grpc:proto-google-cloud-spanner-v1:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-storage-v2:2.23.0-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-common-protos:2.29.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-iam-v1:1.24.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api:api-common:2.21.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -114,7 +114,7 @@ com.google.cloud:google-cloud-pubsublite:1.12.19=compileClasspath,runtimeClasspa com.google.cloud:google-cloud-secretmanager:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-spanner:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.22.6=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-tasks:2.32.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.cloud:google-cloud-tasks:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:grpc-gcp:1.5.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.15.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/services/tools/gradle.lockfile b/services/tools/gradle.lockfile index 1bcc7e0d2..2077e9a9b 100644 --- a/services/tools/gradle.lockfile +++ b/services/tools/gradle.lockfile @@ -63,8 +63,8 @@ com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:6.55.0=compileC com.google.api.grpc:proto-google-cloud-spanner-v1:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-storage-v2:2.23.0-alpha=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-common-protos:2.29.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-iam-v1:1.24.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api:api-common:2.21.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -114,7 +114,7 @@ com.google.cloud:google-cloud-pubsublite:1.12.19=compileClasspath,runtimeClasspa com.google.cloud:google-cloud-secretmanager:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-spanner:6.55.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.22.6=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.cloud:google-cloud-tasks:2.32.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.cloud:google-cloud-tasks:2.23.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:grpc-gcp:1.5.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.cloud:proto-google-cloud-firestore-bundle-v1:3.15.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath diff --git a/settings.gradle b/settings.gradle index 308241f90..f0f0b72f7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -34,7 +34,6 @@ rootProject.name = 'nomulus' include 'common' include 'core' include 'db' -include 'docs' include 'integration' include 'networking' include 'processor' @@ -46,5 +45,4 @@ include 'services:backend' include 'services:bsa' include 'services:tools' include 'services:pubapi' -include 'java8compatibility' include "console-webapp" diff --git a/util/gradle.lockfile b/util/gradle.lockfile index 0d0adc938..e891a888f 100644 --- a/util/gradle.lockfile +++ b/util/gradle.lockfile @@ -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. +aopalliance:aopalliance:1.0=annotationProcessor,errorprone,testAnnotationProcessor com.fasterxml.jackson.core:jackson-annotations:2.10.3=testCompileClasspath,testRuntimeClasspath -com.github.ben-manes.caffeine:caffeine:2.7.0=annotationProcessor,errorprone,testAnnotationProcessor com.github.ben-manes.caffeine:caffeine:2.9.3=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.github.ben-manes.caffeine:caffeine:3.0.5=annotationProcessor,errorprone,testAnnotationProcessor com.github.docker-java:docker-java-api:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport-zerodep:3.3.4=testCompileClasspath,testRuntimeClasspath com.github.docker-java:docker-java-transport:3.3.4=testCompileClasspath,testRuntimeClasspath @@ -11,87 +12,88 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.android:annotations:4.1.1.4=deploy_jar,runtimeClasspath,testRuntimeClasspath com.google.api-client:google-api-client:1.35.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.api.grpc:proto-google-cloud-tasks-v2:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.122.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.122.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-common-protos:2.29.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api.grpc:proto-google-iam-v1:1.24.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api:api-common:2.21.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api:gax-grpc:2.38.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api:gax-httpjson:2.38.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.api:gax:2.38.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta2:0.113.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-cloud-tasks-v2beta3:0.113.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-common-protos:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api.grpc:proto-google-iam-v1:1.18.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api:api-common:2.15.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api:gax-grpc:2.32.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api:gax-httpjson:2.32.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.api:gax:2.32.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.appengine:appengine-api-1.0-sdk:1.9.86=compileClasspath,deploy_jar,runtimeClasspath com.google.appengine:appengine-api-1.0-sdk:2.0.24=testCompileClasspath,testRuntimeClasspath com.google.appengine:appengine-api-stubs:2.0.24=testCompileClasspath,testRuntimeClasspath com.google.appengine:appengine-testing:1.9.86=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-credentials:1.20.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.auth:google-auth-library-oauth2-http:1.20.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.auto.value:auto-value-annotations:1.10.4=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auth:google-auth-library-credentials:1.19.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auth:google-auth-library-oauth2-http:1.19.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto.value:auto-value-annotations:1.10.2=compileClasspath +com.google.auto.value:auto-value-annotations:1.10.4=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.auto.value:auto-value-annotations:1.9=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value:1.10.4=annotationProcessor,deploy_jar,runtimeClasspath,testAnnotationProcessor,testRuntimeClasspath -com.google.auto:auto-common:0.10=annotationProcessor,errorprone,testAnnotationProcessor -com.google.cloud:google-cloud-tasks:2.32.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.code.findbugs:jFormatString:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto:auto-common:1.2.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.cloud:google-cloud-tasks:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.code.findbugs:jsr305:3.0.2=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.10.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.dagger:dagger-compiler:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger-spi:2.50=annotationProcessor,testAnnotationProcessor com.google.dagger:dagger:2.50=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.devtools.ksp:symbol-processing-api:1.9.20-1.0.14=annotationProcessor,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.23.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.3.4=errorprone -com.google.errorprone:error_prone_annotations:2.7.1=annotationProcessor,checkstyle,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_type_annotations:2.3.4=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.23.0=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_annotations:2.7.1=checkstyle +com.google.errorprone:error_prone_check_api:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_type_annotations:2.23.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:javac-shaded:9-dev-r4023-3=annotationProcessor,testAnnotationProcessor +com.google.errorprone:javac:9+181-r4173-1=errorproneJavac com.google.flogger:flogger-system-backend:0.8=testRuntimeClasspath com.google.flogger:flogger:0.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.googlejavaformat:google-java-format:1.5=annotationProcessor,testAnnotationProcessor com.google.guava:failureaccess:1.0.1=annotationProcessor,checkstyle,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.guava:guava-parent:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava-testlib:33.0.0-jre=testCompileClasspath,testRuntimeClasspath -com.google.guava:guava:27.0.1-jre=errorprone -com.google.guava:guava:31.0.1-jre=annotationProcessor,checkstyle,testAnnotationProcessor +com.google.guava:guava:31.0.1-jre=checkstyle +com.google.guava:guava:32.1.1-jre=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:guava:33.0.0-jre=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,checkstyle,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=checkstyle,compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-apache-v2:1.42.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client-gson:1.43.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.http-client:google-http-client:1.43.3=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.j2objc:j2objc-annotations:1.1=errorprone -com.google.j2objc:j2objc-annotations:1.3=annotationProcessor,checkstyle,testAnnotationProcessor +com.google.inject:guice:5.1.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.j2objc:j2objc-annotations:1.3=checkstyle com.google.j2objc:j2objc-annotations:2.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.oauth-client:google-oauth-client:1.34.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java-util:3.25.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.25.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.protobuf:protobuf-java:3.4.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java-util:3.23.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.google.protobuf:protobuf-java:3.19.6=annotationProcessor,errorprone,testAnnotationProcessor +com.google.protobuf:protobuf-java:3.23.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.re2j:re2j:1.7=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.google.truth:truth:1.2.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.googlecode.java-diff-utils:diffutils:1.3.0=annotationProcessor,errorprone,testAnnotationProcessor com.ibm.icu:icu4j:74.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.puppycrawl.tools:checkstyle:9.3=checkstyle com.squareup:javapoet:1.13.0=annotationProcessor,testAnnotationProcessor com.squareup:kotlinpoet:1.11.0=annotationProcessor,testAnnotationProcessor commons-beanutils:commons-beanutils:1.9.4=checkstyle -commons-codec:commons-codec:1.16.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +commons-codec:commons-codec:1.15=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath commons-collections:commons-collections:3.2.2=checkstyle commons-logging:commons-logging:1.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath info.picocli:picocli:4.6.2=checkstyle -io.github.java-diff-utils:java-diff-utils:4.12=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-alts:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-api:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-auth:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-context:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-core:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-googleapis:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-grpclb:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-inprocess:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-netty-shaded:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-protobuf-lite:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-protobuf:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-services:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-stub:1.59.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -io.grpc:grpc-util:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath -io.grpc:grpc-xds:1.59.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.github.eisop:dataflow-errorprone:3.34.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-alts:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-api:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-auth:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-context:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-core:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-googleapis:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-grpclb:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-netty-shaded:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-protobuf-lite:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-protobuf:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-services:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath +io.grpc:grpc-stub:1.56.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +io.grpc:grpc-xds:1.56.1=deploy_jar,runtimeClasspath,testRuntimeClasspath io.opencensus:opencensus-api:0.31.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.opencensus:opencensus-contrib-http-util:0.31.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.opencensus:opencensus-proto:0.2.0=deploy_jar,runtimeClasspath,testRuntimeClasspath @@ -99,7 +101,7 @@ io.perfmark:perfmark-api:0.26.0=deploy_jar,runtimeClasspath,testRuntimeClasspath javax.activation:activation:1.1=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath javax.activation:javax.activation-api:1.2.0=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath javax.annotation:javax.annotation-api:1.3.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=annotationProcessor,compileClasspath,deploy_jar,errorprone,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath javax.mail:mail:1.5.0-b01=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath javax.xml.bind:jaxb-api:2.4.0-b180830.0359=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath joda-time:joda-time:2.12.6=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath @@ -118,13 +120,10 @@ org.bouncycastle:bcpkix-jdk15on:1.67=compileClasspath,deploy_jar,runtimeClasspat org.bouncycastle:bcprov-jdk15on:1.67=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.checkerframework:checker-compat-qual:2.5.5=annotationProcessor,testAnnotationProcessor org.checkerframework:checker-compat-qual:2.5.6=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.checkerframework:checker-qual:3.0.0=errorprone -org.checkerframework:checker-qual:3.12.0=annotationProcessor,checkstyle,testAnnotationProcessor +org.checkerframework:checker-qual:3.12.0=checkstyle +org.checkerframework:checker-qual:3.33.0=annotationProcessor,errorprone,testAnnotationProcessor org.checkerframework:checker-qual:3.41.0=compileClasspath org.checkerframework:checker-qual:3.42.0=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.checkerframework:dataflow:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.checkerframework:javacutil:3.0.0=annotationProcessor,errorprone,testAnnotationProcessor -org.codehaus.mojo:animal-sniffer-annotations:1.17=errorprone org.codehaus.mojo:animal-sniffer-annotations:1.23=deploy_jar,runtimeClasspath,testRuntimeClasspath org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.hamcrest:hamcrest-core:2.2=testCompileClasspath,testRuntimeClasspath @@ -157,10 +156,7 @@ org.ow2.asm:asm-commons:9.5=jacocoAnt org.ow2.asm:asm-tree:9.5=jacocoAnt org.ow2.asm:asm:9.5=jacocoAnt org.ow2.asm:asm:9.6=deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.pcollections:pcollections:2.1.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:plume-util:1.0.6=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:reflection-util:0.0.2=annotationProcessor,errorprone,testAnnotationProcessor -org.plumelib:require-javadoc:0.1.0=annotationProcessor,errorprone,testAnnotationProcessor +org.pcollections:pcollections:3.1.4=annotationProcessor,errorprone,testAnnotationProcessor org.reflections:reflections:0.10.2=checkstyle org.rnorth.duct-tape:duct-tape:1.0.8=testCompileClasspath,testRuntimeClasspath org.slf4j:slf4j-api:1.7.36=testCompileClasspath,testRuntimeClasspath @@ -168,4 +164,4 @@ org.testcontainers:junit-jupiter:1.19.3=testCompileClasspath,testRuntimeClasspat org.testcontainers:testcontainers:1.19.3=testCompileClasspath,testRuntimeClasspath org.threeten:threetenbp:1.6.8=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.yaml:snakeyaml:2.2=compileClasspath,deploy_jar,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -empty=errorproneJavac +empty= diff --git a/util/src/main/java/google/registry/util/CidrAddressBlock.java b/util/src/main/java/google/registry/util/CidrAddressBlock.java index d46e37122..f0d5ad4df 100644 --- a/util/src/main/java/google/registry/util/CidrAddressBlock.java +++ b/util/src/main/java/google/registry/util/CidrAddressBlock.java @@ -292,18 +292,17 @@ public class CidrAddressBlock implements Iterable, Serializable { } /** - * @return the standard {@code String} representation of the IP portion - * of this CIDR block (a.b.c.d, or a:b:c::d) + * Returns the standard {@code String} representation of the IP portion of this CIDR block + * (a.b.c.d, or a:b:c::d) * - *

        NOTE: This is not reliable for comparison operations. It is - * more reliable to normalize strings into {@link InetAddress}s and - * then compare. + *

        NOTE: This is not reliable for comparison operations. It is more reliable to normalize + * strings into {@link InetAddress}s and then compare. * *

        Consider: + * *

          - *
        • {@code "10.11.12.0"} is equivalent to {@code "10.11.12.000"} - *
        • {@code "2001:db8::"} is equivalent to - * {@code "2001:0DB8:0000:0000:0000:0000:0000:0000"} + *
        • {@code "10.11.12.0"} is equivalent to {@code "10.11.12.000"} + *
        • {@code "2001:db8::"} is equivalent to {@code "2001:0DB8:0000:0000:0000:0000:0000:0000"} *
        */ public String getIp() { diff --git a/util/src/main/java/google/registry/util/PosixTarHeader.java b/util/src/main/java/google/registry/util/PosixTarHeader.java index 510052317..28be62457 100644 --- a/util/src/main/java/google/registry/util/PosixTarHeader.java +++ b/util/src/main/java/google/registry/util/PosixTarHeader.java @@ -172,6 +172,7 @@ public final class PosixTarHeader { } /** Returns the modified time as a UTC {@link DateTime} object. */ + @SuppressWarnings("JodaDateTimeConstants") public DateTime getMtime() { return new DateTime(Long.parseLong(extractField(136, 12).trim(), 8) * MILLIS_PER_SECOND, UTC); } @@ -332,7 +333,7 @@ public final class PosixTarHeader { setMode(DEFAULT_MODE); setUid(DEFAULT_UID); setGid(DEFAULT_GID); - setMtime(new DateTime(UTC)); + setMtime(DateTime.now(UTC)); setType(DEFAULT_TYPE); setMagic(); setVersion(); @@ -417,6 +418,7 @@ public final class PosixTarHeader { * epoch in UTC time. Because {@link DateTime} has millisecond precision, it gets rounded down * (floor) to the second. */ + @SuppressWarnings("JodaDateTimeConstants") public Builder setMtime(DateTime mtime) { checkNotNull(mtime, "mtime"); setField("mtime", 136, 12, String.format("%011o", mtime.getMillis() / MILLIS_PER_SECOND)); diff --git a/util/src/main/java/google/registry/util/Retrier.java b/util/src/main/java/google/registry/util/Retrier.java index 8bf4a2fef..1a32458d1 100644 --- a/util/src/main/java/google/registry/util/Retrier.java +++ b/util/src/main/java/google/registry/util/Retrier.java @@ -159,7 +159,7 @@ public class Retrier implements Serializable { failureReporter.beforeRetry(e, failures, attempts); try { // Wait 100ms on the first attempt, doubling on each subsequent attempt. - sleeper.sleep(Duration.millis(pow(2, failures) * 100)); + sleeper.sleep(Duration.millis(pow(2, failures) * 100L)); } catch (InterruptedException e2) { // Since we're not rethrowing InterruptedException, set the interrupt state on the thread // so the next blocking operation will know to abort the thread. diff --git a/util/src/main/java/google/registry/util/SendEmailService.java b/util/src/main/java/google/registry/util/SendEmailService.java index 7479d630d..faada1099 100644 --- a/util/src/main/java/google/registry/util/SendEmailService.java +++ b/util/src/main/java/google/registry/util/SendEmailService.java @@ -66,14 +66,13 @@ public class SendEmailService { if (!ALLOWED_ENVS.contains( Ascii.toUpperCase(System.getProperty("google.registry.environment", "UNITTEST")))) { logger.atInfo().log( - String.format( - "Email with subject %s would have been sent to recipients %s", - emailMessage.subject().substring(0, Math.min(emailMessage.subject().length(), 15)), - String.join( - " , ", - emailMessage.recipients().stream() - .map(ia -> ia.toString()) - .collect(toImmutableSet())))); + "Email with subject %s would have been sent to recipients %s", + emailMessage.subject().substring(0, Math.min(emailMessage.subject().length(), 15)), + String.join( + " , ", + emailMessage.recipients().stream() + .map(ia -> ia.toString()) + .collect(toImmutableSet()))); } else { retrier.callWithRetry( () -> { diff --git a/util/src/main/java/google/registry/util/X509Utils.java b/util/src/main/java/google/registry/util/X509Utils.java index 7304b4f9c..da9cc4f3e 100644 --- a/util/src/main/java/google/registry/util/X509Utils.java +++ b/util/src/main/java/google/registry/util/X509Utils.java @@ -46,6 +46,7 @@ import java.util.NoSuchElementException; import java.util.Optional; import javax.annotation.Nullable; import javax.annotation.Tainted; +import org.joda.time.DateTimeComparator; /** X.509 Public Key Infrastructure (PKI) helper functions. */ public final class X509Utils { @@ -169,12 +170,15 @@ public final class X509Utils { public static void verifyCrl( X509Certificate rootCert, @Nullable X509CRL oldCrl, @Tainted X509CRL newCrl, Date now) throws GeneralSecurityException { - if (oldCrl != null && newCrl.getThisUpdate().before(oldCrl.getThisUpdate())) { - throw new CRLException(String.format( - "New CRL is more out of date than our current CRL. %s < %s\n%s", - newCrl.getThisUpdate(), oldCrl.getThisUpdate(), newCrl)); + if (oldCrl != null + && DateTimeComparator.getInstance().compare(newCrl.getThisUpdate(), oldCrl.getThisUpdate()) + < 0) { + throw new CRLException( + String.format( + "New CRL is more out of date than our current CRL. %s < %s\n%s", + newCrl.getThisUpdate(), oldCrl.getThisUpdate(), newCrl)); } - if (newCrl.getNextUpdate().before(now)) { + if (DateTimeComparator.getInstance().compare(newCrl.getNextUpdate(), now) < 0) { throw new CRLException("CRL has expired.\n" + newCrl); } newCrl.verify(rootCert.getPublicKey()); diff --git a/util/src/main/java/google/registry/util/YamlUtils.java b/util/src/main/java/google/registry/util/YamlUtils.java index 1fdb18901..137032d15 100644 --- a/util/src/main/java/google/registry/util/YamlUtils.java +++ b/util/src/main/java/google/registry/util/YamlUtils.java @@ -86,7 +86,8 @@ public final class YamlUtils { @SuppressWarnings("unchecked") private static Map mergeMaps( Map defaultMap, Map customMap) { - for (String key : defaultMap.keySet()) { + for (Map.Entry e : defaultMap.entrySet()) { + String key = e.getKey(); if (!customMap.containsKey(key)) { continue; } @@ -99,7 +100,7 @@ public final class YamlUtils { } else { newValue = customMap.get(key); } - defaultMap.put(key, newValue); + e.setValue(newValue); } return defaultMap; } diff --git a/util/src/test/java/google/registry/util/PasswordUtilsTest.java b/util/src/test/java/google/registry/util/PasswordUtilsTest.java index 994c3ff3e..80cad0f42 100644 --- a/util/src/test/java/google/registry/util/PasswordUtilsTest.java +++ b/util/src/test/java/google/registry/util/PasswordUtilsTest.java @@ -72,7 +72,7 @@ final class PasswordUtilsTest { byte[] salt = SALT_SUPPLIER.get(); String password = "mySuperSecurePassword"; String hashedPassword = hashPassword(password, salt); - assertThat(verifyPassword(password + "a", hashedPassword, base64().encode(salt)).isEmpty()) - .isTrue(); + assertThat(verifyPassword(password + "a", hashedPassword, base64().encode(salt)).isPresent()) + .isFalse(); } } diff --git a/util/src/test/java/google/registry/util/TeeOutputStreamTest.java b/util/src/test/java/google/registry/util/TeeOutputStreamTest.java index b813b0778..8592a2487 100644 --- a/util/src/test/java/google/registry/util/TeeOutputStreamTest.java +++ b/util/src/test/java/google/registry/util/TeeOutputStreamTest.java @@ -45,9 +45,10 @@ class TeeOutputStreamTest { outputB.write("b".getBytes(UTF_8)); outputC.write("c".getBytes(UTF_8)); // Check the results. - assertThat(outputA.toString()).isEqualTo("hello world!a"); - assertThat(outputB.toString()).isEqualTo("hello world!b"); - assertThat(outputC.toString()).isEqualTo("hello world!c"); + // TODO: Use toString(StandardCharsets.UTF_8) once we can use Java 17. + assertThat(outputA.toString("UTF-8")).isEqualTo("hello world!a"); + assertThat(outputB.toString("UTF-8")).isEqualTo("hello world!b"); + assertThat(outputC.toString("UTF-8")).isEqualTo("hello world!c"); } @Test