Skip to content
This repository was archived by the owner on May 14, 2026. It is now read-only.

Commit d896e6e

Browse files
authored
fix: Fix mixin mock service and gradle build generation (#1010)
1) The generated mixin mock service classes must be in the same package as the service itself (not of the mixed-in service) - this is a regression of migrating to microgenerator. For example the PR when this happened for KMS: https://github.com/googleapis/java-kms/pull/502/files#diff-59a3127359a0458dedfaa9b6bdfc658e88a2491a6d907f32e17fac462b1a3c27L16 2) In case there is a location mixin, we also need to include grpc-google-common-protos dependency for output to compile
1 parent 9dcc470 commit d896e6e

7 files changed

Lines changed: 19 additions & 7 deletions

File tree

rules_java_gapic/java_gapic_pkg.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ def _construct_extra_deps(scope_to_deps, versions_map):
131131
"iam_java_proto": "maven.com_google_api_grpc_proto_google_iam_v1",
132132
"iam_java_grpc": "maven.com_google_api_grpc_grpc_google_iam_v1",
133133
"iam_policy_java_grpc": "maven.com_google_api_grpc_grpc_google_iam_v1",
134+
"location_java_grpc": "maven.com_google_api_grpc_grpc_google_common_protos",
134135
}
135136
extra_deps = {}
136137
for scope, deps in scope_to_deps.items():

src/main/java/com/google/api/generator/gapic/protoparser/Parser.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,12 @@ public static GapicContext parse(CodeGeneratorRequest request) {
203203

204204
return GapicContext.builder()
205205
.setServices(services)
206-
.setMixinServices(mixinServices)
206+
.setMixinServices(
207+
// Mixin classes must share the package with the service they are mixed in, instead of
208+
// their original package
209+
mixinServices.stream()
210+
.map(s -> s.toBuilder().setPakkage(services.get(0).pakkage()).build())
211+
.collect(Collectors.toList()))
207212
.setMessages(messages)
208213
.setResourceNames(resourceNames)
209214
.setHelperResourceNames(outputArgResourceNames)

test/integration/goldens/kms/src/com/google/cloud/kms/v1/KeyManagementServiceClientTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,10 @@
3434
import com.google.cloud.location.ListLocationsRequest;
3535
import com.google.cloud.location.ListLocationsResponse;
3636
import com.google.cloud.location.Location;
37-
import com.google.cloud.location.MockLocations;
3837
import com.google.common.collect.Lists;
3938
import com.google.iam.v1.Binding;
4039
import com.google.iam.v1.GetIamPolicyRequest;
4140
import com.google.iam.v1.GetPolicyOptions;
42-
import com.google.iam.v1.MockIAMPolicy;
4341
import com.google.iam.v1.Policy;
4442
import com.google.iam.v1.TestIamPermissionsRequest;
4543
import com.google.iam.v1.TestIamPermissionsResponse;

test/integration/goldens/kms/src/com/google/iam/v1/MockIAMPolicy.java renamed to test/integration/goldens/kms/src/com/google/cloud/kms/v1/MockIAMPolicy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.iam.v1;
17+
package com.google.cloud.kms.v1;
1818

1919
import com.google.api.core.BetaApi;
2020
import com.google.api.gax.grpc.testing.MockGrpcService;

test/integration/goldens/kms/src/com/google/iam/v1/MockIAMPolicyImpl.java renamed to test/integration/goldens/kms/src/com/google/cloud/kms/v1/MockIAMPolicyImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,14 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.iam.v1;
17+
package com.google.cloud.kms.v1;
1818

1919
import com.google.api.core.BetaApi;
20+
import com.google.iam.v1.GetIamPolicyRequest;
2021
import com.google.iam.v1.IAMPolicyGrpc.IAMPolicyImplBase;
22+
import com.google.iam.v1.Policy;
23+
import com.google.iam.v1.TestIamPermissionsRequest;
24+
import com.google.iam.v1.TestIamPermissionsResponse;
2125
import com.google.protobuf.AbstractMessage;
2226
import io.grpc.stub.StreamObserver;
2327
import java.util.ArrayList;

test/integration/goldens/kms/src/com/google/cloud/location/MockLocations.java renamed to test/integration/goldens/kms/src/com/google/cloud/kms/v1/MockLocations.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.cloud.location;
17+
package com.google.cloud.kms.v1;
1818

1919
import com.google.api.core.BetaApi;
2020
import com.google.api.gax.grpc.testing.MockGrpcService;

test/integration/goldens/kms/src/com/google/cloud/location/MockLocationsImpl.java renamed to test/integration/goldens/kms/src/com/google/cloud/kms/v1/MockLocationsImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.cloud.location;
17+
package com.google.cloud.kms.v1;
1818

1919
import com.google.api.core.BetaApi;
20+
import com.google.cloud.location.GetLocationRequest;
21+
import com.google.cloud.location.ListLocationsRequest;
22+
import com.google.cloud.location.ListLocationsResponse;
23+
import com.google.cloud.location.Location;
2024
import com.google.cloud.location.LocationsGrpc.LocationsImplBase;
2125
import com.google.protobuf.AbstractMessage;
2226
import io.grpc.stub.StreamObserver;

0 commit comments

Comments
 (0)