Skip to content

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

File tree

7 files changed

+19
-7
lines changed

7 files changed

+19
-7
lines changed

rules_java_gapic/java_gapic_pkg.bzl

+1
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

+6-1
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

-2
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 test/integration/goldens/kms/src/com/google/cloud/kms/v1/MockIAMPolicy.java

+1-1
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 test/integration/goldens/kms/src/com/google/cloud/kms/v1/MockIAMPolicyImpl.java

+5-1
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 test/integration/goldens/kms/src/com/google/cloud/kms/v1/MockLocations.java

+1-1
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 test/integration/goldens/kms/src/com/google/cloud/kms/v1/MockLocationsImpl.java

+5-1
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)