diff --git a/.github/release-please.yml b/.github/release-please.yml index 801cc7dbee..c012756657 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -11,4 +11,8 @@ branches: - bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi - branch: java7 \ No newline at end of file + branch: java7 + - releaseType: java-backport + bumpMinorPreMajor: true + handleGHRelease: true + branch: 2.6.x diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index fe40949d37..f77ddd5c2e 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -2,15 +2,13 @@ rebaseMergeAllowed: false squashMergeAllowed: true mergeCommitAllowed: false branchProtectionRules: - - pattern: master + - pattern: main isAdminEnforced: true requiredApprovingReviewCount: 1 requiresCodeOwnerReviews: true requiresStrictStatusChecks: true requiredStatusCheckContexts: - bazel - - linkage-monitor (8) - - linkage-monitor (11) - units (8) - units (11) - cla/google @@ -53,6 +51,16 @@ branchProtectionRules: - units (8) - units (11) - cla/google + - pattern: 2.6.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: true + requiredStatusCheckContexts: + - bazel + - units (8) + - units (11) + - cla/google permissionRules: - team: yoshi-admins permission: admin diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6eca9e0e51..99705fa63d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,7 +1,7 @@ on: push: branches: - - master + - main pull_request: name: ci jobs: @@ -61,23 +61,3 @@ jobs: name: test-artifacts path: ~/.cache/bazel/*/*/*/gax-java/bazel-out/*/testlogs/* retention-days: 5 - - linkage-monitor: - runs-on: ubuntu-latest - strategy: - matrix: - java: [8, 11] - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v1 - with: - java-version: ${{ matrix.java }} - - run: java -version - - name: Build and install local Maven repository - run: ./gradlew build publishToMavenLocal -x test -x signMavenJavaPublication - - name: Generate artifact list (linkage-monitor-artifacts.txt) for Linkage Monitor - run: ./gradlew createLinkageMonitorArtifactList - - name: Check dependency conflicts with the latest Libraries BOM - uses: GoogleCloudPlatform/cloud-opensource-java/linkage-monitor@v1-linkagemonitor - - name: Check dependency conflicts in the gax artifacts - run: ./gradlew checkJavaLinkage diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 5a181fe3d0..f9c9b3f638 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -16,12 +16,11 @@ set -eo pipefail scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo +# cd to the parent directory, i.e. the root of the git repo cd ${scriptDir}/.. # Print out Java java -version echo $JOB_TYPE -./gradlew assemble -./gradlew build install +./gradlew -Pskip.signing build publishToMavenLocal diff --git a/.kokoro/continuous/java7.cfg b/.kokoro/continuous/java7.cfg deleted file mode 100644 index cb24f44eea..0000000000 --- a/.kokoro/continuous/java7.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java7" -} diff --git a/.kokoro/presubmit/java7.cfg b/.kokoro/presubmit/java7.cfg deleted file mode 100644 index cb24f44eea..0000000000 --- a/.kokoro/presubmit/java7.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java7" -} diff --git a/.kokoro/release/common.cfg b/.kokoro/release/common.cfg index 8ead538bfe..8c2ae059b3 100644 --- a/.kokoro/release/common.cfg +++ b/.kokoro/release/common.cfg @@ -8,8 +8,8 @@ build_file: "gax-java/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" } before_action { diff --git a/.kokoro/release/drop.cfg b/.kokoro/release/drop.cfg index 8cf1649e90..32f2ec33ab 100644 --- a/.kokoro/release/drop.cfg +++ b/.kokoro/release/drop.cfg @@ -1,5 +1,5 @@ # Format: //devtools/kokoro/config/proto/build.proto - env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/gax-java/.kokoro/release/drop.sh" +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/gax-java/.kokoro/release/drop.sh" } diff --git a/.kokoro/release/promote.cfg b/.kokoro/release/promote.cfg index 501eecacd9..e644fd395e 100644 --- a/.kokoro/release/promote.cfg +++ b/.kokoro/release/promote.cfg @@ -1,5 +1,5 @@ # Format: //devtools/kokoro/config/proto/build.proto - env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/gax-java/.kokoro/release/promote.sh" +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/gax-java/.kokoro/release/promote.sh" } diff --git a/.kokoro/release/publish_javadoc11.cfg b/.kokoro/release/publish_javadoc11.cfg index d09dbd5b47..43a768b229 100644 --- a/.kokoro/release/publish_javadoc11.cfg +++ b/.kokoro/release/publish_javadoc11.cfg @@ -2,19 +2,19 @@ # cloud-rad production env_vars: { - key: "STAGING_BUCKET_V2" - value: "docs-staging-v2" + key: "STAGING_BUCKET_V2" + value: "docs-staging-v2" } # Configure the docker image for kokoro-trampoline env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" } env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/gax-java/.kokoro/release/publish_javadoc11.sh" + key: "TRAMPOLINE_BUILD_FILE" + value: "github/gax-java/.kokoro/release/publish_javadoc11.sh" } before_action { diff --git a/.kokoro/release/stage.cfg b/.kokoro/release/stage.cfg index 2baafb20ec..ea81148214 100644 --- a/.kokoro/release/stage.cfg +++ b/.kokoro/release/stage.cfg @@ -1,7 +1,7 @@ # Format: //devtools/kokoro/config/proto/build.proto - env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/gax-java/.kokoro/release/stage.sh" +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/gax-java/.kokoro/release/stage.sh" } env_vars: { diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index c7ba60c162..92eaa4cbb4 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -30,9 +30,9 @@ setup_environment_secrets mkdir -p ${HOME}/.gradle create_gradle_properties_file "${HOME}/.gradle/gradle.properties" -./gradlew assemble publish - -if [[ -n "${AUTORELEASE_PR}" ]] +if [[ -z "${AUTORELEASE_PR}" ]] then - ./gradlew closeAndReleaseRepository + ./gradlew publishToSonatype +else + ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c159577b0..45cdbcfa40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,48 @@ # Changelog +## [2.6.0](https://www.github.com/googleapis/gax-java/compare/v2.5.3...v2.6.0) (2021-10-15) + + +### Features + +* remove deprecated Generated annotation ([2d76bff](https://www.github.com/googleapis/gax-java/commit/2d76bff6d64da818a3aff7ea0bdf5a36b82c3464)) + + +### Bug Fixes + +* Fix com.google.rpc.Code to StatusCode.Code conversion logic ([2d76bff](https://www.github.com/googleapis/gax-java/commit/2d76bff6d64da818a3aff7ea0bdf5a36b82c3464)) + + +### Dependencies + +* update api-common to 2.0.5 ([2d76bff](https://www.github.com/googleapis/gax-java/commit/2d76bff6d64da818a3aff7ea0bdf5a36b82c3464)) +* update auto-value to 1.8.2 ([2d76bff](https://www.github.com/googleapis/gax-java/commit/2d76bff6d64da818a3aff7ea0bdf5a36b82c3464)) +* update com_google_protobuf to 3.18.1 ([#1519](https://www.github.com/googleapis/gax-java/issues/1519)) ([2d76bff](https://www.github.com/googleapis/gax-java/commit/2d76bff6d64da818a3aff7ea0bdf5a36b82c3464)) +* update google-http-client to 1.40.1 ([2d76bff](https://www.github.com/googleapis/gax-java/commit/2d76bff6d64da818a3aff7ea0bdf5a36b82c3464)) +* update grpc to 1.41.0 ([2d76bff](https://www.github.com/googleapis/gax-java/commit/2d76bff6d64da818a3aff7ea0bdf5a36b82c3464)) +* update guava to v31 ([2d76bff](https://www.github.com/googleapis/gax-java/commit/2d76bff6d64da818a3aff7ea0bdf5a36b82c3464)) + +### [2.5.3](https://www.github.com/googleapis/gax-java/compare/v2.5.2...v2.5.3) (2021-10-13) + + +### Bug Fixes + +* Fix `com.google.rpc.Code` to `StatusCode.Code` conversion logic ([#1508](https://www.github.com/googleapis/gax-java/issues/1508)) ([61b1617](https://www.github.com/googleapis/gax-java/commit/61b161799faf292be1394111381f8a35e757b85a)) + +### [2.5.2](https://www.github.com/googleapis/gax-java/compare/v2.5.1...v2.5.2) (2021-10-13) + + +### Dependencies + +* release multiple artifacts at once ([#1506](https://www.github.com/googleapis/gax-java/issues/1506)) ([8c022f6](https://www.github.com/googleapis/gax-java/commit/8c022f69f7878280e00f200f65a931ff0f8cfe45)) + +### [2.5.1](https://www.github.com/googleapis/gax-java/compare/v2.5.0...v2.5.1) (2021-10-08) + + +### Dependencies + +* fix release pipeline ([#1500](https://www.github.com/googleapis/gax-java/issues/1500)) ([f8ae03b](https://www.github.com/googleapis/gax-java/commit/f8ae03bbf0389d5fd943d214c1058ee012be757b)) + ## [2.5.0](https://www.github.com/googleapis/gax-java/compare/v2.4.1...v2.5.0) (2021-09-21) diff --git a/README.md b/README.md index ce0e0c7602..84ea27472a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Google API Extensions for Java ============================== -[![Build Status](https://travis-ci.org/googleapis/gax-java.svg?branch=master)](https://travis-ci.org/googleapis/gax-java) +[![Build Status](https://travis-ci.org/googleapis/gax-java.svg?branch=main)](https://travis-ci.org/googleapis/gax-java) - [Documentation](https://googleapis.dev/java/gax/latest/) @@ -29,27 +29,27 @@ If you are using Maven, add this to your pom.xml file com.google.api gax - 2.5.0 + 2.6.0 com.google.api gax-grpc - 2.5.0 + 2.6.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.api:gax:2.5.0', - 'com.google.api:gax-grpc:2.5.0' +compile 'com.google.api:gax:2.6.0', + 'com.google.api:gax-grpc:2.6.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.api" % "gax" % "2.5.0" -libraryDependencies += "com.google.api" % "gax-grpc" % "2.5.0" +libraryDependencies += "com.google.api" % "gax" % "2.6.0" +libraryDependencies += "com.google.api" % "gax-grpc" % "2.6.0" ``` [//]: # ({x-version-update-end}) @@ -152,6 +152,6 @@ License BSD - See [LICENSE] for more information. -[CONTRIBUTING]:https://github.com/googleapis/gax-java/blob/master/CONTRIBUTING.md -[LICENSE]: https://github.com/googleapis/gax-java/blob/master/LICENSE +[CONTRIBUTING]:https://github.com/googleapis/gax-java/blob/main/CONTRIBUTING.md +[LICENSE]: https://github.com/googleapis/gax-java/blob/main/LICENSE diff --git a/benchmark/build.gradle b/benchmark/build.gradle index a82b2c0826..4f779a8402 100644 --- a/benchmark/build.gradle +++ b/benchmark/build.gradle @@ -1,32 +1,18 @@ -project.version = "0.75.0" // {x-version-update:benchmark:current} - -buildscript { - repositories { - maven { - url "https://plugins.gradle.org/m2/" - } - } - dependencies { - classpath "me.champeau.gradle:jmh-gradle-plugin:0.4.4" - } +plugins { + id 'me.champeau.gradle.jmh' version '0.5.3' } -apply plugin: "me.champeau.gradle.jmh" -apply plugin: 'java' - -repositories { - mavenCentral() -} +project.version = "0.76.1-SNAPSHOT" // {x-version-update:benchmark:current} dependencies { - compile project(':gax') - compile project(':gax-grpc') - compile "io.grpc:grpc-netty:${libraries['version.io_grpc']}" - compile 'com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.1.2' - compile 'com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.96.4' + implementation project(':gax') + implementation project(':gax-grpc') + implementation "io.grpc:grpc-netty:${libraries['version.io_grpc']}" + implementation 'com.google.api.grpc:grpc-google-cloud-bigtable-v2:2.1.4' + implementation 'com.google.api.grpc:grpc-google-cloud-pubsub-v1:1.96.6' } // Allow command line to target specific test -if (project.properties.containsKey('include')) { - jmh.include = [project.properties.get('include')] +if (project.hasProperty('include')) { + jmh.include = [project.include] } diff --git a/build.gradle b/build.gradle index e494e56420..5df4fc0da0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,30 +1,17 @@ import groovy.io.FileType -buildscript { - repositories { - mavenLocal() - maven { - url 'https://plugins.gradle.org/m2/' - } - mavenCentral() - jcenter() - } - dependencies { - classpath "net.ltgt.gradle:gradle-apt-plugin:0.10", - "com.github.jengelman.gradle.plugins:shadow:1.2.4", - "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.30.0", - "gradle.plugin.com.dorongold.plugins:task-tree:1.5" - - classpath "gradle.plugin.com.github.sherter.google-java-format:google-java-format-gradle-plugin:0.8" - } +plugins { + id 'java' + id 'io.github.gradle-nexus.publish-plugin' version '1.1.0' + + id 'com.dorongold.task-tree' version '2.1.0' apply false + id 'com.github.johnrengelman.shadow' version '6.1.0' apply false + id 'com.github.sherter.google-java-format' version '0.8' apply false + id 'net.ltgt.apt' version '0.21' apply false } -apply plugin: 'java' -apply plugin: 'com.github.sherter.google-java-format' -apply plugin: 'io.codearte.nexus-staging' - // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "2.5.0" // {x-version-update:gax:current} +project.version = "2.6.1-SNAPSHOT" // {x-version-update:gax:current} ext { // Project names not used for release @@ -34,37 +21,49 @@ ext { libraryVendor = 'Google' } -googleJavaFormat { - exclude '.apt_generated/**' - exclude 'bin/**' - exclude 'build/**' - exclude 'bazel*/**' -} - -// google-java-format-gradle-plugin:0.8 does not work with Java 1.7. -verifyGoogleJavaFormat.onlyIf { JavaVersion.current().isJava8Compatible() } - if (project.hasProperty('ossrhUsername') && project.hasProperty('ossrhPassword') && !nonReleaseProjects.contains(project.name)) { - // Nexus staging plugin only works at root project level - // See https://github.com/Codearte/gradle-nexus-staging-plugin/issues/47 - nexusStaging { - username = ossrhUsername - password = ossrhPassword - packageGroup = "com.google.api" + nexusPublishing { + packageGroup = 'com.google.api' + repositories { + sonatype { //or custom repository name + nexusUrl.set(uri('https://google.oss.sonatype.org/service/local/')) + snapshotRepositoryUrl.set(uri('https://google.oss.sonatype.org/content/repositories/snapshots/')) + username = ossrhUsername + password = ossrhPassword + } + } } } -allprojects { - repositories { - mavenCentral() // for google-java-format's dependency - } +subprojects { + apply plugin: 'java-library' + apply plugin: 'eclipse' + apply plugin: 'idea' + apply plugin: 'jacoco' + apply plugin: 'maven-publish' + apply plugin: 'signing' + + apply plugin: 'com.dorongold.task-tree' + apply plugin: 'com.github.johnrengelman.shadow' + apply plugin: 'com.github.sherter.google-java-format' + apply plugin: 'net.ltgt.apt' + + group = 'com.google.api' + + sourceCompatibility = 1.8 + targetCompatibility = 1.8 // Formatting tasks // ================ - apply plugin: 'com.github.sherter.google-java-format' + googleJavaFormat { + exclude '.apt_generated/**' + exclude 'bin/**' + exclude 'build/**' + exclude 'bazel*/**' + } + test.dependsOn verifyGoogleJavaFormat - verifyGoogleJavaFormat.onlyIf { JavaVersion.current().isJava8Compatible() } task verifyLicense { doLast { @@ -91,24 +90,6 @@ allprojects { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } -} - -subprojects { - apply plugin: 'java' - apply plugin: 'maven' - apply plugin: 'eclipse' - apply plugin: 'idea' - apply plugin: 'jacoco' - apply plugin: 'signing' - apply plugin: "net.ltgt.apt" - apply plugin: 'com.github.johnrengelman.shadow' - apply plugin: 'maven-publish' - apply plugin: 'com.dorongold.task-tree' - - group = "com.google.api" - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 // Dependencies // ------------ @@ -128,6 +109,7 @@ subprojects { 'maven.io_grpc_grpc_core': "io.grpc:grpc-core:${libraries['version.io_grpc']}", 'maven.io_grpc_grpc_context': "io.grpc:grpc-context:${libraries['version.io_grpc']}", 'maven.io_grpc_grpc_stub': "io.grpc:grpc-stub:${libraries['version.io_grpc']}", + 'maven.io_grpc_grpc_api': "io.grpc:grpc-api:${libraries['version.io_grpc']}", 'maven.io_grpc_grpc_auth': "io.grpc:grpc-auth:${libraries['version.io_grpc']}", 'maven.io_grpc_grpc_protobuf': "io.grpc:grpc-protobuf:${libraries['version.io_grpc']}", 'maven.io_grpc_grpc_netty_shaded': "io.grpc:grpc-netty-shaded:${libraries['version.io_grpc']}", @@ -154,7 +136,7 @@ subprojects { html.enabled true } afterEvaluate { - classDirectories = files(classDirectories.files.collect { + getClassDirectories().setFrom files(classDirectories.files.collect { fileTree(dir: it, exclude: ['**/AutoValue_*']) }) @@ -168,20 +150,12 @@ subprojects { // ---------- task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' + archiveClassifier = 'sources' from sourceSets.main.allSource, sourceSets.test.allSource, sourceSets.main.resources.srcDirs exclude('**/*Test.java') } - // JavaDocV1 html - // ------- - - task javadocJar(type: Jar) { - classifier = 'javadoc' - from javadoc - } - javadoc.options { encoding = 'UTF-8' links 'https://docs.oracle.com/javase/7/docs/api/' @@ -194,31 +168,25 @@ subprojects { } } - // JavaDocV3 - docFX + // JavaDocV1 html // ------- - - task javadocJarV3(type: Jar) { - classifier = 'javadoc' + task javadocJar(type: Jar) { + archiveClassifier = 'javadoc' from javadoc } - javadoc.options { - encoding = 'UTF-8' - links 'https://docs.oracle.com/javase/7/docs/api/' - - if (JavaVersion.current().isJava8Compatible()) { - addStringOption('Xdoclint:all,-missing', '-quiet') - } - if (JavaVersion.current().isJava11Compatible()) { - addStringOption('-release', '7') - } + // JavaDocV3 - docFX + // ------- + task javadocJarV3(type: Jar) { + archiveClassifier = 'javadoc' + from javadoc } // Test jar // -------- task testlibJar(type: Jar, dependsOn: test) { - classifier = 'testlib' + archiveClassifier = 'testlib' from sourceSets.test.output include('com/google/api/gax/rpc/testing/**') @@ -230,7 +198,7 @@ subprojects { // --------- shadowJar { - classifier = 'guavashaded' + archiveClassifier = 'guavashaded' relocate 'com.google.common', 'com.google.api.gax.repackaged.com.google.common' relocate 'io.grpc.stub', 'com.google.api.gax.repackaged.io.grpc.stub' relocate 'io.grpc.protobuf', 'com.google.api.gax.repackaged.io.grpc.protobuf' @@ -262,15 +230,15 @@ subprojects { configurations { codeGeneration - compile.exclude group: 'com.google.guava', module: 'guava-jdk5' + implementation.exclude group: 'com.google.guava', module: 'guava-jdk5' } dependencies { - codeGeneration libraries['maven.com_google_auto_value_auto_value'], - libraries['maven.com_google_code_findbugs_jsr305'] + codeGeneration (libraries['maven.com_google_auto_value_auto_value'], + libraries['maven.com_google_code_findbugs_jsr305']) // Separate configuration (class path) for Linkage Checker - linkageChecker "com.google.cloud.tools:dependencies:1.4.0" + linkageChecker "com.google.cloud.tools:dependencies:1.5.12" } compileJava.classpath += configurations.codeGeneration @@ -329,7 +297,6 @@ subprojects { artifact javadocJar artifact sourcesJar - artifact shadowJar artifact testlibJar pom { @@ -368,8 +335,8 @@ subprojects { maven { url 'https://google.oss.sonatype.org/service/local/staging/deploy/maven2/' credentials { - username = project.hasProperty('ossrhUsername') ? project.getProperty('ossrhUsername') : null - password = project.hasProperty('ossrhPassword') ? project.getProperty('ossrhPassword') : null + username = project.findProperty('ossrhUsername') + password = project.findProperty('ossrhPassword') } } } @@ -403,6 +370,11 @@ subprojects { } } +javadoc.options { + encoding = 'UTF-8' + links 'https://docs.oracle.com/javase/7/docs/api/' +} + // JavaDocV1 html // ------- task javadocCombined(type: Javadoc) { @@ -411,16 +383,6 @@ task javadocCombined(type: Javadoc) { destinationDir = new File(projectDir, 'tmp_docs') } -javadoc.options { - encoding = 'UTF-8' - links 'https://docs.oracle.com/javase/7/docs/api/' -} - -clean { - delete 'tmp_gh-pages/' - delete 'tmp_docs/' -} - // JavaDocV3 docFX // ------- task javadocCombinedV3(type: Javadoc) { @@ -431,7 +393,10 @@ task javadocCombinedV3(type: Javadoc) { options.addStringOption('encoding', 'UTF-8') options.addStringOption("doclet", "com.microsoft.doclet.DocFxDoclet") options.addStringOption("projectname", "gax") - options.docletpath = [file(System.getenv('KOKORO_GFILE_DIR') + "/java-docfx-doclet-1.2.0.jar")] + options.docletpath = [file(System.getenv('KOKORO_GFILE_DIR') + "/java-docfx-doclet-1.3.0.jar")] + // Newer Gradle 6 passes -notimestamp by default, which the doclet above doesn't understand: + // https://github.com/gradle/gradle/issues/11898 + options.noTimestamp false } clean { @@ -486,7 +451,7 @@ task createApiDocsRedirect { } task publishDocs { - dependsOn 'closeAndReleaseRepository' + dependsOn 'closeAndReleaseSonatypeStagingRepository' doLast { exec { workingDir './tmp_gh-pages' diff --git a/dependencies.properties b/dependencies.properties index eae3a61aa5..d649e211e2 100644 --- a/dependencies.properties +++ b/dependencies.properties @@ -8,24 +8,24 @@ # Versions of oneself # {x-version-update-start:gax:current} -version.gax=2.5.0 +version.gax=2.6.1-SNAPSHOT # {x-version-update-end} # {x-version-update-start:gax:current} -version.gax_grpc=2.5.0 +version.gax_grpc=2.6.1-SNAPSHOT # {x-version-update-end} # {x-version-update-start:gax:current} -version.gax_bom=2.5.0 +version.gax_bom=2.6.1-SNAPSHOT # {x-version-update-end} # {x-version-update-start:gax-httpjson:current} -version.gax_httpjson=0.90.0 +version.gax_httpjson=0.91.1-SNAPSHOT # {x-version-update-end} # Versions for dependencies which actual artifacts differ between Bazel and Gradle. # Gradle build depends on prebuilt maven artifacts, while Bazel build depends on Bazel workspaces # with the sources. -version.com_google_protobuf=3.15.2 +version.com_google_protobuf=3.18.1 version.google_java_format=1.1 -version.io_grpc=1.37.0 +version.io_grpc=1.41.0 # Maven artifacts. # Note, the actual name of each property matters (bazel build scripts depend on it). @@ -34,8 +34,8 @@ version.io_grpc=1.37.0 # 2) Replace all characters which are neither alphabetic nor digits with the underscore ('_') character maven.com_google_api_grpc_proto_google_common_protos=com.google.api.grpc:proto-google-common-protos:2.4.1 maven.com_google_api_grpc_grpc_google_common_protos=com.google.api.grpc:grpc-google-common-protos:2.4.1 -maven.com_google_auth_google_auth_library_oauth2_http=com.google.auth:google-auth-library-oauth2-http:0.27.0 -maven.com_google_auth_google_auth_library_credentials=com.google.auth:google-auth-library-credentials:1.0.0 +maven.com_google_auth_google_auth_library_oauth2_http=com.google.auth:google-auth-library-oauth2-http:1.2.1 +maven.com_google_auth_google_auth_library_credentials=com.google.auth:google-auth-library-credentials:1.2.1 maven.io_opencensus_opencensus_api=io.opencensus:opencensus-api:0.28.0 maven.io_opencensus_opencensus_contrib_grpc_metrics=io.opencensus:opencensus-contrib-grpc-metrics:0.28.0 maven.io_opencensus_opencensus_contrib_http_util=io.opencensus:opencensus-contrib-http-util:0.28.0 @@ -53,21 +53,21 @@ maven.io_netty_netty_handler_proxy=io.netty:netty-handler-proxy:4.1.52.Final maven.io_perfmark_perfmark_api=io.perfmark:perfmark-api:0.23.0 maven.org_apache_tomcat_annotations_api=org.apache.tomcat:annotations-api:6.0.53 maven.com_google_code_gson_gson=com.google.code.gson:gson:2.8.6 -maven.com_google_guava_guava=com.google.guava:guava:30.1.1-jre +maven.com_google_guava_guava=com.google.guava:guava:31.0.1-jre maven.com_google_guava_failureaccess=com.google.guava:failureaccess:1.0.1 maven.org_apache_commons_commons_lang3=org.apache.commons:commons-lang3:3.8.1 maven.com_google_android_annotations=com.google.android:annotations:4.1.1.4 maven.com_google_code_findbugs_jsr305=com.google.code.findbugs:jsr305:3.0.2 -maven.com_google_errorprone_error_prone_annotations=com.google.errorprone:error_prone_annotations:2.5.1 +maven.com_google_errorprone_error_prone_annotations=com.google.errorprone:error_prone_annotations:2.9.0 maven.com_google_j2objc_j2objc_annotations=com.google.j2objc:j2objc-annotations:1.3 -maven.com_google_auto_value_auto_value=com.google.auto.value:auto-value:1.4 -maven.com_google_auto_value_auto_value_annotations=com.google.auto.value:auto-value-annotations:1.7.4 -maven.com_google_api_api_common=com.google.api:api-common:2.0.1 +maven.com_google_auto_value_auto_value=com.google.auto.value:auto-value:1.8.2 +maven.com_google_auto_value_auto_value_annotations=com.google.auto.value:auto-value-annotations:1.8.2 +maven.com_google_api_api_common=com.google.api:api-common:2.0.5 maven.org_threeten_threetenbp=org.threeten:threetenbp:1.5.0 maven.com_google_api_grpc_grpc_google_iam_v1=com.google.api.grpc:grpc-google-iam-v1:1.0.9 maven.com_google_api_grpc_proto_google_iam_v1=com.google.api.grpc:proto-google-iam-v1:1.0.9 -maven.com_google_http_client_google_http_client=com.google.http-client:google-http-client:1.40.0 -maven.com_google_http_client_google_http_client_gson=com.google.http-client:google-http-client-gson:1.40.0 +maven.com_google_http_client_google_http_client=com.google.http-client:google-http-client:1.40.1 +maven.com_google_http_client_google_http_client_gson=com.google.http-client:google-http-client-gson:1.40.1 maven.org_codehaus_mojo_animal_sniffer_annotations=org.codehaus.mojo:animal-sniffer-annotations:1.18 maven.javax_annotation_javax_annotation_api=javax.annotation:javax.annotation-api:1.3.2 diff --git a/gax-bom/build.gradle b/gax-bom/build.gradle index 17112ed309..37371cbf1f 100644 --- a/gax-bom/build.gradle +++ b/gax-bom/build.gradle @@ -1,22 +1,11 @@ +archivesBaseName = 'gax-bom' -buildscript { - repositories { - mavenLocal() - maven { - url 'https://plugins.gradle.org/m2/' - } - mavenCentral() - jcenter() - } -} - -archivesBaseName = "gax-bom" - -project.version = "2.5.0" // {x-version-update:gax-bom:current} +project.version = "2.6.1-SNAPSHOT" // {x-version-update:gax-bom:current} ext { - mavenJavaDir = "$project.buildDir/publications/mavenJava" + mavenJavaDir = "$buildDir/publications/mavenJava" mavenJavaBomOutputFile = file(mavenJavaDir + "/pom-default.xml") + mavenJavaBomAscOutputFile = file(mavenJavaDir + "/pom-default.xml.asc") } // Copy our pom.xml to the location where a generated POM would go @@ -42,6 +31,8 @@ tasks.whenTaskAdded { task -> task.dependsOn copyPom } else if (task.name == 'publishMavenJavaPublicationToMavenRepository') { task.dependsOn copyPom + } else if (task.name == 'publishMavenJavaPublicationToSonatypeRepository') { + task.dependsOn copyPom } } @@ -86,8 +77,8 @@ afterEvaluate { maven { url 'https://google.oss.sonatype.org/service/local/staging/deploy/maven2/' credentials { - username = project.hasProperty('ossrhUsername') ? project.getProperty('ossrhUsername') : null - password = project.hasProperty('ossrhPassword') ? project.getProperty('ossrhPassword') : null + username = project.findProperty('ossrhUsername') + password = project.findProperty('ossrhPassword') } } } @@ -99,6 +90,12 @@ afterEvaluate { useGpgCmd() } sign publishing.publications.mavenJava + + publishing.publications.mavenJava(MavenPublication) { + artifact(mavenJavaBomAscOutputFile) { + extension 'pom.asc' + } + } } } } diff --git a/gax-bom/pom.xml b/gax-bom/pom.xml index cc0d5c36fb..e0bbee3d27 100644 --- a/gax-bom/pom.xml +++ b/gax-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.api gax-bom - 2.5.0 + 2.6.1-SNAPSHOT pom GAX (Google Api eXtensions) for Java Google Api eXtensions for Java @@ -33,35 +33,35 @@ com.google.api gax - 2.5.0 + 2.6.1-SNAPSHOT com.google.api gax - 2.5.0 - testlib + 2.6.1-SNAPSHOT + testlib com.google.api gax-grpc - 2.5.0 + 2.6.1-SNAPSHOT com.google.api gax-grpc - 2.5.0 - testlib + 2.6.1-SNAPSHOT + testlib com.google.api gax-httpjson - 0.90.0 + 0.91.1-SNAPSHOT com.google.api gax-httpjson - 0.90.0 - testlib + 0.91.1-SNAPSHOT + testlib diff --git a/gax-grpc/build.gradle b/gax-grpc/build.gradle index 9135473e56..b55b802a64 100644 --- a/gax-grpc/build.gradle +++ b/gax-grpc/build.gradle @@ -1,33 +1,35 @@ archivesBaseName = "gax-grpc" // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "2.5.0" // {x-version-update:gax-grpc:current} +project.version = "2.6.1-SNAPSHOT" // {x-version-update:gax-grpc:current} dependencies { - compile project(':gax'), - libraries['maven.io_grpc_grpc_stub'], - libraries['maven.io_grpc_grpc_auth'], - libraries['maven.io_grpc_grpc_protobuf'], + api(project(':gax'), + libraries['maven.com_google_api_api_common'], + libraries['maven.com_google_api_grpc_proto_google_common_protos'], + libraries['maven.com_google_auth_google_auth_library_credentials'], libraries['maven.com_google_guava_guava'], + libraries['maven.io_grpc_grpc_api'], + libraries['maven.org_threeten_threetenbp']) + + implementation(libraries['maven.com_google_auth_google_auth_library_oauth2_http'], libraries['maven.com_google_code_findbugs_jsr305'], - libraries['maven.org_threeten_threetenbp'], - libraries['maven.com_google_auth_google_auth_library_oauth2_http'], - libraries['maven.com_google_auth_google_auth_library_credentials'], - libraries['maven.com_google_api_grpc_proto_google_common_protos'], - libraries['maven.com_google_api_api_common'], - libraries['maven.io_grpc_grpc_netty_shaded'], libraries['maven.io_grpc_grpc_alts'], - libraries['maven.io_grpc_grpc_xds'] + libraries['maven.io_grpc_grpc_auth'], + libraries['maven.io_grpc_grpc_netty_shaded'], + libraries['maven.io_grpc_grpc_protobuf'], + libraries['maven.io_grpc_grpc_stub'], + libraries['maven.io_grpc_grpc_xds']) compileOnly libraries['maven.com_google_auto_value_auto_value'] - testCompile project(':gax').sourceSets.test.output, + testImplementation( project(':gax').sourceSets.test.output, libraries['maven.junit_junit'], libraries['maven.org_mockito_mockito_core'], libraries['maven.com_google_truth_truth'], - libraries['maven.com_google_api_grpc_grpc_google_common_protos'] + libraries['maven.com_google_api_grpc_grpc_google_common_protos']) - apt libraries['maven.com_google_auto_value_auto_value'] + annotationProcessor libraries['maven.com_google_auto_value_auto_value'] shadowNoGuava libraries['maven.com_google_guava_guava'], libraries['maven.io_grpc_grpc_stub'], diff --git a/gax-grpc/src/test/java/com/google/longrunning/MockOperations.java b/gax-grpc/src/test/java/com/google/longrunning/MockOperations.java index 58effb067f..624eaa5c64 100644 --- a/gax-grpc/src/test/java/com/google/longrunning/MockOperations.java +++ b/gax-grpc/src/test/java/com/google/longrunning/MockOperations.java @@ -35,7 +35,6 @@ import io.grpc.ServerServiceDefinition; import java.util.List; -@javax.annotation.Generated("by GAPIC") @BetaApi public class MockOperations implements MockGrpcService { private final MockOperationsImpl serviceImpl; diff --git a/gax-grpc/src/test/java/com/google/longrunning/MockOperationsImpl.java b/gax-grpc/src/test/java/com/google/longrunning/MockOperationsImpl.java index f2b6eef03d..594508d3de 100644 --- a/gax-grpc/src/test/java/com/google/longrunning/MockOperationsImpl.java +++ b/gax-grpc/src/test/java/com/google/longrunning/MockOperationsImpl.java @@ -39,7 +39,6 @@ import java.util.List; import java.util.Queue; -@javax.annotation.Generated("by GAPIC") @BetaApi public class MockOperationsImpl extends OperationsImplBase { private List requests; diff --git a/gax-httpjson/build.gradle b/gax-httpjson/build.gradle index c69a8b9208..77553d3cf1 100644 --- a/gax-httpjson/build.gradle +++ b/gax-httpjson/build.gradle @@ -1,31 +1,32 @@ archivesBaseName = "gax-httpjson" // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "0.90.0" // {x-version-update:gax-httpjson:current} +project.version = "0.91.1-SNAPSHOT" // {x-version-update:gax-httpjson:current} dependencies { - compile project(':gax'), - libraries['maven.com_google_protobuf'], - libraries['maven.com_google_protobuf_java_util'], + api(project(':gax'), + libraries['maven.com_google_api_api_common'], + libraries['maven.com_google_api_grpc_proto_google_common_protos'], + libraries['maven.com_google_auth_google_auth_library_credentials'], libraries['maven.com_google_code_gson_gson'], libraries['maven.com_google_guava_guava'], - libraries['maven.com_google_code_findbugs_jsr305'], - libraries['maven.org_threeten_threetenbp'], libraries['maven.com_google_http_client_google_http_client'], + libraries['maven.com_google_protobuf'], + libraries['maven.org_threeten_threetenbp']) + + implementation(libraries['maven.com_google_auth_google_auth_library_oauth2_http'], + libraries['maven.com_google_code_findbugs_jsr305'], libraries['maven.com_google_http_client_google_http_client_gson'], - libraries['maven.com_google_auth_google_auth_library_oauth2_http'], - libraries['maven.com_google_auth_google_auth_library_credentials'], - libraries['maven.com_google_api_grpc_proto_google_common_protos'] - libraries['maven.com_google_api_api_common'] + libraries['maven.com_google_protobuf_java_util']) compileOnly libraries['maven.com_google_auto_value_auto_value'] - testCompile project(':gax').sourceSets.test.output, + testImplementation(project(':gax').sourceSets.test.output, libraries['maven.junit_junit'], libraries['maven.org_mockito_mockito_core'], - libraries['maven.com_google_truth_truth'] + libraries['maven.com_google_truth_truth']) - apt libraries['maven.com_google_auto_value_auto_value'] + annotationProcessor libraries['maven.com_google_auto_value_auto_value'] shadowNoGuava libraries['maven.com_google_guava_guava'] } diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java index e873c25192..db5e2a93a4 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java @@ -74,7 +74,7 @@ static StatusCode.Code rpcCodeToStatusCode(com.google.rpc.Code rpcCode) { case DEADLINE_EXCEEDED: return Code.DEADLINE_EXCEEDED; case NOT_FOUND: - return Code.DEADLINE_EXCEEDED; + return Code.NOT_FOUND; case ALREADY_EXISTS: return Code.ALREADY_EXISTS; case PERMISSION_DENIED: diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java index 929d9d64c1..b24c0f8c25 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java @@ -52,7 +52,6 @@ import java.io.IOException; import java.util.List; import java.util.concurrent.TimeUnit; -import javax.annotation.Generated; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -121,7 +120,6 @@ * *

