-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gapic-generator-java exits with IllegalStateException
when there's no service in protos
#2050
Comments
I would implement the script in a way that it would not call gapic-generator-java if there's no need to call it. |
I'm currently working on this feature. However, The grpc java plugin is implemented in a way that if there's no service to generate, it will exit normally without generating any code. I think the generator (which is also a protoc plugin) should do the same. |
We discussed this in the project meeting and I agree with Joe. In addition, we have other use cases that can benefit from this change. For example, as @mpeddada1 mentioned in #2048, we may need the generator to generate reflect-config.json for proto-only modules. |
This is working as intended, changing the type from |
cc: @lqiu96 @JoeWang1127 @alicejli Some considerations:
|
…tected (#2460) Fixes #2050 Adds behavior to gracefully perform a NOOP if no services are contained in the generation request. ## Confimation in hermetic build scripts From `generate_library.sh` against `google/cloud/alloydb/connectors/v1` ``` + /usr/local/google/home/diegomarquezp/Desktop/sdk2/sdk3/sdk-platform-java/library_generation/output/protobuf-25.2/bin/protoc --experimental_allow_proto3_optional --plugin=protoc-gen-java_gapic=/usr/local/google/home/diegomarquezp/.pyenv/versions/3.11.0/lib/python3.11/site-packages/library_generation/gapic-generator-java-wrapper --java_gapic_out=metadata:/usr/local/google/home/diegomarquezp/Desktop/sdk2/sdk3/sdk-platform-java/library_generation/output/temp_preprocessed/java_gapic_srcjar_raw.srcjar.zip --java_gapic_opt=transport=grpc,rest-numeric-enums,grpc-service-config=,gapic-config=,api-service-config=google/cloud/alloydb/connectors/v1/connectors_v1.yaml google/cloud/alloydb/connectors/v1/resources.proto google/cloud/common_resources.proto Apr 05, 2024 9:33:22 PM com.google.api.generator.gapic.protoparser.Parser parse WARNING: No services found to generate. This will produce an empty zip file Apr 05, 2024 9:33:22 PM com.google.api.generator.gapic.composer.ClientLibraryPackageInfoComposer generatePackageInfo WARNING: Generating empty package info since no services were found + did_generate_gapic=true + zipinfo -t /usr/local/google/home/diegomarquezp/Desktop/sdk2/sdk3/sdk-platform-java/library_generation/output/temp_preprocessed/java_gapic_srcjar_raw.srcjar.zip Empty zipfile. + did_generate_gapic=false + [[ false == \t\r\u\e ]] ``` I made some changes to library_generation but I moved them to a follow up PR (#2599) so the checks can pass here.
The generator should return normally with no-op when there's no service in protos.
For example: when generating from
google/cloud/alloydb/connectors/v1alpha
, the generator exited with the following error:The text was updated successfully, but these errors were encountered: