diff --git a/.bazeliskrc b/.bazeliskrc index c7ac93c78c..04cd2fe7ca 100644 --- a/.bazeliskrc +++ b/.bazeliskrc @@ -1,2 +1,2 @@ # See https://github.com/bazelbuild/bazelisk -USE_BAZEL_VERSION=5.2.0 +USE_BAZEL_VERSION=6.0.0 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a53a3b21bf..b3f7405e7c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,7 +5,7 @@ on: pull_request: name: ci env: - SHOWCASE_VERSION: 0.26.0 + SHOWCASE_VERSION: 0.26.1 jobs: build: runs-on: ubuntu-22.04 @@ -166,6 +166,15 @@ jobs: # testlib modules of gax run: mvn package clirr:check -DskipTests + requirements-kokoro: + runs-on: ubuntu-latest + container: gcr.io/cloud-devrel-public-resources/java11 + steps: + - uses: actions/checkout@v3 + - run: python3 --version + - run: python3 -m pip install --require-hashes -r .kokoro/requirements.txt + - run: python3 -m releasetool publish-reporter-script > /dev/null + showcase: runs-on: ubuntu-22.04 strategy: diff --git a/.github/workflows/downstream-native-image.yaml b/.github/workflows/downstream-native-image.yaml index 0aa4c2380a..ae4f7627e0 100644 --- a/.github/workflows/downstream-native-image.yaml +++ b/.github/workflows/downstream-native-image.yaml @@ -9,7 +9,7 @@ on: # compilation. name: downstream env: - SHOWCASE_VERSION: 0.26.0 + SHOWCASE_VERSION: 0.26.1 jobs: # GraalVM job ensures the compatibility of GraaVM version graalvm: diff --git a/.github/workflows/sonar.yaml b/.github/workflows/sonar.yaml index 07c4a188e1..49350e2af4 100644 --- a/.github/workflows/sonar.yaml +++ b/.github/workflows/sonar.yaml @@ -1,6 +1,6 @@ name: SonarCloud Build env: - SHOWCASE_VERSION: 0.25.0 + SHOWCASE_VERSION: 0.26.1 on: push: branches: @@ -32,26 +32,28 @@ jobs: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - - name: Build and analyze + - name: Install showcase server + run: | + sudo mkdir -p /usr/src/showcase + sudo chown -R ${USER} /usr/src/ + curl --location https://github.com/googleapis/gapic-showcase/releases/download/v${SHOWCASE_VERSION}/gapic-showcase-${SHOWCASE_VERSION}-linux-amd64.tar.gz --output /usr/src/showcase/showcase-${SHOWCASE_VERSION}-linux-amd64.tar.gz + cd /usr/src/showcase/ + tar -xf showcase-* + ./gapic-showcase run & + cd - + - name: Build and analyze for full test coverage env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: | mvn -B verify -Dcheckstyle.skip \ + -DenableFullTestCoverage \ + -Penable-integration-tests \ org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \ -Dsonar.projectKey=googleapis_gapic-generator-java \ -Dsonar.organization=googleapis \ -Dsonar.host.url=https://sonarcloud.io - - name: Install showcase server - run: | - sudo mkdir -p /usr/src/showcase - sudo chown -R ${USER} /usr/src/ - curl --location https://github.com/googleapis/gapic-showcase/releases/download/v${SHOWCASE_VERSION}/gapic-showcase-${SHOWCASE_VERSION}-linux-amd64.tar.gz --output /usr/src/showcase/showcase-${SHOWCASE_VERSION}-linux-amd64.tar.gz - cd /usr/src/showcase/ - tar -xf showcase-* - ./gapic-showcase run & - cd - - name: Build and analyze Showcase Integration Tests Coverage env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any @@ -60,7 +62,7 @@ jobs: mvn -B clean verify -Dcheckstyle.skip \ -DskipUnitTests \ -Penable-integration-tests \ - -DenableTestCoverage \ + -DenableShowcaseTestCoverage \ org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \ -Dsonar.projectKey=googleapis_gapic-generator-java_integration_tests \ -Dsonar.organization=googleapis \ @@ -72,7 +74,7 @@ jobs: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: | mvn -B clean test -Dcheckstyle.skip \ - -DenableTestCoverage \ + -DenableShowcaseTestCoverage \ org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \ -Dsonar.projectKey=googleapis_gapic-generator-java_unit_tests \ -Dsonar.organization=googleapis \ diff --git a/.gitignore b/.gitignore index 585e94f980..07604728ff 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,4 @@ target/ # Vscode Settings .vscode/settings.json -*.iml +*.iml \ No newline at end of file diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index efc018374c..a15f606847 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -1,34 +1,9 @@ -gcp-docuploader==0.6.3 -google-crc32c==1.3.0 -googleapis-common-protos==1.56.3 -gcp-releasetool==1.10.5 -cryptography==39.0.1 -cachetools==4.2.4 -cffi==1.15.1 -jeepney==0.7.1 -jinja2==3.0.3 -markupsafe==2.0.1 -keyring==23.4.1 -packaging==21.3 -protobuf==3.19.5 -pyjwt==2.4.0 -pyparsing==3.0.9 -pycparser==2.21 -pyperclip==1.8.2 -python-dateutil==2.8.2 -requests==2.27.1 -certifi==2022.12.7 -importlib-metadata==4.8.3 -zipp==3.6.0 -google_api_core==2.8.2 -google-cloud-storage==2.0.0 -google-resumable-media==2.3.3 -google-cloud-core==2.3.1 -typing-extensions==4.1.1 -urllib3==1.26.12 -zipp==3.6.0 -rsa==4.9 -six==1.16.0 -attrs==22.1.0 -google-auth==2.14.1 -idna==3.4 \ No newline at end of file +gcp-docuploader +gcp-releasetool>=1.10.5 # required for compatibility with cryptography>=39.x +typing-extensions +click<8.1.0 +jinja2 +keyring +secretstorage +cryptography>=39.0.1 +certifi>=2022.12.07 \ No newline at end of file diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index cda98e1c9d..faf46223b9 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -1,26 +1,22 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile --generate-hashes requirements.in +# pip-compile --generate-hashes .kokoro/requirements.in # attrs==22.1.0 \ --hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \ --hash=sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool cachetools==4.2.4 \ --hash=sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693 \ --hash=sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1 - # via - # -r requirements.in - # google-auth + # via google-auth certifi==2022.12.7 \ --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 # via - # -r requirements.in + # -r .kokoro/requirements.in # requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ @@ -87,9 +83,7 @@ cffi==1.15.1 \ --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 - # via - # -r requirements.in - # cryptography + # via cryptography charset-normalizer==2.0.12 \ --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df @@ -98,73 +92,70 @@ click==8.0.4 \ --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb # via + # -r .kokoro/requirements.in # gcp-docuploader # gcp-releasetool colorlog==6.7.0 \ --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 # via gcp-docuploader -cryptography==39.0.1 \ - --hash=sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4 \ - --hash=sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f \ - --hash=sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502 \ - --hash=sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41 \ - --hash=sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965 \ - --hash=sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e \ - --hash=sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc \ - --hash=sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad \ - --hash=sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505 \ - --hash=sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388 \ - --hash=sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6 \ - --hash=sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2 \ - --hash=sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac \ - --hash=sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695 \ - --hash=sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6 \ - --hash=sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336 \ - --hash=sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0 \ - --hash=sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c \ - --hash=sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106 \ - --hash=sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a \ - --hash=sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8 - # via - # -r requirements.in +cryptography==39.0.2 \ + --hash=sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1 \ + --hash=sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7 \ + --hash=sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06 \ + --hash=sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84 \ + --hash=sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915 \ + --hash=sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074 \ + --hash=sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5 \ + --hash=sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3 \ + --hash=sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9 \ + --hash=sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3 \ + --hash=sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011 \ + --hash=sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536 \ + --hash=sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a \ + --hash=sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f \ + --hash=sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480 \ + --hash=sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac \ + --hash=sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0 \ + --hash=sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108 \ + --hash=sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828 \ + --hash=sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354 \ + --hash=sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612 \ + --hash=sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3 \ + --hash=sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97 + # via + # -r .kokoro/requirements.in # gcp-releasetool # secretstorage -gcp-docuploader==0.6.3 \ - --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \ - --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b - # via -r requirements.in +gcp-docuploader==0.6.5 \ + --hash=sha256:30221d4ac3e5a2b9c69aa52fdbef68cc3f27d0e6d0d90e220fc024584b8d2318 \ + --hash=sha256:b7458ef93f605b9d46a4bf3a8dc1755dad1f31d030c8679edf304e343b347eea + # via -r .kokoro/requirements.in gcp-releasetool==1.10.5 \ --hash=sha256:174b7b102d704b254f2a26a3eda2c684fd3543320ec239baf771542a2e58e109 \ --hash=sha256:e29d29927fe2ca493105a82958c6873bb2b90d503acac56be2c229e74de0eec9 - # via -r requirements.in + # via -r .kokoro/requirements.in google-api-core==2.8.2 \ --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50 # via - # -r requirements.in # google-cloud-core # google-cloud-storage google-auth==2.14.1 \ --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016 # via - # -r requirements.in # gcp-releasetool # google-api-core # google-cloud-core # google-cloud-storage -google-cloud-core==2.3.1 \ - --hash=sha256:113ba4f492467d5bd442c8d724c1a25ad7384045c3178369038840ecdd19346c \ - --hash=sha256:34334359cb04187bdc80ddcf613e462dfd7a3aabbc3fe4d118517ab4b9303d53 - # via - # -r requirements.in - # google-cloud-storage +google-cloud-core==2.3.2 \ + --hash=sha256:8417acf6466be2fa85123441696c4badda48db314c607cf1e5d543fa8bdc22fe \ + --hash=sha256:b9529ee7047fd8d4bf4a2182de619154240df17fbe60ead399078c1ae152af9a + # via google-cloud-storage google-cloud-storage==2.0.0 \ --hash=sha256:a57a15aead0f9dfbd4381f1bfdbe8bf89818a4bd75bab846cafcefb2db846c47 \ --hash=sha256:ec4be60bb223a3a960f0d01697d849b86d91cad815a84915a32ed3635e93a5e7 - # via - # -r requirements.in - # gcp-docuploader + # via gcp-docuploader google-crc32c==1.3.0 \ --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \ --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \ @@ -209,51 +200,38 @@ google-crc32c==1.3.0 \ --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \ --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \ --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3 - # via - # -r requirements.in - # google-resumable-media + # via google-resumable-media google-resumable-media==2.3.3 \ --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 - # via - # -r requirements.in - # google-cloud-storage + # via google-cloud-storage googleapis-common-protos==1.56.3 \ --hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \ --hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461 - # via - # -r requirements.in - # google-api-core + # via google-api-core idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 - # via - # -r requirements.in - # requests + # via requests importlib-metadata==4.8.3 \ --hash=sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e \ --hash=sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668 - # via - # -r requirements.in - # keyring + # via keyring jeepney==0.7.1 \ --hash=sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac \ --hash=sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f - # via - # -r requirements.in - # keyring - # secretstorage + # via secretstorage jinja2==3.0.3 \ --hash=sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 \ --hash=sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7 # via - # -r requirements.in + # -r .kokoro/requirements.in # gcp-releasetool keyring==23.4.1 \ --hash=sha256:17e49fb0d6883c2b4445359434dba95aad84aabb29bbff044ad0ed7100232eca \ --hash=sha256:89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55 # via - # -r requirements.in + # -r .kokoro/requirements.in # gcp-releasetool markupsafe==2.0.1 \ --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \ @@ -325,15 +303,11 @@ markupsafe==2.0.1 \ --hash=sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509 \ --hash=sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51 \ --hash=sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872 - # via - # -r requirements.in - # jinja2 + # via jinja2 packaging==21.3 \ --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ --hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522 - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool protobuf==3.19.5 \ --hash=sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3 \ --hash=sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c \ @@ -361,12 +335,10 @@ protobuf==3.19.5 \ --hash=sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7 \ --hash=sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de # via - # -r requirements.in # gcp-docuploader # gcp-releasetool # google-api-core # google-cloud-storage - # googleapis-common-protos pyasn1==0.4.8 \ --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba @@ -380,71 +352,53 @@ pyasn1-modules==0.2.8 \ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 - # via - # -r requirements.in - # cffi + # via cffi pyjwt==2.4.0 \ --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool pyparsing==3.0.9 \ --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ --hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc - # via - # -r requirements.in - # packaging + # via packaging pyperclip==1.8.2 \ --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57 - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool requests==2.27.1 \ --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d # via - # -r requirements.in # gcp-releasetool # google-api-core # google-cloud-storage rsa==4.9 \ --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21 - # via - # -r requirements.in - # google-auth + # via google-auth secretstorage==3.3.3 \ --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 - # via keyring + # via -r .kokoro/requirements.in six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 # via - # -r requirements.in # gcp-docuploader # google-auth # python-dateutil typing-extensions==4.1.1 \ --hash=sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42 \ --hash=sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2 - # via -r requirements.in -urllib3==1.26.12 \ - --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ - --hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997 - # via - # -r requirements.in - # requests + # via -r .kokoro/requirements.in +urllib3==1.26.15 \ + --hash=sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305 \ + --hash=sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42 + # via requests zipp==3.6.0 \ --hash=sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832 \ --hash=sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc - # via - # -r requirements.in - # importlib-metadata + # via importlib-metadata diff --git a/CHANGELOG.md b/CHANGELOG.md index b05b8a0058..06b2a25e9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## [2.17.0](https://github.com/googleapis/gapic-generator-java/compare/v2.16.0...v2.17.0) (2023-04-11) + + +### Features + +* Add `FunctionalInterface` annotation ([#1515](https://github.com/googleapis/gapic-generator-java/issues/1515)) ([66c0509](https://github.com/googleapis/gapic-generator-java/commit/66c05093b5c56208c3f785e9cf0f5b50f5ad16d4)) +* Add stream method for `ServerStream` ([#1575](https://github.com/googleapis/gapic-generator-java/issues/1575)) ([e38c8ec](https://github.com/googleapis/gapic-generator-java/commit/e38c8ec4c2fca131c91e264c7b3e2cad9243a6e5)) +* Add stream methods for `Page` ([#1425](https://github.com/googleapis/gapic-generator-java/issues/1425)) ([cf0e01a](https://github.com/googleapis/gapic-generator-java/commit/cf0e01a47258c46a1b4431920b8d7cd24ae9b801)) + + +### Bug Fixes + +* Add javadoc for `ApiFutures` ([#1609](https://github.com/googleapis/gapic-generator-java/issues/1609)) ([4bb0a5e](https://github.com/googleapis/gapic-generator-java/commit/4bb0a5e3ce78878841e87a47cd457995ea9ed87e)) +* **deps:** Remove unnecessary auto-value in api-common-java ([#1621](https://github.com/googleapis/gapic-generator-java/issues/1621)) ([ffeb820](https://github.com/googleapis/gapic-generator-java/commit/ffeb820ab5a530ca0f8a91d873b07b4ebaea320b)) + + +### Dependencies + +* Update dependency cryptography to v39.0.2 ([#1592](https://github.com/googleapis/gapic-generator-java/issues/1592)) ([74cf36e](https://github.com/googleapis/gapic-generator-java/commit/74cf36e628a7f0d2e00c3bf1426be9b8089df8af)) +* Update dependency gcp-docuploader to v0.6.5 ([#1593](https://github.com/googleapis/gapic-generator-java/issues/1593)) ([501ee9c](https://github.com/googleapis/gapic-generator-java/commit/501ee9c61bd3f0091bf07d0e60c1dcd2319d1a17)) +* Update dependency google-cloud-core to v2.3.2 ([#1595](https://github.com/googleapis/gapic-generator-java/issues/1595)) ([335a104](https://github.com/googleapis/gapic-generator-java/commit/335a104d4846623a25497f5650ea553d5cca677a)) +* Update dependency net.bytebuddy:byte-buddy to v1.14.3 ([#1567](https://github.com/googleapis/gapic-generator-java/issues/1567)) ([a270ceb](https://github.com/googleapis/gapic-generator-java/commit/a270cebfeb8d1bb2270cef93f19c44935ed980cf)) +* Update dependency org.threeten:threetenbp to v1.6.8 ([#1590](https://github.com/googleapis/gapic-generator-java/issues/1590)) ([26d1c3e](https://github.com/googleapis/gapic-generator-java/commit/26d1c3e511c6fa3a353c3205c06fa8dad6019715)) +* Update dependency org.threeten:threetenbp to v1.6.8 ([#1591](https://github.com/googleapis/gapic-generator-java/issues/1591)) ([c3bed81](https://github.com/googleapis/gapic-generator-java/commit/c3bed81d540db51aaaa6e057133efa96b0f814a8)) +* Update dependency urllib3 to v1.26.15 ([#1596](https://github.com/googleapis/gapic-generator-java/issues/1596)) ([3288fb3](https://github.com/googleapis/gapic-generator-java/commit/3288fb323d957b182bf246540f9f17157afc5285)) +* Update google api dependencies ([#1578](https://github.com/googleapis/gapic-generator-java/issues/1578)) ([c537aba](https://github.com/googleapis/gapic-generator-java/commit/c537aba9d1c6cd4ecdcdc7ce0914a6c605c58b68)) + ## [2.16.0](https://github.com/googleapis/gapic-generator-java/compare/v2.15.3...v2.16.0) (2023-03-28) diff --git a/WORKSPACE b/WORKSPACE index 2b7a0ef65a..b5be2e2b96 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -60,7 +60,7 @@ maven_install( repositories = ["https://repo.maven.apache.org/maven2/"], ) -_gapic_generator_java_version = "2.16.0" # {x-version-update:gapic-generator-java:current} +_gapic_generator_java_version = "2.17.0" # {x-version-update:gapic-generator-java:current} maven_install( artifacts = [ diff --git a/api-common-java/pom.xml b/api-common-java/pom.xml index 24d8a961bc..8a6b11d4f3 100644 --- a/api-common-java/pom.xml +++ b/api-common-java/pom.xml @@ -5,14 +5,14 @@ com.google.api api-common jar - 2.7.0 + 2.8.0 API Common Common utilities for Google APIs in Java com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../gapic-generator-java-pom-parent @@ -51,11 +51,6 @@ auto-value-annotations ${auto-value.version} - - com.google.auto.value - auto-value - ${auto-value.version} - com.google.code.findbugs jsr305 diff --git a/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java b/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java index deb8d48e35..cb0c8b2cb0 100644 --- a/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java +++ b/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java @@ -34,6 +34,7 @@ * *