Please refer to the GitHub repository's samples for more quickstart code snippets. */ -@Generated("by gapic-generator-java") @BetaApi public class OperationsClient implements BackgroundResource { private final OperationsSettings settings; diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java index 42afe6c9f6..a22ab01d51 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java @@ -52,7 +52,6 @@ import com.google.protobuf.Empty; import java.io.IOException; import java.util.List; -import javax.annotation.Generated; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -85,7 +84,6 @@ * OperationsSettings operationsSettings = operationsSettingsBuilder.build(); * } */ -@Generated("by gapic-generator-java") @BetaApi public class OperationsSettings extends ClientSettings { diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsCallableFactory.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsCallableFactory.java index dc279501ce..d98991702c 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsCallableFactory.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsCallableFactory.java @@ -42,7 +42,6 @@ import com.google.api.gax.rpc.PagedCallSettings; import com.google.api.gax.rpc.UnaryCallSettings; import com.google.api.gax.rpc.UnaryCallable; -import javax.annotation.Generated; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -50,7 +49,6 @@ * *

This class is for advanced usage. */ -@Generated("by gapic-generator-java") @BetaApi public class HttpJsonOperationsCallableFactory implements HttpJsonStubCallableFactory { diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsStub.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsStub.java index 7684f5d9b9..ccc9ae2c9c 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsStub.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsStub.java @@ -65,7 +65,6 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; -import javax.annotation.Generated; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -73,7 +72,6 @@ * *

This class is for advanced usage and reflects the underlying API directly. */ -@Generated("by gapic-generator-java") @BetaApi("A restructuring of stub classes is planned, so this may break in the future") public class HttpJsonOperationsStub extends OperationsStub { private static final ApiMethodDescriptor diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStub.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStub.java index 0c125e0509..46755d1ce3 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStub.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStub.java @@ -41,7 +41,6 @@ import com.google.longrunning.ListOperationsResponse; import com.google.longrunning.Operation; import com.google.protobuf.Empty; -import javax.annotation.Generated; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -49,7 +48,6 @@ * *

This class is for advanced usage and reflects the underlying API directly. */ -@Generated("by gapic-generator-java") @BetaApi public abstract class OperationsStub implements BackgroundResource { diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java index 679ab36a35..ccee9b1f2f 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java @@ -66,7 +66,6 @@ import com.google.protobuf.Empty; import java.io.IOException; import java.util.List; -import javax.annotation.Generated; import org.threeten.bp.Duration; // AUTO-GENERATED DOCUMENTATION AND CLASS. @@ -100,7 +99,6 @@ * OperationsStubSettings operationsSettings = operationsSettingsBuilder.build(); * } */ -@Generated("by gapic-generator-java") @BetaApi public class OperationsStubSettings extends StubSettings { /** The default scopes of the service. */ diff --git a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonStatusCodeTest.java b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonStatusCodeTest.java new file mode 100644 index 0000000000..7117026e86 --- /dev/null +++ b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/HttpJsonStatusCodeTest.java @@ -0,0 +1,131 @@ +/* + * Copyright 2021 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.google.api.gax.httpjson; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import com.google.api.gax.rpc.StatusCode; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import org.junit.Test; + +public class HttpJsonStatusCodeTest { + + @Test + public void rpcCodeToStatusCodeTest() { + Set allCodes = new HashSet<>(); + for (com.google.rpc.Code rpcCode : com.google.rpc.Code.values()) { + StatusCode.Code statusCode; + try { + statusCode = HttpJsonStatusCode.rpcCodeToStatusCode(rpcCode); + } catch (IllegalArgumentException e) { + if (rpcCode != com.google.rpc.Code.UNRECOGNIZED) { + fail("Unrecognized com.google.rpc.Code found " + rpcCode); + } + continue; + } + + assertNotNull(statusCode); + allCodes.add(statusCode); + } + + assertEquals(allCodes, new HashSet<>(Arrays.asList(StatusCode.Code.values()))); + } + + @Test + public void httpStatusToStatusCodeTest() { + // The HTTP status code conversion logic is currently in the process of being standardized, + // the tested logic may change in nearest future. + final String defaultMessage = "anything"; + assertEquals( + StatusCode.Code.OK, HttpJsonStatusCode.httpStatusToStatusCode(200, defaultMessage)); + assertEquals( + StatusCode.Code.OUT_OF_RANGE, + HttpJsonStatusCode.httpStatusToStatusCode(400, HttpJsonStatusCode.OUT_OF_RANGE)); + assertEquals( + StatusCode.Code.FAILED_PRECONDITION, + HttpJsonStatusCode.httpStatusToStatusCode(400, HttpJsonStatusCode.FAILED_PRECONDITION)); + assertEquals( + StatusCode.Code.INVALID_ARGUMENT, + HttpJsonStatusCode.httpStatusToStatusCode(400, defaultMessage)); + assertEquals( + StatusCode.Code.UNAUTHENTICATED, + HttpJsonStatusCode.httpStatusToStatusCode(401, defaultMessage)); + assertEquals( + StatusCode.Code.PERMISSION_DENIED, + HttpJsonStatusCode.httpStatusToStatusCode(403, defaultMessage)); + assertEquals( + StatusCode.Code.NOT_FOUND, HttpJsonStatusCode.httpStatusToStatusCode(404, defaultMessage)); + assertEquals( + StatusCode.Code.ALREADY_EXISTS, + HttpJsonStatusCode.httpStatusToStatusCode(409, HttpJsonStatusCode.ALREADY_EXISTS)); + assertEquals( + StatusCode.Code.ABORTED, HttpJsonStatusCode.httpStatusToStatusCode(409, defaultMessage)); + assertEquals( + StatusCode.Code.RESOURCE_EXHAUSTED, + HttpJsonStatusCode.httpStatusToStatusCode(429, defaultMessage)); + assertEquals( + StatusCode.Code.CANCELLED, HttpJsonStatusCode.httpStatusToStatusCode(499, defaultMessage)); + assertEquals( + StatusCode.Code.DATA_LOSS, + HttpJsonStatusCode.httpStatusToStatusCode(500, HttpJsonStatusCode.DATA_LOSS)); + assertEquals( + StatusCode.Code.UNKNOWN, + HttpJsonStatusCode.httpStatusToStatusCode(500, HttpJsonStatusCode.UNKNOWN)); + assertEquals( + StatusCode.Code.INTERNAL, HttpJsonStatusCode.httpStatusToStatusCode(500, defaultMessage)); + assertEquals( + StatusCode.Code.UNIMPLEMENTED, + HttpJsonStatusCode.httpStatusToStatusCode(501, defaultMessage)); + assertEquals( + StatusCode.Code.UNAVAILABLE, + HttpJsonStatusCode.httpStatusToStatusCode(503, defaultMessage)); + assertEquals( + StatusCode.Code.DEADLINE_EXCEEDED, + HttpJsonStatusCode.httpStatusToStatusCode(504, defaultMessage)); + + try { + HttpJsonStatusCode.httpStatusToStatusCode(411, defaultMessage); + fail(); + } catch (IllegalStateException e) { + // expected + } + + try { + HttpJsonStatusCode.httpStatusToStatusCode(666, defaultMessage); + fail(); + } catch (IllegalArgumentException e) { + // expected + } + } +} diff --git a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/longrunning/OperationsClientTest.java b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/longrunning/OperationsClientTest.java index 131870e782..96a8ac7400 100644 --- a/gax-httpjson/src/test/java/com/google/api/gax/httpjson/longrunning/OperationsClientTest.java +++ b/gax-httpjson/src/test/java/com/google/api/gax/httpjson/longrunning/OperationsClientTest.java @@ -49,7 +49,6 @@ import java.io.IOException; import java.util.Arrays; import java.util.List; -import javax.annotation.Generated; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; @@ -57,7 +56,6 @@ import org.junit.BeforeClass; import org.junit.Test; -@Generated("by gapic-generator-java") public class OperationsClientTest { private static MockHttpService mockService; private static OperationsClient client; diff --git a/gax/build.gradle b/gax/build.gradle index b4afd53e0f..2c0b779ca3 100644 --- a/gax/build.gradle +++ b/gax/build.gradle @@ -1,24 +1,27 @@ archivesBaseName = "gax" // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "2.5.0" // {x-version-update:gax:current} +project.version = "2.6.1-SNAPSHOT" // {x-version-update:gax:current} dependencies { - compile libraries['maven.com_google_guava_guava'], + api(libraries['maven.com_google_api_api_common'], + libraries['maven.com_google_auth_google_auth_library_credentials'], + libraries['maven.org_threeten_threetenbp']) + + implementation(libraries['maven.com_google_auth_google_auth_library_oauth2_http'], libraries['maven.com_google_code_findbugs_jsr305'], - libraries['maven.org_threeten_threetenbp'], - libraries['maven.com_google_auth_google_auth_library_oauth2_http'], - libraries['maven.com_google_api_api_common'], - libraries['maven.io_opencensus_opencensus_api'] + libraries['maven.com_google_guava_guava'], + libraries['maven.io_opencensus_opencensus_api']) compileOnly libraries['maven.com_google_auto_value_auto_value'] - testCompile libraries['maven.junit_junit'], + testImplementation(libraries['maven.junit_junit'], libraries['maven.org_mockito_mockito_core'], libraries['maven.com_google_truth_truth'], - libraries['maven.com_google_auto_value_auto_value'] + libraries['maven.com_google_auto_value_auto_value']) - apt libraries['maven.com_google_auto_value_auto_value'] + annotationProcessor libraries['maven.com_google_auto_value_auto_value'] + testAnnotationProcessor libraries['maven.com_google_auto_value_auto_value'] shadowNoGuava libraries['maven.com_google_guava_guava'] } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 0d4a951687..490fda8577 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a95009c3b9..3ab0b725ef 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-4.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index cccdd3d517..2fe81a7d95 100755 --- a/gradlew +++ b/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# 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 +# +# https://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. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -109,8 +125,8 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` @@ -138,19 +154,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +175,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index e95643d6a2..9109989e3c 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/samples/pom.xml b/samples/pom.xml index 04f6bfc366..4f7519a11a 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -14,13 +14,13 @@ com.google.api gax - 2.5.0 + 2.6.1-SNAPSHOT com.google.api gax-grpc - 2.5.0 + 2.6.1-SNAPSHOT com.google.auto.value diff --git a/versions.txt b/versions.txt index 6efe52ba72..bea7bc4b74 100644 --- a/versions.txt +++ b/versions.txt @@ -1,8 +1,8 @@ # Format: # module:released-version:current-version -gax:2.5.0:2.5.0 -gax-bom:2.5.0:2.5.0 -gax-grpc:2.5.0:2.5.0 -gax-httpjson:0.90.0:0.90.0 -benchmark:0.75.0:0.75.0 +gax:2.6.0:2.6.1-SNAPSHOT +gax-bom:2.6.0:2.6.1-SNAPSHOT +gax-grpc:2.6.0:2.6.1-SNAPSHOT +gax-httpjson:0.91.0:0.91.1-SNAPSHOT +benchmark:0.76.0:0.76.1-SNAPSHOT