Skip to content

Commit 8c59769

Browse files
committed
Add messaging.proto instread of datastream
1 parent 49f0b39 commit 8c59769

File tree

11 files changed

+2152
-574
lines changed

11 files changed

+2152
-574
lines changed

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

+3-2
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ private static Map<TypeNode, Field> parseTypeFromArgumentName(
197197
return typeToField;
198198
}
199199

200-
// Parse the resource name tyeps.
200+
// Parse the resource name types.
201201
List<ResourceName> resourceNameArgs =
202202
ResourceReferenceParser.parseResourceNames(
203203
field.resourceReference(),
@@ -206,7 +206,8 @@ private static Map<TypeNode, Field> parseTypeFromArgumentName(
206206
resourceNames,
207207
patternsToResourceNames);
208208
outputArgResourceNames.addAll(resourceNameArgs);
209-
if (resourceNameArgs.size() == 1) {
209+
// For flattened methods, use the first candidate resource reference.
210+
if (resourceNameArgs.size() >= 1) {
210211
typeToField.put(
211212
TypeNode.STRING,
212213
field

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

+5-1
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,11 @@ static String parsePageSizeFieldName(
881881
// with monolith-gnerated libraries.
882882
String pagedFieldName = null;
883883

884-
if (inputMessage.fieldMap().containsKey("page_token")
884+
if (inputMessage != null
885+
&& inputMessage.fieldMap() != null
886+
&& inputMessage.fieldMap().containsKey("page_token")
887+
&& outputMessage != null
888+
&& outputMessage.fieldMap() != null
885889
&& outputMessage.fieldMap().containsKey("next_page_token")) {
886890
// List of potential field names representing page size.
887891
// page_size gets priority over max_results if both are present

src/test/java/com/google/api/generator/gapic/composer/common/TestProtoLoader.java

+30-21
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.google.api.generator.gapic.protoparser.Parser;
2929
import com.google.api.generator.gapic.protoparser.ServiceConfigParser;
3030
import com.google.bookshop.v1beta1.BookshopProto;
31-
import com.google.cloud.datastream.v1alpha1.CloudDatastreamServiceProto;
3231
import com.google.logging.v2.LogEntryProto;
3332
import com.google.logging.v2.LoggingConfigProto;
3433
import com.google.logging.v2.LoggingMetricsProto;
@@ -38,6 +37,7 @@
3837
import com.google.pubsub.v1.PubsubProto;
3938
import com.google.showcase.v1beta1.EchoOuterClass;
4039
import com.google.showcase.v1beta1.IdentityOuterClass;
40+
import com.google.showcase.v1beta1.MessagingOuterClass;
4141
import com.google.showcase.v1beta1.TestingOuterClass;
4242
import com.google.testdata.v1.DeprecatedServiceOuterClass;
4343
import google.cloud.CommonResources;
@@ -52,6 +52,7 @@
5252
import java.util.Set;
5353

5454
public class TestProtoLoader {
55+
5556
private static final TestProtoLoader INSTANCE =
5657
new TestProtoLoader(Transport.GRPC, "src/test/java/com/google/api/generator/gapic/testdata/");
5758
private final String testFilesDirectory;
@@ -171,26 +172,34 @@ public GapicContext parseShowcaseIdentity() {
171172
.build();
172173
}
173174

174-
public GapicContext parseDatastream() {
175-
FileDescriptor fileDescriptor = CloudDatastreamServiceProto.getDescriptor();
176-
ServiceDescriptor datastreamService = fileDescriptor.getServices().get(0);
177-
assertEquals(datastreamService.getName(), "Datastream");
178-
179-
Map<String, Message> messageTypes = Parser.parseMessages(fileDescriptor);
180-
Map<String, ResourceName> resourceNames = Parser.parseResourceNames(fileDescriptor);
181-
Set<ResourceName> outputResourceNames = new HashSet<>();
182-
List<Service> services =
183-
Parser.parseService(
184-
fileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames);
185-
186-
return GapicContext.builder()
187-
.setMessages(messageTypes)
188-
.setResourceNames(resourceNames)
189-
.setServices(services)
190-
.setHelperResourceNames(outputResourceNames)
191-
.setTransport(transport)
192-
.build();
193-
}
175+
public GapicContext parseShowcaseMessaging() {
176+
FileDescriptor fileDescriptor = MessagingOuterClass.getDescriptor();
177+
ServiceDescriptor messagingService = fileDescriptor.getServices().get(0);
178+
assertEquals(messagingService.getName(), "Messaging");
179+
180+
Map<String, Message> messageTypes = Parser.parseMessages(fileDescriptor);
181+
Map<String, ResourceName> resourceNames = Parser.parseResourceNames(fileDescriptor);
182+
183+
FileDescriptor identityFileDescriptor = IdentityOuterClass.getDescriptor();
184+
Map<String, ResourceName> identityResourceNames = Parser
185+
.parseResourceNames(identityFileDescriptor);
186+
187+
resourceNames.put("showcase.googleapis.com/User",
188+
identityResourceNames.get("showcase.googleapis.com/User"));
189+
190+
Set<ResourceName> outputResourceNames = new HashSet<>();
191+
List<Service> services =
192+
Parser.parseService(
193+
fileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames);
194+
195+
return GapicContext.builder()
196+
.setMessages(messageTypes)
197+
.setResourceNames(resourceNames)
198+
.setServices(services)
199+
.setHelperResourceNames(outputResourceNames)
200+
.setTransport(transport)
201+
.build();
202+
}
194203

195204
public GapicContext parseShowcaseTesting() {
196205
FileDescriptor testingFileDescriptor = TestingOuterClass.getDescriptor();

src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceClientClassComposerTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,14 @@ public void generateServiceClasses_bookshopNameConflicts() {
8181

8282
@Test
8383
public void generateServiceClasses_childTypeParentInJavadoc() {
84-
GapicContext context = GrpcTestProtoLoader.instance().parseDatastream();
84+
GapicContext context = GrpcTestProtoLoader.instance().parseShowcaseMessaging();
8585
Service protoService = context.services().get(0);
8686
GapicClass clazz = ServiceClientClassComposer.instance().generate(context, protoService);
8787

8888
JavaWriterVisitor visitor = new JavaWriterVisitor();
8989
clazz.classDefinition().accept(visitor);
90-
Utils.saveCodegenToFile(this.getClass(), "DatastreamClient.golden", visitor.write());
91-
Path goldenFilePath = Paths.get(Utils.getGoldenDir(this.getClass()), "DatastreamClient.golden");
90+
Utils.saveCodegenToFile(this.getClass(), "MessagingClient.golden", visitor.write());
91+
Path goldenFilePath = Paths.get(Utils.getGoldenDir(this.getClass()), "MessagingClient.golden");
9292
assertCodeEquals(goldenFilePath, visitor.write());
9393
}
9494
}

0 commit comments

Comments
 (0)