diff --git a/.githooks/pre-commit b/.githooks/pre-commit
index 7bd9edd8bb..164e989f38 100755
--- a/.githooks/pre-commit
+++ b/.githooks/pre-commit
@@ -105,11 +105,11 @@ fi
if [ $NUM_JAVA_FILES_CHANGED -gt 0 ]
then
echo_status "Running Java linter..."
- bazel --batch run --disk_cache="$BAZEL_CACHE_DIR" //:google_java_format_verification
+ mvn fmt:check
FORMAT_STATUS=$?
if [ $FORMAT_STATUS != 0 ]
then
- echo_error "Linting failed." "Please run :google_java_format and try again."
+ echo_error "Linting failed." "Please run mvn fmt:format and try again."
exit 1
fi
fi
@@ -118,7 +118,7 @@ fi
if [ $NUM_JAVA_FILES_CHANGED -gt 0 ] || [ $NUM_UNIT_GOLDEN_FILES_CHANGED -gt 0 ]
then
echo_status "Checking unit tests..."
- bazel --batch test //:units --disk_cache="$BAZEL_CACHE_DIR"
+ mvn test
TEST_STATUS=$?
if [ $TEST_STATUS != 0 ]
then
diff --git a/.github/workflows/ci-maven.yaml b/.github/workflows/ci-maven.yaml
index 8252ecc241..76a7206815 100644
--- a/.github/workflows/ci-maven.yaml
+++ b/.github/workflows/ci-maven.yaml
@@ -7,7 +7,7 @@ name: ci-maven
env:
SHOWCASE_VERSION: 0.25.0
jobs:
- units:
+ build:
runs-on: ubuntu-latest
strategy:
matrix:
@@ -22,11 +22,34 @@ jobs:
- run: java -version
- name: Unit Tests
run: |
- mvn verify --batch-mode --no-transfer-progress -Dcheckstyle.skip \
+ mvn install --batch-mode --no-transfer-progress -Dcheckstyle.skip \
-Dfmt.skip
+ - run: bazelisk version
+ - name: Integration Tests
+ run: |
+ bazel --batch test //test/integration/...
+ - name: Gradle Build Generated Storage Client Library
+ run: |
+ echo "Building Storage lib from generated source..."
+ mkdir /tmp/java-storage
+ bazelisk --batch build @com_google_googleapis//google/storage/v2:google-cloud-storage-v2-java
+ tar zxvf bazel-bin/external/com_google_googleapis/google/storage/v2/google-cloud-storage-v2-java.tar.gz -C /tmp/java-storage
+ pushd /tmp/java-storage/google-cloud-storage-v2-java
+ ./gradlew clean build publishToMavenLocal sourcesJar allJars
+ popd
- units-java8:
- name: "units (8) except gapic-generator-java"
+ - name: Gradle Build Generated Compute Client Library
+ run: |
+ echo "Building Compute lib from generated source..."
+ mkdir /tmp/java-compute
+ bazelisk --batch build @com_google_googleapis//google/cloud/compute/v1small:google-cloud-compute-small-v1-java
+ tar zxvf bazel-bin/external/com_google_googleapis/google/cloud/compute/v1small/google-cloud-compute-small-v1-java.tar.gz -C /tmp/java-compute
+ pushd /tmp/java-compute/google-cloud-compute-small-v1-java
+ ./gradlew clean build publishToMavenLocal sourcesJar allJars
+ popd
+
+ build-java8-except-gapic-generator-java:
+ name: "build(8) except for gapic-generator-java"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
@@ -65,8 +88,8 @@ jobs:
-Dcheckstyle.skip -Dmaven.compiler.useIncrementalCompilation=false \
-Dfmt.skip
- units-java8-gapic-generator-java:
- name: "units (8) for gapic-generator-java"
+ build-java8-gapic-generator-java:
+ name: "build(8) for gapic-generator-java"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
@@ -89,6 +112,29 @@ jobs:
shell: bash
run: |
mvn -V -B -ntp surefire:test --projects 'gapic-generator-java'
+ - run: bazelisk version
+ - name: Integration Tests
+ run: |
+ bazelisk --batch test //test/integration/...
+ - name: Gradle Build Generated Storage Client Library
+ run: |
+ echo "Building Storage lib from generated source..."
+ mkdir /tmp/java-storage
+ bazelisk --batch build @com_google_googleapis//google/storage/v2:google-cloud-storage-v2-java
+ tar zxvf bazel-bin/external/com_google_googleapis/google/storage/v2/google-cloud-storage-v2-java.tar.gz -C /tmp/java-storage
+ pushd /tmp/java-storage/google-cloud-storage-v2-java
+ ./gradlew clean build publishToMavenLocal sourcesJar allJars
+ popd
+
+ - name: Gradle Build Generated Compute Client Library
+ run: |
+ echo "Building Compute lib from generated source..."
+ mkdir /tmp/java-compute
+ bazelisk --batch build @com_google_googleapis//google/cloud/compute/v1small:google-cloud-compute-small-v1-java
+ tar zxvf bazel-bin/external/com_google_googleapis/google/cloud/compute/v1small/google-cloud-compute-small-v1-java.tar.gz -C /tmp/java-compute
+ pushd /tmp/java-compute/google-cloud-compute-small-v1-java
+ ./gradlew clean build publishToMavenLocal sourcesJar allJars
+ popd
lint:
runs-on: ubuntu-latest
@@ -116,26 +162,6 @@ jobs:
java-version: ${{ matrix.java }}
distribution: temurin
- run: java -version
-
- - name: Bazel File Cache Setup
- id: cache-bazel
- uses: actions/cache@v3
- with:
- path: ~/.cache/bazel
- key: ${{ runner.os }}-${{ hashFiles('WORKSPACE') }}
- restore-keys: ${{ runner.os }}-
- - name: Bazel Cache Not Found
- if: steps.cache-bazel.outputs.cache-hit != 'true'
- run: |
- echo "No cache found."
- - name: Bazel Cache Found
- if: steps.cache-bazel.outputs.cache-hit == 'true'
- run: |
- echo -n "Cache found. Cache size: "
- du -sh ~/.cache/bazel
- echo "If the cache seems broken, update the root WORKSPACE file with a trivial change."
- echo "The old cache will disappear after 7 days."
-
- name: Install maven modules
run: |
mvn install -B -ntp -DskipTests -Dclirr.skip -Dcheckstyle.skip
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
deleted file mode 100644
index 60fddf8afb..0000000000
--- a/.github/workflows/ci.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-on:
- push:
- branches:
- - main
- pull_request:
-name: ci
-jobs:
- build:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- java: [ 8, 11 ]
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v3
- with:
- java-version: ${{ matrix.java }}
- distribution: temurin
- - run: java -version
- - run: bazelisk version
- - name: Bazel File Cache Setup
- id: cache-bazel
- uses: actions/cache@v3
- with:
- path: ~/.cache/bazel
- key: ${{ runner.os }}-${{ hashFiles('WORKSPACE') }}
- restore-keys: ${{ runner.os }}-
- - name: Bazel Cache Not Found
- if: steps.cache-bazel.outputs.cache-hit != 'true'
- run: |
- echo "No cache found."
- - name: Bazel Cache Found
- if: steps.cache-bazel.outputs.cache-hit == 'true'
- run: |
- echo -n "Cache found. Cache size: "
- du -sh ~/.cache/bazel
- echo "If the cache seems broken, update the root WORKSPACE file with a trivial change."
- echo "The old one will disappear after 7 days."
-
- - name: Integration Tests
- run: bazelisk --batch test //test/integration/...
-
- - uses: actions/upload-artifact@v3
- if: ${{ failure() }}
- with:
- name: test-artifacts
- path: ~/.cache/bazel/*/*/*/gapic_generator_java/bazel-out/*/testlogs/*
- retention-days: 5
-
- generate-client-libraries:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- java: [ 8, 11 ]
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v3
- with:
- java-version: ${{ matrix.java }}
- distribution: temurin
- - run: java -version
- - run: bazelisk version
- - name: Bazel File Cache Setup
- id: cache-bazel
- uses: actions/cache@v3
- with:
- path: ~/.cache/bazel
- key: ${{ runner.os }}-${{ hashFiles('WORKSPACE') }}
- restore-keys: ${{ runner.os }}-
- - name: Bazel Cache Not Found
- if: steps.cache-bazel.outputs.cache-hit != 'true'
- run: |
- echo "No cache found."
- - name: Bazel Cache Found
- if: steps.cache-bazel.outputs.cache-hit == 'true'
- run: |
- echo -n "Cache found. Cache size: "
- du -sh ~/.cache/bazel
- echo "If the cache seems broken, update the root WORKSPACE file with a trivial change."
- echo "The old cache will disappear after 7 days."
-
- - name: Gradle Build Generated Storage Client Library
- run: |
- echo "Building Storage lib from generated source..."
- mkdir /tmp/java-storage
- bazelisk --batch build @com_google_googleapis//google/storage/v2:google-cloud-storage-v2-java
- tar zxvf bazel-bin/external/com_google_googleapis/google/storage/v2/google-cloud-storage-v2-java.tar.gz -C /tmp/java-storage
- pushd /tmp/java-storage/google-cloud-storage-v2-java
- ./gradlew clean build publishToMavenLocal sourcesJar allJars
- popd
-
- - name: Gradle Build Generated Compute Client Library
- run: |
- echo "Building Compute lib from generated source..."
- mkdir /tmp/java-compute
- bazelisk --batch build @com_google_googleapis//google/cloud/compute/v1small:google-cloud-compute-small-v1-java
- tar zxvf bazel-bin/external/com_google_googleapis/google/cloud/compute/v1small/google-cloud-compute-small-v1-java.tar.gz -C /tmp/java-compute
- pushd /tmp/java-compute/google-cloud-compute-small-v1-java
- ./gradlew clean build publishToMavenLocal sourcesJar allJars
- popd
-
- license-header:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-go@v3
- with:
- go-version: '^1.13.1'
- - name: License Header Check
- run: |
- go install github.com/google/addlicense@latest
- addlicense -c "Google LLC" -l apache -check $(find $PWD -type f -name '*.java' ! -path '**/showcase/**' ! -iname '*PlaceholderFile.java')
-
diff --git a/.gitignore b/.gitignore
index 447d437087..585e94f980 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,5 @@ target/
# Vscode Settings
.vscode/settings.json
+
+*.iml
diff --git a/BUILD.bazel b/BUILD.bazel
index 6196f677fe..d2a67f4eee 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -2,117 +2,10 @@ load("@rules_java//java:defs.bzl", "java_binary", "java_proto_library")
package(default_visibility = ["//visibility:public"])
-# TODO: some dependencies may be runtime only.
-MAIN_DEPS = [
- ":service_config_java_proto",
- "@com_google_api_api_common//jar",
- "@com_google_api_gax_java//gax",
- "@com_google_api_gax_java//gax:gax_testlib",
- "@com_google_api_gax_java//gax-grpc:gax_grpc",
- "@com_google_api_gax_java//gax-grpc:gax_grpc_testlib",
- "@com_google_api_gax_java//gax-httpjson:gax_httpjson",
- "@com_google_api_gax_java//gax-httpjson:gax_httpjson_testlib",
- "@com_google_api_grpc_proto_google_common_protos",
- "@com_google_auto_value_auto_value_annotations//jar", # Ideally should be compile-time only, but this is OK.
- "@com_google_code_gson//jar",
- "@com_google_googleapis//gapic/metadata:metadata_java_proto",
- "@com_google_guava_guava",
- "@com_google_http_client_google_http_client//jar",
- "@com_google_protobuf//:protobuf_java",
- "@com_google_protobuf//:protobuf_java_util",
- "@google_java_format_all_deps//jar",
- "@io_grpc_grpc_java//api",
- "@io_grpc_grpc_java//protobuf",
- "@io_grpc_grpc_java//stub",
- "@javax_annotation_javax_annotation_api//jar",
- "@junit_junit//jar",
- "@org_threeten_threetenbp//jar",
- "@org_yaml_snakeyaml//jar",
-]
-
-MAIN_DEPS_DEBUG_RUNTIME_ONLY = [
- "@com_google_googleapis//google/api:api_java_proto",
- "@com_google_googleapis//google/cloud:extended_operations_java_proto",
- "@com_google_googleapis//google/longrunning:longrunning_java_proto",
- "@com_google_protobuf//java/core",
-]
-
-# Some dependencies are runtime only, but that's fine for tests.
-TEST_DEPS = [
- ":test_java_protos",
- "@com_google_googleapis//google/logging/v2:logging_java_proto",
- "@com_google_googleapis//google/pubsub/v1:pubsub_java_proto",
- "@com_google_googleapis//google/rpc:rpc_java_proto",
- "@com_google_truth_truth//jar",
- "@io_github_java_diff_utils//jar",
-]
-
-proto_library(
- name = "service_config_proto",
- srcs = ["gapic-generator-java/src/main/proto/service_config.proto"],
- deps = [
- "@com_google_googleapis//google/rpc:code_proto",
- "@com_google_protobuf//:duration_proto",
- "@com_google_protobuf//:wrappers_proto",
- "@com_google_protobuf//:struct_proto",
- ],
-)
-java_proto_library(
- name = "service_config_java_proto",
- deps = [":service_config_proto"],
-)
-
-proto_library(
- name = "test_protos",
- srcs = glob(["gapic-generator-java/src/test/proto/*.proto"]),
- deps = [
- "@com_google_googleapis//google/api:annotations_proto",
- "@com_google_googleapis//google/api:client_proto",
- "@com_google_googleapis//google/api:field_behavior_proto",
- "@com_google_googleapis//google/api:routing_proto",
- "@com_google_googleapis//google/api:resource_proto",
- "@com_google_googleapis//google/cloud:extended_operations_proto",
- "@com_google_googleapis//google/longrunning:operations_proto",
- "@com_google_googleapis//google/rpc:error_details_proto",
- "@com_google_googleapis//google/rpc:status_proto",
- "@com_google_protobuf//:duration_proto",
- "@com_google_protobuf//:empty_proto",
- "@com_google_protobuf//:field_mask_proto",
- "@com_google_protobuf//:timestamp_proto",
- "@com_google_protobuf//:struct_proto",
- ],
-)
-java_proto_library(
- name = "test_java_protos",
- deps = [
- ":test_protos",
- "@com_google_googleapis//google/cloud:common_resources_proto"
- ],
-)
-
-java_plugin(
- name = "autovalue_plugin",
- processor_class = "com.google.auto.value.processor.AutoValueProcessor",
- deps = ["@com_google_auto_value_auto_value//jar"],
-)
-
-java_library(
- name = "gapic_generator_java",
- srcs = glob(["gapic-generator-java/src/main/java/**/*.java"]),
- plugins = [":autovalue_plugin"],
- deps = MAIN_DEPS,
-)
-
-java_library(
- name = "gapic_generator_java_test",
- srcs = glob(["gapic-generator-java/src/test/java/**/*.java"]),
- deps = [":gapic_generator_java"] + MAIN_DEPS + TEST_DEPS,
-)
-
java_binary(
name = "protoc-gen-java_gapic",
main_class = "com.google.api.generator.Main",
- runtime_deps = [":gapic_generator_java"] + MAIN_DEPS,
+ runtime_deps = ["@maven//:com_google_api_gapic_generator_java"],
)
# Request dumper binary, which dumps the CodeGeneratorRequest to a file on disk
@@ -134,7 +27,7 @@ java_binary(
java_binary(
name = "protoc-gen-code_generator_request_dumper",
main_class = "com.google.api.generator.debug.CodeGeneratorRequestDumper",
- runtime_deps = [":gapic_generator_java"] + MAIN_DEPS + MAIN_DEPS_DEBUG_RUNTIME_ONLY,
+ runtime_deps = ["@maven//:com_google_api_gapic_generator_java"],
)
# A binary similar to protoc-gen-java_gapic but reads the CodeGeneratorRequest
@@ -147,89 +40,9 @@ java_binary(
java_binary(
name = "code_generator_request_file_to_gapic_main",
main_class = "com.google.api.generator.debug.CodeGeneratorRequestFileToGapicMain",
- runtime_deps = [":gapic_generator_java"] + MAIN_DEPS + MAIN_DEPS_DEBUG_RUNTIME_ONLY,
-)
-
-# another test resource
-genrule(
- name = "basic_proto_descriptor",
- srcs = ["gapic-generator-java/src/test/proto/basic.proto"],
- outs = ["test-proto.descriptorset"],
- cmd = "$(location @com_google_protobuf//:protoc) " +
- "--include_source_info --include_imports --descriptor_set_out=$(OUTS) $(SRCS)",
- message = "Generating proto descriptor",
- tools = ["@com_google_protobuf//:protoc"],
+ runtime_deps = ["@maven//:com_google_api_gapic_generator_java"],
)
-# Unit tests. Run each test with, e.g.,
-# bazel test //:unit_com_google_api_generator_engine_JavaCodeGeneratorTest
-[java_test(
- # 35 is the length of 'gapic-generator-java/src/test/java'
- # 5 is the length of '.java'
- name = "unit_" + file[35:-5].replace('gapic-generator-java/', '').replace('/', '_'),
- test_class = file[35:-5].replace('gapic-generator-java/', '').replace('/', '.'),
- runtime_deps = [
- ":gapic_generator_java",
- ":gapic_generator_java_test",
- ] + MAIN_DEPS + TEST_DEPS,
- data = [":basic_proto_descriptor"] + glob([
- "gapic-generator-java/src/test/java/**/*.golden",
- "gapic-generator-java/src/test/resources/**",
- ]),
- tags = ["small"],
-) for file in glob(["gapic-generator-java/src/test/java/**/*Test.java"])]
-
-test_suite(name = "units", tags = ["small"])
-
-# Tests that generate and save unit golden (.golden) files.
-GOLDEN_UPDATING_UNIT_TESTS = [
- "com.google.api.generator.engine.JavaCodeGeneratorTest",
- "com.google.api.generator.gapic.composer.ComposerTest",
- "com.google.api.generator.gapic.composer.ClientLibraryPackageInfoComposerTest",
- "com.google.api.generator.gapic.composer.common.BatchingDescriptorComposerTest",
- "com.google.api.generator.gapic.composer.grpc.GrpcServiceCallableFactoryClassComposerTest",
- "com.google.api.generator.gapic.composer.grpc.GrpcServiceStubClassComposerTest",
- "com.google.api.generator.gapic.composer.grpc.MockServiceClassComposerTest",
- "com.google.api.generator.gapic.composer.grpc.MockServiceImplClassComposerTest",
- "com.google.api.generator.gapic.composer.grpc.ServiceClientClassComposerTest",
- "com.google.api.generator.gapic.composer.grpc.ServiceClientTestClassComposerTest",
- "com.google.api.generator.gapic.composer.grpc.ServiceSettingsClassComposerTest",
- "com.google.api.generator.gapic.composer.grpc.ServiceStubClassComposerTest",
- "com.google.api.generator.gapic.composer.grpc.ServiceStubSettingsClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.GrpcServiceCallableFactoryClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.GrpcServiceStubClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.HttpJsonServiceCallableFactoryClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.HttpJsonServiceClientTestClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.HttpJsonServiceStubClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.ServiceClientClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.ServiceClientTestClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.ServiceSettingsClassComposerTest",
- "com.google.api.generator.gapic.composer.grpcrest.ServiceStubSettingsClassComposerTest",
- "com.google.api.generator.gapic.composer.resourcename.ResourceNameHelperClassComposerTest",
- "com.google.api.generator.gapic.composer.rest.HttpJsonServiceCallableFactoryClassComposerTest",
- "com.google.api.generator.gapic.composer.rest.HttpJsonServiceStubClassComposerTest",
- "com.google.api.generator.gapic.composer.rest.ServiceClientTestClassComposerTest",
- "com.google.api.generator.gapic.composer.rest.ServiceSettingsClassComposerTest",
- "com.google.api.generator.gapic.composer.rest.ServiceStubSettingsClassComposerTest",
-]
-
-# Manually runs a single JUnit test for the tests that generate and save .golden
-# files. To update .golden files, run with, e.g.,
-# bazel run //:update_com_google_api_generator_engine_JavaCodeGeneratorTest
-[java_binary(
- name = "update_%s" % test_class.replace('.', '_'),
- main_class = "com.google.api.generator.test.framework.SingleJUnitTestRunner",
- args = [test_class],
- runtime_deps = [
- ":gapic_generator_java",
- ":gapic_generator_java_test",
- ] + MAIN_DEPS + TEST_DEPS,
- data = glob([
- "gapic-generator-java/src/test/java/**/*.golden",
- "gapic-generator-java/src/test/resources/**",
- ]),
-) for test_class in GOLDEN_UPDATING_UNIT_TESTS]
-
# google-java-format
java_binary(
name = "google_java_format_binary",
@@ -237,23 +50,3 @@ java_binary(
main_class = "com.google.googlejavaformat.java.Main",
runtime_deps = ["@google_java_format_all_deps//jar"],
)
-
-genrule(
- name = "google_java_format",
- outs = ["google_java_format.sh"],
- cmd = "echo 'find gapic-generator-java/src test -name \'*.java\' | grep -v /goldens/ | xargs $(execpath :google_java_format_binary) --replace' > $(OUTS)",
- executable = 1,
- tools = [":google_java_format_binary"],
- local = 1,
-)
-
-# Run `bazel build //:google_java_format_verification` to verify that gapic-generator-java sources
-# are formatted correctly.
-genrule(
- name = "google_java_format_verification",
- outs = ["google_java_format_verification.sh"],
- cmd = "echo 'find gapic-generator-java/src test -name \'*.java\' | grep -v /goldens/ | xargs $(execpath :google_java_format_binary) --dry-run --set-exit-if-changed' > $(OUTS)",
- executable = 1,
- tools = [":google_java_format_binary"],
- local = 1,
-)
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index 1e7a583cb2..e7c508066b 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -16,55 +16,38 @@
- Run linter checks without actually doing the formatting.
- ```sh
- bazel run //:google_java_format_verification
- ```
- or
- ```sh
- mvn fmt:check
- ```
+ ```sh
+ mvn fmt:check
+ ```
- Format files.
- ```sh
- bazel run //:google_java_format
- ```
- or
- ```sh
- mvn fmt:format
- ```
+ ```sh
+ mvn fmt:format
+ ```
## Test Running
- Run all unit and integration tests.
- ```sh
- bazel test //...
- ```
+ ```sh
+ mvn test # unit tests
+ bazel test //... # integration tests
+ ```
- Run all unit tests.
- ```sh
- bazel test //:units
- ```
- or
- ```sh
- mvn test
- ```
+ ```sh
+ mvn test
+ ```
-- Run a single unit test like `JavaCodeGeneratorTest.java`:
-
- ```sh
- bazel test //:unit_com_google_api_generator_engine_JavaCodeGeneratorTest
- ```
- or
- ```sh
- mvn test -Dtest=JavaCodeGeneratorTest
+- Run a single or multiple unit tests:
- mvn test "-Dtest=Basic*, !%regex[.*.Unstable.*], !%regex[.*.MyTest.class#one.*|two.*], %regex[#fast.*|slow.*]"
- ```
+ ```sh
+ mvn test -Dtest=JavaCodeGeneratorTest
-
+ mvn test "-Dtest=Basic*, !%regex[.*.Unstable.*], !%regex[.*.MyTest.class#one.*|two.*], %regex[#fast.*|slow.*]"
+ ```
- Update all unit test golden files:
@@ -74,10 +57,6 @@
- Update a single unit test golden file, for example `JavaCodeGeneratorTest.java`:
- ```sh
- bazel run //:update_com_google_api_generator_engine_JavaCodeGeneratorTest
- ```
- or
```sh
mvn test -DupdateUnitGoldens -Dtest=JavaCodeGeneratorTest
```
diff --git a/PROPERTIES.bzl b/PROPERTIES.bzl
deleted file mode 100644
index 4d5e0f286e..0000000000
--- a/PROPERTIES.bzl
+++ /dev/null
@@ -1,31 +0,0 @@
-PROPERTIES = {
- "version.com_google_protobuf": "3.21.7",
- # Version of google-java-format is downgraded from 1.8 to 1.7, because 1.8 supports java 11 minimum, while our JRE is java 8.
- "version.google_java_format": "1.7",
- "version.io_grpc_java": "1.42.1",
-
- # Common deps.
- "maven.com_google_guava_guava": "com.google.guava:guava:30.1-android",
- "maven.com_google_code_findbugs_jsr305": "com.google.code.findbugs:jsr305:3.0.0",
- "maven.com_google_auto_value_auto_value": "com.google.auto.value:auto-value:1.7.2",
- "maven.com_google_auto_value_auto_value_annotations": "com.google.auto.value:auto-value-annotations:1.7.2",
- "maven.com_google_code_gson": "com.google.code.gson:gson:2.8.6",
- "maven.com_google_protobuf_protobuf_java": "com.google.protobuf:protobuf-java:3.21.7",
- "maven.io_github_java_diff_utils": "io.github.java-diff-utils:java-diff-utils:4.11",
- "maven.javax_annotation_javax_annotation_api": "javax.annotation:javax.annotation-api:1.3.2",
-
- # Gapic YAML parsing for batching settings.
- "maven.org_yaml_snakeyaml": "org.yaml:snakeyaml:1.26",
-
- # ServiceStubSettings class. Used only in generated code.
- "maven.org_threeten_threetenbp": "org.threeten:threetenbp:1.3.3",
-
- # Testing.
- "maven.junit_junit": "junit:junit:4.13.1",
- # This hamcrest-core dependency is for running JUnit test manually, before JUnit 4.11 it's wrapped along with JUnit package.
- # But now it has to be explicitly added.
- "maven.org_hamcrest_hamcrest_core": "org.hamcrest:hamcrest-core:1.3",
- "maven.org_mockito_mockito_core": "org.mockito:mockito-core:2.21.0",
- # Keep in sync with gax-java.
- "maven.com_google_truth_truth": "com.google.truth:truth:1.1.2",
-}
diff --git a/WORKSPACE b/WORKSPACE
index de55cfc78c..9ae7798c52 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,32 +1,6 @@
workspace(name = "gapic_generator_java")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external")
-
-# DO NOT REMOVE.
-# This is needed to clobber any transitively-pulled in versions of bazel_skylib so that packages
-# like protobuf will build.
-http_archive(
- name = "bazel_skylib",
- sha256 = "74d544d96f4a5bb630d465ca8bbcfe231e3594e5aae57e1edbf17a6eb3ca2506",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
- "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
- ],
-)
-
-jvm_maven_import_external(
- name = "google_java_format_all_deps",
- artifact = "com.google.googlejavaformat:google-java-format:jar:all-deps:1.7",
- licenses = [
- "notice",
- "reciprocal",
- ],
- server_urls = [
- "https://repo.maven.apache.org/maven2/",
- "http://repo1.maven.org/maven2/",
- ],
-)
# gax-java and its transitive dependencies must be imported before
# gapic-generator-java dependencies to match the order in googleapis repository,
@@ -62,14 +36,10 @@ http_archive(
],
)
-load("//:repositories.bzl", "gapic_generator_java_repositories")
-
-gapic_generator_java_repositories()
-
# protobuf
-RULES_JVM_EXTERNAL_TAG = "4.2"
+RULES_JVM_EXTERNAL_TAG = "4.5"
-RULES_JVM_EXTERNAL_SHA = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca"
+RULES_JVM_EXTERNAL_SHA = "b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"
http_archive(
name = "rules_jvm_external",
@@ -78,13 +48,31 @@ http_archive(
url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)
+load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")
+
+rules_jvm_external_deps()
+
+load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")
+
+rules_jvm_external_setup()
+
load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS", "protobuf_deps")
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = PROTOBUF_MAVEN_ARTIFACTS,
- generate_compat_repositories = True,
+ repositories = ["https://repo.maven.apache.org/maven2/"],
+)
+
+_gapic_generator_java_version = "2.12.1-SNAPSHOT" # {x-version-update:gapic-generator-java:current}
+
+maven_install(
+ artifacts = [
+ "com.google.api:gapic-generator-java:" + _gapic_generator_java_version,
+ ],
+ fail_on_missing_checksum = False,
repositories = [
+ "m2Local",
"https://repo.maven.apache.org/maven2/",
],
)
diff --git a/gapic-generator-java/src/test/java/com/google/api/generator/test/framework/Utils.java b/gapic-generator-java/src/test/java/com/google/api/generator/test/framework/Utils.java
index 5960b722ef..0970189ccb 100644
--- a/gapic-generator-java/src/test/java/com/google/api/generator/test/framework/Utils.java
+++ b/gapic-generator-java/src/test/java/com/google/api/generator/test/framework/Utils.java
@@ -34,6 +34,10 @@ public class Utils {
* @param codegen the generated code from JUnit test
*/
public static void saveCodegenToFile(Class> clazz, String fileName, String codegen) {
+ if (System.getProperty("updateUnitGoldens") == null) {
+ return;
+ }
+
String relativeGoldenDir = getTestoutGoldenDir(clazz);
saveCodeToFile(relativeGoldenDir, fileName, codegen);
}
@@ -46,16 +50,6 @@ public static void saveSampleCodegenToFile(
private static void saveCodeToFile(String relativeGoldenDir, String fileName, String codegen) {
Path testOutputDir = Paths.get("src", "test", "java", relativeGoldenDir);
-
- // Auto-detect project workspace when running `bazel run //:update_TargetTest`.
- // TODO: remove when we don't use Bazel.
- String workspaceDir = System.getenv("BUILD_WORKSPACE_DIRECTORY");
- if (workspaceDir != null) {
- testOutputDir = Paths.get(workspaceDir).resolve(testOutputDir);
- } else if (System.getProperty("updateUnitGoldens") == null) {
- return;
- }
-
testOutputDir.toFile().mkdirs();
try (FileWriter myWriter = new FileWriter(testOutputDir.resolve(fileName).toFile())) {
myWriter.write(codegen);
diff --git a/pom.xml b/pom.xml
index 3950b69edc..5cf661aae5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
0.1.0-SNAPSHOT
- true
+ true
UTF-8
diff --git a/repositories.bzl b/repositories.bzl
deleted file mode 100644
index 5b651757d5..0000000000
--- a/repositories.bzl
+++ /dev/null
@@ -1,87 +0,0 @@
-# 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
-#
-# 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.
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_jar")
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external")
-load("//:PROPERTIES.bzl", "PROPERTIES")
-
-def gapic_generator_java_repositories():
- # Import dependencies shared between Gradle and Bazel (i.e. maven dependencies)
- for name, artifact in PROPERTIES.items():
- _maybe(
- jvm_maven_import_external,
- name = name,
- strip_repo_prefix = "maven.",
- artifact = _fix_bazel_artifact_format(artifact),
- server_urls = ["https://repo.maven.apache.org/maven2/", "http://repo1.maven.org/maven2/"],
- licenses = ["notice", "reciprocal"],
- )
-
- # Import Bazel-only dependencies (Gradle version will import maven artifacts of same
- # version, while Bazel will depend on Bazel workspaces). The versions are shared in the
- # properties file.
- _protobuf_version = PROPERTIES["version.com_google_protobuf"]
- _maybe(
- http_archive,
- name = "com_google_protobuf",
- urls = ["https://github.com/protocolbuffers/protobuf/archive/v%s.zip" % _protobuf_version],
- strip_prefix = "protobuf-%s" % _protobuf_version,
- )
-
- _maybe(
- jvm_maven_import_external,
- name = "google_java_format_all_deps",
- artifact = "com.google.googlejavaformat:google-java-format:jar:all-deps:%s" % PROPERTIES["version.google_java_format"],
- server_urls = ["https://repo.maven.apache.org/maven2/", "http://repo1.maven.org/maven2/"],
- licenses = ["notice", "reciprocal"],
- )
-
- _maybe(
- http_archive,
- name = "bazel_skylib",
- sha256 = "18ae58793e9036305e02333f6d59c9e0ea73e6d066d874c04bb83a1c5c9ac4a7",
- strip_prefix = "bazel-skylib-872e9b06e18ae8ba2897cb65b9aaa172aa6279f3",
- urls = ["https://github.com/bazelbuild/bazel-skylib/archive/872e9b06e18ae8ba2897cb65b9aaa172aa6279f3.tar.gz"],
- )
-
- _maybe(
- native.bind,
- name = "guava",
- actual = "@com_google_guava_guava//jar",
- )
-
- _maybe(
- native.bind,
- name = "gson",
- actual = "@com_google_code_gson_gson//jar",
- )
-
-def _maybe(repo_rule, name, strip_repo_prefix = "", **kwargs):
- if not name.startswith(strip_repo_prefix):
- return
- repo_name = name[len(strip_repo_prefix):]
- if repo_name in native.existing_rules():
- return
- repo_rule(name = repo_name, **kwargs)
-
-def _fix_bazel_artifact_format(artifact_id):
- # Fix the artifact id format discrepancy between Bazel & Gradle.
- # This is relevant only when classifier is specified explicitly.
- # Bazel format: groupId:artifactId:jar:classifier:version
- # Gradle format: groupId:artifactId:version:classifier
- ids = artifact_id.split(":")
- if len(ids) != 4:
- return artifact_id
- return "%s:%s:%s:%s:%s" % (ids[0], ids[1], "jar", ids[3], ids[2])