It is similar to Guava's {@code AsyncFunction}, redeclared so that Guava can be shaded. */ +@FunctionalInterface public interface ApiAsyncFunction { /** * Returns an output Future to use in place of the given input. The output Future need not be diff --git a/api-common-java/src/main/java/com/google/api/core/ApiFunction.java b/api-common-java/src/main/java/com/google/api/core/ApiFunction.java index d03d934930..ca5dfb1806 100644 --- a/api-common-java/src/main/java/com/google/api/core/ApiFunction.java +++ b/api-common-java/src/main/java/com/google/api/core/ApiFunction.java @@ -34,6 +34,7 @@ * *

It is similar to Guava's {@code Function}, redeclared so that Guava can be shaded. */ +@FunctionalInterface public interface ApiFunction { T apply(F input); } diff --git a/api-common-java/src/main/java/com/google/api/core/ApiFutures.java b/api-common-java/src/main/java/com/google/api/core/ApiFutures.java index 2189a5e533..4c263ce845 100644 --- a/api-common-java/src/main/java/com/google/api/core/ApiFutures.java +++ b/api-common-java/src/main/java/com/google/api/core/ApiFutures.java @@ -45,11 +45,16 @@ public final class ApiFutures { private ApiFutures() {} - /* - * @deprecated Use {@linkplain #addCallback(ApiFuture, ApiFutureCallback, Executor) the - * overload that requires an executor}. For identical behavior, pass {@link - * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether - * another executor would be safer. + /** + * Registers a callback to be run when the {@link ApiFuture}'s computation is complete or, if the + * computation is already complete, immediately. + * + * @param future The future attach the callback to + * @param callback The callback to invoke when future is completed + * @deprecated Use {@linkplain #addCallback(ApiFuture, ApiFutureCallback, Executor) the overload + * that requires an executor}. For identical behavior, pass {@link + * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether + * another executor would be safer. */ @Deprecated public static void addCallback( @@ -57,6 +62,18 @@ public static void addCallback( addCallback(future, callback, directExecutor()); } + /** + * Registers a callback to be run when the {@link ApiFuture}'s computation is complete or, if the + * computation is already complete, immediately. + * + *

Note that this method is a delegate of {@link Futures#addCallback(ListenableFuture, + * FutureCallback, Executor)}. + * + * @param future The future attach the callback to + * @param callback The callback to invoke when future is completed + * @param executor The executor to run callback when the future completes + * @see Futures#addCallback(ListenableFuture, FutureCallback, Executor) + */ public static void addCallback( final ApiFuture future, final ApiFutureCallback callback, Executor executor) { Futures.addCallback( @@ -75,11 +92,20 @@ public void onSuccess(V v) { executor); } - /* - * @deprecated Use {@linkplain #catching(ApiFuture, Class, ApiFunction, Executor) the - * overload that requires an executor}. For identical behavior, pass {@link - * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether - * another executor would be safer. + /** + * Returns an {@link ApiFuture} whose result is taken from the given primary input or, if the + * primary input fails with the given exceptionType, from the result provided by the callback. + * + * @param input The primary input {@code ApiFuture} + * @param exceptionType The exception type that triggers use of {@code fallback} + * @param callback The {@link ApiFunction} to be called if input fails with the expected exception + * type + * @return A future whose result is taken either from the given {@code input} or by the {@code + * callback} + * @deprecated Use {@linkplain #catching(ApiFuture, Class, ApiFunction, Executor) the overload + * that requires an executor}. For identical behavior, pass {@link + * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether + * another executor would be safer. */ @Deprecated public static ApiFuture catching( @@ -89,6 +115,22 @@ public static ApiFuture catching( return catching(input, exceptionType, callback, directExecutor()); } + /** + * Returns an {@link ApiFuture} whose result is taken from the given primary input or, if the + * primary input fails with the given exceptionType, from the result provided by the callback. + * + *

Note that this method is a delegate of {@link Futures#catching(ListenableFuture, Class, + * Function, Executor)}. + * + * @param input The primary input {@code ApiFuture} + * @param exceptionType The exception type that triggers use of {@code fallback} + * @param callback The {@link ApiFunction} to be called if input fails with the expected exception + * type + * @param executor The executor that runs {@code fallback} if {@code input} fails + * @return A future whose result is taken either from the given {@code input} or by the {@code + * callback} + * @see Futures#catching(ListenableFuture, Class, Function, Executor) + */ public static ApiFuture catching( ApiFuture input, Class exceptionType, @@ -103,6 +145,22 @@ public static ApiFuture catching( return new ListenableFutureToApiFuture(catchingFuture); } + /** + * Returns a {@link ApiFuture} whose result is taken from the given primary input or, if the + * primary input fails with the given exceptionType, from the result provided by the callback. + * + *

Note that this method is a delegate of {@link Futures#catchingAsync(ListenableFuture, Class, + * AsyncFunction, Executor)} + * + * @param input The primary input {@code ApiFuture} + * @param exceptionType The exception type that triggers use of {@code fallback}. + * @param callback The {@link ApiAsyncFunction} to be called if {@code input} fails with the + * expected * exception type. + * @param executor The executor that runs {@code fallback} if {@code input} fails + * @return A future whose result is taken either from the given {@code input} or by the {@code + * callback} + * @see Futures#catchingAsync(ListenableFuture, Class, AsyncFunction, Executor) + */ @BetaApi public static ApiFuture catchingAsync( ApiFuture input, @@ -124,23 +182,57 @@ public ListenableFuture apply(X exception) throws Exception { return new ListenableFutureToApiFuture<>(catchingFuture); } + /** + * Creates a {@code ApiFuture} which has its value set immediately upon construction. + * + *

Note that this method is a delegate of {@link Futures#immediateFuture(Object)}. + * + * @param value The value set to the {@code ApiFuture} upon construction + * @return A future that holds {@code value} + * @see Futures#immediateFuture(Object) + */ public static ApiFuture immediateFuture(V value) { return new ListenableFutureToApiFuture<>(Futures.immediateFuture(value)); } + /** + * Returns a {@code ApiFuture} which has an exception set immediately upon construction. + * + *

Note that this method is a delegate of {@link Futures#immediateFailedFuture(Throwable)}. + * + * @param throwable The exception set to the {@code ApiFuture} upon construction + * @return A future that holds an exception + * @see Futures#immediateFailedFuture(Throwable) + */ public static ApiFuture immediateFailedFuture(Throwable throwable) { return new ListenableFutureToApiFuture(Futures.immediateFailedFuture(throwable)); } + /** + * Creates a {@code ApiFuture} which is cancelled immediately upon construction, so that {@code + * isCancelled()} always returns {@code true}. + * + *

Note that this method is a delegate of {@link Futures#immediateCancelledFuture()}. + * + * @return A cancelled future + * @see Futures#immediateCancelledFuture() + */ public static ApiFuture immediateCancelledFuture() { return new ListenableFutureToApiFuture(Futures.immediateCancelledFuture()); } - /* - * @deprecated Use {@linkplain #transform(ApiFuture, ApiFunction, Executor) the - * overload that requires an executor}. For identical behavior, pass {@link - * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether - * another executor would be safer. + /** + * Returns a new {@code ApiFuture} whose result is derived from the result of the given {@code + * ApiFuture}. + * + * @param input The future to transform + * @param function A Function to transform the results of the provided future to the results of + * the returned future + * @return A future that holds result of the transformation + * @deprecated Use {@linkplain #transform(ApiFuture, ApiFunction, Executor) the overload that + * requires an executor}. For identical behavior, pass {@link + * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether + * another executor would be safer. */ @Deprecated public static ApiFuture transform( @@ -148,6 +240,20 @@ public static ApiFuture transform( return transform(input, function, directExecutor()); } + /** + * Returns a new {@code ApiFuture} whose result is derived from the result of the given {@code + * ApiFuture}. + * + *

Note that this method is a delegate of {@link Futures#transform(ListenableFuture, Function, + * Executor)}. + * + * @param input The future to transform + * @param function A Function to transform the results of the provided future to the results of + * the returned future. + * @param executor Executor to run the function in. + * @return A future that holds result of the transformation + * @see Futures#transform(ListenableFuture, Function, Executor) + */ public static ApiFuture transform( ApiFuture input, final ApiFunction function, @@ -159,6 +265,18 @@ public static ApiFuture transform( executor)); } + /** + * Creates a new {@code ApiFuture} whose value is a list containing the values of all its input + * futures, if all succeed. + * + *

The list of results is in the same order as the input list. + * + *

Note that this method is a delegate of {@link Futures#allAsList(Iterable)}. + * + * @param futures Futures to combine + * @return A future that provides a list of the results of the component futures + * @see Futures#allAsList(Iterable) + */ public static ApiFuture> allAsList( Iterable> futures) { return new ListenableFutureToApiFuture<>( @@ -172,6 +290,21 @@ public ListenableFuture apply(ApiFuture apiFuture) { }))); } + /** + * Creates a new {@code ApiFuture} whose value is a list containing the values of all its + * successful input futures. The list of results is in the same order as the input list, and if + * any of the provided futures fails or is canceled, its corresponding position will contain + * {@code null} (which is indistinguishable from the future having a successful value of {@code + * null}). + * + *

The list of results is in the same order as the input list. + * + *

Note that this method is a delegate of {@link Futures#successfulAsList(Iterable)}. + * + * @param futures Futures to combine + * @return A future that provides a list of the results of the component futures + * @see Futures#successfulAsList(Iterable) + */ @BetaApi public static ApiFuture> successfulAsList( Iterable> futures) { @@ -186,11 +319,20 @@ public ListenableFuture apply(ApiFuture apiFuture) { }))); } - /* - * @deprecated Use {@linkplain #transformAsync(ApiFuture, ApiFunction, Executor) the - * overload that requires an executor}. For identical behavior, pass {@link - * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether - * another executor would be safer. + /** + * Returns a new {@code ApiFuture} whose result is asynchronously derived from the result of the + * given {@code ApiFuture}. If the given {@code Future} fails, the returned {@code ApiFuture} + * fails with the same exception (and the function is not invoked). + * + * @param input The future to transform + * @param function A function to transform the result of the input future to the result of the + * output future + * @return A future that holds result of the function (if the input succeeded) or the original + * input's failure (if not) + * @deprecated Use {@linkplain #transformAsync(ApiFuture, ApiAsyncFunction, Executor)}, the + * overload that requires an executor. For identical behavior, pass {@link + * com.google.common.util.concurrent.MoreExecutors#directExecutor}, but consider whether + * another executor would be safer. */ @Deprecated public static ApiFuture transformAsync( @@ -198,6 +340,22 @@ public static ApiFuture transformAsync( return transformAsync(input, function, directExecutor()); } + /** + * Returns a new {@code ApiFuture} whose result is asynchronously derived from the result of the + * given {@code ApiFuture}. If the given {@code Future} fails, the returned {@code ApiFuture} + * fails with the same exception (and the function is not invoked). + * + *

Note that this method is a delegate of {@link Futures#transformAsync(ListenableFuture, + * AsyncFunction, Executor)}. + * + * @param input The future to transform + * @param function A function to transform the result of the input future to the result of the + * output future + * @param executor Executor to run the function in. + * @return A future that holds result of the function (if the input succeeded) or the original + * input's failure (if not) + * @see Futures#transformAsync(ListenableFuture, AsyncFunction, Executor) + */ public static ApiFuture transformAsync( ApiFuture input, final ApiAsyncFunction function, Executor executor) { ListenableFuture listenableInput = listenableFutureForApiFuture(input); diff --git a/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java b/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java index 3efa388f5d..2d778c5e95 100644 --- a/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java +++ b/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java @@ -39,6 +39,7 @@ */ public class ValidationException extends IllegalArgumentException { + @FunctionalInterface public interface Supplier { T get(); } diff --git a/coverage-report/README.md b/coverage-report/README.md index 014a2d9f33..1cf62cc1d5 100644 --- a/coverage-report/README.md +++ b/coverage-report/README.md @@ -7,7 +7,7 @@ the metrics is to provide insights into how much of api-common and GAX code is b ### Unit Test Coverage In order to view aggregate unit test coverage of api-common and GAX in `api-common`, `gax-java` and `showcase`: -1. At the root of the repository, run `mvn clean test -DenableTestCoverage`. +1. At the root of the repository, run `mvn clean test -DenableShowcaseTestCoverage`. 2. The metrics can be found at `gapic-generator-java/coverage-report/target/site/jacoco-aggregate/index.html` ![Screenshot 2023-03-23 at 4 29 36 PM](https://user-images.githubusercontent.com/66699525/227346653-b50ec440-71f9-49f4-be21-3976c7f995c7.png) @@ -16,7 +16,7 @@ In order to view aggregate unit test coverage of api-common and GAX in `api-comm In order to view aggregate integration test coverage of api-common and GAX in `api-common`, `gax-java` and `showcase`: -1. At the root of the repository, run `mvn clean verify -DskipUnitTests -DenableTestCoverage -Penable-integration-tests`. +1. At the root of the repository, run `mvn clean verify -DskipUnitTests -DenableShowcaseTestCoverage -Penable-integration-tests`. 2. The metrics can be found at `gapic-generator-java/coverage-report/target/site/jacoco-aggregate/index.html` ![Screenshot 2023-03-23 at 4 33 11 PM](https://user-images.githubusercontent.com/66699525/227348487-f1ba2bb8-7577-4280-a1a1-7aa78e242f12.png) \ No newline at end of file diff --git a/coverage-report/pom.xml b/coverage-report/pom.xml index dd6a0e57fa..45bb13b176 100644 --- a/coverage-report/pom.xml +++ b/coverage-report/pom.xml @@ -31,22 +31,22 @@ com.google.api gax - 2.24.0 + 2.25.0 com.google.api gax-grpc - 2.24.0 + 2.25.0 com.google.api gax-httpjson - 0.109.0 + 0.110.0 com.google.api api-common - 2.7.0 + 2.8.0 diff --git a/gapic-generator-java-bom/pom.xml b/gapic-generator-java-bom/pom.xml index 52fcd20dc0..2d006d6b7b 100644 --- a/gapic-generator-java-bom/pom.xml +++ b/gapic-generator-java-bom/pom.xml @@ -4,7 +4,7 @@ com.google.api gapic-generator-java-bom pom - 2.16.0 + 2.17.0 GAPIC Generator Java BOM BOM for the libraries in gapic-generator-java repository. Users should not @@ -15,7 +15,7 @@ com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../gapic-generator-java-pom-parent @@ -60,56 +60,56 @@ com.google.api api-common - 2.7.0 + 2.8.0 com.google.api gax-bom - 2.24.0 + 2.25.0 pom import com.google.api.grpc grpc-google-common-protos - 2.15.0 + 2.16.0 com.google.api.grpc proto-google-common-protos - 2.15.0 + 2.16.0 com.google.api.grpc proto-google-iam-v1 - 1.10.0 + 1.11.0 com.google.api.grpc proto-google-iam-v2 - 1.10.0 + 1.11.0 com.google.api.grpc proto-google-iam-v2beta - 1.10.0 + 1.11.0 com.google.api.grpc grpc-google-iam-v1 - 1.10.0 + 1.11.0 com.google.api.grpc grpc-google-iam-v2 - 1.10.0 + 1.11.0 com.google.api.grpc grpc-google-iam-v2beta - 1.10.0 + 1.11.0 diff --git a/gapic-generator-java-pom-parent/pom.xml b/gapic-generator-java-pom-parent/pom.xml index cbf629d196..42756a06a1 100644 --- a/gapic-generator-java-pom-parent/pom.xml +++ b/gapic-generator-java-pom-parent/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 pom GAPIC Generator Java POM Parent https://github.com/googleapis/gapic-generator-java @@ -100,7 +100,7 @@ test-coverage - enableTestCoverage + enableShowcaseTestCoverage diff --git a/gapic-generator-java/pom.xml b/gapic-generator-java/pom.xml index 51507b7a27..b72d5cc6da 100644 --- a/gapic-generator-java/pom.xml +++ b/gapic-generator-java/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.google.api gapic-generator-java - 2.16.0 + 2.17.0 GAPIC Generator Java GAPIC generator Java @@ -23,7 +23,7 @@ com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../gapic-generator-java-pom-parent @@ -32,7 +32,7 @@ com.google.api gapic-generator-java-bom - 2.16.0 + 2.17.0 pom import @@ -82,7 +82,7 @@ showcase-sonar-analysis - enableTestCoverage + enableShowcaseTestCoverage diff --git a/gax-java/dependencies.properties b/gax-java/dependencies.properties index 62db47a713..8048768d4a 100644 --- a/gax-java/dependencies.properties +++ b/gax-java/dependencies.properties @@ -8,16 +8,16 @@ # Versions of oneself # {x-version-update-start:gax:current} -version.gax=2.24.0 +version.gax=2.25.0 # {x-version-update-end} # {x-version-update-start:gax:current} -version.gax_grpc=2.24.0 +version.gax_grpc=2.25.0 # {x-version-update-end} # {x-version-update-start:gax:current} -version.gax_bom=2.24.0 +version.gax_bom=2.25.0 # {x-version-update-end} # {x-version-update-start:gax-httpjson:current} -version.gax_httpjson=0.109.0 +version.gax_httpjson=0.110.0 # {x-version-update-end} # Versions for dependencies which actual artifacts differ between Bazel and Gradle. @@ -32,8 +32,8 @@ version.io_grpc=1.54.0 # It should be constructed the following way: # 1) Take full artifact id (including the group and classifier (if any) portions) and remove version portion. # 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.14.3 -maven.com_google_api_grpc_grpc_google_common_protos=com.google.api.grpc:grpc-google-common-protos:2.14.3 +maven.com_google_api_grpc_proto_google_common_protos=com.google.api.grpc:proto-google-common-protos:2.15.0 +maven.com_google_api_grpc_grpc_google_common_protos=com.google.api.grpc:grpc-google-common-protos:2.15.0 maven.com_google_auth_google_auth_library_oauth2_http=com.google.auth:google-auth-library-oauth2-http:1.16.0 maven.com_google_auth_google_auth_library_credentials=com.google.auth:google-auth-library-credentials:1.16.0 maven.io_opencensus_opencensus_api=io.opencensus:opencensus-api:0.31.1 @@ -63,10 +63,10 @@ maven.com_google_errorprone_error_prone_annotations=com.google.errorprone:error_ 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.10.1 maven.com_google_auto_value_auto_value_annotations=com.google.auto.value:auto-value-annotations:1.10.1 -maven.com_google_api_api_common=com.google.api:api-common:2.6.3 -maven.org_threeten_threetenbp=org.threeten:threetenbp:1.6.7 -maven.com_google_api_grpc_grpc_google_iam_v1=com.google.api.grpc:grpc-google-iam-v1:1.9.3 -maven.com_google_api_grpc_proto_google_iam_v1=com.google.api.grpc:proto-google-iam-v1:1.9.3 +maven.com_google_api_api_common=com.google.api:api-common:2.7.0 +maven.org_threeten_threetenbp=org.threeten:threetenbp:1.6.8 +maven.com_google_api_grpc_grpc_google_iam_v1=com.google.api.grpc:grpc-google-iam-v1:1.10.0 +maven.com_google_api_grpc_proto_google_iam_v1=com.google.api.grpc:proto-google-iam-v1:1.10.0 maven.com_google_http_client_google_http_client=com.google.http-client:google-http-client:1.43.1 maven.com_google_http_client_google_http_client_gson=com.google.http-client:google-http-client-gson:1.43.1 maven.org_codehaus_mojo_animal_sniffer_annotations=org.codehaus.mojo:animal-sniffer-annotations:1.23 @@ -79,5 +79,5 @@ maven.org_mockito_mockito_core=org.mockito:mockito-core:2.28.2 maven.org_hamcrest_hamcrest_core=org.hamcrest:hamcrest-core:1.3 maven.com_google_truth_truth=com.google.truth:truth:1.1.3 maven.com_googlecode_java_diff_utils_diffutils=com.googlecode.java-diff-utils:diffutils:1.3.0 -maven.net_bytebuddy_byte_buddy=net.bytebuddy:byte-buddy:1.14.2 +maven.net_bytebuddy_byte_buddy=net.bytebuddy:byte-buddy:1.14.3 maven.org_objenesis_objenesis=org.objenesis:objenesis:2.6 diff --git a/gax-java/gax-bom/pom.xml b/gax-java/gax-bom/pom.xml index 13c42153ae..8acbf1b91e 100644 --- a/gax-java/gax-bom/pom.xml +++ b/gax-java/gax-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.api gax-bom - 2.24.0 + 2.25.0 pom GAX (Google Api eXtensions) for Java (BOM) Google Api eXtensions for Java (BOM) @@ -43,55 +43,55 @@ com.google.api gax - 2.24.0 + 2.25.0 com.google.api gax - 2.24.0 + 2.25.0 test-jar testlib com.google.api gax - 2.24.0 + 2.25.0 testlib com.google.api gax-grpc - 2.24.0 + 2.25.0 com.google.api gax-grpc - 2.24.0 + 2.25.0 test-jar testlib com.google.api gax-grpc - 2.24.0 + 2.25.0 testlib com.google.api gax-httpjson - 0.109.0 + 0.110.0 com.google.api gax-httpjson - 0.109.0 + 0.110.0 test-jar testlib com.google.api gax-httpjson - 0.109.0 + 0.110.0 testlib diff --git a/gax-java/gax-grpc/pom.xml b/gax-java/gax-grpc/pom.xml index e02f829009..f3c81efcc4 100644 --- a/gax-java/gax-grpc/pom.xml +++ b/gax-java/gax-grpc/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gax-grpc - 2.24.0 + 2.25.0 jar GAX (Google Api eXtensions) for Java (gRPC) Google Api eXtensions for Java (gRPC) @@ -11,7 +11,7 @@ com.google.api gax-parent - 2.24.0 + 2.25.0 diff --git a/gax-java/gax-httpjson/pom.xml b/gax-java/gax-httpjson/pom.xml index 700bc365b5..6dc3c017b1 100644 --- a/gax-java/gax-httpjson/pom.xml +++ b/gax-java/gax-httpjson/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gax-httpjson - 0.109.0 + 0.110.0 jar GAX (Google Api eXtensions) for Java (HTTP JSON) Google Api eXtensions for Java (HTTP JSON) @@ -11,7 +11,7 @@ com.google.api gax-parent - 2.24.0 + 2.25.0 diff --git a/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java b/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java index 024e8d3d1e..aa42604596 100644 --- a/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java +++ b/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java @@ -33,6 +33,7 @@ * A functional interface to be implemented for each request message to extract specific fields from * it. For advanced usage only. */ +@FunctionalInterface public interface FieldsExtractor { ParamsT extract(RequestT request); } diff --git a/gax-java/gax/clirr-ignored-differences.xml b/gax-java/gax/clirr-ignored-differences.xml new file mode 100644 index 0000000000..dcc0be350d --- /dev/null +++ b/gax-java/gax/clirr-ignored-differences.xml @@ -0,0 +1,10 @@ + + + + + + 7012 + com/google/api/gax/paging/Page + * stream*(*) + + diff --git a/gax-java/gax/pom.xml b/gax-java/gax/pom.xml index 1fdfdb691f..88928168dc 100644 --- a/gax-java/gax/pom.xml +++ b/gax-java/gax/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gax - 2.24.0 + 2.25.0 jar GAX (Google Api eXtensions) for Java (Core) Google Api eXtensions for Java (Core) @@ -11,7 +11,7 @@ com.google.api gax-parent - 2.24.0 + 2.25.0 diff --git a/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java b/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java index abacde970c..de1cbc0ab9 100644 --- a/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java +++ b/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java @@ -29,6 +29,9 @@ */ package com.google.api.gax.paging; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + /** * A Page object wraps an API list method response. * @@ -52,12 +55,26 @@ public interface Page { Page getNextPage(); /** - * Returns an iterable that traverses all of the elements of the underlying data source. The data - * is fetched lazily page by page, where each page may contain multiple elements. A new page is + * Returns an iterable that traverses all the elements of the underlying data source. The data is + * fetched lazily page by page, where each page may contain multiple elements. A new page is * fetched whenever the elements of any particular page are exhausted. */ Iterable iterateAll(); /** Returns an iterable over the elements in this page. */ Iterable getValues(); + + /** + * Returns a stream that traverses all the elements of the underlying data source. The data is + * fetched lazily page by page, where each page may contain multiple elements. A new page is + * fetched whenever the elements of any particular page are exhausted. + */ + default Stream streamAll() { + return StreamSupport.stream(iterateAll().spliterator(), false); + } + + /** Returns a stream over the elements in this page. */ + default Stream streamValues() { + return StreamSupport.stream(getValues().spliterator(), false); + } } diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java index c973675881..38efb2da37 100644 --- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java +++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java @@ -100,15 +100,7 @@ public void call(final BidiStreamObserver bidiObserver) { /** Listens to server responses and send requests when the network is free. */ public void call( final BidiStreamObserver bidiObserver, ApiCallContext context) { - internalCall( - bidiObserver, - new ClientStreamReadyObserver() { - @Override - public void onReady(ClientStream stream) { - bidiObserver.onReady(stream); - } - }, - context); + internalCall(bidiObserver, bidiObserver, context); } /** @@ -183,11 +175,8 @@ public ClientStream splitCall( ResponseObserver responseObserver, ApiCallContext context) { return internalCall( responseObserver, - new ClientStreamReadyObserver() { - @Override - public void onReady(ClientStream stream) { - // no op - } + stream -> { + // no op }, context); } diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java index 0347524512..d0c9f32d5b 100644 --- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java +++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java @@ -30,6 +30,7 @@ package com.google.api.gax.rpc; /** A callback used to report that the {@link ClientStream} is ready to send more messages. */ +@FunctionalInterface public interface ClientStreamReadyObserver { void onReady(ClientStream stream); } diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java index 518c68523c..d1f9848631 100644 --- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java +++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java @@ -31,6 +31,8 @@ import com.google.api.core.InternalApi; import java.util.Iterator; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; import javax.annotation.Nonnull; /** @@ -89,6 +91,15 @@ public Iterator iterator() { return iterator; } + /** + * Returns a sequential {@code Stream} with server responses as its source. + * + * @return a sequential {@code Stream} over the elements in server responses + */ + public Stream stream() { + return StreamSupport.stream(this.spliterator(), false); + } + /** * Returns true if the next call to the iterator's hasNext() or next() is guaranteed to be * nonblocking. diff --git a/gax-java/gax/src/test/java/com/google/api/gax/rpc/PagingTest.java b/gax-java/gax/src/test/java/com/google/api/gax/rpc/PagingTest.java index e1655b6bf7..f7f02c0f74 100644 --- a/gax-java/gax/src/test/java/com/google/api/gax/rpc/PagingTest.java +++ b/gax-java/gax/src/test/java/com/google/api/gax/rpc/PagingTest.java @@ -133,6 +133,54 @@ public void pagedByPage() { Truth.assertThat(requestCapture.getAllValues()).containsExactly(0, 2, 4).inOrder(); } + @Test + public void streamValues_streamIsCorrectPerPage() { + ArgumentCaptor requestCapture = ArgumentCaptor.forClass(Integer.class); + Mockito.when(callIntList.futureCall(requestCapture.capture(), Mockito.any())) + .thenReturn(ApiFutures.immediateFuture(Arrays.asList(0, 1, 2))) + .thenReturn(ApiFutures.immediateFuture(Arrays.asList(3, 4))) + .thenReturn(ApiFutures.immediateFuture(Collections.emptyList())); + + Page page = + FakeCallableFactory.createPagedCallable( + callIntList, + PagedCallSettings.newBuilder(new ListIntegersPagedResponseFactory()).build(), + clientContext) + .call(0) + .getPage(); + + Truth.assertThat(page.streamValues().count()).isEqualTo(3); + Truth.assertThat(page.hasNextPage()).isTrue(); + + page = page.getNextPage(); + Truth.assertThat(page.streamValues().count()).isEqualTo(2); + Truth.assertThat(page.hasNextPage()).isTrue(); + + page = page.getNextPage(); + Truth.assertThat(page.streamValues().count()).isEqualTo(0); + Truth.assertThat(page.hasNextPage()).isFalse(); + Truth.assertThat(page.getNextPage()).isNull(); + } + + @Test + public void streamAll_streamIsCorrectInAllPages() { + ArgumentCaptor requestCapture = ArgumentCaptor.forClass(Integer.class); + Mockito.when(callIntList.futureCall(requestCapture.capture(), Mockito.any())) + .thenReturn(ApiFutures.immediateFuture(Arrays.asList(0, 1, 2))) + .thenReturn(ApiFutures.immediateFuture(Arrays.asList(3, 4))) + .thenReturn(ApiFutures.immediateFuture(Collections.emptyList())); + + Page page = + FakeCallableFactory.createPagedCallable( + callIntList, + PagedCallSettings.newBuilder(new ListIntegersPagedResponseFactory()).build(), + clientContext) + .call(0) + .getPage(); + + Truth.assertThat(page.streamAll().count()).isEqualTo(5); + } + @Test public void pagedByFixedSizeCollection() { ArgumentCaptor requestCapture = ArgumentCaptor.forClass(Integer.class); diff --git a/gax-java/gax/src/test/java/com/google/api/gax/rpc/ServerStreamTest.java b/gax-java/gax/src/test/java/com/google/api/gax/rpc/ServerStreamTest.java index b0cdc30ce1..087c64ca48 100644 --- a/gax-java/gax/src/test/java/com/google/api/gax/rpc/ServerStreamTest.java +++ b/gax-java/gax/src/test/java/com/google/api/gax/rpc/ServerStreamTest.java @@ -41,6 +41,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -109,6 +110,31 @@ public List call() { Truth.assertThat(results).containsExactly(0, 1, 2, 3, 4); } + @Test + public void testMultipleItemStreamMethod() throws Exception { + Future producerFuture = + executor.submit( + () -> { + for (int i = 0; i < 5; i++) { + int requestCount = controller.popLastPull(); + + Truth.assertWithMessage("ServerStream should request one item at a time") + .that(requestCount) + .isEqualTo(1); + + stream.observer().onResponse(i); + } + stream.observer().onComplete(); + return null; + }); + Future> consumerFuture = + executor.submit(() -> stream.stream().collect(Collectors.toList())); + + producerFuture.get(60, TimeUnit.SECONDS); + List results = consumerFuture.get(); + Truth.assertThat(results).containsExactly(0, 1, 2, 3, 4); + } + @Test public void testEarlyTermination() throws Exception { Future taskFuture = diff --git a/gax-java/pom.xml b/gax-java/pom.xml index 0fe0fcf80a..605bf19d26 100644 --- a/gax-java/pom.xml +++ b/gax-java/pom.xml @@ -4,14 +4,14 @@ com.google.api gax-parent pom - 2.24.0 + 2.25.0 GAX (Google Api eXtensions) for Java (Parent) Google Api eXtensions for Java (Parent) com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../gapic-generator-java-pom-parent @@ -51,7 +51,7 @@ com.google.api api-common - 2.7.0 + 2.8.0 com.google.auth @@ -63,7 +63,7 @@ org.threeten threetenbp - 1.6.7 + 1.6.8 com.google.code.findbugs @@ -109,24 +109,24 @@ com.google.api gax - 2.24.0 + 2.25.0 com.google.api gax - 2.24.0 + 2.25.0 test-jar testlib com.google.api.grpc proto-google-common-protos - 2.15.0 + 2.16.0 com.google.api.grpc grpc-google-common-protos - 2.15.0 + 2.16.0 io.grpc diff --git a/java-common-protos/.kokoro/build.bat b/java-common-protos/.kokoro/build.bat deleted file mode 100644 index 067cf4a4c4..0000000000 --- a/java-common-protos/.kokoro/build.bat +++ /dev/null @@ -1,18 +0,0 @@ -:: Copyright 2022 Google LLC -:: -:: 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. -:: Github action job to test core java library features on -:: downstream client libraries before they are released. -:: See documentation in type-shell-output.bat - -"C:\Program Files\Git\bin\bash.exe" %~dp0build.sh diff --git a/java-common-protos/.kokoro/build.sh b/java-common-protos/.kokoro/build.sh deleted file mode 100755 index 2740275207..0000000000 --- a/java-common-protos/.kokoro/build.sh +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# 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. - -set -eo pipefail - -## Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo -cd ${scriptDir}/.. - -# include common functions -source ${scriptDir}/common.sh - -# Print out Maven & Java version -mvn -version -echo ${JOB_TYPE} - -# attempt to install 3 times with exponential backoff (starting with 10 seconds) -retry_with_backoff 3 10 \ - mvn install -B -V -ntp \ - -DskipTests=true \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -Dmaven.javadoc.skip=true \ - -Dgcloud.download.skip=true \ - -T 1C - -# if GOOGLE_APPLICATION_CREDENTIALS is specified as a relative path, prepend Kokoro root directory onto it -if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then - export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS}) -fi - -RETURN_CODE=0 -set +e - -case ${JOB_TYPE} in -test) - mvn test -B -ntp -Dclirr.skip=true -Denforcer.skip=true - RETURN_CODE=$? - ;; -lint) - mvn com.coveo:fmt-maven-plugin:check -B -ntp - RETURN_CODE=$? - ;; -javadoc) - mvn javadoc:javadoc javadoc:test-javadoc -B -ntp - RETURN_CODE=$? - ;; -integration) - mvn -B ${INTEGRATION_TEST_ARGS} \ - -ntp \ - -Penable-integration-tests \ - -DtrimStackTrace=false \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -fae \ - verify - RETURN_CODE=$? - ;; -graalvm) - # Run Unit and Integration Tests with Native Image - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test - RETURN_CODE=$? - ;; -graalvm17) - # Run Unit and Integration Tests with Native Image - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test - RETURN_CODE=$? - ;; -samples) - SAMPLES_DIR=samples - # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. - if [[ ! -z ${KOKORO_GITHUB_PULL_REQUEST_NUMBER} ]] - then - SAMPLES_DIR=samples/snapshot - fi - - if [[ -f ${SAMPLES_DIR}/pom.xml ]] - then - for FILE in ${KOKORO_GFILE_DIR}/secret_manager/*-samples-secrets; do - [[ -f "$FILE" ]] || continue - source "$FILE" - done - - pushd ${SAMPLES_DIR} - mvn -B \ - -ntp \ - -DtrimStackTrace=false \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -fae \ - verify - RETURN_CODE=$? - popd - else - echo "no sample pom.xml found - skipping sample tests" - fi - ;; -clirr) - mvn -B -ntp -Denforcer.skip=true clirr:check - RETURN_CODE=$? - ;; -*) - ;; -esac - -if [ "${REPORT_COVERAGE}" == "true" ] -then - bash ${KOKORO_GFILE_DIR}/codecov.sh -fi - -# fix output location of logs -bash .kokoro/coerce_logs.sh - -if [[ "${ENABLE_FLAKYBOT}" == "true" ]] -then - chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/flakybot - ${KOKORO_GFILE_DIR}/linux_amd64/flakybot -repo=googleapis/java-common-protos -fi - -echo "exiting with ${RETURN_CODE}" -exit ${RETURN_CODE} diff --git a/java-common-protos/.kokoro/coerce_logs.sh b/java-common-protos/.kokoro/coerce_logs.sh deleted file mode 100755 index 46edbf7f2f..0000000000 --- a/java-common-protos/.kokoro/coerce_logs.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# 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. - -# This script finds and moves sponge logs so that they can be found by placer -# and are not flagged as flaky by sponge. - -set -eo pipefail - -## Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo -cd ${scriptDir}/.. - -job=$(basename ${KOKORO_JOB_NAME}) - -echo "coercing sponge logs..." -for xml in `find . -name *-sponge_log.xml` -do - class=$(basename ${xml} | cut -d- -f2) - dir=$(dirname ${xml})/${job}/${class} - text=$(dirname ${xml})/${class}-sponge_log.txt - mkdir -p ${dir} - mv ${xml} ${dir}/sponge_log.xml - mv ${text} ${dir}/sponge_log.txt -done diff --git a/java-common-protos/.kokoro/common.cfg b/java-common-protos/.kokoro/common.cfg deleted file mode 100644 index 8b2d91d032..0000000000 --- a/java-common-protos/.kokoro/common.cfg +++ /dev/null @@ -1,13 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Download trampoline resources. These will be in ${KOKORO_GFILE_DIR} -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# All builds use the trampoline script to run in docker. -build_file: "java-common-protos/.kokoro/trampoline.sh" - -# Tell the trampoline which build file to use. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/build.sh" -} diff --git a/java-common-protos/.kokoro/common.sh b/java-common-protos/.kokoro/common.sh deleted file mode 100644 index f8f957af11..0000000000 --- a/java-common-protos/.kokoro/common.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# Copyright 2020 Google LLC -# -# 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. - -function retry_with_backoff { - attempts_left=$1 - sleep_seconds=$2 - shift 2 - command=$@ - - - # store current flag state - flags=$- - - # allow a failures to continue - set +e - ${command} - exit_code=$? - - # restore "e" flag - if [[ ${flags} =~ e ]] - then set -e - else set +e - fi - - if [[ $exit_code == 0 ]] - then - return 0 - fi - - # failure - if [[ ${attempts_left} > 0 ]] - then - echo "failure (${exit_code}), sleeping ${sleep_seconds}..." - sleep ${sleep_seconds} - new_attempts=$((${attempts_left} - 1)) - new_sleep=$((${sleep_seconds} * 2)) - retry_with_backoff ${new_attempts} ${new_sleep} ${command} - fi - - return $exit_code -} - -## Helper functionss -function now() { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n'; } -function msg() { println "$*" >&2; } -function println() { printf '%s\n' "$(now) $*"; } - -## Helper comment to trigger updated repo dependency release \ No newline at end of file diff --git a/java-common-protos/.kokoro/continuous/common.cfg b/java-common-protos/.kokoro/continuous/common.cfg deleted file mode 100644 index d8e6ffc95f..0000000000 --- a/java-common-protos/.kokoro/continuous/common.cfg +++ /dev/null @@ -1,25 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - regex: "**/*sponge_log.txt" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-common-protos/.kokoro/trampoline.sh" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/build.sh" -} - -env_vars: { - key: "JOB_TYPE" - value: "test" -} diff --git a/java-common-protos/.kokoro/continuous/java8.cfg b/java-common-protos/.kokoro/continuous/java8.cfg deleted file mode 100644 index 495cc7bacd..0000000000 --- a/java-common-protos/.kokoro/continuous/java8.cfg +++ /dev/null @@ -1,12 +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/java8" -} - -env_vars: { - key: "REPORT_COVERAGE" - value: "true" -} diff --git a/java-common-protos/.kokoro/nightly/common.cfg b/java-common-protos/.kokoro/nightly/common.cfg deleted file mode 100644 index d8e6ffc95f..0000000000 --- a/java-common-protos/.kokoro/nightly/common.cfg +++ /dev/null @@ -1,25 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - regex: "**/*sponge_log.txt" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-common-protos/.kokoro/trampoline.sh" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/build.sh" -} - -env_vars: { - key: "JOB_TYPE" - value: "test" -} diff --git a/java-common-protos/.kokoro/nightly/integration.cfg b/java-common-protos/.kokoro/nightly/integration.cfg deleted file mode 100644 index a2907a257b..0000000000 --- a/java-common-protos/.kokoro/nightly/integration.cfg +++ /dev/null @@ -1,37 +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/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "integration" -} -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "true" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} diff --git a/java-common-protos/.kokoro/nightly/java11-integration.cfg b/java-common-protos/.kokoro/nightly/java11-integration.cfg deleted file mode 100644 index 58049cc38f..0000000000 --- a/java-common-protos/.kokoro/nightly/java11-integration.cfg +++ /dev/null @@ -1,37 +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-public-resources/java11014" -} - -env_vars: { - key: "JOB_TYPE" - value: "integration" -} -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "true" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} diff --git a/java-common-protos/.kokoro/nightly/java11.cfg b/java-common-protos/.kokoro/nightly/java11.cfg deleted file mode 100644 index 709f2b4c73..0000000000 --- a/java-common-protos/.kokoro/nightly/java11.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/java11" -} diff --git a/java-common-protos/.kokoro/nightly/java7.cfg b/java-common-protos/.kokoro/nightly/java7.cfg deleted file mode 100644 index cb24f44eea..0000000000 --- a/java-common-protos/.kokoro/nightly/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/java-common-protos/.kokoro/nightly/java8-osx.cfg b/java-common-protos/.kokoro/nightly/java8-osx.cfg deleted file mode 100644 index a2205705c0..0000000000 --- a/java-common-protos/.kokoro/nightly/java8-osx.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-common-protos/.kokoro/build.sh" diff --git a/java-common-protos/.kokoro/nightly/java8-win.cfg b/java-common-protos/.kokoro/nightly/java8-win.cfg deleted file mode 100644 index 55d4ada741..0000000000 --- a/java-common-protos/.kokoro/nightly/java8-win.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-common-protos/.kokoro/build.bat" diff --git a/java-common-protos/.kokoro/nightly/java8.cfg b/java-common-protos/.kokoro/nightly/java8.cfg deleted file mode 100644 index 495cc7bacd..0000000000 --- a/java-common-protos/.kokoro/nightly/java8.cfg +++ /dev/null @@ -1,12 +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/java8" -} - -env_vars: { - key: "REPORT_COVERAGE" - value: "true" -} diff --git a/java-common-protos/.kokoro/nightly/samples.cfg b/java-common-protos/.kokoro/nightly/samples.cfg deleted file mode 100644 index 9761fd8648..0000000000 --- a/java-common-protos/.kokoro/nightly/samples.cfg +++ /dev/null @@ -1,38 +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/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "samples" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "true" -} diff --git a/java-common-protos/.kokoro/populate-secrets.sh b/java-common-protos/.kokoro/populate-secrets.sh deleted file mode 100755 index f52514257e..0000000000 --- a/java-common-protos/.kokoro/populate-secrets.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -# Copyright 2020 Google LLC. -# -# 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. - -set -eo pipefail - -function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;} -function msg { println "$*" >&2 ;} -function println { printf '%s\n' "$(now) $*" ;} - - -# Populates requested secrets set in SECRET_MANAGER_KEYS from service account: -# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com -SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" -msg "Creating folder on disk for secrets: ${SECRET_LOCATION}" -mkdir -p ${SECRET_LOCATION} -for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") -do - msg "Retrieving secret ${key}" - docker run --entrypoint=gcloud \ - --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ - gcr.io/google.com/cloudsdktool/cloud-sdk \ - secrets versions access latest \ - --project cloud-devrel-kokoro-resources \ - --secret ${key} > \ - "${SECRET_LOCATION}/${key}" - if [[ $? == 0 ]]; then - msg "Secret written to ${SECRET_LOCATION}/${key}" - else - msg "Error retrieving secret ${key}" - fi -done diff --git a/java-common-protos/.kokoro/presubmit/clirr.cfg b/java-common-protos/.kokoro/presubmit/clirr.cfg deleted file mode 100644 index ec572442e2..0000000000 --- a/java-common-protos/.kokoro/presubmit/clirr.cfg +++ /dev/null @@ -1,13 +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/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "clirr" -} \ No newline at end of file diff --git a/java-common-protos/.kokoro/presubmit/common.cfg b/java-common-protos/.kokoro/presubmit/common.cfg deleted file mode 100644 index 28a4e14b40..0000000000 --- a/java-common-protos/.kokoro/presubmit/common.cfg +++ /dev/null @@ -1,34 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - regex: "**/*sponge_log.txt" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-common-protos/.kokoro/trampoline.sh" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/build.sh" -} - -env_vars: { - key: "JOB_TYPE" - value: "test" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} diff --git a/java-common-protos/.kokoro/presubmit/dependencies.cfg b/java-common-protos/.kokoro/presubmit/dependencies.cfg deleted file mode 100644 index 5d388a2c58..0000000000 --- a/java-common-protos/.kokoro/presubmit/dependencies.cfg +++ /dev/null @@ -1,12 +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/java8" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/dependencies.sh" -} diff --git a/java-common-protos/.kokoro/presubmit/graalvm-native-17.cfg b/java-common-protos/.kokoro/presubmit/graalvm-native-17.cfg deleted file mode 100644 index a3f7fb9d49..0000000000 --- a/java-common-protos/.kokoro/presubmit/graalvm-native-17.cfg +++ /dev/null @@ -1,33 +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/graalvm17" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm17" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} \ No newline at end of file diff --git a/java-common-protos/.kokoro/presubmit/graalvm-native.cfg b/java-common-protos/.kokoro/presubmit/graalvm-native.cfg deleted file mode 100644 index 4c7225ec92..0000000000 --- a/java-common-protos/.kokoro/presubmit/graalvm-native.cfg +++ /dev/null @@ -1,33 +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/graalvm" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} diff --git a/java-common-protos/.kokoro/presubmit/integration.cfg b/java-common-protos/.kokoro/presubmit/integration.cfg deleted file mode 100644 index dded67a9d5..0000000000 --- a/java-common-protos/.kokoro/presubmit/integration.cfg +++ /dev/null @@ -1,33 +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/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "integration" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} diff --git a/java-common-protos/.kokoro/presubmit/java11.cfg b/java-common-protos/.kokoro/presubmit/java11.cfg deleted file mode 100644 index 709f2b4c73..0000000000 --- a/java-common-protos/.kokoro/presubmit/java11.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/java11" -} diff --git a/java-common-protos/.kokoro/presubmit/java7.cfg b/java-common-protos/.kokoro/presubmit/java7.cfg deleted file mode 100644 index cb24f44eea..0000000000 --- a/java-common-protos/.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/java-common-protos/.kokoro/presubmit/java8-osx.cfg b/java-common-protos/.kokoro/presubmit/java8-osx.cfg deleted file mode 100644 index a2205705c0..0000000000 --- a/java-common-protos/.kokoro/presubmit/java8-osx.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-common-protos/.kokoro/build.sh" diff --git a/java-common-protos/.kokoro/presubmit/java8-win.cfg b/java-common-protos/.kokoro/presubmit/java8-win.cfg deleted file mode 100644 index 55d4ada741..0000000000 --- a/java-common-protos/.kokoro/presubmit/java8-win.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-common-protos/.kokoro/build.bat" diff --git a/java-common-protos/.kokoro/presubmit/java8.cfg b/java-common-protos/.kokoro/presubmit/java8.cfg deleted file mode 100644 index 495cc7bacd..0000000000 --- a/java-common-protos/.kokoro/presubmit/java8.cfg +++ /dev/null @@ -1,12 +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/java8" -} - -env_vars: { - key: "REPORT_COVERAGE" - value: "true" -} diff --git a/java-common-protos/.kokoro/presubmit/linkage-monitor.cfg b/java-common-protos/.kokoro/presubmit/linkage-monitor.cfg deleted file mode 100644 index 1ed21488fa..0000000000 --- a/java-common-protos/.kokoro/presubmit/linkage-monitor.cfg +++ /dev/null @@ -1,12 +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/java8" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/linkage-monitor.sh" -} \ No newline at end of file diff --git a/java-common-protos/.kokoro/presubmit/lint.cfg b/java-common-protos/.kokoro/presubmit/lint.cfg deleted file mode 100644 index 6d323c8ae7..0000000000 --- a/java-common-protos/.kokoro/presubmit/lint.cfg +++ /dev/null @@ -1,13 +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/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "lint" -} \ No newline at end of file diff --git a/java-common-protos/.kokoro/presubmit/samples.cfg b/java-common-protos/.kokoro/presubmit/samples.cfg deleted file mode 100644 index 01e0960047..0000000000 --- a/java-common-protos/.kokoro/presubmit/samples.cfg +++ /dev/null @@ -1,33 +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/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "samples" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" -} \ No newline at end of file diff --git a/java-common-protos/.kokoro/release/bump_snapshot.cfg b/java-common-protos/.kokoro/release/bump_snapshot.cfg deleted file mode 100644 index 3de8138d9c..0000000000 --- a/java-common-protos/.kokoro/release/bump_snapshot.cfg +++ /dev/null @@ -1,53 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-common-protos/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/release/bump_snapshot.sh" -} - -# tokens used by release-please to keep an up-to-date release PR. -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-key-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-token-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-url-release-please" - } - } -} diff --git a/java-common-protos/.kokoro/release/common.cfg b/java-common-protos/.kokoro/release/common.cfg deleted file mode 100644 index e676934592..0000000000 --- a/java-common-protos/.kokoro/release/common.cfg +++ /dev/null @@ -1,49 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-common-protos/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-keyring" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-passphrase" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-pubkeyring" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "sonatype-credentials" - } - } -} diff --git a/java-common-protos/.kokoro/release/common.sh b/java-common-protos/.kokoro/release/common.sh deleted file mode 100755 index 7f78ee414f..0000000000 --- a/java-common-protos/.kokoro/release/common.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# 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. - -set -eo pipefail - -# Get secrets from keystore and set and environment variables -setup_environment_secrets() { - export GPG_PASSPHRASE=$(cat ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-passphrase) - export GPG_TTY=$(tty) - export GPG_HOMEDIR=/gpg - mkdir $GPG_HOMEDIR - mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-pubkeyring $GPG_HOMEDIR/pubring.gpg - mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-keyring $GPG_HOMEDIR/secring.gpg - export SONATYPE_USERNAME=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f1 -d'|') - export SONATYPE_PASSWORD=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f2 -d'|') -} - -create_settings_xml_file() { - echo " - - - ossrh - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - - sonatype-nexus-staging - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - - sonatype-nexus-snapshots - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - -" > $1 -} \ No newline at end of file diff --git a/java-common-protos/.kokoro/release/drop.cfg b/java-common-protos/.kokoro/release/drop.cfg deleted file mode 100644 index 1faccd52ec..0000000000 --- a/java-common-protos/.kokoro/release/drop.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/release/drop.sh" -} diff --git a/java-common-protos/.kokoro/release/drop.sh b/java-common-protos/.kokoro/release/drop.sh deleted file mode 100755 index 742ec1a886..0000000000 --- a/java-common-protos/.kokoro/release/drop.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# 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. - -set -eo pipefail - -# STAGING_REPOSITORY_ID must be set -if [ -z "${STAGING_REPOSITORY_ID}" ]; then - echo "Missing STAGING_REPOSITORY_ID environment variable" - exit 1 -fi - -source $(dirname "$0")/common.sh -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn nexus-staging:drop -B \ - --settings=settings.xml \ - -DstagingRepositoryId=${STAGING_REPOSITORY_ID} diff --git a/java-common-protos/.kokoro/release/promote.cfg b/java-common-protos/.kokoro/release/promote.cfg deleted file mode 100644 index 240e75aa5d..0000000000 --- a/java-common-protos/.kokoro/release/promote.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/release/promote.sh" -} diff --git a/java-common-protos/.kokoro/release/promote.sh b/java-common-protos/.kokoro/release/promote.sh deleted file mode 100755 index 3cac3d8a97..0000000000 --- a/java-common-protos/.kokoro/release/promote.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# 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. - -set -eo pipefail - -# STAGING_REPOSITORY_ID must be set -if [ -z "${STAGING_REPOSITORY_ID}" ]; then - echo "Missing STAGING_REPOSITORY_ID environment variable" - exit 1 -fi - -source $(dirname "$0")/common.sh - -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn nexus-staging:release -B \ - -DperformRelease=true \ - --settings=settings.xml \ - -DstagingRepositoryId=${STAGING_REPOSITORY_ID} diff --git a/java-common-protos/.kokoro/release/publish_javadoc.cfg b/java-common-protos/.kokoro/release/publish_javadoc.cfg deleted file mode 100644 index 295aa525a0..0000000000 --- a/java-common-protos/.kokoro/release/publish_javadoc.cfg +++ /dev/null @@ -1,23 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/doc-templates/" - -env_vars: { - key: "STAGING_BUCKET" - value: "docs-staging" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/release/publish_javadoc.sh" -} - - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "docuploader_service_account" - } - } -} diff --git a/java-common-protos/.kokoro/release/publish_javadoc.sh b/java-common-protos/.kokoro/release/publish_javadoc.sh deleted file mode 100755 index 9d4ce4ae34..0000000000 --- a/java-common-protos/.kokoro/release/publish_javadoc.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# 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. - -set -eo pipefail - -if [[ -z "${CREDENTIALS}" ]]; then - CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account -fi - -if [[ -z "${STAGING_BUCKET}" ]]; then - echo "Need to set STAGING_BUCKET environment variable" - exit 1 -fi - -# work from the git root directory -pushd $(dirname "$0")/../../ - -# install docuploader package -python3 -m pip install --require-hashes -r .kokoro/requirements.txt - -# compile all packages -mvn clean install -B -q -DskipTests=true - -export NAME=proto-google-common-protos -export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) - -# build the docs -mvn site -B -q - -pushd target/site/apidocs - -# create metadata -python3 -m docuploader create-metadata \ - --name ${NAME} \ - --version ${VERSION} \ - --language java - -# upload docs -python3 -m docuploader upload . \ - --credentials ${CREDENTIALS} \ - --staging-bucket ${STAGING_BUCKET} diff --git a/java-common-protos/.kokoro/release/publish_javadoc11.cfg b/java-common-protos/.kokoro/release/publish_javadoc11.cfg deleted file mode 100644 index b5372c604a..0000000000 --- a/java-common-protos/.kokoro/release/publish_javadoc11.cfg +++ /dev/null @@ -1,30 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# cloud-rad production -env_vars: { - 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" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/release/publish_javadoc11.sh" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "docuploader_service_account" - } - } -} - -# Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/ -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" diff --git a/java-common-protos/.kokoro/release/publish_javadoc11.sh b/java-common-protos/.kokoro/release/publish_javadoc11.sh deleted file mode 100755 index 69c00bfb17..0000000000 --- a/java-common-protos/.kokoro/release/publish_javadoc11.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -# Copyright 2021 Google LLC -# -# 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. - -set -eo pipefail - -if [[ -z "${CREDENTIALS}" ]]; then - CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account -fi - -if [[ -z "${STAGING_BUCKET_V2}" ]]; then - echo "Need to set STAGING_BUCKET_V2 environment variable" - exit 1 -fi - -# work from the git root directory -pushd $(dirname "$0")/../../ - -# install docuploader package -python3 -m pip install --require-hashes -r .kokoro/requirements.txt - -# compile all packages -mvn clean install -B -q -DskipTests=true - -export NAME=proto-google-common-protos -export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) - -# cloud RAD generation -mvn clean javadoc:aggregate -B -q -P docFX -# include CHANGELOG -cp CHANGELOG.md target/docfx-yml/history.md - -pushd target/docfx-yml - -# create metadata -python3 -m docuploader create-metadata \ - --name ${NAME} \ - --version ${VERSION} \ - --xrefs devsite://java/gax \ - --xrefs devsite://java/google-cloud-core \ - --xrefs devsite://java/api-common \ - --xrefs devsite://java/proto-google-common-protos \ - --xrefs devsite://java/google-api-client \ - --xrefs devsite://java/google-http-client \ - --xrefs devsite://java/protobuf \ - --language java - -# upload yml to production bucket -python3 -m docuploader upload . \ - --credentials ${CREDENTIALS} \ - --staging-bucket ${STAGING_BUCKET_V2} \ - --destination-prefix docfx diff --git a/java-common-protos/.kokoro/release/snapshot.cfg b/java-common-protos/.kokoro/release/snapshot.cfg deleted file mode 100644 index 087a62896e..0000000000 --- a/java-common-protos/.kokoro/release/snapshot.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/release/snapshot.sh" -} \ No newline at end of file diff --git a/java-common-protos/.kokoro/release/snapshot.sh b/java-common-protos/.kokoro/release/snapshot.sh deleted file mode 100755 index 1f55b77024..0000000000 --- a/java-common-protos/.kokoro/release/snapshot.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# 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. - -set -eo pipefail - -source $(dirname "$0")/common.sh -MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml -pushd $(dirname "$0")/../../ - -# ensure we're trying to push a snapshot (no-result returns non-zero exit code) -grep SNAPSHOT versions.txt - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn clean deploy -B \ - --settings ${MAVEN_SETTINGS_FILE} \ - -DperformRelease=true \ - -Dgpg.executable=gpg \ - -Dgpg.passphrase=${GPG_PASSPHRASE} \ - -Dgpg.homedir=${GPG_HOMEDIR} diff --git a/java-common-protos/.kokoro/release/stage.cfg b/java-common-protos/.kokoro/release/stage.cfg deleted file mode 100644 index 21a7e3cb58..0000000000 --- a/java-common-protos/.kokoro/release/stage.cfg +++ /dev/null @@ -1,19 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-common-protos/.kokoro/release/stage.sh" -} - -# Need to save the properties file -action { - define_artifacts { - regex: "github/java-common-protos/target/nexus-staging/staging/*.properties" - strip_prefix: "github/java-common-protos" - } -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" -} diff --git a/java-common-protos/.kokoro/release/stage.sh b/java-common-protos/.kokoro/release/stage.sh deleted file mode 100755 index 61e714d6ba..0000000000 --- a/java-common-protos/.kokoro/release/stage.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# 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. - -set -eo pipefail - -# Start the releasetool reporter -requirementsFile=$(realpath $(dirname "${BASH_SOURCE[0]}")/../requirements.txt) -python3 -m pip install --require-hashes -r $requirementsFile -python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script - -source $(dirname "$0")/common.sh -source $(dirname "$0")/../common.sh -MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -# attempt to stage 3 times with exponential backoff (starting with 10 seconds) -retry_with_backoff 3 10 \ - mvn clean deploy -B \ - --settings ${MAVEN_SETTINGS_FILE} \ - -DskipTests=true \ - -Dclirr.skip=true \ - -DperformRelease=true \ - -Dgpg.executable=gpg \ - -Dgpg.passphrase=${GPG_PASSPHRASE} \ - -Dgpg.homedir=${GPG_HOMEDIR} - -if [[ -n "${AUTORELEASE_PR}" ]] -then - mvn nexus-staging:release -B \ - -DperformRelease=true \ - --settings=settings.xml -fi diff --git a/java-common-protos/.kokoro/requirements.in b/java-common-protos/.kokoro/requirements.in deleted file mode 100644 index 924f94ae6f..0000000000 --- a/java-common-protos/.kokoro/requirements.in +++ /dev/null @@ -1,34 +0,0 @@ -gcp-docuploader==0.6.3 -google-crc32c==1.3.0 -googleapis-common-protos==1.56.3 -gcp-releasetool==1.9.1 -cryptography==38.0.3 -cachetools==4.2.4 -cffi==1.15.1 -jeepney==0.7.1 -jinja2==3.0.3 -markupsafe==2.0.1 -keyring==23.4.1 -packaging==21.3 -protobuf==3.19.5 -pyjwt==2.4.0 -pyparsing==3.0.9 -pycparser==2.21 -pyperclip==1.8.2 -python-dateutil==2.8.2 -requests==2.27.1 -certifi==2022.9.24 -importlib-metadata==4.8.3 -zipp==3.6.0 -google_api_core==2.8.2 -google-cloud-storage==2.0.0 -google-resumable-media==2.3.3 -google-cloud-core==2.3.1 -typing-extensions==4.1.1 -urllib3==1.26.12 -zipp==3.6.0 -rsa==4.9 -six==1.16.0 -attrs==22.1.0 -google-auth==2.14.1 -idna==3.4 \ No newline at end of file diff --git a/java-common-protos/.kokoro/requirements.txt b/java-common-protos/.kokoro/requirements.txt deleted file mode 100644 index 71fcafc703..0000000000 --- a/java-common-protos/.kokoro/requirements.txt +++ /dev/null @@ -1,456 +0,0 @@ -# -# This file is autogenerated by pip-compile with python 3.10 -# To update, run: -# -# pip-compile --generate-hashes requirements.in -# -attrs==22.1.0 \ - --hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \ - --hash=sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c - # via - # -r requirements.in - # gcp-releasetool -cachetools==4.2.4 \ - --hash=sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693 \ - --hash=sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1 - # via - # -r requirements.in - # google-auth -certifi==2022.9.24 \ - --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ - --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 - # via - # -r requirements.in - # requests -cffi==1.15.1 \ - --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ - --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ - --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \ - --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \ - --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \ - --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \ - --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \ - --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \ - --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \ - --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \ - --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \ - --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \ - --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \ - --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \ - --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \ - --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \ - --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \ - --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \ - --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \ - --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \ - --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \ - --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \ - --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \ - --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \ - --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \ - --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \ - --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \ - --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \ - --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \ - --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \ - --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \ - --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \ - --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \ - --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \ - --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \ - --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \ - --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \ - --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \ - --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \ - --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \ - --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \ - --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \ - --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \ - --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \ - --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \ - --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \ - --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \ - --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \ - --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \ - --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \ - --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \ - --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \ - --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \ - --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \ - --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \ - --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \ - --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \ - --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \ - --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \ - --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \ - --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \ - --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ - --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ - --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 - # via - # -r requirements.in - # cryptography -charset-normalizer==2.0.12 \ - --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ - --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df - # via requests -click==8.0.4 \ - --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ - --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb - # via - # gcp-docuploader - # gcp-releasetool -colorlog==6.7.0 \ - --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ - --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 - # via gcp-docuploader -cryptography==38.0.3 \ - --hash=sha256:068147f32fa662c81aebab95c74679b401b12b57494872886eb5c1139250ec5d \ - --hash=sha256:06fc3cc7b6f6cca87bd56ec80a580c88f1da5306f505876a71c8cfa7050257dd \ - --hash=sha256:25c1d1f19729fb09d42e06b4bf9895212292cb27bb50229f5aa64d039ab29146 \ - --hash=sha256:402852a0aea73833d982cabb6d0c3bb582c15483d29fb7085ef2c42bfa7e38d7 \ - --hash=sha256:4e269dcd9b102c5a3d72be3c45d8ce20377b8076a43cbed6f660a1afe365e436 \ - --hash=sha256:5419a127426084933076132d317911e3c6eb77568a1ce23c3ac1e12d111e61e0 \ - --hash=sha256:554bec92ee7d1e9d10ded2f7e92a5d70c1f74ba9524947c0ba0c850c7b011828 \ - --hash=sha256:5e89468fbd2fcd733b5899333bc54d0d06c80e04cd23d8c6f3e0542358c6060b \ - --hash=sha256:65535bc550b70bd6271984d9863a37741352b4aad6fb1b3344a54e6950249b55 \ - --hash=sha256:6ab9516b85bebe7aa83f309bacc5f44a61eeb90d0b4ec125d2d003ce41932d36 \ - --hash=sha256:6addc3b6d593cd980989261dc1cce38263c76954d758c3c94de51f1e010c9a50 \ - --hash=sha256:728f2694fa743a996d7784a6194da430f197d5c58e2f4e278612b359f455e4a2 \ - --hash=sha256:785e4056b5a8b28f05a533fab69febf5004458e20dad7e2e13a3120d8ecec75a \ - --hash=sha256:78cf5eefac2b52c10398a42765bfa981ce2372cbc0457e6bf9658f41ec3c41d8 \ - --hash=sha256:7f836217000342d448e1c9a342e9163149e45d5b5eca76a30e84503a5a96cab0 \ - --hash=sha256:8d41a46251bf0634e21fac50ffd643216ccecfaf3701a063257fe0b2be1b6548 \ - --hash=sha256:984fe150f350a3c91e84de405fe49e688aa6092b3525f407a18b9646f6612320 \ - --hash=sha256:9b24bcff7853ed18a63cfb0c2b008936a9554af24af2fb146e16d8e1aed75748 \ - --hash=sha256:b1b35d9d3a65542ed2e9d90115dfd16bbc027b3f07ee3304fc83580f26e43249 \ - --hash=sha256:b1b52c9e5f8aa2b802d48bd693190341fae201ea51c7a167d69fc48b60e8a959 \ - --hash=sha256:bbf203f1a814007ce24bd4d51362991d5cb90ba0c177a9c08825f2cc304d871f \ - --hash=sha256:be243c7e2bfcf6cc4cb350c0d5cdf15ca6383bbcb2a8ef51d3c9411a9d4386f0 \ - --hash=sha256:bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd \ - --hash=sha256:c46837ea467ed1efea562bbeb543994c2d1f6e800785bd5a2c98bc096f5cb220 \ - --hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \ - --hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722 - # via - # -r requirements.in - # gcp-releasetool - # secretstorage -gcp-docuploader==0.6.3 \ - --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \ - --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b - # via -r requirements.in -gcp-releasetool==1.9.1 \ - --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ - --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b - # via -r requirements.in -google-api-core==2.8.2 \ - --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ - --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50 - # via - # -r requirements.in - # google-cloud-core - # google-cloud-storage -google-auth==2.14.1 \ - --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016 - # via - # -r requirements.in - # gcp-releasetool - # google-api-core - # google-cloud-core - # google-cloud-storage -google-cloud-core==2.3.1 \ - --hash=sha256:113ba4f492467d5bd442c8d724c1a25ad7384045c3178369038840ecdd19346c \ - --hash=sha256:34334359cb04187bdc80ddcf613e462dfd7a3aabbc3fe4d118517ab4b9303d53 - # via - # -r requirements.in - # google-cloud-storage -google-cloud-storage==2.0.0 \ - --hash=sha256:a57a15aead0f9dfbd4381f1bfdbe8bf89818a4bd75bab846cafcefb2db846c47 \ - --hash=sha256:ec4be60bb223a3a960f0d01697d849b86d91cad815a84915a32ed3635e93a5e7 - # via - # -r requirements.in - # gcp-docuploader -google-crc32c==1.3.0 \ - --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \ - --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \ - --hash=sha256:12674a4c3b56b706153a358eaa1018c4137a5a04635b92b4652440d3d7386206 \ - --hash=sha256:127f9cc3ac41b6a859bd9dc4321097b1a4f6aa7fdf71b4f9227b9e3ebffb4422 \ - --hash=sha256:13af315c3a0eec8bb8b8d80b8b128cb3fcd17d7e4edafc39647846345a3f003a \ - --hash=sha256:1926fd8de0acb9d15ee757175ce7242e235482a783cd4ec711cc999fc103c24e \ - --hash=sha256:226f2f9b8e128a6ca6a9af9b9e8384f7b53a801907425c9a292553a3a7218ce0 \ - --hash=sha256:276de6273eb074a35bc598f8efbc00c7869c5cf2e29c90748fccc8c898c244df \ - --hash=sha256:318f73f5484b5671f0c7f5f63741ab020a599504ed81d209b5c7129ee4667407 \ - --hash=sha256:3bbce1be3687bbfebe29abdb7631b83e6b25da3f4e1856a1611eb21854b689ea \ - --hash=sha256:42ae4781333e331a1743445931b08ebdad73e188fd554259e772556fc4937c48 \ - --hash=sha256:58be56ae0529c664cc04a9c76e68bb92b091e0194d6e3c50bea7e0f266f73713 \ - --hash=sha256:5da2c81575cc3ccf05d9830f9e8d3c70954819ca9a63828210498c0774fda1a3 \ - --hash=sha256:6311853aa2bba4064d0c28ca54e7b50c4d48e3de04f6770f6c60ebda1e975267 \ - --hash=sha256:650e2917660e696041ab3dcd7abac160b4121cd9a484c08406f24c5964099829 \ - --hash=sha256:6a4db36f9721fdf391646685ecffa404eb986cbe007a3289499020daf72e88a2 \ - --hash=sha256:779cbf1ce375b96111db98fca913c1f5ec11b1d870e529b1dc7354b2681a8c3a \ - --hash=sha256:7f6fe42536d9dcd3e2ffb9d3053f5d05221ae3bbcefbe472bdf2c71c793e3183 \ - --hash=sha256:891f712ce54e0d631370e1f4997b3f182f3368179198efc30d477c75d1f44942 \ - --hash=sha256:95c68a4b9b7828ba0428f8f7e3109c5d476ca44996ed9a5f8aac6269296e2d59 \ - --hash=sha256:96a8918a78d5d64e07c8ea4ed2bc44354e3f93f46a4866a40e8db934e4c0d74b \ - --hash=sha256:9c3cf890c3c0ecfe1510a452a165431b5831e24160c5fcf2071f0f85ca5a47cd \ - --hash=sha256:9f58099ad7affc0754ae42e6d87443299f15d739b0ce03c76f515153a5cda06c \ - --hash=sha256:a0b9e622c3b2b8d0ce32f77eba617ab0d6768b82836391e4f8f9e2074582bf02 \ - --hash=sha256:a7f9cbea4245ee36190f85fe1814e2d7b1e5f2186381b082f5d59f99b7f11328 \ - --hash=sha256:bab4aebd525218bab4ee615786c4581952eadc16b1ff031813a2fd51f0cc7b08 \ - --hash=sha256:c124b8c8779bf2d35d9b721e52d4adb41c9bfbde45e6a3f25f0820caa9aba73f \ - --hash=sha256:c9da0a39b53d2fab3e5467329ed50e951eb91386e9d0d5b12daf593973c3b168 \ - --hash=sha256:ca60076c388728d3b6ac3846842474f4250c91efbfe5afa872d3ffd69dd4b318 \ - --hash=sha256:cb6994fff247987c66a8a4e550ef374671c2b82e3c0d2115e689d21e511a652d \ - --hash=sha256:d1c1d6236feab51200272d79b3d3e0f12cf2cbb12b208c835b175a21efdb0a73 \ - --hash=sha256:dd7760a88a8d3d705ff562aa93f8445ead54f58fd482e4f9e2bafb7e177375d4 \ - --hash=sha256:dda4d8a3bb0b50f540f6ff4b6033f3a74e8bf0bd5320b70fab2c03e512a62812 \ - --hash=sha256:e0f1ff55dde0ebcfbef027edc21f71c205845585fffe30d4ec4979416613e9b3 \ - --hash=sha256:e7a539b9be7b9c00f11ef16b55486141bc2cdb0c54762f84e3c6fc091917436d \ - --hash=sha256:eb0b14523758e37802f27b7f8cd973f5f3d33be7613952c0df904b68c4842f0e \ - --hash=sha256:ed447680ff21c14aaceb6a9f99a5f639f583ccfe4ce1a5e1d48eb41c3d6b3217 \ - --hash=sha256:f52a4ad2568314ee713715b1e2d79ab55fab11e8b304fd1462ff5cccf4264b3e \ - --hash=sha256:fbd60c6aaa07c31d7754edbc2334aef50601b7f1ada67a96eb1eb57c7c72378f \ - --hash=sha256:fc28e0db232c62ca0c3600884933178f0825c99be4474cdd645e378a10588125 \ - --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \ - --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \ - --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3 - # via - # -r requirements.in - # google-resumable-media -google-resumable-media==2.3.3 \ - --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ - --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 - # via - # -r requirements.in - # google-cloud-storage -googleapis-common-protos==1.56.3 \ - --hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \ - --hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461 - # via - # -r requirements.in - # google-api-core -idna==3.4 \ - --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ - --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 - # via - # -r requirements.in - # requests -importlib-metadata==4.8.3 \ - --hash=sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e \ - --hash=sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668 - # via - # -r requirements.in - # keyring -jeepney==0.7.1 \ - --hash=sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac \ - --hash=sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f - # via - # -r requirements.in - # keyring - # secretstorage -jinja2==3.0.3 \ - --hash=sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 \ - --hash=sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7 - # via - # -r requirements.in - # gcp-releasetool -keyring==23.4.1 \ - --hash=sha256:17e49fb0d6883c2b4445359434dba95aad84aabb29bbff044ad0ed7100232eca \ - --hash=sha256:89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55 - # via - # -r requirements.in - # gcp-releasetool -markupsafe==2.0.1 \ - --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \ - --hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \ - --hash=sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b \ - --hash=sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194 \ - --hash=sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567 \ - --hash=sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff \ - --hash=sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724 \ - --hash=sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74 \ - --hash=sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646 \ - --hash=sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35 \ - --hash=sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6 \ - --hash=sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a \ - --hash=sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6 \ - --hash=sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad \ - --hash=sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26 \ - --hash=sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38 \ - --hash=sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac \ - --hash=sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7 \ - --hash=sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6 \ - --hash=sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047 \ - --hash=sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75 \ - --hash=sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f \ - --hash=sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b \ - --hash=sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135 \ - --hash=sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8 \ - --hash=sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a \ - --hash=sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a \ - --hash=sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1 \ - --hash=sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9 \ - --hash=sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864 \ - --hash=sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914 \ - --hash=sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee \ - --hash=sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f \ - --hash=sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18 \ - --hash=sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8 \ - --hash=sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2 \ - --hash=sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d \ - --hash=sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b \ - --hash=sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b \ - --hash=sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86 \ - --hash=sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6 \ - --hash=sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f \ - --hash=sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb \ - --hash=sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833 \ - --hash=sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28 \ - --hash=sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e \ - --hash=sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415 \ - --hash=sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902 \ - --hash=sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f \ - --hash=sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d \ - --hash=sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9 \ - --hash=sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d \ - --hash=sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145 \ - --hash=sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066 \ - --hash=sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c \ - --hash=sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1 \ - --hash=sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a \ - --hash=sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207 \ - --hash=sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f \ - --hash=sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53 \ - --hash=sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd \ - --hash=sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134 \ - --hash=sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85 \ - --hash=sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9 \ - --hash=sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5 \ - --hash=sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94 \ - --hash=sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509 \ - --hash=sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51 \ - --hash=sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872 - # via - # -r requirements.in - # jinja2 -packaging==21.3 \ - --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ - --hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522 - # via - # -r requirements.in - # gcp-releasetool -protobuf==3.19.5 \ - --hash=sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3 \ - --hash=sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c \ - --hash=sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1 \ - --hash=sha256:5266c36cc0af3bb3dbf44f199d225b33da66a9a5c3bdc2b14865ad10eddf0e37 \ - --hash=sha256:5470f892961af464ae6eaf0f3099e2c1190ae8c7f36f174b89491281341f79ca \ - --hash=sha256:66d14b5b90090353efe75c9fb1bf65ef7267383034688d255b500822e37d5c2f \ - --hash=sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855 \ - --hash=sha256:696e6cfab94cc15a14946f2bf72719dced087d437adbd994fff34f38986628bc \ - --hash=sha256:6a02172b9650f819d01fb8e224fc69b0706458fc1ab4f1c669281243c71c1a5e \ - --hash=sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9 \ - --hash=sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850 \ - --hash=sha256:9e1d74032f56ff25f417cfe84c8147047732e5059137ca42efad20cbbd25f5e0 \ - --hash=sha256:9e42b1cf2ecd8a1bd161239e693f22035ba99905ae6d7efeac8a0546c7ec1a27 \ - --hash=sha256:9f957ef53e872d58a0afd3bf6d80d48535d28c99b40e75e6634cbc33ea42fd54 \ - --hash=sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8 \ - --hash=sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e \ - --hash=sha256:c44e3282cff74ad18c7e8a0375f407f69ee50c2116364b44492a196293e08b21 \ - --hash=sha256:d249519ba5ecf5dd6b18150c9b6bcde510b273714b696f3923ff8308fc11ae49 \ - --hash=sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1 \ - --hash=sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657 \ - --hash=sha256:e63b0b3c42e51c94add62b010366cd4979cb6d5f06158bcae8faac4c294f91e1 \ - --hash=sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b \ - --hash=sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833 \ - --hash=sha256:f4f909f4dde413dec435a44b0894956d55bb928ded7d6e3c726556ca4c796e84 \ - --hash=sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7 \ - --hash=sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de - # via - # -r requirements.in - # gcp-docuploader - # gcp-releasetool - # google-api-core - # google-cloud-storage - # googleapis-common-protos -pyasn1==0.4.8 \ - --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ - --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba - # via - # pyasn1-modules - # rsa -pyasn1-modules==0.2.8 \ - --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ - --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74 - # via google-auth -pycparser==2.21 \ - --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ - --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 - # via - # -r requirements.in - # cffi -pyjwt==2.4.0 \ - --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ - --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba - # via - # -r requirements.in - # gcp-releasetool -pyparsing==3.0.9 \ - --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ - --hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc - # via - # -r requirements.in - # packaging -pyperclip==1.8.2 \ - --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57 - # via - # -r requirements.in - # gcp-releasetool -python-dateutil==2.8.2 \ - --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ - --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - # via - # -r requirements.in - # gcp-releasetool -requests==2.27.1 \ - --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ - --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d - # via - # -r requirements.in - # gcp-releasetool - # google-api-core - # google-cloud-storage -rsa==4.9 \ - --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ - --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21 - # via - # -r requirements.in - # google-auth -secretstorage==3.3.3 \ - --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ - --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 - # via keyring -six==1.16.0 \ - --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ - --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - # via - # -r requirements.in - # gcp-docuploader - # google-auth - # python-dateutil -typing-extensions==4.1.1 \ - --hash=sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42 \ - --hash=sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2 - # via -r requirements.in -urllib3==1.26.12 \ - --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ - --hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997 - # via - # -r requirements.in - # requests -zipp==3.6.0 \ - --hash=sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832 \ - --hash=sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc - # via - # -r requirements.in - # importlib-metadata diff --git a/java-common-protos/.kokoro/trampoline.sh b/java-common-protos/.kokoro/trampoline.sh deleted file mode 100644 index 8b69b793c9..0000000000 --- a/java-common-protos/.kokoro/trampoline.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# 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. -set -eo pipefail -# Always run the cleanup script, regardless of the success of bouncing into -# the container. -function cleanup() { - chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh - ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh - echo "cleanup"; -} -trap cleanup EXIT - -$(dirname $0)/populate-secrets.sh # Secret Manager secrets. -python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/java-common-protos/grpc-google-common-protos/pom.xml b/java-common-protos/grpc-google-common-protos/pom.xml index dcb90ba177..936db7b2d7 100644 --- a/java-common-protos/grpc-google-common-protos/pom.xml +++ b/java-common-protos/grpc-google-common-protos/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-common-protos - 2.15.0 + 2.16.0 grpc-google-common-protos GRPC library for grpc-google-common-protos com.google.api.grpc google-common-protos-parent - 2.15.0 + 2.16.0 diff --git a/java-common-protos/pom.xml b/java-common-protos/pom.xml index 0c93145d0e..f0359b6a5f 100644 --- a/java-common-protos/pom.xml +++ b/java-common-protos/pom.xml @@ -4,7 +4,7 @@ com.google.api.grpc google-common-protos-parent pom - 2.15.0 + 2.16.0 Google Common Protos Parent Java idiomatic client for Google Cloud Platform services. @@ -13,7 +13,7 @@ com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../gapic-generator-java-pom-parent @@ -69,7 +69,7 @@ com.google.api.grpc grpc-google-common-protos - 2.15.0 + 2.16.0 io.grpc @@ -81,7 +81,7 @@ com.google.api.grpc proto-google-common-protos - 2.15.0 + 2.16.0 com.google.guava @@ -181,7 +181,7 @@ showcase-sonar-analysis - enableTestCoverage + enableShowcaseTestCoverage diff --git a/java-common-protos/proto-google-common-protos/pom.xml b/java-common-protos/proto-google-common-protos/pom.xml index 76a1844ce1..9d0cfbd595 100644 --- a/java-common-protos/proto-google-common-protos/pom.xml +++ b/java-common-protos/proto-google-common-protos/pom.xml @@ -3,13 +3,13 @@ 4.0.0 com.google.api.grpc proto-google-common-protos - 2.15.0 + 2.16.0 proto-google-common-protos PROTO library for proto-google-common-protos com.google.api.grpc google-common-protos-parent - 2.15.0 + 2.16.0 diff --git a/java-core/google-cloud-core-bom/pom.xml b/java-core/google-cloud-core-bom/pom.xml index 66dd4c42f7..bd02cc8ea0 100644 --- a/java-core/google-cloud-core-bom/pom.xml +++ b/java-core/google-cloud-core-bom/pom.xml @@ -3,13 +3,13 @@ 4.0.0 com.google.cloud google-cloud-core-bom - 2.14.0 + 2.15.0 pom com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../../gapic-generator-java-pom-parent @@ -23,17 +23,17 @@ com.google.cloud google-cloud-core - 2.14.0 + 2.15.0 com.google.cloud google-cloud-core-grpc - 2.14.0 + 2.15.0 com.google.cloud google-cloud-core-http - 2.14.0 + 2.15.0 diff --git a/java-core/google-cloud-core-grpc/pom.xml b/java-core/google-cloud-core-grpc/pom.xml index 87c2bd6ed0..9eaa1ea3d5 100644 --- a/java-core/google-cloud-core-grpc/pom.xml +++ b/java-core/google-cloud-core-grpc/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-grpc - 2.14.0 + 2.15.0 jar Google Cloud Core gRPC @@ -12,7 +12,7 @@ com.google.cloud google-cloud-core-parent - 2.14.0 + 2.15.0 google-cloud-core-grpc diff --git a/java-core/google-cloud-core-http/pom.xml b/java-core/google-cloud-core-http/pom.xml index 89c1ade9d5..28acde25ed 100644 --- a/java-core/google-cloud-core-http/pom.xml +++ b/java-core/google-cloud-core-http/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core-http - 2.14.0 + 2.15.0 jar Google Cloud Core HTTP @@ -12,7 +12,7 @@ com.google.cloud google-cloud-core-parent - 2.14.0 + 2.15.0 google-cloud-core-http diff --git a/java-core/google-cloud-core/pom.xml b/java-core/google-cloud-core/pom.xml index 6bdba40ec7..f509450cc6 100644 --- a/java-core/google-cloud-core/pom.xml +++ b/java-core/google-cloud-core/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-core - 2.14.0 + 2.15.0 jar Google Cloud Core @@ -12,7 +12,7 @@ com.google.cloud google-cloud-core-parent - 2.14.0 + 2.15.0 google-cloud-core diff --git a/java-core/pom.xml b/java-core/pom.xml index e5bcc07300..92ffa0a5af 100644 --- a/java-core/pom.xml +++ b/java-core/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-core-parent pom - 2.14.0 + 2.15.0 Google Cloud Core Parent Java idiomatic client for Google Cloud Platform services. @@ -13,7 +13,7 @@ com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../gapic-generator-java-pom-parent @@ -33,7 +33,7 @@ com.google.cloud google-cloud-shared-dependencies - 3.6.0 + 3.7.0 pom import diff --git a/java-iam/grpc-google-iam-v1/pom.xml b/java-iam/grpc-google-iam-v1/pom.xml index 965cffa0f8..77c7cb3f6a 100644 --- a/java-iam/grpc-google-iam-v1/pom.xml +++ b/java-iam/grpc-google-iam-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-iam-v1 - 1.10.0 + 1.11.0 grpc-google-iam-v1 GRPC library for grpc-google-iam-v1 com.google.cloud google-iam-parent - 1.10.0 + 1.11.0 diff --git a/java-iam/grpc-google-iam-v2/pom.xml b/java-iam/grpc-google-iam-v2/pom.xml index 19709ed0ec..be3cfd2c82 100644 --- a/java-iam/grpc-google-iam-v2/pom.xml +++ b/java-iam/grpc-google-iam-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-iam-v2 - 1.10.0 + 1.11.0 grpc-google-iam-v2 GRPC library for proto-google-iam-v2 com.google.cloud google-iam-parent - 1.10.0 + 1.11.0 diff --git a/java-iam/grpc-google-iam-v2beta/pom.xml b/java-iam/grpc-google-iam-v2beta/pom.xml index 1fc9728be9..1a5a7f7941 100644 --- a/java-iam/grpc-google-iam-v2beta/pom.xml +++ b/java-iam/grpc-google-iam-v2beta/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-iam-v2beta - 1.10.0 + 1.11.0 grpc-google-iam-v2beta GRPC library for proto-google-iam-v1 com.google.cloud google-iam-parent - 1.10.0 + 1.11.0 diff --git a/java-iam/pom.xml b/java-iam/pom.xml index 1b5afe449f..79d1f97dfa 100644 --- a/java-iam/pom.xml +++ b/java-iam/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-iam-parent pom - 1.10.0 + 1.11.0 Google IAM Parent Java idiomatic client for Google Cloud Platform services. @@ -13,7 +13,7 @@ com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../gapic-generator-java-pom-parent @@ -81,49 +81,44 @@ com.google.api gax-bom - 2.24.0 + 2.25.0 pom import com.google.api.grpc proto-google-iam-v2 - 1.10.0 + 1.11.0 com.google.api.grpc grpc-google-iam-v2 - 1.10.0 - - - com.google.cloud - google-iam-policy - 1.10.0 + 1.11.0 com.google.api.grpc proto-google-common-protos - 2.15.0 + 2.16.0 com.google.api.grpc proto-google-iam-v2beta - 1.10.0 + 1.11.0 com.google.api.grpc grpc-google-iam-v1 - 1.10.0 + 1.11.0 com.google.api.grpc grpc-google-iam-v2beta - 1.10.0 + 1.11.0 com.google.api.grpc proto-google-iam-v1 - 1.10.0 + 1.11.0 javax.annotation @@ -225,7 +220,7 @@ showcase-sonar-analysis - enableTestCoverage + enableShowcaseTestCoverage diff --git a/java-iam/proto-google-iam-v1/pom.xml b/java-iam/proto-google-iam-v1/pom.xml index 1b64e410ed..34af013692 100644 --- a/java-iam/proto-google-iam-v1/pom.xml +++ b/java-iam/proto-google-iam-v1/pom.xml @@ -3,13 +3,13 @@ 4.0.0 com.google.api.grpc proto-google-iam-v1 - 1.10.0 + 1.11.0 proto-google-iam-v1 PROTO library for proto-google-iam-v1 com.google.cloud google-iam-parent - 1.10.0 + 1.11.0 diff --git a/java-iam/proto-google-iam-v2/pom.xml b/java-iam/proto-google-iam-v2/pom.xml index 93ca6a8c9c..0dfcc88000 100644 --- a/java-iam/proto-google-iam-v2/pom.xml +++ b/java-iam/proto-google-iam-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-iam-v2 - 1.10.0 + 1.11.0 proto-google-iam-v2 Proto library for proto-google-iam-v1 com.google.cloud google-iam-parent - 1.10.0 + 1.11.0 diff --git a/java-iam/proto-google-iam-v2beta/pom.xml b/java-iam/proto-google-iam-v2beta/pom.xml index 0f6fc05550..1f694eb0a9 100644 --- a/java-iam/proto-google-iam-v2beta/pom.xml +++ b/java-iam/proto-google-iam-v2beta/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-iam-v2beta - 1.10.0 + 1.11.0 proto-google-iam-v2beta Proto library for proto-google-iam-v1 com.google.cloud google-iam-parent - 1.10.0 + 1.11.0 diff --git a/java-shared-dependencies/dependency-convergence-check/pom.xml b/java-shared-dependencies/dependency-convergence-check/pom.xml index 9c3a7a7275..12c9709b34 100644 --- a/java-shared-dependencies/dependency-convergence-check/pom.xml +++ b/java-shared-dependencies/dependency-convergence-check/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud shared-dependencies-dependency-convergence-test - 3.6.0 + 3.7.0 Dependency convergence test for certain artifacts in Google Cloud Shared Dependencies An dependency convergence test case for the shared dependencies BOM. A failure of this test case means diff --git a/java-shared-dependencies/first-party-dependencies/pom.xml b/java-shared-dependencies/first-party-dependencies/pom.xml index ee013af9b0..0c9b9e8124 100644 --- a/java-shared-dependencies/first-party-dependencies/pom.xml +++ b/java-shared-dependencies/first-party-dependencies/pom.xml @@ -6,7 +6,7 @@ com.google.cloud first-party-dependencies pom - 3.6.0 + 3.7.0 Google Cloud First-party Shared Dependencies Shared first-party dependencies for Google Cloud Java libraries. @@ -35,7 +35,7 @@ com.google.api gapic-generator-java-bom - 2.16.0 + 2.17.0 pom import @@ -52,7 +52,7 @@ com.google.cloud google-cloud-core-bom - 2.14.0 + 2.15.0 pom import @@ -83,13 +83,13 @@ com.google.cloud google-cloud-core - 2.14.0 + 2.15.0 test-jar com.google.cloud google-cloud-core - 2.14.0 + 2.15.0 tests diff --git a/java-shared-dependencies/pom.xml b/java-shared-dependencies/pom.xml index 4353656515..41a1a6d050 100644 --- a/java-shared-dependencies/pom.xml +++ b/java-shared-dependencies/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-shared-dependencies pom - 3.6.0 + 3.7.0 first-party-dependencies third-party-dependencies @@ -17,7 +17,7 @@ com.google.api gapic-generator-java-pom-parent - 2.16.0 + 2.17.0 ../gapic-generator-java-pom-parent @@ -31,14 +31,14 @@ com.google.cloud first-party-dependencies - 3.6.0 + 3.7.0 pom import com.google.cloud third-party-dependencies - 3.6.0 + 3.7.0 pom import diff --git a/java-shared-dependencies/third-party-dependencies/pom.xml b/java-shared-dependencies/third-party-dependencies/pom.xml index 106c96160a..867e1011c2 100644 --- a/java-shared-dependencies/third-party-dependencies/pom.xml +++ b/java-shared-dependencies/third-party-dependencies/pom.xml @@ -6,7 +6,7 @@ com.google.cloud third-party-dependencies pom - 3.6.0 + 3.7.0 Google Cloud Third-party Shared Dependencies Shared third-party dependencies for Google Cloud Java libraries. @@ -23,7 +23,7 @@ UTF-8 ${project.artifactId} - 1.6.7 + 1.6.8 1.3.2 1.23 0.31.1 diff --git a/java-shared-dependencies/upper-bound-check/pom.xml b/java-shared-dependencies/upper-bound-check/pom.xml index 351d49c426..f9593e2458 100644 --- a/java-shared-dependencies/upper-bound-check/pom.xml +++ b/java-shared-dependencies/upper-bound-check/pom.xml @@ -4,7 +4,7 @@ com.google.cloud shared-dependencies-upper-bound-test pom - 3.6.0 + 3.7.0 Upper bound test for Google Cloud Shared Dependencies An upper bound test case for the shared dependencies BOM. A failure of this test case means @@ -30,7 +30,7 @@ com.google.cloud google-cloud-shared-dependencies - 3.6.0 + 3.7.0 pom import diff --git a/pom.xml b/pom.xml index 6e7b6713c9..93652bdbe6 100644 --- a/pom.xml +++ b/pom.xml @@ -81,10 +81,22 @@ - activate-test-coverage + full-project-coverage - enableTestCoverage + enableFullTestCoverage + + + + showcase + + + + + activate-showcase-coverage + + + enableShowcaseTestCoverage diff --git a/renovate.json b/renovate.json index 2c26c37707..bd6eaae303 100644 --- a/renovate.json +++ b/renovate.json @@ -2,7 +2,6 @@ "extends": [ "config:base" ], - "ignorePaths": [".kokoro/requirements.txt"], "ignoreDeps": ["rules_pkg"], "regexManagers": [ { @@ -27,6 +26,16 @@ "matchStrings": ["version\\.io_grpc=(?.+?)\\n"], "depNameTemplate": "io.grpc:grpc-core", "datasourceTemplate": "maven" + }, + { + "fileMatch": ["^\\.github/workflows/.*\\.yaml$"], + "matchStrings": ["SHOWCASE_VERSION: (?.+?)\\n"], + "datasourceTemplate": "go" + }, + { + "fileMatch": ["^showcase/gapic-showcase/pom\\.xml$"], + "matchStrings": ["(?.+?)\\n"], + "datasourceTemplate": "go" } ], "packageRules": [ diff --git a/scripts/create_native_image_test_env.sh b/scripts/create_native_image_test_env.sh new file mode 100644 index 0000000000..4e3689ec30 --- /dev/null +++ b/scripts/create_native_image_test_env.sh @@ -0,0 +1,234 @@ +#!/bin/bash + +# This script creates a submodule project with all the necessary repositories (forked) and changes needed to test +# GraalVM updates with handwritten libraries (including, pubsub, bigquery, bigtable and spanner-jdbc). +# It serves two main purposes; first, it allows for the creation of a testing environment that can be shared with +# teammates and second, given that the submodule leverages creation of test branches in the (forked) repositories, +# any extra configurations necessary for making the library compatible with GraalVM can easily be sent for review as a PR +# from the branch itself. +# At a high-level, the script will do the following: +# - Modifies graal-sdk version in gapic-generator-java/gax +# - Modifies the gapic-generator-bom version in java-shared-dependencies. +# - Updates the version of native-maven-plugin in java-shared-config. +# - Updates the java-shared-config and java-shared-dependencies versions in the handwritten libraries listed. +# - Adds gapic-generator-java, java-shared-config and handwritten libraries listed previously +# with the associated changes, to the submodule project. +set -eo pipefail + +function modify_shared_config() { + xmllint --shell pom.xml <0.0.1-SNAPSHOT + + 0.26.1 + + enable-golden-tests @@ -106,6 +110,28 @@ (IT.*\.java)|(.*Test.java) + + com.googlecode.maven-download-plugin + download-maven-plugin + 1.6.8 + + + download-compliance-suite + generate-test-resources + + wget + + + + https://raw.githubusercontent.com/googleapis/gapic-showcase/v${gapic-showcase.version}/server/services/compliance_suite.json + + src/test/resources + + true + + + + diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITBidiStreaming.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITBidiStreaming.java new file mode 100644 index 0000000000..ad90efc71e --- /dev/null +++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITBidiStreaming.java @@ -0,0 +1,105 @@ +/* + * Copyright 2023 Google LLC + * + * 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. + */ + +package com.google.showcase.v1beta1.it; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.api.core.SettableApiFuture; +import com.google.api.gax.rpc.ClientStream; +import com.google.api.gax.rpc.ResponseObserver; +import com.google.api.gax.rpc.StreamController; +import com.google.showcase.v1beta1.EchoClient; +import com.google.showcase.v1beta1.EchoRequest; +import com.google.showcase.v1beta1.EchoResponse; +import com.google.showcase.v1beta1.it.util.TestClientInitializer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ITBidiStreaming { + + private EchoClient grpcClient; + + @Before + public void setUp() throws Exception { + // Create gRPC Echo Client + grpcClient = TestClientInitializer.createGrpcEchoClient(); + } + + // The current implementation of BIDI streaming on Echo showcase server is that it would echo the + // request content back on every request, so this test verifies that the response content is + // exactly the same as request content. + // Ideally we should make the BIDI streaming server more generic, e.g. only respond when there are + // three requests, respond twice for every request etc. If that happens, the response content may + // not be exactly the same as request content. + @Test + public void testGrpc_splitCall_shouldListensToResponse() throws Exception { + // given + List expected = Arrays.asList("The rain in Spain stays mainly on the plain".split(" ")); + TestResponseObserver responseObserver = new TestResponseObserver(); + + // when + ClientStream clientStream = grpcClient.chatCallable().splitCall(responseObserver); + expected.forEach( + requestContent -> { + EchoRequest request = EchoRequest.newBuilder().setContent(requestContent).build(); + clientStream.send(request); + }); + clientStream.closeSend(); + + // then + List actual = responseObserver.getFuture().get(); + assertThat(actual).containsExactlyElementsIn(expected).inOrder(); + } + + private static class TestResponseObserver implements ResponseObserver { + private final List responses = new ArrayList<>(); + private final SettableApiFuture> future = SettableApiFuture.create(); + + @Override + public void onStart(StreamController controller) { + // no-op + } + + @Override + public void onResponse(EchoResponse response) { + responses.add(response.getContent()); + } + + @Override + public void onError(Throwable t) { + // no-op + } + + @Override + public void onComplete() { + future.set(responses); + } + + public SettableApiFuture> getFuture() { + return future; + } + } + + @After + public void tearDown() throws Exception { + grpcClient.close(); + } +} diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITClientSideStreaming.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITClientSideStreaming.java new file mode 100644 index 0000000000..93ddd876fd --- /dev/null +++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITClientSideStreaming.java @@ -0,0 +1,121 @@ +/* + * Copyright 2023 Google LLC + * + * 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. + */ + +package com.google.showcase.v1beta1.it; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertThrows; + +import com.google.api.core.SettableApiFuture; +import com.google.api.gax.rpc.ApiStreamObserver; +import com.google.api.gax.rpc.CancelledException; +import com.google.api.gax.rpc.StatusCode; +import com.google.rpc.Status; +import com.google.showcase.v1beta1.EchoClient; +import com.google.showcase.v1beta1.EchoRequest; +import com.google.showcase.v1beta1.EchoResponse; +import com.google.showcase.v1beta1.it.util.TestClientInitializer; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutionException; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ITClientSideStreaming { + + private EchoClient grpcClient; + + @Before + public void createClients() throws Exception { + // Create gRPC Echo Client + grpcClient = TestClientInitializer.createGrpcEchoClient(); + } + + @After + public void destroyClient() { + grpcClient.close(); + } + + @Test + public void testGrpc_sendStreamedContent_receiveConcatenatedResponse() + throws ExecutionException, InterruptedException { + CollectStreamObserver responseObserver = new CollectStreamObserver<>(); + ApiStreamObserver requestObserver = + grpcClient.collectCallable().clientStreamingCall(responseObserver); + String content = "The rain in Spain stays mainly on the plain"; + for (String message : content.split("\\s")) { + requestObserver.onNext(EchoRequest.newBuilder().setContent(message).build()); + } + requestObserver.onCompleted(); + + List serverResponse = responseObserver.future().get(); + assertThat(serverResponse).hasSize(1); + assertThat(serverResponse.get(0).getContent()) + .isEqualTo("The rain in Spain stays mainly on the plain"); + } + + @Test + public void testGrpc_sendStreamedContent_handleServerError() { + CollectStreamObserver responseObserver = new CollectStreamObserver<>(); + ApiStreamObserver requestObserver = + grpcClient.collectCallable().clientStreamingCall(responseObserver); + String content = "The rain in Spain stays mainly on the plain"; + for (String message : content.split("\\s")) { + requestObserver.onNext(EchoRequest.newBuilder().setContent(message).build()); + } + Status cancelledStatus = + Status.newBuilder().setCode(StatusCode.Code.CANCELLED.ordinal()).build(); + requestObserver.onNext(EchoRequest.newBuilder().setError(cancelledStatus).build()); + requestObserver.onCompleted(); + + ExecutionException exception = + assertThrows(ExecutionException.class, () -> responseObserver.future().get()); + assertThat(exception.getCause()).isInstanceOf(CancelledException.class); + CancelledException cancelledException = (CancelledException) exception.getCause(); + assertThat(cancelledException.getStatusCode().getCode()).isEqualTo(StatusCode.Code.CANCELLED); + } + + /** + * Implementation of {@link ApiStreamObserver} to accumulate streamed content. + * + * @param + */ + private class CollectStreamObserver implements ApiStreamObserver { + + private final SettableApiFuture> future = SettableApiFuture.create(); + private final List messages = new ArrayList<>(); + + @Override + public void onNext(T message) { + this.messages.add(message); + } + + @Override + public void onError(Throwable throwable) { + this.future.setException(throwable); + } + + @Override + public void onCompleted() { + future.set(this.messages); + } + + public SettableApiFuture> future() { + return this.future; + } + } +} diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITHttpAnnotation.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITHttpAnnotation.java new file mode 100644 index 0000000000..79431fbc68 --- /dev/null +++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITHttpAnnotation.java @@ -0,0 +1,141 @@ +/* + * Copyright 2023 Google LLC + * + * 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. + */ +package com.google.showcase.v1beta1.it; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.api.client.http.javanet.NetHttpTransport; +import com.google.api.gax.core.NoCredentialsProvider; +import com.google.common.collect.ImmutableMap; +import com.google.protobuf.util.JsonFormat; +import com.google.showcase.v1beta1.ComplianceClient; +import com.google.showcase.v1beta1.ComplianceData; +import com.google.showcase.v1beta1.ComplianceGroup; +import com.google.showcase.v1beta1.ComplianceSettings; +import com.google.showcase.v1beta1.ComplianceSuite; +import com.google.showcase.v1beta1.RepeatRequest; +import com.google.showcase.v1beta1.RepeatResponse; +import java.io.IOException; +import java.io.InputStreamReader; +import java.security.GeneralSecurityException; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; +import java.util.stream.Collectors; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +// This test runs from the parameters in the compliance_suite.json file +// The file is downloaded from the gapic-showcase repo. Each compliance +// group is a set of HttpJson behaviors we want to test for. Each group +// tests the product of the rpc list and requests list. +@RunWith(Parameterized.class) +public class ITHttpAnnotation { + + @Parameterized.Parameters(name = "Compliance Group Name: {0}") + public static String[] data() { + return new String[] { + "Fully working conversions, resources", + "Binding selection testing", + "Cases that apply to non-path requests", + "Fully working conversions, no resources" + }; + } + + @Parameterized.Parameter(0) + public String groupName; + + private ComplianceSuite complianceSuite; + private ComplianceClient complianceClient; + private Map> validComplianceRpcMap; + + @Before + public void createClient() throws IOException, GeneralSecurityException { + ComplianceSuite.Builder builder = ComplianceSuite.newBuilder(); + JsonFormat.parser() + .merge( + new InputStreamReader( + ITHttpAnnotation.class + .getClassLoader() + .getResourceAsStream("compliance_suite.json")), + builder); + complianceSuite = builder.build(); + + ComplianceSettings httpjsonComplianceSettings = + ComplianceSettings.newHttpJsonBuilder() + .setCredentialsProvider(NoCredentialsProvider.create()) + .setTransportChannelProvider( + ComplianceSettings.defaultHttpJsonTransportProviderBuilder() + .setHttpTransport( + new NetHttpTransport.Builder().doNotValidateCertificate().build()) + .setEndpoint("http://localhost:7469") + .build()) + .build(); + complianceClient = ComplianceClient.create(httpjsonComplianceSettings); + + // Mapping of Compliance Suite file RPC Names to ComplianceClient methods + validComplianceRpcMap = + ImmutableMap.of( + "Compliance.RepeatDataBody", + complianceClient::repeatDataBody, + "Compliance.RepeatDataBodyInfo", + complianceClient::repeatDataBodyInfo, + "Compliance.RepeatDataQuery", + complianceClient::repeatDataQuery, + "Compliance.RepeatDataSimplePath", + complianceClient::repeatDataSimplePath, + "Compliance.RepeatDataBodyPut", + complianceClient::repeatDataBodyPut, + "Compliance.RepeatDataBodyPatch", + complianceClient::repeatDataBodyPatch, + "Compliance.RepeatDataPathResource", + complianceClient::repeatDataPathResource); + } + + @After + public void destroyClient() { + complianceClient.close(); + } + + // Verify that the input's info is the same as the response's info + // This ensures that the entire group's behavior over HttpJson + // works as intended + @Test + public void testComplianceGroup() { + Optional complianceGroupOptional = + complianceSuite.getGroupList().stream() + .filter(x -> x.getName().equals(groupName)) + .findFirst(); + assertThat(complianceGroupOptional.isPresent()).isTrue(); + ComplianceGroup complianceGroup = complianceGroupOptional.get(); + List validRpcList = + complianceGroup.getRpcsList().stream() + .filter(validComplianceRpcMap::containsKey) + .collect(Collectors.toList()); + for (String rpcName : validRpcList) { + Function rpc = validComplianceRpcMap.get(rpcName); + for (RepeatRequest repeatRequest : complianceGroup.getRequestsList()) { + ComplianceData expectedData = repeatRequest.getInfo(); + RepeatResponse response = rpc.apply(repeatRequest); + assertThat(response.getRequest().getInfo()).isEqualTo(expectedData); + } + } + } +} diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITServerSideStreaming.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITServerSideStreaming.java index 107f4f9380..e8d22c2756 100644 --- a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITServerSideStreaming.java +++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITServerSideStreaming.java @@ -19,8 +19,6 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; -import com.google.api.gax.core.NoCredentialsProvider; -import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; import com.google.api.gax.rpc.CancelledException; import com.google.api.gax.rpc.ServerStream; import com.google.api.gax.rpc.StatusCode; @@ -28,38 +26,33 @@ import com.google.rpc.Status; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoResponse; -import com.google.showcase.v1beta1.EchoSettings; import com.google.showcase.v1beta1.ExpandRequest; -import io.grpc.ManagedChannelBuilder; -import java.io.IOException; -import java.security.GeneralSecurityException; +import com.google.showcase.v1beta1.it.util.TestClientInitializer; import java.util.ArrayList; import java.util.Iterator; +import java.util.stream.Collectors; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; public class ITServerSideStreaming { private EchoClient grpcClient; + private EchoClient httpjsonClient; @Before - public void createClients() throws IOException, GeneralSecurityException { + public void createClients() throws Exception { // Create gRPC Echo Client - EchoSettings grpcEchoSettings = - EchoSettings.newBuilder() - .setCredentialsProvider(NoCredentialsProvider.create()) - .setTransportChannelProvider( - InstantiatingGrpcChannelProvider.newBuilder() - .setChannelConfigurator(ManagedChannelBuilder::usePlaintext) - .build()) - .build(); - grpcClient = EchoClient.create(grpcEchoSettings); + grpcClient = TestClientInitializer.createGrpcEchoClient(); + // Create Http JSON Echo Client + httpjsonClient = TestClientInitializer.createHttpJsonEchoClient(); } @After public void destroyClient() { grpcClient.close(); + httpjsonClient.close(); } @Test @@ -79,6 +72,18 @@ public void testGrpc_receiveStreamedContent() { .inOrder(); } + @Test + public void testGrpc_receiveStreamedContentStreamAPI() { + String content = "The rain in Spain stays mainly on the plain!"; + ServerStream responseStream = + grpcClient.expandCallable().call(ExpandRequest.newBuilder().setContent(content).build()); + assertThat(responseStream.stream().map(EchoResponse::getContent).collect(Collectors.toList())) + .containsExactlyElementsIn( + ImmutableList.of( + "The", "rain", "in", "Spain", "stays", "mainly", "on", "the", "plain!")) + .inOrder(); + } + @Test public void testGrpc_serverError_receiveErrorAfterLastWordInStream() { String content = "The rain in Spain"; @@ -98,4 +103,45 @@ public void testGrpc_serverError_receiveErrorAfterLastWordInStream() { assertThrows(CancelledException.class, echoResponseIterator::next); assertThat(cancelledException.getStatusCode().getCode()).isEqualTo(StatusCode.Code.CANCELLED); } + + @Test + public void testHttpJson_receiveStreamedContent() { + String content = "The rain in Spain stays mainly on the plain!"; + ServerStream responseStream = + httpjsonClient + .expandCallable() + .call(ExpandRequest.newBuilder().setContent(content).build()); + ArrayList responses = new ArrayList<>(); + for (EchoResponse response : responseStream) { + responses.add(response.getContent()); + } + + assertThat(responses) + .containsExactlyElementsIn( + ImmutableList.of( + "The", "rain", "in", "Spain", "stays", "mainly", "on", "the", "plain!")) + .inOrder(); + } + + @Ignore( + value = "Ignore until https://github.com/googleapis/gapic-showcase/issues/1286 is resolved") + @Test + public void testHttpJson_serverError_receiveErrorAfterLastWordInStream() { + String content = "The rain in Spain"; + Status cancelledStatus = + Status.newBuilder().setCode(StatusCode.Code.CANCELLED.ordinal()).build(); + ServerStream responseStream = + httpjsonClient + .expandCallable() + .call(ExpandRequest.newBuilder().setContent(content).setError(cancelledStatus).build()); + Iterator echoResponseIterator = responseStream.iterator(); + + assertThat(echoResponseIterator.next().getContent()).isEqualTo("The"); + assertThat(echoResponseIterator.next().getContent()).isEqualTo("rain"); + assertThat(echoResponseIterator.next().getContent()).isEqualTo("in"); + assertThat(echoResponseIterator.next().getContent()).isEqualTo("Spain"); + CancelledException cancelledException = + assertThrows(CancelledException.class, echoResponseIterator::next); + assertThat(cancelledException.getStatusCode().getCode()).isEqualTo(StatusCode.Code.CANCELLED); + } } diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITUnaryCallable.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITUnaryCallable.java index 1d1ccd1bec..52bfddc408 100644 --- a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITUnaryCallable.java +++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/ITUnaryCallable.java @@ -19,20 +19,14 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; -import com.google.api.client.http.javanet.NetHttpTransport; -import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.grpc.GrpcStatusCode; -import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; import com.google.api.gax.rpc.CancelledException; import com.google.api.gax.rpc.StatusCode; import com.google.rpc.Status; import com.google.showcase.v1beta1.EchoClient; import com.google.showcase.v1beta1.EchoRequest; import com.google.showcase.v1beta1.EchoResponse; -import com.google.showcase.v1beta1.EchoSettings; -import io.grpc.ManagedChannelBuilder; -import java.io.IOException; -import java.security.GeneralSecurityException; +import com.google.showcase.v1beta1.it.util.TestClientInitializer; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -44,30 +38,11 @@ public class ITUnaryCallable { private EchoClient httpJsonClient; @Before - public void createClients() throws IOException, GeneralSecurityException { + public void createClients() throws Exception { // Create gRPC Echo Client - EchoSettings grpcEchoSettings = - EchoSettings.newBuilder() - .setCredentialsProvider(NoCredentialsProvider.create()) - .setTransportChannelProvider( - InstantiatingGrpcChannelProvider.newBuilder() - .setChannelConfigurator(ManagedChannelBuilder::usePlaintext) - .build()) - .build(); - grpcClient = EchoClient.create(grpcEchoSettings); - + grpcClient = TestClientInitializer.createGrpcEchoClient(); // Create Http JSON Echo Client - EchoSettings httpJsonEchoSettings = - EchoSettings.newHttpJsonBuilder() - .setCredentialsProvider(NoCredentialsProvider.create()) - .setTransportChannelProvider( - EchoSettings.defaultHttpJsonTransportProviderBuilder() - .setHttpTransport( - new NetHttpTransport.Builder().doNotValidateCertificate().build()) - .setEndpoint("http://localhost:7469") - .build()) - .build(); - httpJsonClient = EchoClient.create(httpJsonEchoSettings); + httpJsonClient = TestClientInitializer.createHttpJsonEchoClient(); } @After diff --git a/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/util/TestClientInitializer.java b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/util/TestClientInitializer.java new file mode 100644 index 0000000000..e2248ffb2e --- /dev/null +++ b/showcase/gapic-showcase/src/test/java/com/google/showcase/v1beta1/it/util/TestClientInitializer.java @@ -0,0 +1,53 @@ +/* + * Copyright 2023 Google LLC + * + * 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. + */ + +package com.google.showcase.v1beta1.it.util; + +import com.google.api.client.http.javanet.NetHttpTransport; +import com.google.api.gax.core.NoCredentialsProvider; +import com.google.showcase.v1beta1.EchoClient; +import com.google.showcase.v1beta1.EchoSettings; +import io.grpc.ManagedChannelBuilder; + +public class TestClientInitializer { + + public static EchoClient createGrpcEchoClient() throws Exception { + EchoSettings grpcEchoSettings = + EchoSettings.newBuilder() + .setCredentialsProvider(NoCredentialsProvider.create()) + .setTransportChannelProvider( + EchoSettings.defaultGrpcTransportProviderBuilder() + .setChannelConfigurator(ManagedChannelBuilder::usePlaintext) + .build()) + + .build(); + return EchoClient.create(grpcEchoSettings); + } + + public static EchoClient createHttpJsonEchoClient() throws Exception{ + EchoSettings httpJsonEchoSettings = + EchoSettings.newHttpJsonBuilder() + .setCredentialsProvider(NoCredentialsProvider.create()) + .setTransportChannelProvider( + EchoSettings.defaultHttpJsonTransportProviderBuilder() + .setHttpTransport( + new NetHttpTransport.Builder().doNotValidateCertificate().build()) + .setEndpoint("http://localhost:7469") + .build()) + .build(); + return EchoClient.create(httpJsonEchoSettings); + } +} diff --git a/showcase/gapic-showcase/src/test/resources/META-INF/native-image/resource-config.json b/showcase/gapic-showcase/src/test/resources/META-INF/native-image/resource-config.json new file mode 100644 index 0000000000..80d7bc0ea2 --- /dev/null +++ b/showcase/gapic-showcase/src/test/resources/META-INF/native-image/resource-config.json @@ -0,0 +1,3 @@ +{ + "resources":[{"pattern": ".*.json"}] +} \ No newline at end of file diff --git a/showcase/gapic-showcase/src/test/resources/compliance_suite.json b/showcase/gapic-showcase/src/test/resources/compliance_suite.json new file mode 100644 index 0000000000..a458819b35 --- /dev/null +++ b/showcase/gapic-showcase/src/test/resources/compliance_suite.json @@ -0,0 +1,240 @@ +{ + "group": [ + { + "name": "Fully working conversions, no resources", + "rpcs": ["Compliance.RepeatDataBody", "Compliance.RepeatDataBodyPut", "Compliance.RepeatDataBodyPatch", "Compliance.RepeatDataQuery", "Compliance.RepeatDataSimplePath", "Compliance.RepeatDataBodyInfo"], + "requests": [ + { + "name": "Basic data types", + "serverVerify": true, + "info": { + "fString": "Hello", + "fInt32": -1, + "fSint32" : -2, + "fSfixed32": -3, + "fUint32": 5, + "fFixed32": 7, + "fInt64": -11, + "fSint64": -13, + "fSfixed64": -17, + "fUint64": 19, + "fFixed64":23, + "fDouble": -29e4, + "fFloat": -31, + "fBool": true, + "fKingdom": "ANIMALIA", + + "pString": "Goodbye", + "pInt32": -37, + "pDouble": -41.43, + "pBool": true, + "pKingdom": "PLANTAE", + + "fChild": { + "fString": "second/bool/salutation" + } + }, + "fInt32": -10, + "fInt64": -110, + "fDouble": -54e4, + + "pInt32": -47, + "pInt64": -477, + "pDouble": -61.73 + }, + { + "name": "Basic types, no optional fields", + "serverVerify": true, + "info": { + "fString": "Hello", + "fInt32": -1, + "fSint32" : -2, + "fSfixed32": -3, + "fUint32": 5, + "fFixed32": 7, + "fInt64": -11, + "fSint64": -13, + "fSfixed64": -17, + "fUint64": 19, + "fFixed64":23, + "fDouble": -29e4, + "fFloat": -31, + "fBool": true, + "fKingdom": "ANIMALIA", + + "fChild": { + "fString": "second/bool/salutation" + } + } + }, + + { + "name": "Zero values for non-string fields", + "serverVerify": true, + "info": { + "fString": "Hello", + "fInt32": 0, + "fSint32" : 0, + "fSfixed32": 0, + "fUint32": 0, + "fFixed32": 0, + "fInt64": 0, + "fSint64": 0, + "fSfixed64": 0, + "fUint64": 0, + "fFixed64": 0, + "fDouble": 0, + "fFloat": 0, + "fBool": false, + "fKingdom": "LIFE_KINGDOM_UNSPECIFIED", + + "pString": "Goodbye", + "pInt32": 0, + "pDouble": 0, + "pBool": false, + "pKingdom": "LIFE_KINGDOM_UNSPECIFIED" + } + }, + { + "name": "Extreme values", + "serverVerify": true, + "info": { + "fString": "non-ASCII+non-printable string ☺ → ← \"\\\/\b\f\r\t\u1234 works, not newlines yet", + "fInt32": 2147483647, + "fSint32" : 2147483647, + "fSfixed32": 2147483647, + "fUint32": 4294967295, + "fFixed32": 4294967295, + "fInt64": "9223372036854775807", + "fSint64": "9223372036854775807", + "fSfixed64": "9223372036854775807", + "fUint64": "18446744073709551615", + "fFixed64": "18446744073709551615", + "fDouble": 1.797693134862315708145274237317043567981e+308, + "fFloat": 3.40282346638528859811704183484516925440e+38, + "fBool": false, + + "pString": "Goodbye", + "pInt32": 2147483647, + "pDouble": 1.797693134862315708145274237317043567981e+308, + "pBool": false + } + }, + { + "name": "Strings with spaces", + "serverVerify": true, + "info": { + "fString": "Hello there" + } + }, + { + "name": "Strings with quotes", + "serverVerify": true, + "info": { + "fString": "Hello \"You\"" + } + }, + { + "name": "Strings with percents", + "serverVerify": true, + "info": { + "fString": "Hello 100%" + } + } + ] + }, + { + "name": "Fully working conversions, resources", + "rpcs": ["Compliance.RepeatDataBody", "Compliance.RepeatDataBodyPut", "Compliance.RepeatDataBodyPatch", "Compliance.RepeatDataQuery"], + "requests": [ + { + "name": "Strings with slashes and values that resemble subsequent resource templates", + "serverVerify": true, + "info": { + "fString": "first/hello/second/greetings", + "pBool": true, + + "fChild": { + "fString": "second/zzz/bool/true" + } + } + } + ] + }, + { + "name": "Binding selection testing", + "rpcs": ["Compliance.RepeatDataPathResource"], + "requests": [ + { + "name": "Binding testing baseline no Uri verification", + "serverVerify": true, + "info": { + "fString": "first/hello", + "pBool": true, + + "fChild": { + "fString": "second/greetings" + } + } + }, + { + "name": "Binding testing first binding", + "serverVerify": true, + "info": { + "fString": "first/hello", + "pBool": true, + + "fChild": { + "fString": "second/greetings" + } + }, + "intendedBindingUri": "/v1beta1/repeat/{info.f_string=first/*}/{info.f_child.f_string=second/*}/bool/{info.f_bool}:pathresource" + }, + { + "name": "Binding testing additional binding", + "serverVerify": true, + "info": { + "fString": "second/greetings", + "pBool": true, + + "fChild": { + "fString": "first/hello" + } + }, + "intendedBindingUri": "/v1beta1/repeat/{info.f_child.f_string=first/*}/{info.f_string=second/*}/bool/{info.f_bool}:childfirstpathresource" + } + ] + }, + { + "name": "Cases that apply to non-path requests", + "rpcs": ["Compliance.RepeatDataBody", "Compliance.RepeatDataBodyPut", "Compliance.RepeatDataBodyPatch", "Compliance.RepeatDataQuery"], + "requests": [ + { + "name": "Zero values for all fields", + "serverVerify": true, + "info": { + "fString": "", + "fInt32": 0, + "fSint32" : 0, + "fSfixed32": 0, + "fUint32": 0, + "fFixed32": 0, + "fInt64": 0, + "fSint64": 0, + "fSfixed64": 0, + "fUint64": 0, + "fFixed64":20, + "fDouble": 0, + "fFloat": 0, + "fBool": false, + + "pString": "", + "pInt32": 0, + "pDouble": 0, + "pBool": false + } + } + ] + } + ] +} diff --git a/showcase/pom.xml b/showcase/pom.xml index 121812b867..a6cc8a76c2 100644 --- a/showcase/pom.xml +++ b/showcase/pom.xml @@ -15,7 +15,7 @@ com.google.api gapic-generator-java-bom - 2.16.0 + 2.17.0 ../gapic-generator-java-bom diff --git a/showcase/scripts/verify.sh b/showcase/scripts/verify.sh index 41b72565c7..48026e9600 100755 --- a/showcase/scripts/verify.sh +++ b/showcase/scripts/verify.sh @@ -57,6 +57,6 @@ case $1 in unzip -q -c "$BAZEL_ROOT/$GAPIC_JAR" temp-codegen.srcjar | jar x delete_unneeded - diff -ru "$SHOWCASE_DIR/$GAPIC_PROJECT_DIR"/src "$GAPIC_UNPACK_DIR"/src --exclude=it + diff -ru "$SHOWCASE_DIR/$GAPIC_PROJECT_DIR"/src "$GAPIC_UNPACK_DIR"/src --exclude=it --exclude=resources ;; esac diff --git a/versions.txt b/versions.txt index d842025ecb..0a0f436b9d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,19 +1,19 @@ # Format: # module:released-version:current-version -gapic-generator-java:2.16.0:2.16.0 -api-common:2.7.0:2.7.0 -gax:2.24.0:2.24.0 -gax-grpc:2.24.0:2.24.0 -gax-httpjson:0.109.0:0.109.0 -proto-google-common-protos:2.15.0:2.15.0 -grpc-google-common-protos:2.15.0:2.15.0 -proto-google-iam-v1:1.10.0:1.10.0 -grpc-google-iam-v1:1.10.0:1.10.0 -proto-google-iam-v2beta:1.10.0:1.10.0 -grpc-google-iam-v2beta:1.10.0:1.10.0 -google-iam-policy:1.10.0:1.10.0 -proto-google-iam-v2:1.10.0:1.10.0 -grpc-google-iam-v2:1.10.0:1.10.0 -google-cloud-core:2.14.0:2.14.0 -google-cloud-shared-dependencies:3.6.0:3.6.0 +gapic-generator-java:2.17.0:2.17.0 +api-common:2.8.0:2.8.0 +gax:2.25.0:2.25.0 +gax-grpc:2.25.0:2.25.0 +gax-httpjson:0.110.0:0.110.0 +proto-google-common-protos:2.16.0:2.16.0 +grpc-google-common-protos:2.16.0:2.16.0 +proto-google-iam-v1:1.11.0:1.11.0 +grpc-google-iam-v1:1.11.0:1.11.0 +proto-google-iam-v2beta:1.11.0:1.11.0 +grpc-google-iam-v2beta:1.11.0:1.11.0 +google-iam-policy:1.11.0:1.11.0 +proto-google-iam-v2:1.11.0:1.11.0 +grpc-google-iam-v2:1.11.0:1.11.0 +google-cloud-core:2.15.0:2.15.0 +google-cloud-shared-dependencies:3.7.0:3.7.0